仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2545|回复: 20
打印 上一主题 下一主题

[学习教程] ASP教程之解析Windows2000的IDT扩大机制

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:23:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多. 纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码   
明天咱们谈谈Windows 2000下中止机制的扩大,起首声名本文提到的手艺并不是自己发明的,只不外是我在进修Windows内核过程当中的一点心得而已,目标在于为和我一样方才步入Windows底层进修的伴侣供应一点适用的材料,同时也顺带纪录下本人的进修进程。假如您是Windows Kernel高手,还望有工夫能多多指导一下咱们这些晚辈;假如您也是初学者,一样接待到咱们FZ5FZ网站来交换切磋!那好吧,咱们就直接进入正题,假如您对中止还不怎样懂得,那面前将是一次冲动人心的路程。

1> Windows圈套机制简介

圈套(Trap)是Windows体系中一种不成短少的体系机制。当体系中产生中止(硬件中止或软件中止),异常时,处置器会捕获这个举措,并将体系的掌握转移到一个固定的处置法式处,停止响应的操作处置。在处置器入手下手处置产生的中止或异常前,必需保留一些处置器情况参数到仓库中以备体系复原时利用。体系是经由过程一种称为圈套帧(Trap Frame)的体例来完成的,它将体系中全体线程的情况数据保留到内核仓库(Kernel Stack)中,在履行完后经由过程仓库的出栈机制来恢复体系掌握流程中的履行点。内核中的圈套机制分为中止和异常。中止是体系中随即产生的异步事务,与以后体系的处置器形态有关。同时体系中的中止可分为可屏障中止和不成屏障中止。而异常则是一种同步事务,在特定情形下异常可以重现,而中止不成以。中止又可以分为硬件中止和软件中止。很分明硬件中止是与硬件相干的,好比I/O装备履行的某些操作,处置器时钟或硬件端口上的处置等。软件中止则是经由过程中止指令int xx引入的,它常常是使用法式在用户形式履行落后入操作体系的代码,这时候体系为用户供应了各类各样的体系办事。好比咱们前次提到的体系办事挪用(System Service Call),在Windows NT/2000下就是经由过程软件中止int 0x2e(System Service Interrupt)来完成的,固然在Windows XP/2003下微软利用了一种称为“疾速体系挪用接口”来为用户供应体系办事,不外大批的中止办事依然存在与体系当中的。



2> 中止处置及其相干流程

此处咱们会商的是与特定处置器相干的数据布局,所以会有一些移植方面的成绩,本文仅针对Intel的x86 Family处置器,而且本文附带的法式也只撑持在Intel x86处置器上正常履行。作甚IDT?IDT(Interrupt Descriptor Table)称为中止描写符表。它是可包容8192个单位的数组,数组中的每一个成员是称之为“门”的长度为8字节的段描写符。在IDT中门可分为三种:中止门(Interrrupt Gate),圈套门(Trap Gate)和义务门(Task Gate),但次要的是中止门和圈套门。而它们二者之间也只要少量不同,咱们在此只关怀IDT中的中止门,假如您对这方面对照感乐趣,请查阅Intel处置器的相干文档《Intel Architecture Software Developer's Manual,Volume 3》。同时,在体系中存在一个中止描写符表存放器(IDTR),它包括了体系中止描写符表的基地址和IDT的限制信息,它于一条汇编指令sidt互相关注。鄙人文中咱们将看到它是咱们完成各类中止描写符表扩大的基本和关头!还有一点是需求注重的,在Windows体系中引入了分页,分段和虚拟存储机制后,就存在这一种调剂机制,将需求履行的代码和数据调入内存,将不需求的数据调到外存(帮助存储器,如硬盘等)。假如咱们在履行某些代码时发明了咱们需求的数据不在内存中时,就会收回一个“缺页中止”,这时候体系就会在IDT中搜索这个中止的ISR(Interrupt Service Routine,中止办事例程),履行响应的调入任务。人人可以想象假如咱们的中止描写符表被调出到外存后会是甚么样的了局?那时体系将没法定位“缺页中止”的办事例程,至此体系将会溃散失落!

在中止描写符表中,咱们方才提到了一个感乐趣的存放器IDTR,固然咱们更关怀对咱们来讲更直接的数据:IDT中的代码段选择器(Code Segment Selector),中止履行代码的偏移量(Offset)和中止描写符的权限品级(Descriptor Privilege Level)参数。上面咱们看看中止指令的履行流程,咱们应当晓得使用法式履行在用户形式(Ring 3)下,而中止描写符表则是存在于内核形式(Ring 0)才可以会见的体系地址空间内的。在软件中止产生后,也就是使用法式挪用了某条软件中止指令后,处置器起首在IDT中检索传入的中止号参数,找到呼应的进口单位后就反省中止门的权限品级参数,看是不是答应Ring 3下的使用法式挪用,如许操作体系就为咱们保存了对软件中止挪用掌握的权利,但是硬件中止和异常是不会存眷权限方面的信息。假如以后权限品级(Current Privilge Level,CPL)数值大于中止门描写符需求的权限(Descriptor Privilege Level),也就是权限不敷时会激发一个通用回护毛病(General Protection Fault),反之则停止处置器的切换从用户仓库到内核仓库。如今是保留线程情况的时分了,处置器将在用户形式下的仓库指针(SS:ESP)和尺度的中止帧(EFLAGS和CS:EIP)压入仓库。以后处置器进入咱们的中止办事例程,履行相干的代码处置后经由过程汇编指令iretd前往到挪用的使用法式。在指令iretd履行时,体系将存储在仓库中的线程情况数据出栈复原,待体系恢复中止指令履行前的情况后就接着履行使用法式的后续代码。

问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.
冷月葬花魂 该用户已被删除
沙发
发表于 2015-2-16 00:38:39 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
第二个灵魂 该用户已被删除
板凳
发表于 2015-2-17 07:50:19 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
透明 该用户已被删除
地板
发表于 2015-3-5 16:54:14 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
因胸联盟 该用户已被删除
5#
发表于 2015-3-12 10:33:03 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
爱飞 该用户已被删除
6#
发表于 2015-3-19 20:29:32 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
变相怪杰 该用户已被删除
7#
发表于 2015-3-27 09:09:30 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
若天明 该用户已被删除
8#
发表于 2015-4-1 04:36:33 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
9#
发表于 2015-4-1 06:51:57 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-4-1 22:08:52 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
莫相离 该用户已被删除
11#
发表于 2015-4-10 07:26:07 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
精灵巫婆 该用户已被删除
12#
发表于 2015-4-14 13:59:12 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
小妖女 该用户已被删除
13#
发表于 2015-4-21 20:18:48 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
乐观 该用户已被删除
14#
发表于 2015-4-24 08:20:37 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
柔情似水 该用户已被删除
15#
发表于 2015-4-29 03:42:24 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
飘飘悠悠 该用户已被删除
16#
发表于 2015-5-4 20:22:56 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
再现理想 该用户已被删除
17#
发表于 2015-5-6 04:09:59 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
深爱那片海 该用户已被删除
18#
发表于 2015-5-6 23:10:06 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
若相依 该用户已被删除
19#
发表于 2015-5-7 17:46:24 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
萌萌妈妈 该用户已被删除
20#
 楼主| 发表于 2015-5-8 14:22:38 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-12 12:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表