![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux-0.11
mcgrady_tracy
这个作者很懒,什么都没留下…
展开
-
Linux-0.11 kernel_mktime函数分析
kernel_mktime函数在kernel/mktime.c文件中,代码如下:/* * linux/kernel/mktime.c * * (C) 1991 Linus Torvalds */#include /* * This isn't the library routine, it is only used in the kernel. * as such, we原创 2014-12-09 19:58:40 · 1417 阅读 · 0 评论 -
Linux-0.11 任务调度
首先是定时器的初始化,在Linux-0.11版本中,使用的是8253/8254中的定时器0,初始化部分代码如下:void sched_init(void){ /* ... */ outb_p(0x36,0x43); /* binary, mode 3, LSB/MSB, ch 0 */ outb_p(LATCH & 0xff , 0x40); /* LSB */ outb(LATCH原创 2014-12-11 10:42:23 · 2015 阅读 · 1 评论 -
Linux-0.11 加载操作系统
x86系列CPU可以在16位实模式和32位保护模式下运行,实模式的特点是地址总线只有20位,也就是只有1MB的寻址空间,为了兼容老的CPU,Intel x86系列CPU包括最新的CPU在上电时都运行在16位的实模式下,同时在硬件上强行将CS置成0xF000,IP置成0xFFF0,那么CS:IP就指向0xFFFF0这个地址,也就是上电瞬间代码从该处开始执行,而BIOS恰恰就存储在这个地方,可以想象一原创 2014-06-30 08:44:36 · 1984 阅读 · 1 评论 -
Linux-0.11 内核定时器
Linux-0.11中的内核定时器它是一个软定时器,还是由jiffies来实现的,最多同时可支持64个内核定时器,内核定时器数据结构定义如下:#define TIME_REQUESTS 64static struct timer_list { long jiffies; void (*fn)(); struct timer_list * next;} timer_list[TIME_R原创 2014-12-11 16:18:00 · 1134 阅读 · 1 评论 -
Linux-0.11 实模式到保护模式
bootsect部分已经执行完成,程序也跳转到setup部分:start:! ok, the read went well so we get current cursor position and save it for! posterity. mov ax,#INITSEG ! this is done in bootsect already, but... mov原创 2014-07-02 23:11:47 · 1912 阅读 · 0 评论