易截截图软件、单文件、免安装、纯绿色、仅160KB

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的执行文件所需要的动态库和内核模块
                           &


相关文档:

Linux网络代码导读v0.2

1 前言
许多人在分析linux代码时对网络部分(主要是src/linux/net,src/linux/include/net及src/linux/include/linux目录下的文件)比较感兴趣,确实,尽管已经从书本上学到了大量的TCP/IP原理,不读源码的话,头脑中还是建立不起具体的印象。而分析这部分代码的一个问题便是代码众多而资料很少。这篇文章的目的就是勾勒出 ......

LINUX 静态库和动态库


       库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a
1,生成库
      第一步要把源代码编绎成目标代码。以下面的代码为例,生成上面用到的hello库:
        /* hello.c * ......

linux启动logo修改

修改目标:用自定义的ppm图片替代/drivers/video/logo/logo_linux_clut224.ppm
同时删除logo_linux_clut224.c logo_linux_clut224.o文件这样才能使编译的使用logo_linux_clut224.ppm重新编译
ppm图片的生成:
# pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm
# pnmquant 224 logo_linux_clut224.pnm &g ......

linux gcc 命令

1,-c 编译目标代码
      gcc -o hello.o -c hello.c  //-o 只是指定生成目标文件名
      或
      gcc -c hello.c
      都生成hello.o文件,不可以执行。
      gcc -o hello hello.o
      用目标文件生成hell ......

linux 设置环境变量

下面以配置java
环境变量为例介绍三种配置环境变量的方法。
 
1.修改/etc/profile文件
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户
的shell
都有权使用这些环境变量,可能
会给系统
带来安全性问题。
 
(1)用文本编辑器打开/etc/profile
 
(2)在profile文件末尾加入:
JA ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号