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

Mr. Process的一生-Linux内核的社会视角 (2)启动

其实这才应该是这一系列文章的第一节,因为这篇文章讲的是盘古开天地的事。话说Mr.
Process是一个现代人,但是,只要是人,总该有个祖先。人们总想知道自己从哪来,然后才可以估摸算一下自己将去向何方。所以咱也要了解一下
Linux的世界里人类的起源。
图1:从上电到BIOS
按下电源开关的那个真实的人就是Linux世界里的上帝,他创造了Linux世界的一切。当他按下机箱上的电源开关时,主板开始供电,CPU上的
Reset
Pin被拉高,这会引起CPU的一系列动作,这些动作是芯片设计时就决定的。CPU中的一些寄存器被置为固定的值,因为这些寄存器可能在启动的过程中要使
用,比如CS(代码段寄存器)和EIP(指针指令寄存器)。这一步完成之后,CPU就可开执行地址为0xfffffff0里的ROM中的程序。这段程序就
是BIOS(Basic Input Output System)。
BIOS完成下面的功能:
1.POST(Power-On Self Test):顾名思名,就是查查有什么设备,这些设备是不是正常。要是CPU有Advanced
Configuration and Power Interface(ACPI
)的支持,也在这个时候进行。ACPI是用来对电源进行管理的,用来节电之类的。
2.初始化设备:确保没有IRQ和IO冲突。
3.寻找OS/Bootloader。这一步后面点再细说
我们在BIOS的设置菜单里能够设置从何处启动,比如软盘,硬盘,光驱…BIOS会按我们设定的顺序搜索OS。
4.把Bootloader复制到RAM里(地址为0×00007c00),然后那个地址开始执行。
什么是Bootloader

现在,我们只要关心的是:bootloader
会找到OS
,把OS
内核COPY
到RAM
中。
图2:boot loader的加载
如上图所示,在硬盘的第一个sector,有一个分区表(记录了哪些分区上有操作系统)和一个小版的Bootloader。当这个BIOS被设置为
从这里启动时,这个小版的bootloader被复制到RAM的0×00007c00。然后它会把自己又移动到0×00096a00。在这之后,它再把另
一段Bootloader从硬盘上复制到0×00096c00,然后从那里开始执行。分作两段的原因是因为现在的bootloader太大了,在MBR上
存不完那么多。
Bootloader会把OS的内核映像复制到RAM中。
Bootloader的工作
1. 调用BIOS以显示“Loading Image”的消息。
2. 调用BIOS,把内核映像的前512字节复制到0×00090000,setup()函数在0×00090200。
3. 调用BIOS,把剩下的内核映像加载到0×00010000(小内核zImage)或0×00100000(大内核bzImage)
4. 跳到


相关文档:

Linux PCI驱动的编写

PCI是外围设备互联的简称(Peripheral Component
Interconnect)的简称,作为一种通用的总线接口标准,他在计算机系统中得到了广泛的使用。PCI的速度能够达到132M/s。在这里简单的介
绍一下 linux 下PCI驱动的实现。
在编写一个PCI驱动的时候我们先得确定系统中是否有我们的设备。我们可以通过lspci
查看PCI设备。
[roo ......

Linux下的ftp工具及中文乱码的解决

安装gftp
yum install gftp
默认状态下gftp是没有设置字符编码的,所以我们上FTP的时候,看到里面的中文文件名全部是乱码,或则不部分文件看到文件夹却没名字;
其实在gftp-2.0.17以后的版本都已经很好支持汉字了,我的设置方法是对它的配置文件修改即可!
一般的软件配置文件会放在用户目录下,例如我用r ......

Linux 的远征

用了近10年的Windows,突然有兴趣去想体验Linux,去感受shell的魅力,体验终端操作的感觉,更重要的是编译使用开源的软件。多少也算是为以后使用服务器或者小型机之类打点基础。于是正装待发开始漫长的linux远征。
战役一: RedHat
       我:老板,有Linux的碟么?
  &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号