Linux Init Process / PC Boot Procedure

上一篇 / 下一篇  2007-12-08 01:27:55 / 个人分类:软件开发

PC Boot and Linux Init Process:51Testing软件测试网v0\jis C ``

51Testing软件测试网:Vp)hf[*K

  1. BIOS: The Basic Input/Output System is the lowest level interface between the computer and peripherals.51Testing软件测试网 \D~MWg#PE0g
    The BIOS performs integrity checks on memory and seeks instructions on the Master Boor Record (MBR) on the floppy drive or hard drive.
  2. The MBR points to the boot loader (GRUB or LILO: Linux boot loader).
  3. Boot loader (GRUB or LILO) will then ask for the OS label which will identify which kernel to run and where it is located (hard drive and partition specified). The installation process requires to creation/identification of partitions and where to install the OS. GRUB/LILO are also configured during this process. The boot loader then loads the Linux operating system.
    • See the YoLinux tutorial oncreating a boot diskfor more information on GRUB and LILO and also to learn how to put the MBR and boot loader on a floppy for system recovery.
  4. The first thing the kernel does is to executeinitprogram. Init is the root/parent of all processes executing on Linux.
  5. The first processes that init starts is a scrīpt/etc/rc.d/rc.sysinit
  6. Based on the appropriate run-level, scrīpts are executed to start various processes to run the system and make it functional.
51Testing软件测试网-u f+p'N)d)S&i

51Testing软件测试网Q*M-E8g*?\

The Linux Init Processes:
51Testing软件测试网0bv%m/{&lR8R+B

The init process is the last step in the boot procedure and identified by process id "1". Init is responsible for starting system processes as defined in the/etc/inittabfile. Init typically will start multiple instances of "getty" which waits for console logins which spawn one's user shell process. Upon shutdown, init controls the sequence and processes for shutdown. The init process is never shut down. It is a user process and not a kernel system process although it does run as root.51Testing软件测试网:rx.[Z8jVH&Tx

| X5AVk:yTz1W3J9t&Q0System Processes:

jIx;by;J;_0
Process IDDescrīption
0The Scheduler
1The init process
2kflushd
3kupdate
4kpiod
5kswapd
6mdrecoveryd
51Testing软件测试网E`sYI3rZ\

Init config file (Red Hat 7.3-9.0, Fedora Core 1-3):/etc/inittab51Testing软件测试网,S N9q M_v

5k-F9S1`,Z};F a I6d0

Z{%l6W*? u0?MP:o%e o0
# Author:       Miquel van Smoorenburg,
"i z4t ?8e E)u0# Modified for RHS Linux by Marc Ewing and Donnie Barnes51Testing软件测试网"\7Z9Q-K-k[(R6O

*c t8R1J.}P5T$H0id:3:initdefault:
qj7|d`OD051Testing软件测试网o7@#a)W\
# System initialization.51Testing软件测试网 v9^r#c"xNP9Ki
si::sysinit:/etc/rc.d/rc.sysinit51Testing软件测试网FeSG&d Ip:g
51Testing软件测试网8J|e ~z
l0:0:wait:/etc/rc.d/rc 051Testing软件测试网z;|etbP
l1:1:wait:/etc/rc.d/rc 151Testing软件测试网7O[_8f4[
l2:2:wait:/etc/rc.d/rc 2
4_l5hHnqg6h0l3:3:wait:/etc/rc.d/rc 351Testing软件测试网6y rU TQqn
l4:4:wait:/etc/rc.d/rc 451Testing软件测试网(B[H7WR d8v.c
l5:5:wait:/etc/rc.d/rc 5
j+o0T3u1r;X |.t0l6:6:wait:/etc/rc.d/rc 6
VQ|!G-st%U0
dZbkV0# Things to run in every runlevel.This line is only in Red Hat 7.X Used to flush disk buffers.51Testing软件测试网 ` ~pVj
ud::once:/sbin/update
Z3Be&e'ZzD"n0
%v b"C2y1B!xZ,@&d0# Trap CTRL-ALT-DELETE
7_/{M^,n@Fc Y0ca::ctrlaltdel:/sbin/shutdown -t3 -r now51Testing软件测试网vu|D+X Q#Jk

)_A$C"EFP0# When our UPS tells us power has failed, schedule a shutdown for 2 minutes from now.
%q%?"|'`I K0pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
h-mo&l nL;T%WnC#H0
-Z:C8r/[zQTm0# If power was restored before the shutdown kicked in, cancel it.
Z(z,jc(jI0pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Canceled"51Testing软件测试网f?JiL;u/iu
51Testing软件测试网Z^9_bUklt
# Run gettys in standard runlevels
z6?l$e:\$P01:2345:respawn:/sbin/mingetty tty151Testing软件测试网P&Ca&Mpi
2:2345:respawn:/sbin/mingetty tty2
6UK(x2I3Mv03:2345:respawn:/sbin/mingetty tty351Testing软件测试网 \%n2R#`QrS
4:2345:respawn:/sbin/mingetty tty4
[ aH1ir(BM05:2345:respawn:/sbin/mingetty tty551Testing软件测试网5}6\"g'Y&@:_,t4}I
6:2345:respawn:/sbin/mingetty tty6
h6wH8^4J0N }051Testing软件测试网I$L7f ~ q tq
# Run xdm in runlevel 551Testing软件测试网HB T/Z6V3Z
x:5:respawn:/etc/X11/prefdm -nodaemon51Testing软件测试网K7Ovr,E&x@ XE} s
51Testing软件测试网` C3WG)L f1j5W:}#t

Note that this config file directs the init process to run the shell scrīpt/etc/rc.d/rc.sysinit. This scrīpt should be used as is and NOT changed. Extendrc.localand NOT this scrīpt. This will (not in exact order):

I-`Pi+?R b#O}0
  • Run/sbin/initlog
  • Run devfs to generate/manage system devices
  • Run network scrīpts:/etc/sysconfig/network
  • Start graphical boot (If so configured):rhgb
  • Start console terminals, load keymap, system fonts and print console greeting:mingetty,setsysfonts
    Zv0q6f9]0The various virtual console sessions can be viewed with the key-stroke:ctrl-alt-F1throughF6. F7 is reserved for the GUI screen invoked in run level 5.
  • Mount/procand start device controllers.
  • Done with boot configuration for root drive. (initrd) Unmount root drive.
  • Re-mount root file system as read/write
  • Direct kernel to load kernel parameters and modules:sysctl,depmod,modprobe
  • Set up clock:/etc/sysconfig/clock
  • Perform disk operations based on fsck configuration
  • Check/mount/check/enable quotas non-root file systems:fsck,mount,quotacheck,quotaon
  • Initialize logical volume management:vgscan,/etc/lvmtab
  • Activate syslog, write to log files:dmesg
  • Configure sound:sndconfig
  • Activate PAM
  • Activate swapping:swapon

{#swI#n0Local system boot processes can be placed in file:/etc/rc.d/rc.local51Testing软件测试网j R kQ(m\i

i_$L[_b0The system will then boot to the runlevel set by the directiveinitdefault.51Testing软件测试网.z%m4iNv GkAp"G

51Testing软件测试网r ?s5]gk Z

Also see:51Testing软件测试网EV1d6kycv

cgH~(P2J z hl051Testing软件测试网"g-bWs2s


Linux init Run Levels:
51Testing软件测试网(i4Z#@7N$U\QE1r

LINUX has six states of operation of which "0" is the shutdown state and "3" and above are fully operational with all essential processes running for user interaction. Upon system boot the LINUX system/sbin/initprogram starts other processes by performing the following:

(O \K1X7vS6U8t0
  • Init will bring up the machine by starting processes as defined in the/etc/inittabfile.

    ,{rfEo"mM0

    2\ |N1^)}Cr0
  • The computer will be booted to the runlevel as defined by theinitdefaultdirective in the/etc/inittabfile.
    id:5:initdefault:
    In this example a runlevel of "5" is chosen. Runlevel "5" will boot the system into GUI mode using XDM and X-Windows. Booting to runlevel "3" (often called console mode) is often used by servers which do not need a graphical user interface. If booted to init level "3" one can promote the run level with the command[root prompt]#init 5. See the more detailed explanation of run levels below.

    qT7}f sYc?0The inittab file will allow you to capture key sequences (ctrl-alt-del), start dial in internet connections etc.51Testing软件测试网d6i r;X D0W m

    9s,I6A/np1M!{0

    Z;ILJ {j#Hnv0
  • One of these process started by init is/sbin/rc. This scrīpt runs a series of scrīpts in the directories/etc/rc.d/rc0.d/,/etc/rc.d/rc1.d/,/etc/rc.d/rc2.d/, etc51Testing软件测试网+b/a fT'hD]"@k

    *B;] |+Mq1A)]p0
  • scrīpts in these directories are executed for each boot state of operation until it becomes fully operational. scrīpts beginning with S denote startup scrīpts while scrīpts beginning with K denote shutdown (kill) scrīpts. Numbers follow these letters to denote the order of execution. (lowest to highest)
51Testing软件测试网7oGw;Lc2@`

K{9@1} ^)q%h3K6Zx R'M!u0
51Testing软件测试网9{d%X7Q&_ |#KqE&H

Runlevel "3" will boot to text or console mode and "5" will boot to the graphical login mode ( "4" for slackware)

-PC]"~-u g051Testing软件测试网ba[ E;D`%GN| |

51Testing软件测试网(XAsq$\#k*W:H;bt:y#Y?

Runlevelscrīpts Directory
+O&{+I6`A `Tz0(Red Hat/Fedora Core)
State
0/etc/rc.d/rc0.d/shutdown/halt system
1/etc/rc.d/rc1.d/Single user mode
2/etc/rc.d/rc2.d/Multiuser with no network services exported
3/etc/rc.d/rc3.d/Default text/console only start. Full multiuser
4/etc/rc.d/rc4.d/Reserved for local use. Also X-windows (Slackware/BSD)
5/etc/rc.d/rc5.d/XDM X-windows GUI mode (Redhat/System V)
6/etc/rc.d/rc6.d/Reboot
s or SSingle user/Maintenance mode (Slackware)
MMultiuser mode (Slackware)
51Testing软件测试网Ax+N OLy)u6\ U}

One may switch init levels by issuing the init command with the appropriate runlevel. Use the command "init#" where # is one of s,S,0,1,3,5,6. The commandtelinitdoes the same.51Testing软件测试网B{4S%G9N_u

3GM4_#h)fT#t0The scrīpts for a given run level are run during boot and shutdown. The scrīpts are found in the directory/etc/rc.d/rc#.d/where the symbol#represents the run level. i.e. the run level "3" will run all the scrīpts in the directory/etc/rc.d/rc3.d/which start with the letter "S" during system boot. This starts the background processes required by the system. During shutdown all scrīpts in the directory which begin with the letter "K" will be executed. This system provides an orderly way to bring the system to different states for production and maintenance modes.51Testing软件测试网'?Y~ s(Xtc0g2O0_

Y2QGD]A"NZ#dn0If you installed all demons (background processes), Linux will run them all. To avoid slowing down your machine, remove unneeded services from the start-up procedure. You can start/stop individual demons by changing to the directory:

+X&KcE,}Q0
  • /etc/rc.d/init.d/(Red Hat/Fedora )
  • /etc/init.d/(S.u.s.e.)
  • /etc/init.d/(Debian)
and issuing the command and either the start, stop, status, restart or reload option i.e. to stop the web server:
  • cd /etc/rc.d/init.d/
    ;Z!qP2_1A.{^-k0(or/etc/init.d/for S.u.s.e. and Debian)
  • httpd stop

%H L!s/ZxbA0Use the command ps -aux to view all process on your machine.51Testing软件测试网 QGT}G:u8uTMM

Q%X7@jc?Pi0TIP:List state and run level of all services which can be started by init:chkconfig --list
?ACn4Lq2El-l+c8Dv0or
IpR\^a0service --status-all | grep running(Red Hat/Fedora Core based systems)51Testing软件测试网EP-y/XC[1l4x pS

j,?sIYc:x e0GUI tool:/usr/X11R6/bin/tksysv51Testing软件测试网 @ s P"]Zu:EgDy8Q|B

51Testing软件测试网 l9pkX9n

@ Y9]zu\0
Run Level Commands:
51Testing软件测试网f6o O7t9D*^e*d

h+M{0p2GOQ*^051Testing软件测试网 dn0S:Gy#fMjc(B

x&}.dj+E!q2V2Ku0
Init scrīpt Activation:
51Testing软件测试网'b pe"] i)F(N(k

Adding a scrīpt to the/etc/rc.d/rc#.d/directory with either an S or K prefix, adds the scrīpt to the boot or shutdown process. The scrīpts are run in numerical order. S20abc is run before S30xyz. The extensibility to the boot and shutdown procedures of the operating system is one of the strengths of UNIX. The orderly sequential initiation of processes can be coordinated for dependent processes. The orderly shutdown of processes is often required of complex programs such as databases. This is how it is done. Individual processes may be monitored, shutdown and started at any time using these scrīpts. i.e./etc/rc.d/rc2.d/httpd start. The modifiersstart, stoporstatusmay be used.51Testing软件测试网1ha%a$qwj3Mu

51Testing软件测试网t&F`;T!E

The start/stop/status scrīpts actually reside in the directory:51Testing软件测试网c%h}/Fn6j ]T

  • /etc/rc.d/init.d/(Red Hat/Fedora)
  • /etc/init.d/(S.u.s.e. and Debian)
and are linked to the appropriate directories. These links may be created or destroyed using the chkconfig command. i.e.chkconfig --del httpdwill remove the web server from the startup and shutdown process. Inverselychkconfig --add httpdwill add it to the startup/shutdown process by generating links from the scrīpt in/etc/rc.d/init.d/to the appropriate/etc/rc.d/rc#.d/directory. For more information see the LINUX manual page oninit.

oRhwyp:o8V Pw0Basic services include:51Testing软件测试网8d-g+E5Fa.A5B

%dRF{0M2c1Y+D5O0

1s&E z1W*N3zBL-E0
System ServiceDescrīption
anacronRun jobs which were scheduled for execution while computer was turned off. Catch up with system duties.
arpwatchKeeps track of IP address to MAC address pairings
atdRun scheduled batch jobs.
autofsautomounts file systems on demand.
crondJob sheduler for periodic tasks.
gpmAllows console terminal cut and paste. (Non X-window consoles)
httpsApache web server.
iptablesFirewall rules interface to kernel.
keytableLoads selected keyboard map as set in/etc/sysconfig/keyboard
kudzuNew hardware probe/detection during system boot.
lpdNetwork printer services.
microcode_ctlUploads microcode to kernel and ultimately to the Intle Pentium processor. (Hardware specific.)
mysqldDatabase services
namedDNS name services (Bind)
networkActive network services during system boot.
nfsNetwork file system. Unix file sharing services.
nscdPassword and group lookup services for use with network authentication (NIS, LDAP,...).
ntpdNetwork Time Protocol time synchronization services.
randomRandom number generation tool used for encryption.
rawdevicesEnables raw IO. Useful for Oracle and software which utilizes this for high speed disk access.
smbSAMBA: MS/Windows PC file sharing services
syslogSystem log file facility.
ypbindNIS file sharing/authentication infrastructure service.
yppasswdNIS file sharing/authentication infrastructure service.
ypservNIS file sharing/authentication infrastructure service.
xfsX-Windows font server.

m1X2k;u-YD\"q0Recommended basic services:anacron, ard, autofs, crond, gpm, iptables, keytable, kudzu, microcode_ctl(Intel32 hardware only),network, random. syslog51Testing软件测试网@x mtN*O0y
Graphics Workstation - add:xfs
,E4_SQfC/V mWw7m0File Server for PC clients - add:smb51Testing软件测试网:my%|W _;Z
Print Server - add:lpdorcups
o-o#n{'a0File server Linux/Unix clients - add:nfs, netfs, nfslock, portmap, ypbind, yppasswd, ypserv51Testing软件测试网a#?;J"o&~,l
Web Server - add:httpd, tux, xinetdi, sshd51Testing软件测试网&}Xu-h.I U7@uz

51Testing软件测试网PpI~#d

51Testing软件测试网g(c XF$Q2A


o1Z!X3Vm{GC051Testing软件测试网#P8@Z7A+j|

GUI configuration tools:

GUI tools can help you configure the appropriate services to start and provide a descrīption of each service available:
  • Red Hat 8.0/9.0:/usr/bin/redhat-config-services
  • Fedora/RHEL:/usr/bin/system-config-services
    'y YqL^`0(Also/usr/sbin/serviceconf)
  • Ubuntu 6 / Debian:
    • /usr/bin/services-admin
    • bum(Boot Up Manager)
Red Hat / Fedora Core GUI: system-config-services (and redhat-config-services)

So`2vxz#A0Red Hat/Fedora Core text console services selection tool:/usr/sbin/ntsysv51Testing软件测试网2p ?|j}"i$m8mG6a(v

51Testing软件测试网ax|^*aN_

6w_I u6JY ]Yg0
Init scrīpt:
51Testing软件测试网nEg\8FE E

A single copy of the scrīpt is located in the directory:/etc/rc.d/init.d/scrīpt-name(Red Hat/Fedora) or/etc/init.d/scrīpt-name(Debian).51Testing软件测试网%E@'sv @v J
Use the commandchkconfigto generate soft links to the appropriate directories for the various run levels.51Testing软件测试网!{b$W"gyc'Q

51Testing软件测试网Kt L g]+u

51Testing软件测试网4}*^+|.i A5p

#!/bin/sh
M%|d"l/Agq+F+|0#51Testing软件测试网@ [Em/Pfh"J
# Startup scrīpt forprogram51Testing软件测试网@(\ {NmuB
#
k+I+{8`B}0# chkconfig: 345 85 15- This statement tells the chkconfig command how to add or delete this process to the boot process51Testing软件测试网(Iwwm*FKoU|o3jx
# descrīption:Descrīption of program51Testing软件测试网i,aD(R9G
# processname:process-name51Testing软件测试网LH/Y$e6?4}
# pidfile: /var/run/process-name.pid51Testing软件测试网pXq`hA(Y

"R$|M*|2~:t*{0# Source function library.This creates the operating environment for the process to be started51Testing软件测试网'Ha1H exw3l
. /etc/rc.d/init.d/functions
[7@)vY#?Z)U051Testing软件测试网 a.eCWHX!c0Yf~
case "$1" in51Testing软件测试网7hE+uhb[
start)
8jJC!NN%a5Z0echo -n "Startingprocess-name: "51Testing软件测试网*H+S+iQL9J;ep
daemonprocess-name- Starts only one process of a given name.
0`~1w8vA wO0echo
.O6L ~$C(y,y1W0touch /var/lock/subsys/process-name
l|5SV'aI9r$}0;;51Testing软件测试网)zyLC+y
stop)51Testing软件测试网 O |(m qx~*S
echo -n "Shutting downprocess-name: "51Testing软件测试网N$f@v%]@r4?#t
killprocprocess-name
#FE eB(dmF0echo51Testing软件测试网I(TR8? R+^Jr6c#oZ
rm -f /var/lock/subsys/process-name51Testing软件测试网 v|sa'S)I R4{
rm -f /var/run/process-name.pid- Only if process generates this file51Testing软件测试网t y&l9VG9b:ge
;;51Testing软件测试网(E:CS0n0mH3Na
status)51Testing软件测试网 h:YK Y{ ~-X
statusprocess-name
b"wIA aex0;;51Testing软件测试网b ?#k(lt"Z7c#d&t
restart)51Testing软件测试网3M8} m6G#B6T'Tf [
$0 stop
g;l`$Q*F6k+^0$0 start
M`e4B9CE]0;;51Testing软件测试网i5A%N3_)ynZ
reload)51Testing软件测试网ROS#h~+u'_4b&}
echo -n "Reloadingprocess-name: "
x&Zn0S&Lk0killprocprocess-name-HUP51Testing软件测试网c q kBz
echo
.C*|j5q4N Arc0;;
#M)|6kgp\0*)
R;Y G$G1|U6CL k0echo "Usage: $0 {start|stop|restart|reload|status}"
JRso5v0exit 151Testing软件测试网3jmZ:{bA:B'B
esac
'jkM(r\&VL(A051Testing软件测试网yNt*{&|M
exit 0
51Testing软件测试网_fYebo

The bash scrīpt functionsdaemon, killproc and statuscan all be found in the scrīpt/etc/rc.d/init.d/functions. (Red Hat/Fedora distributions)

Z+P/a a Lzr7C0

yJ&^ PI C6~.C051Testing软件测试网},_U1A pB Dj6u$jY


a#c*yh-} N4sg0The scrīpt must be executable to work. (chmod +xscrīpt-name).

@:_u {!Z1DI!_051Testing软件测试网*t+` E w$Uc3cq

The scrīpt may be used to start and stop processes. i.e.:51Testing软件测试网6t$x_)w VU^4[ZV

  • /etc/rc.d/init.d/httpd restart51Testing软件测试网{:jF;tNI N.f
    (S.u.s.e.:/etc/init.d/apache2 restart)
  • /etc/rc.d/init.d/httpd stop
  • /etc/rc.d/init.d/httpd start
ORuse the Red Hat/Fedora core basedservicecommand:
  • service httpd restart
  • service httpd stop
  • service httpd start
51Testing软件测试网P r1CT p DU0l-K

Note that two lines in the scrīpt enable thechkconfigcommand to control the scrīpt for the boot and shutdown process.51Testing软件测试网v9A2xOP,EWr

# chkconfig: 345 85 15
1p0WN E9ZfB0# descrīption:Descrīption of program
51Testing软件测试网%J~ r9?*[

When added to the boot process using the "chkconfig --addscrīpt-name" command the start order/priority will be set to 80 while the stop/shutdown order will be set to 15. The process will be added to runlevels 3, 4 and 5. This is enabled by generating links from the location of the scrīpt (/etc/rc.d/init.d/) to the directory for the appropriate run level:/etc/rc.d/rc#.d/. The file name in the run level directory will reflect if it is used for boot (starts with an "S") or shutdown (starts with a "K")51Testing软件测试网D&DD.qrQN"M

y.Ox}tE!C/XR0

D@ Y(fB;s t0
chkconfig:

'd m9|/tO0G0The (Red Hat/Fedora/IRIX)chkconfigcommand generates and breaks links between the directory/etc/rc.d/init.d/and the appropriate run level directory:/etc/rc.d/rc[0-6].d/to control boot process initiation and process shutdown.51Testing软件测试网9gH&Ixq'|

,KM0|afP051Testing软件测试网;}+rb[9F'k6e

chkconfig [--level]on | off | reset >51Testing软件测试网#t-wRQ~X
chkconfig --list51Testing软件测试网 R Q#s o w$NI {
chkconfig --list
)E#l!^o;z#AF0chkconfig --add51Testing软件测试网Sl Pp3N*A
51Testing软件测试网*xY/K:P3o4Hkg
chkconfig --del
4N]+f*g c7Vyq0chkconfig --level 0123456off
U.gxM5}`0
51Testing软件测试网a e jW9K-h6W

Examples:51Testing软件测试网}7Sq*sF%Jhd

  • chkconfig --level 345 httpd on- forces apache to be invoked for run levels 3, 4 and 5.
  • chkconfig --add httpd- Start the web server daemon upon system boot.
  • chkconfig --del sendmail- Do not start the sendmail daemon upon system boot.
  • chkconfig --list- List all services and init levels.
  • chkconfig --list | grep on- List all services to be started upon system boot.

z ~4\s FMuh0Using chkconfig to administer xinetd processes.

e$Y,S7@K:YM0
  • chkconfig wu-ftpd on- Turn on FTP service managed by xinetd.
  • chkconfig ipop3 off- Turn off POP3 service managed by xinetd.
This will reconfigure the appropriate xinetd file (in directory/etc/xinetd.d/) and restart the xinetdprocess.

L-~)oM)gv6}w~0Also see:chkconfig - Linux man page.51Testing软件测试网wO ~5AYAZ

51Testing软件测试网p_.yqe8P

k#x F#JI1k3R)}0
Related Commands:

G ]A;Q"Ge2s;I&J v b`051Testing软件测试网k+Pk!bF^]5\

serviceDisplay status of system services.51Testing软件测试网 B&V8yYc"\9G
Example:service --status-all
?l7_ IVb"D0
Help:service --help
51Testing软件测试网&RmU+Jt w G X

Also see:service - Linux man page.51Testing软件测试网(eR-^C\Do G

51Testing软件测试网$fBI gM.qH_

X-C8v{$h"^0
Links and resources:
51Testing软件测试网-ca K}a7h+J(SYQ

51Testing软件测试网3nm P6v Sp-`)^0X

=====================================51Testing软件测试网4iV6p sxJ f

4tvO:\H~,sX(`0
参考来源:
fU:y.X L0www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html
-u.@|*Pm&FYy3f0

Chapter 18. System Initialization

www.ahinc.com/linux101/boot.htm

TAG: PC 启动过程 软件开发

 

评分:0

我来说两句

Open Toolbar