【2.16.5.内核启动的C语言阶段2】教程文章相关的互联网学习教程文章

2.16.5.内核启动的C语言阶段2【图】

本节开始按照代码执行路径分析内核的C阶段。本节课主要讲了printk函数的工作原理和内核初始化打印出banner信息的部分。 参考:http://blog.chinaunix.net/uid-20543672-id-3157283.html2.16.5.1、杂碎(1)smp。smp就是对称多处理器(其实就是我们说的多核心CPU) (2)lockdep。锁定依赖,是一个内核调试模块,处理内核自旋锁死锁问题相关的。 (3)cgroup。control group,内核提供的一种来处理进程组的技术。2.16.5.2、打印内核版本信...

2.16.6.内核启动的C语言阶段3【代码】

本节讲解setup_arch函数中的machine查找的部分,初步分析了内核对机器码的定义和存储方式、比对方式、获取方式。2.16.6.1、setup_arch函数简介setup_arch(&command_line);(1)从名字看,这个函数是CPU架构相关的一些创建过程。 (2)实际上这个函数是用来确定我们当前内核的机器(arch、machine)的。我们的linux内核会支持一种CPU的运行,CPU+开发板就确定了一个硬件平台,然后我们当前配置的内核就在这个平台上可以运行。之前说过的...

2.16.7.内核启动的C语言阶段4

本节讲解setup_arch函数中对cmdline的处理,重点讲解了cmdline的传递方式、确认方式和其对内核的影响和意义。2.16.6.3、setup_arch函数进行了基本的cmdline处理(1)这里说的cmdline就是指的uboot给kernel传参时传递的命令行启动参数,也就是uboot的bootargs。 (2)有几个相关的变量需要注意: default_command_line:看名字是默认的命令行参数,实际是一个全局变量字符数组,这个字符数组可以用来存东西。 CONFIG_CMDLINE:在.config...