当前位置:  技术问答>linux和unix

linux 启动的具体步骤是什么?

    来源: 互联网  发布时间:2015-04-07

    本文导语:  我指的是最具体的步骤 BIOS 以后 然后 lilo 把内核调入内存 我想知道 后面的启动过程 是否是由内核固定了启动位置 (比如先 init 然后 rc.d ) 我们只是在不同的位置添置自己的script 而已? | ...

我指的是最具体的步骤

BIOS 以后
然后 lilo 把内核调入内存

我想知道 后面的启动过程 是否是由内核固定了启动位置

(比如先 init 然后 rc.d ) 我们只是在不同的位置添置自己的script 而已?

|
a.首先,x86 CPU加电,初始化自己进入16位实模式,然后跳转到0xFFFF0,BIOS地址,调用显卡Bios初始化显卡,进行自检,然后装载可引导设备的第一个扇区到0x7c00,然后跳转到那儿。这部分代码其实是archi386bootbootsect.S。新的内核已经不支持从bootsect启动,bootsect.S其实只是提示用户按任何键重启。因为现在的可引导设备的第一个扇区是lilo或grub,然后由他们装载lilo或grub引导代码进入0x90000,然后装载内核setup代码进入0x90200,然后装载内核剩余部分进入0x10000。

b.内核setup代码就是archi386bootsetup.S,它读取硬盘参数, 检查签名0xAA55.0x5A5A, 检查是否大内核(检查标志),使用不同的方法获取内存大小,初始化设置键盘硬件。检查显卡及其参数,然后调用。video.S中的video函数。

c.video 检查内核参数,vga= 让用户选择视频模式,然后返回Setup.S。

d.然后将内核从0x10000移动到0x1000这部分代码的开始就是archi386
bootcompressedhead.S。然后进入32位保护模式。然后跳转到head.S 中startup_32=0x1000。注意:以上全是汇编代码。

e.然后head.S调用archi386bootcompressedmisc.c中的decompress_kernel函数(C语言代码),然后调用libinflate.c中的gunzip函数,将内核解压缩到0x100000(32位指针)。然后显示”Uncompressing Linux...”。最后返回head.S

f.然后进入archi386kernelhead.S。(汇编语言)在这里初始化内存页表(PT),初始化(IDT)中断描述表。检查CPU类型,配置对称多处理器。接着调用start_kernel在initmain.c中这个函数永不返回。致此,开始启动内核,之后的代码都变成了C语言代码。start_kernel中才是真正的linux内核初始化,启动过程。

g.然后内核调用init函数,这个函数查找并调用
/sbin/init
/etc/init
/bin/init
直到一个成功,init命令会根据/etc/inittab中设定的运行等级决定调用的rc(/etc/inittab中列出)。
如果都不成功启动
/bin/sh


    
 
 

您可能感兴趣的文章:

  • linux下不使用sudo命令执行docker的操作步骤
  • 急求Linux的具体安装步骤 拜托各位大侠了
  • linux/centos下安装nginx(rpm安装和源码安装)详细步骤
  • 哪里有vsftp下载地址及在LINUX9.0下的安装步骤?在线等
  • 那位朋友安装过red linux9.0 来说说详细的安装步骤把。
  • 请问:谁在linux下安装过oracle?详细安装步骤共享一下吧!我有急用。谢谢了!
  • Linux下载的软件怎么安装,需要详细步骤!!
  • 做linux系统工程师必须的学习步骤是什么?
  • 如果想装XP和LINUX的话,请问安装步骤怎样?
  • 求在linux下学习Apache服务器的具体步骤
  • 请教各位大神 linux安装的步骤!
  • 求linux安装bes6.7的详细步骤
  • 制作小型linux系统步骤
  • 求救,在虚拟机下装LINUX步骤
  • 有谁知道LINUX下安装MODEM的步骤?
  • 请求在红帽子企业版5版本上再安装红帽子linux虚拟机的操作步骤!!!急
  • 如何配置ftp server在RedHat Linux. 需要比较详细的步骤。100分
  • 紧急!寻找LINUX下安装第二块网卡详细步骤!
  • 有高手安装过 Minix 操作系统吗,具体步骤是什么? Linux最小版本哪里有,安装过吗? 一个问题100分
  • 请问高手LINUX系统加硬盘分区格式化的步骤,还有要注意点什么?
  • 紧急简单求助: linux下 gcc编译 c程序的命令和步骤! 谢谢!
  • Mysql服务器登陆,启动,停止等基本操作命令介绍(Linux/Centos环境)
  • 我的LINUX为什么不能选择启动,只能用启动盘启动
  • 98/2000/redhat7.2 装好后98/2000 ghost linux没做启动盘,怎么启动linux?
  • 做redhat linux7.3启动软盘:我的LINUX系统是在hda7上的,但我在这做的启动软盘是要用来启动接在hdc1上的另一个LINUX系统的,请问该怎么办啊
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • 在win2K上,再装linux,原先的Fat32格式的启动区,是不是不可以启动linux,?
  • 在装了xp后再装linux,现在grub默认启动是linux,如何修改,让默认启动为xp?
  • 再线送分:我的硬盘装了REDHAT LINUX,但不启动,软盘启动盘也没了,请问怎样能再次启动?
  • 在我启动linux设成Gnome图片模式启动,如果想启动字符模式,应怎样把级别5改为3吗,教我改法
  • 同机装有Windows和Linux两套系统(先装Win后装Linux),如何使计算机使用Windows的启动模块而不是Linux的启动模块?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • 如何让win2000和linux共存。我装好WIN2000,再装LINUX7.0,但LILO只能找到LINUX,不能引导WIN2000
  • linux c下利用srand和rand函数生成随机字符串
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • Linux c++虚函数(virtual function)简单用法示例代码
  • 我们网站的服务器从windows2000迁往linux,ASP程序继续使用,可是我连LINUX的皮毛都不了解,大家告诉我LINUX下怎么建网站??
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • 中文Linux与西文Linus分别哪一个版是权威?I认为是:中科软的白旗Linux与西文的绿帽子Linux!大家的看法呢?
  • Linux下chmod命令详细介绍及用法举例
  • 我重装了winme,却进不了Linux了,而我现在又没有Linux光盘,也没有Linux启动盘,还有没有办法?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3