发布时间:2013-05-30 23:07:13
好久没继续,心中有愧呀。一、介绍块设备驱动中包含了三部分代码:硬盘驱动,ramdisk驱动,软盘驱动。这三个部分的代码是一致的,采用了相同的处理方式。就是说对底层来说,不同硬件采用不同的方式读取数据,但上层用同样的接口来处理读写操作。大致流程:1:程序要读取数据,首先向缓存区管理程序发出申请,并进.........【阅读全文】
发布时间:2013-03-17 22:03:58
描述linux 0.11的内存管理主要内容。1:内存初始化linux 0.11最大支持16MB的物理内存。main函数和mem_init函数对内存进行了初始化。主要使用数组mem_map[]来标记相应的内存页是否被占用。memory_end是用BIOS中断调用得到的实际内存大小。if (memory_end > 16 * 1024 * 1024) memory_end = 16 *.........【阅读全文】
发布时间:2013-03-12 22:00:57
本文简单描述linux0.11信号机制的实现一:有关信号当进程收到一个信号后,进程根据相关设定调用信号处理函数。有三类信号处理方式:默认处理方式、忽略信号方式、执行用户设定的信号处理函数。发送信号的方式:按下相应的键(如CTRL+C)、使用kill命令或函数向指定进程发送信号。typedef void sig_func(int);sig_.........【阅读全文】
发布时间:2013-03-10 22:23:15
简单描述Linux0.11的启动与初始化过程。启动过程中需要关注:IDT, GDT, LDT, TSS, 页表, 堆栈这些数据。一:启动过程启动的代码文件为bootsect.s、setup.s、head.sbootsect.s也就是启动扇区的代码。这段代码主要是将setup.s和head.s中的内容读入内存的相应区域。然后开始执行setup.ssetup.s1:使用BIOS中断来获.........【阅读全文】