21
Jan.2012
次序 内核 装备 系统 开端 内存 硬盘 位址 形式 代码 指令 局部 过程 地址 大年夜 功用 部分 要害 比拟 方才 时分 肇端 罕见 举动 浩繁 依据 权利 电源 参数 中央 别的 寄存器 如许 映象 终端 控制权 软盘 假定 初始化 俗称 测验 源代码 路程 网卡 函数 不当 源码 正当 落后 装置
linuxDe∴Zhi∴Dao∴Guo∴Cheng∴He∴Fa∴Dong∴Guo∴Cheng∴Jie∴Xi∴Shi∴Duo∴Zi∴Shou∴Ji我们罕见的使用Intel或者AMD的芯片的电脑当我们接通PC机的电源以后!CPU会施行第壹条指令!第壹条指令通常为使CPU能腾踊到BIOS的出口地址上!然后BIOS就开端停止开机自检!包含对内存等硬件停止检测!假设具有其它装备的也自带有BIOS!也会施行它们完成自检后的BIOS会依据设定好的发动装备和发动次序递次来发动真实的操纵系统!如Linux 对于PC机!有以下几种装备能够作为发动装备来使用 1) 硬盘 2) 软盘 3) 光盘驱动器 4) USB盘 5) 网卡的Boot ROM 不管系统挑选了哪壹种发动装备!它都将会往将该装备肇端地址的形式读进内存!假设妳的发动装备是IDE硬盘!系统就会往往读取硬盘的第壹个扇区!并将这个扇区的形式读进内存!然后运转它到这壹步的时分是指导Linux操纵系统的要害了!这壹步将测验考试往发动Linux的指导次序递次!假设找不到指导次序递次!将没法指导Linux很多人正在没法发动Linux的时分!实在大年夜多都是指导次序递次保护或者是建设不当所形成的Linux的指导次序递次有很多种!最为罕见是lilo和grub 假设指导次序递次胜利后!Linux内核就接收了系统!开端了Linux的发动过程 正在方才开机时 ! 因为 80x86 的特征 ! CS 这个寄存器中局部都放着 1 ! 而 IP 这个寄存器 中局部都放着 0 ! 换句话说 ! CS=FFFF 而 IP=0000 ! 此时 ! CPU 就依据 CS 及 IP 的值 ! 到 FFFF0H 往施行阿谁中央所放的指令 . 这时候分 ! 因为 FFFF0H 曾经到了高位址的顶端 ! 所以 ! FFFF0H 这个中央 ! 总是会放壹个 JMP 指令 ! 跳到比拟低的位址 . 接著 ! ROM BIOS 就会作壹些检查的举动 像内存 ! 键盘等...... 并正在我们俗称的 UMB 当中扫描 ! 看看可否有正当的 ROM 具有 . 假设有 ! 就到外面往施行壹些东西 ! 施行完以后再继续方才才的路程 . 到了 最后 ! 读取硬盘上的第壹个 sector . 正在这里 ! 我假定各位由硬盘发动 因此 ! 就硬盘的结构而言 ! 它的第壹个 sector 称为 MBR . 因为壹个 sector 是 512 bytes ! 而 MBR 这 512 bytes 可分 为两个部分 ! 第壹个部分为 Pre-Boot 区 ! 占了 446 bytes 。 第贰部分 是 Partition Table ! 占了 66 bytes . Pre-Boot 区的感化之壹 ! 就是 往看看阿谁 Partition 被标成 Active ! 然后往读阿谁 Partition 的 Boot 区 . -------------------------------------------------- --------------------------------------------------- - 当用户打开PC的电源!BIOS开机自检!按BIOS中设置的发动装备发动!接着发动装备上装置的指导次序递次lilo或者grub开端指导Linux!Linux起首停止内核的指导!接上往施行init次序递次!init次序递次调用了rc.sysinit和rc等次序递次!rc.sysinit和rc当完成系统初始化和运转效劳的权利后!前往initinit发动了mingetty后!打开了终端供用户登录系统!用户登录胜利落后进了Shell!如许就完成了从开机到登录的全部发动过程 下面就将逐壹引见此中几个要害的局部 第壹局部外核的指导 Red Hat9.0能够使用lilo或者grub等指导次序递次开端指导Linux系统!当指导次序递次胜利完成指导权利后!Linux从它们手中接收了CPU的控制权!然后CPU就开端施行Linux的核心映象代码!开端了Linux发动过程这里使用了几个汇编次序递次来指导Linux!这壹步泛及到Linux源代码树中的"arch/i386/boot"下的这几个文件bootsect.S!setup.S!video.S等 此中bootsect.S是天生指导扇区的汇编源码!它完成加载举动后间接跳转到setup.S的次序递次出口setup.S的主要功用就是将系统参数拷贝到特地内存中!以便以后这些参数被保护形式下的代码来读取别的!setup.S还将video.S中的代码包含进来!检测和设置浮现器和浮现形式最后!setup.S将系统转换到保护形式!并跳转到 0x100000 那么0x100000这个内存地址中寄存的是甚么代码而这些代码又是从何而来的呢 0x100000这个内存地址寄存的是解压后的内核!因为Red Hat供给的内核包含了浩繁驱动和功用而显得比拟大年夜!所以正在内核编译中使用了"makebzImage"方法!从而天生压缩过的内核!正在RedHat中内核经常被定名为vmlinuz!正在Linux的最后指导过程当中!是经过"arch/i386/boot/compressed/"中的head.S应用misc.c中定义的decompress_kernel函数!将内核vmlinuz解压到0x100000的我们罕见的使用Intel或者AMD的芯片的电脑当我们接通PC机的电源以后!CPU会施行第壹条指令!第壹条指令通常为
黑客资源网 http://www.hkzy.info
linuxDe∴Zhi∴Dao∴Guo∴Cheng∴He∴Fa∴Dong∴Guo∴Cheng∴Jie∴Xi∴Shi∴Duo∴Zi∴Shou∴Ji我们罕见的使用Intel或者AMD的芯片的电脑当我们接通PC机的电源以后!CPU会施行第壹条指令!第壹条指令通常为使CPU能腾踊到BIOS的出口地址上!然后BIOS就开端停止开机自检!包含对内存等硬件停止检测!假设具有其它装备的也自带有BIOS!也会施行它们完成自检后的BIOS会依据设定好的发动装备和发动次序递次来发动真实的操纵系统!如Linux 对于PC机!有以下几种装备能够作为发动装备来使用 1) 硬盘 2) 软盘 3) 光盘驱动器 4) USB盘 5) 网卡的Boot ROM 不管系统挑选了哪壹种发动装备!它都将会往将该装备肇端地址的形式读进内存!假设妳的发动装备是IDE硬盘!系统就会往往读取硬盘的第壹个扇区!并将这个扇区的形式读进内存!然后运转它到这壹步的时分是指导Linux操纵系统的要害了!这壹步将测验考试往发动Linux的指导次序递次!假设找不到指导次序递次!将没法指导Linux很多人正在没法发动Linux的时分!实在大年夜多都是指导次序递次保护或者是建设不当所形成的Linux的指导次序递次有很多种!最为罕见是lilo和grub 假设指导次序递次胜利后!Linux内核就接收了系统!开端了Linux的发动过程 正在方才开机时 ! 因为 80x86 的特征 ! CS 这个寄存器中局部都放着 1 ! 而 IP 这个寄存器 中局部都放着 0 ! 换句话说 ! CS=FFFF 而 IP=0000 ! 此时 ! CPU 就依据 CS 及 IP 的值 ! 到 FFFF0H 往施行阿谁中央所放的指令 . 这时候分 ! 因为 FFFF0H 曾经到了高位址的顶端 ! 所以 ! FFFF0H 这个中央 ! 总是会放壹个 JMP 指令 ! 跳到比拟低的位址 . 接著 ! ROM BIOS 就会作壹些检查的举动 像内存 ! 键盘等...... 并正在我们俗称的 UMB 当中扫描 ! 看看可否有正当的 ROM 具有 . 假设有 ! 就到外面往施行壹些东西 ! 施行完以后再继续方才才的路程 . 到了 最后 ! 读取硬盘上的第壹个 sector . 正在这里 ! 我假定各位由硬盘发动 因此 ! 就硬盘的结构而言 ! 它的第壹个 sector 称为 MBR . 因为壹个 sector 是 512 bytes ! 而 MBR 这 512 bytes 可分 为两个部分 ! 第壹个部分为 Pre-Boot 区 ! 占了 446 bytes 。 第贰部分 是 Partition Table ! 占了 66 bytes . Pre-Boot 区的感化之壹 ! 就是 往看看阿谁 Partition 被标成 Active ! 然后往读阿谁 Partition 的 Boot 区 . -------------------------------------------------- --------------------------------------------------- - 当用户打开PC的电源!BIOS开机自检!按BIOS中设置的发动装备发动!接着发动装备上装置的指导次序递次lilo或者grub开端指导Linux!Linux起首停止内核的指导!接上往施行init次序递次!init次序递次调用了rc.sysinit和rc等次序递次!rc.sysinit和rc当完成系统初始化和运转效劳的权利后!前往initinit发动了mingetty后!打开了终端供用户登录系统!用户登录胜利落后进了Shell!如许就完成了从开机到登录的全部发动过程 下面就将逐壹引见此中几个要害的局部 第壹局部外核的指导 Red Hat9.0能够使用lilo或者grub等指导次序递次开端指导Linux系统!当指导次序递次胜利完成指导权利后!Linux从它们手中接收了CPU的控制权!然后CPU就开端施行Linux的核心映象代码!开端了Linux发动过程这里使用了几个汇编次序递次来指导Linux!这壹步泛及到Linux源代码树中的"arch/i386/boot"下的这几个文件bootsect.S!setup.S!video.S等 此中bootsect.S是天生指导扇区的汇编源码!它完成加载举动后间接跳转到setup.S的次序递次出口setup.S的主要功用就是将系统参数拷贝到特地内存中!以便以后这些参数被保护形式下的代码来读取别的!setup.S还将video.S中的代码包含进来!检测和设置浮现器和浮现形式最后!setup.S将系统转换到保护形式!并跳转到 0x100000 那么0x100000这个内存地址中寄存的是甚么代码而这些代码又是从何而来的呢 0x100000这个内存地址寄存的是解压后的内核!因为Red Hat供给的内核包含了浩繁驱动和功用而显得比拟大年夜!所以正在内核编译中使用了"makebzImage"方法!从而天生压缩过的内核!正在RedHat中内核经常被定名为vmlinuz!正在Linux的最后指导过程当中!是经过"arch/i386/boot/compressed/"中的head.S应用misc.c中定义的decompress_kernel函数!将内核vmlinuz解压到0x100000的我们罕见的使用Intel或者AMD的芯片的电脑当我们接通PC机的电源以后!CPU会施行第壹条指令!第壹条指令通常为
黑客资源网 http://www.hkzy.info











目次从硬盘装置linux
硬盘盘算机使用500问
