发布时间:2013-01-05 11:09:28
在基本分析完内核启动流程的之后,还有一个比较重要的初始化函数没有分析,那就是do_basic_setup。在内核init线程中调用了do_basic_setup,这个函数也做了很多内核和驱动的初始化工作,详解如下:/* * 好了, 设备现在已经初始化完成。 但是还没有一个设备被初始化过, * 但是 CPU 的子系统已经启动并运行, * 且内存和处理器管理系统已经在工作了。 * * 现在我们终于可以开始做一些实际的工作了.. */static void __init do_basic_setup(v......【阅读全文】
发布时间:2013-01-05 11:04:35
Linux内核在启动的时候需要一些参数,以获得当前硬件的信息或者启动所需资源在内存中的位置等等。这些信息可以通过bootloader传递给内核,比较常见的就是cmdline。以前我在启动内核的时候习惯性的通过uboot传递一个cmdline给内核,没有具体的分析这个过程。最近在分析内核启动过程的时候,重新看了一下内核启动参数的传递过程,彻底解决一下在这方面的疑惑。 一、bootloader与内核的通讯协议 内核的启动参数其实不仅仅包含在了cmdline中,cmdline不过是bootloader传递给内核的信......【阅读全文】