linux启动不了?等了5分多种还是在那里

linux启动不了?等了5分多种还是在那里,第1张

一、启动内核

首先介绍启动内核部分。电脑启动时,BIOS装载MBR,然后从当前活动分区启动,LILO获得引

导过程的控制权后,会显示LILO提示符。此时如果用户不进行任何 *** 作,LILO将在等待制定

时间后自动引导默认的 *** 作系统,而如果在此期间按下TAB键,则可以看到一个可引导的 *** 作

系统列表,选择相应的 *** 作系统名称就能进入相应的 *** 作系统。

当用户选择启动LINUX *** 作系统时,LILO就会根据事先设置好的信息从ROOT文件系统所在的分

区读取LINUX映象,然后装入内核映象并将控制权交给LINUX内核。LINUX内核获得控制权后,

以如下步骤继续引导系统:

1. LINUX内核一般是压缩保存的,因此,它首先要进行自身的解压缩。内核映象前面的一些

代码完成解压缩。

2. 如果系统中安装有可支持特殊文本模式的、且LINUX可识别的SVGA卡,LINUX会提示用户

选择适当的文本显示模式。但如果在内核的编译过程中预先设置了文本模式,则不会提示选

择显示模式。该显示模式可通过LILO或RDEV工具程序设置。

3. 内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序

进行配置。这时,显示器上出现内核运行输出的一些硬件信息。

4. 接下来,内核装载ROOT文件系统。ROOT文件系统的位置可在编译内核时指定,也可通过

LILO或RDEV指定。文件系统的类型可自动检测。如果由于某些原因装载失败,则内核启动

失败,最终会终止系统。

二、执行init程序

其次介绍init程序,利用init程序可以方便地定制启动其间装入哪些程序。init的任务是

启动新进程和退出时重新启动其它进程。例如,在大多数Linux系统中,启动时最初装入

六个虚拟的控制台进程,退出控制台窗口时,进程死亡,然后init启动新的虚拟登录控制台,

因而总是提供六个虚拟登陆控控制台进程。

控制init程序 *** 作的规则存放在文件/etc/inittab中。Red Hat Linux缺省的inittab文

件如下:

#

#inittab This file describes how the INIT process should set up the system in a certain

#run-level.

#

#

#Default runlevel.The runlevels used by RHS are:

#0-halt(Do NOT set initdefault to this)

#1-Single user mode

#2-Multiuser,without NFS(the same as 3,if you do not have networking)

#3-Full multiuser mode

#4-unused

#5-X11

#6-reboot(Do NOT set initdefault to this)

#

id:3:initdefault:

#system initialization

si::sysinit:/etc/rc.d/rc.sysinit

10:0:wait:/etc/rc.d/rc 0

11:1:wait:/etc/rc.d/rc 1

12:2:wait:/etc/rc.d/rc 2

13:3:wait:/etc/rc.d/rc 3

14:4:wait:/etc/rc.d/rc 4

15:5:wait:/etc/rc.d/rc 5

16:6:wait:/etc/rc.d/rc 6

#Things to run in every runlevel

ud:once:/sbin/update

#Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

#When our UPS tells us power has failed,assume we have a few minutes of

power left.Schedule a

#shutdown for 2 minutes from now.

#This does,of course,assume you have powered installed and your UPS

connected and working

#correctly.

pf::powerfail:/sbin/shutdown -f -h +2 "Power RestoredShutdown Cancelled"

#Run gettys in standard runlevels

1:12345:respawn:/sbin/minggetty tty1

2:2345:respawn:/sbin/minggetty tty2

3:2345:respawn:/sbin/minggetty tty3

4:2345:respawn:/sbin/minggetty tty4

5:2345:respawn:/sbin/minggetty tty5

6:2345:respawn:/sbin/minggetty tty6

#Run xdm in runlevel 5

x:5:respawn:/usr/bin/X11/xdm -nodaemon

Linux有个运行级系统,运行级是表示系统当前状态和init应运行哪个进程并保持在这种

系统状态中运行的数字。在inittab文件中,第一个项目指定启动时装入的缺省运行级。

上例中是个多用户控制台方式,运行级为3。然后,inittab文件中每个项目指定第二个

字段的项目用哪种运行级(每个字段用冒号分开)。因此,对运行级3,下列行是相关的:

13:3:wait:/etc/rc.d/rc 3

1:12345:respawn:/sbin/minggetty tty1

2:2345:respawn:/sbin/minggetty tty2

3:2345:respawn:/sbin/minggetty tty3

4:2345:respawn:/sbin/minggetty tty4

5:2345:respawn:/sbin/minggetty tty5

6:2345:respawn:/sbin/minggetty tty6

最后六行建立Linux提供的六个虚拟控制台。第一行运行启动脚本/etc/rc.d/ rc 3;

这将运行目录/etc/

rc.d/rc3.d中包含的所有脚本,这些脚本表示系统初始化时要启动的程序。一般来说,

这些脚本不需要编辑或改变,是系统缺省的。

linux内核,顾名思意就是linux下的内核文件,你那个“/”是linux的根目录,在windows下当然找不到了,而且是非法的。

tar和cat都是linux的命令,是linux Shell命令,其中tar是压缩程序,在/bin里面(忘了,大概吧),用于解包用得。

你的文件kernel-x.y.z.tar.bz2就是用TAR解包的。

linux光有内核是什么都干不了的,他是硬件和应用程序的接口,没有任何应用软件功能(就是不包含任何命令,linux里面没有像cmd或者command.com那样的所谓的“内部命令”。比如拷贝命令,就是cp这个程序实现的。

如果你研究linux内核,可以去网上找linux的内核源码,或者干脆安装一个linux系统


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8379000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存