[摘]嵌入式linux系统的开启
来源:互联网 发布:js怎么隐藏div 编辑:程序博客网 时间:2024/05/28 05:19
在各种体系结构平台上,多数内核映像都采用压缩格式(MIPS 平台例外,它的映像采用非压缩格式) 。Linux 系统的一般启动过程通常划分为内核引导、内核启动和应用程序启动3 个阶段。
第一阶段是目标板硬件初始化,解压内核映像,再跳转到内核映像入口。这部分的工作一般由目标板的引导程序和内核映像的自引导程序完成。不同体系结构的目标板引导的方式和程序都有差异。Decompress Kernel --> Call Kernel,这和bootloader有关。
第二阶段是内核的初始化,初始化设备驱动,挂接根文件系统。这里是 Linux 内核通用的启动函数入口。所有体系结构的目标板都顺序调用统一的函数,尽管有些函数的代码实现是跟体系结构相关的。Initialize hardware, Initialize device driver, Mount root filesystem, Execute /sbin/init
第三阶段是执行用户空间的 init 程序,完成系统初始化、启动相关服务和管理用户登录等工作。这个阶段可以提供给用户交互界面,例如:Shell 命令行或者图形化的窗口界面。也可以自动执行应用程序。login prompt, Start network service, Start X-Windows
在 Linux 系统启动过程中,有两个关键点。一个是内核映像的解压启动;另一个是根文件系统的挂接。目标板处理器上电或者复位后,首先执行引导程序(Bootloader) ,初始化内存等硬件,然后把压缩的内核映像加载到内存中,最后跳转到内核映像入口执行。这样就把控制权完全交给内核映像了。接下来内核映像继续执行, 完成自解压或者重定位,然后跳转到解压后的内核代码入口。这部分主要是 Linux 内核的自引导程序,又叫作 Linux bootloader,包含在内核源代码中。这部分引导代码相对简单,不可能替代目标板上的 Bootloader。
因为文件和应用程序都要存储在文件系统中,所以 Linux 离不开文件系统。在内核启动到最后,必须挂接一个根文件系统。从文件系统的目录下找到 init 程序,启动 init 进程。
来自:《嵌入式 Linux 系统开发技术详解——基于 ARM》
我同意网上的一些书评,认为这本书写得比较杂乱,似讲义。不适合用作为入门或者学习的。适合于正在看其他相关的书,用来辅助阅读,以及对嵌入式Linux系统比较了解的人查阅。换句话说不是本好书,但值得翻翻。
- [摘]嵌入式linux系统的开启
- 嵌入式系统开启telnet
- 嵌入式Linux系统的启动
- 嵌入式Linux系统的构成
- 嵌入式Linux系统的构成
- 构建嵌入式系统-嵌入式linux系统的一般构架
- 嵌入式系统、linux和嵌入式linux的区别
- 嵌入式系统开发,不用Linux的理由 !
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 基于嵌入式Linux的智能手机系统设计
- 嵌入式设备上的 Linux 系统开发
- 嵌入式Linux系统的开发模式
- 嵌入式设备上的 Linux 系统开发
- 嵌入式Linux系统下Microwindows的应用
- Linux 2.6 内核的嵌入式系统应用
- 嵌入式Linux系统的设计与应用
- 嵌入式设备上的 Linux 系统开发
- 在myEclipse中开发J2ME程序,引用外部jar文件的问题解决
- 【翻译】如何在JavaScript中实现拖放(上)
- VS2005 + VSS2005 实现团队开发、源代码管理、版本控制
- rhel4.3下配置bug tracker
- 2009-06-09
- [摘]嵌入式linux系统的开启
- 出来咋到
- host is not allowed to connect to this MySQL server
- CEGUI::String
- 22 条经典的编程引言
- DOM4j使用教程
- Eclipse结合SVN进行版本控制在执行更新时遇到的问题
- icmp协议
- IE8面向Web开发人员的功能改进