linux 2.6源代码情景分析笔记之系统启动
最开始时,ram芯片中包含的是随机数据。当开始启动时,cpu的一个引脚上会产生一个reset逻辑值。此后处理器的一些寄存器设置成固定的数值,并执行在物理地址0xfffffff0处找到的代码。硬件把这个地址映射到某个只读、持久的存储芯片中,该芯片通常称为rom(read-only memory只读内存)。rom所存放的程序集在80x86体系中通常叫做基本输入输出系统(basic input/output system,BIOS),因为它包括几个中断驱动的低级过程。所有操作系统启动时,都要通过这些过程对计算机硬件设备初始化。当计算机进入保护模式,就不再使用BIOS,而是为计算机上的每个硬件设备提供各自的设备驱动程序。因为bios过程必须运行在实模式下,所以两者之间并不能共享函数。
BIOS使用实模式的地址,因为在计算机加电启动时只有这些可以使用。一个实模式的地址由一个seg段和一个off偏移量组成。相应的物理地址如此计算:seg*16+off.所以,cpu寻址电路不需要全局描述符表,局部描述符表或者页表把逻辑地址转换成物理地址。对GDT,LDT和页表进行初始化的代码必须在实模式下运行。
bios启动过程:
1、对计算机硬件执行一系列的测试,用来检测现在都有什么设备以及这些设备是否正常工作。这个阶段通常称为post(power-on self-test,上电自检)。在这个阶段中会显示一些信息。
2、初始化硬件设备。这个阶段在现代基于pci的体系结构中相当重要,因为它可以保证所有的硬件设备操作不会引起irq线与i/o端口的冲突。在此阶段后,会现实系统中所安装的所有pci设备的列表。
3、搜索一个操作系统来启动。实际上,根据bios的设置,这个过程可能要试图访问系统中的软盘、硬盘和CD-ROM的第一个扇区(引导扇区)。
4、只要找到一个有效的设备,就把第一个扇区的内容拷贝到ram中,从物理地址0x00007c00开始的位置,然后跳转到这个地址处,开始执行刚才装载近来的代码。
引导程序是由biso用来把操作系统的内核映像装载到ram中所调用的一个程序。
在bios中,初始引导仅仅是其功能的一部分,而是采用初始引导程序加引导扇区的方案,让各种操作系统通过引导扇区进一步提供其自身的引导手段。
在linux中,并不使用bios所提供的设备驱动,而是绕开bios,从硬件接口(寄存器)和中断响应开始彻底地实现自己的设备驱动层。故在linux中,bios的作用仅仅是初始引导,以及加电以后的自检以及向内核提供此过程中搜集到的一些信息。
在实际使用中,把一个硬盘分成若干“分区”,从而把一个物理的硬�
相关文档:
解析Linux网络分析的三大利器(ZT)
ZT from linuxsir
解析Linux网络分析的三大利器
随着Internet的迅猛发展,网络已无处不在,但是,它可能随时受到来自各方的攻击。了解哪些人正在访问资源、哪些人正在享受服务、哪些人正在发送大
量垃圾等,对网络管理员来说是非常必要的。利用Linux中较常见的网络分析工具Tcpdump、N ......
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 ......
利用dnw及串口终端下载安装linux到开发板时,要先设成Nor Flash 启动,步骤如下:
1) 对Nand Flash进行分区
2) 安装bootloader
3) 安装内核文件
4) 安装文件系统
下载完毕要先拔下usb接线,若不取下来有可能导致在系统复位时,电脑会死机。 ......
安装好arch linux 不论是2月的还是8月的,再更新完成以后重启,都是到acpi 启动处黑屏。
官方解释:内核拒绝启动,并显示类似 “had IRQ”探测失败,had中断丢失 的错误信息。在2.6.x内核中,某些硬盘控制器会出现类似信息,一般在启动时给内核传递"acpi = off"参数就可以解决这个问题。
nano /boot/grub/menu. ......