Linux中许多工具的数据来源正是proc目录中的内容,比如lsmod的命令是cat/proc/modules的别名。
在Linux中存在着一类特殊的伪文件系统,用于使用与文件接口统一的 *** 作来完成各种功能,例如ptyfs、devfs、sysfs和procfs。而procfs就是其中应用最广泛的一种伪文件系统。
就文件系统这一术语而言,/proc目录并不是真正的文件系统,它是一个虚拟文件系统,有时也被称为进程信息伪文件系统。
proc放置的数据都是在内存当中,例如系统内核、进程、外部设备的状态及网络状态等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。
procfs是Linux内核信息的抽象文件接口,大量内核中的信息以及可调参数都被作为常规文件映射到一个目录树中,这样我们就可以简单直接的通过echo或cat这样的文件 *** 作命令对系统信息进行查取和调整了。同时procfs也提册指供了一个接口,使得我们自己的内核模块或用州棚配户态程序可以通过procfs进行参数的传递。在当今的Linux系统中,大量的系统工具也通过procfs获取内核参数,例如ps、lspci等等,没有procfs它们将可能不能正常工作。
proc文件和晌系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的 *** 作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
proc是子程序定义伪指令, far是该子程序的属性,决定调用程序和子程序是否在同一代码段如下:为子程序定义及说明,
子程序名 PROCNEAR ( 或 FAR )
……
ret
子程序名 ENDP
子程序名为符合语法的标识符
NEAR属性(段内近调用): 调用程序和子程序在同一代码段中,只能被相弊陪同代码段的其他程序调用
FAR属性(段间远调用):调用程序和子程租陵蠢序汪中不在同一代码段中,可以被相同或不同代码段的程序调用.
说明之后的代码或要修改cs寄存器中的内容,因此要保链扒存到内存中,要不然没法恢复。
RET可以没有,不过就不能返回了,而是继续往冲戚下跑(就可能出棚判昌错了)
assume cs:code,ds:data,假设CS寄存器装载的是代码段,假设DS寄存器装载的是数据段
dos16,win32汇编可以在代码中指定入口点的(坑爹的x64不支持这点了,必须在连接器指定)下面示例START就是入口点:
START:
...
END START 必须
5.中断要在DOS且为实模式下才能正常使用。(NT内核关闭中断位)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)