
系统启动篇
xingjiren
这个作者很懒,什么都没留下…
展开
-
探本溯源——深入领略Linux内核绝美风光之系统启动篇(四)
在完成控制台初始化之后,可以看到在arch\x86\boot\Main.c文件的main主函数中接着执行if (cmdline_find_option_bool("debug")),这条if判断语句首先调用cmdline_find_option_bool函数在内核命令行中查找"debug"选项,该函数的实现和在系统启动篇(三)[上]一文中剖析过的cmdline_find_option函数非常相似,转载 2013-04-23 16:35:15 · 1403 阅读 · 0 评论 -
探本溯源——深入领略Linux内核绝美风光之系统启动篇(一)
从拿到Linux3.1.1版内核源码并搭建好阅读环境开始,到现在大约已经徘徊了两个多月的时间,期间google了大大小小的文章,才刚刚理清了些许思路并找到了阅读的切入口。对于内核初学者来说一个好的指导比什么都重要,有关Linux内核学习的方法论可以参考fudan_abc写的Linux内核修炼之道,作者以其深厚的内核功底加上诙谐幽默的文字对读者娓娓道来,这样的感染力使得我几乎是一口气不断的看完了整个转载 2013-04-23 16:28:33 · 878 阅读 · 0 评论 -
探本溯源——深入领略Linux内核绝美风光之系统启动篇(二)
在前文结尾处我们提到内核映像的加载是由专用的bootloader比如LILO或是GRUB来实现的,而在x86架构下Linux内核通常使用其中之一的GRUB,它通过执行initrd文件来识别内核映像所在的文件系统进而执行加载,然而有一个需要注意的问题是,并非所有的物理地址空间对内核而言都是可用的,比如其中的某个物理地址范围可能被映射为I/O设备的共享内存,也可能其中的一个物理页框存放着BIOS数据,转载 2013-04-23 16:30:06 · 1056 阅读 · 0 评论 -
系统启动篇(三)[上]
进入main函数后,Linux内核执行硬件检测及初始化工作,即便在此之前BIOS已经对大部分硬件设备进行了相应的初始化,然而Linux并不依赖于BIOS,而是以特定的方式重新初始化相关设备,这样做的目的是为了增强可移植性及健壮性。需要强调的一点是,此时C语言仍旧运行在实模式状态下。拷贝启动参数进入arch\x86\boot\Main.c文件的main函数后,做的第一件事就是将从Ke转载 2013-04-23 16:31:28 · 751 阅读 · 0 评论 -
【连载】系统启动篇(三)[下]——控制台初始化续
接上文:系统启动篇(三)[上]在计算机中,用于数据传输的方式总共分为两种:①串行通信(Serial Communication),传输数据时只用一根线——按位发送和接受字节,速度慢但能够实现远距离通信,使用串行端口的设备有鼠标和USB等。②并行通信(Parallel Communication),使用多条线将每个数据的二进制位同时进行传输,传输速度较快但因为存在干扰而不能实现远距离通信转载 2013-04-23 16:33:10 · 1005 阅读 · 0 评论