Chinaunix首页 | 论坛 | 博客
  • 博客访问: 646247
  • 博文数量: 516
  • 博客积分: 4119
  • 博客等级: 上校
  • 技术积分: 4288
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-30 17:29
文章分类

全部博文(516)

文章存档

2014年(4)

2013年(160)

2012年(352)

发布时间:2013-01-04 17:49:02

    在基本分析完内核启动流程的之后,还有一个比较重要的初始化函数没有分析,那就是do_basic_setup。在内核init线程中调用了do_basic_setup,这个函数也做了很多内核和驱动的初始化工作,详解如下:/* * 好了, 设备现在已经初始化完成。 但是还没有一个设备被初始化过, * 但是 CPU 的子系统已经启动并运行, * 且内存和处理器管理系统已经在工作了。 * * 现在我们终于可以开始做一些实际的工作了.. */static void __init do_basic_setup(v......【阅读全文】

阅读(591) | 评论(0) | 转发(0)

发布时间:2013-01-04 17:48:53

    研究内核源码和内核运行原理的时候,很总要的一点是要了解内核的初始情况,也就是要了解内核启动过程。我在研究内核的内存管理的时候,想知道内核启动后的页表的放置,页表的初始化等信息,这促使我这次仔细地研究内核的启动代码。    CPU在bootloader的帮助下将内核载入到了内存中,并开始执行。当然,bootloader必须为zImage做好必要的准备: 1. CPU 寄存器的设置:R0=0;R1=Machine ID(即Machine Type Number,定义在linux/arch/arm/tools/mach-types);R2=内......【阅读全文】

阅读(458) | 评论(0) | 转发(0)

发布时间:2013-01-04 17:48:40

1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3. 文件系统。包括根文件系统和建立于 Flash 内存设备之上文件系统。通常用 ram disk 来......【阅读全文】

阅读(425) | 评论(0) | 转发(0)

发布时间:2013-01-04 17:48:32

     前两天把内核关于内核启动参数的一些知识彻底地分析了一遍《Linux内核源码分析--内核启动命令行的传递过程(Linux-3.0 ARMv7)》,发现了一些以前没有注意的细节问题,这里总结如下:一、2.6.32以后的内核不再对cmdline中的未知参数输出警告信息     以前在移植内核的时候,如果cmdline中有未知的参数,内核一般会打印如下警告:Unknown boot option `**********': ignoring    但是这次我在uboot的bootargs中添加了内核未知的参数,比......【阅读全文】

阅读(414) | 评论(0) | 转发(0)

发布时间:2013-01-04 17:47:21

         内核的输入子系统是对分散的,多种不同类别的输入设备(如键盘,鼠标,跟踪球,操纵杆,触摸屏,加速计和手写板)等字符设备进行统一处理的一层抽象,就是在字符设备驱动上抽象出的一层。输入子系统包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输入设备的通信。鼠标事件生成文件mousedev属于事件驱动程序,而PS/2鼠标驱动程序是设备驱动程序。事件驱动程序是标准的,对所有的输入类都是可用的,所以要实现的是设备驱动程序而不是事件驱动程序。设备驱动程序可以利用一个已经存在的,合适的事件......【阅读全文】

阅读(326) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册