linux开机过程深入理解
Linux开机过程理解
一. Power on
二. BIOS加电自检:
1. 检测所有周边硬件
2. 寻找启动的磁盘(cd-rom,floppy,IDE HDD,usb device等)
三. 启动加载器
1. 首先寻找启动扇区里的主要启动记录(MBR),执行里面446字节的操作系统
2. 主要启动扇区里面没有操作系统,则寻找磁盘中标记为启动分区的第一个扇区中的操作系统。
3. 补充:由于不管是启动记录扇区还是启动分区的第一个扇区,存储操作系统的空间只有446字节,目前任何操作系统都不能放在这么小的空间内,如果不能在上述扇区中存储操作系统内核,将导致BIOS无法继续启动,为了解决这个问题,设计出制作一个小程序将它存储到启动扇区的446字节内,当BIOS试图启动启动扇区里面的操作系统的时候,执行这个小程序来加载存储到其他位置的操作系统,它就是boot loader
四. 启动内核(BIOS已经顺利启动加载器。启动存储在其他位置的操作系统)
1. 若启动的是rhel,启动加载器的同时会传递内核启动参数给内核(run level,磁盘顺序,静态驱动的参数等)然后Linux内核会向BIOS查询所有硬件并接受管理这些硬件
2. 驱动硬件设备。由于还没有挂载任何文件系统,无法使用内核模块上的动态驱动程序,只能使用静态驱动程序来驱动必要的硬件
3. 以只读方式来挂载根文件系统。内核来挂载根文件系统,根文件系统是存储根目录数据的文件系统,它包含以下目录:
/etc 存储重要的配置文件
/bin 存储常用开机执行文件
/sbin 系统执行文件
/lib 存储/bin /sbin的执行文件所需要的动态库和内核模块
&
相关文档:
1 前言
许多人在分析linux代码时对网络部分(主要是src/linux/net,src/linux/include/net及src/linux/include/linux目录下的文件)比较感兴趣,确实,尽管已经从书本上学到了大量的TCP/IP原理,不读源码的话,头脑中还是建立不起具体的印象。而分析这部分代码的一个问题便是代码众多而资料很少。这篇文章的目的就是勾勒出 ......
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a
1,生成库
第一步要把源代码编绎成目标代码。以下面的代码为例,生成上面用到的hello库:
/* hello.c * ......
LINUX 命令大全
Linux虽然是免费的,但它的确是一个非常优秀的操作系统,与MS-WINDOWS相比具有可
靠、 稳定、速度快等优点,且拥有丰富的根据UNIX版本改进的强大功能。下面,作为一
个典型的DOS 和WINDOWS用户,让我们一起来学习Linux的一些主要命令,希望大家能尽
快进入到Linux的世界里。
一、启动
......
1、 freemind 思考软件
sudo pacman -S freemind
2、 gnomesword 圣经学习软件# clucene-0.9.21b-1 sword-1.6.1-1 xiphos-3.1.2-1
sudo pacman -S gnomesword
3、exaile音乐播放器
sudo pacman -S exaile
4、安装 mp3blaster
sudo pacman -S mp3blaster
5 、安装msn软件
sud ......
1 引言
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。
......