Linux Init Process / PC Boot Procedure

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

PC Boot and Linux Init Process:51Testing软件测试网Q;YD8}Dr

L:J&B} K sm4h(GW5B0
  1. BIOS: The Basic Input/Output System is the lowest level interface between the computer and peripherals.
    $I @ C`a$OC!@{*Wz0The 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软件测试网`Y2_ Uzl#Y

z&Ax8O^CI jB&L2}/|&y0
The Linux Init Processes:

g8e-k'\f3mg0The 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.

&T:U D ^[.w1W051Testing软件测试网t,N;_,snvX3R,{

System Processes:

QK1D5V;@~ X0
Process IDDescrīption
0The Scheduler
1The init process
2kflushd
3kupdate
4kpiod
5kswapd
6mdrecoveryd
51Testing软件测试网s-Z3zP;]+QH'w

Init config file (Red Hat 7.3-9.0, Fedora Core 1-3):/etc/inittab

(U/Z+qC({j051Testing软件测试网Q,^ Ci*{

51Testing软件测试网A(di qA

# Author:       Miquel van Smoorenburg,51Testing软件测试网hK~)ipakl2z
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
l%] jikfQ;E*q051Testing软件测试网 w,Qw.M\^RL$j
id:3:initdefault:
.e6Ms#K%eK051Testing软件测试网 X E"O5D9CN
# System initialization.
@8C8o/SoM\M0si::sysinit:/etc/rc.d/rc.sysinit51Testing软件测试网rm4AY6k$cA W+s k
51Testing软件测试网$KH0H7an0o3d%Kz
l0:0:wait:/etc/rc.d/rc 051Testing软件测试网)Tva0@Rv!]?
l1:1:wait:/etc/rc.d/rc 1
5l'S$i;~&Yq2f$X0l2:2:wait:/etc/rc.d/rc 2
,k5f]e(Rk,wb0l3:3:wait:/etc/rc.d/rc 3
u \YvK9_ b0l4:4:wait:/etc/rc.d/rc 451Testing软件测试网M'w#A9}4B*M
l5:5:wait:/etc/rc.d/rc 5
y5qhV6Nc x0l6:6:wait:/etc/rc.d/rc 6
8h~R9Lv7p7J Ed#O1nT0
X IN&vV0iGn_\3^0# Things to run in every runlevel.This line is only in Red Hat 7.X Used to flush disk buffers.
/v E#{ S5]l"]|0ud::once:/sbin/update51Testing软件测试网 m_oP x \(i
51Testing软件测试网5l P&C7s re
# Trap CTRL-ALT-DELETE51Testing软件测试网p!sA8W(Vn'VW:o7n]
ca::ctrlaltdel:/sbin/shutdown -t3 -r now51Testing软件测试网][T:B$wI
51Testing软件测试网u6j/A$ycYd
# When our UPS tells us power has failed, schedule a shutdown for 2 minutes from now.
7{kikQ%su C_0pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
3[+t4PL^A8` q0
o!UK#o3HH&WM^0# If power was restored before the shutdown kicked in, cancel it.
"ul@ Wy#l1]kg0pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Canceled"51Testing软件测试网^K k,K8^I`]

6m` Yp dmcZ.?0# Run gettys in standard runlevels51Testing软件测试网(O)I+\^2a%I+`6El
1:2345:respawn:/sbin/mingetty tty1
!y X7X|"Qt1}[02:2345:respawn:/sbin/mingetty tty2
2Xq9rd#?&i7d6k&T*}03:2345:respawn:/sbin/mingetty tty3
;O|6wD \6J5~ ~/Qi04:2345:respawn:/sbin/mingetty tty4
]Myke|Dv!B05:2345:respawn:/sbin/mingetty tty5
u\5V `d"]06:2345:respawn:/sbin/mingetty tty6
%e9s-z|[]C.A0
.O(yI0mNEFDA0# Run xdm in runlevel 5
!|K/V7`c7|5ZT"A0x:5:respawn:/etc/X11/prefdm -nodaemon
4]@$wJH#G.i0

b#k/M;BIL;K0Note 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):51Testing软件测试网H:X4BO] g(Vzj&H

  • 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
    wreJ2} n-d0The 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
51Testing软件测试网(|/`5u cG6x$p

Local system boot processes can be placed in file:/etc/rc.d/rc.local51Testing软件测试网Ytol!Fn/KK

51Testing软件测试网4M P?+Uy V#dqk%e%f

The system will then boot to the runlevel set by the directiveinitdefault.51Testing软件测试网#g:t+fe"Mmz

51Testing软件测试网fF0c a.iro5x E

Also see:51Testing软件测试网3p|i+u9RD FG

51Testing软件测试网n hSh"{U5yD

!y;w2`(}&F6Z5t0
Linux init Run Levels:

?W2LGo c3E0LINUX 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:51Testing软件测试网L&c P8\.H&fk$o%e

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

    @m-K?,i4AJ0

    'e"?jl8V5v0
  • 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.

    ?:n'yrU0The inittab file will allow you to capture key sequences (ctrl-alt-del), start dial in internet connections etc.51Testing软件测试网X[9L:O'e)`m,O%z

    'ey0bT&ge~X:Q051Testing软件测试网K*J i3|)`

  • 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/, etc

    h,])p3uz9L051Testing软件测试网!s-u }.[l+A1Mhp

  • 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软件测试网+Wd6yT$?#|B!iT0k

0qf$w\#}N;me A Hy0

cT o_a"KXF3k0Runlevel "3" will boot to text or console mode and "5" will boot to the graphical login mode ( "4" for slackware)51Testing软件测试网:v6Q&OqGt"j%\

51Testing软件测试网LCNy/\$bi

qr["G[5y V0
Runlevelscrīpts Directory51Testing软件测试网Os!c&\]2L9{j a:T
(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)

`'M+L1Y^0One 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.

9x4_'?)SQ(]?051Testing软件测试网E\^&{;?9@c

The 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.

+gBci8Wa1t;@J051Testing软件测试网Qoj"\.f[O%e0nV

If 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:

o-bR&?G$a0
  • /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/51Testing软件测试网2I,Y"nf ^rd0b Pt!X
    (or/etc/init.d/for S.u.s.e. and Debian)
  • httpd stop
51Testing软件测试网'DrEndR!f5^

Use the command ps -aux to view all process on your machine.51Testing软件测试网-F:U/xT*HJ,fM

;xkZ.~;N{#q6_0TIP:List state and run level of all services which can be started by init:chkconfig --list51Testing软件测试网g&PeH(d%F9p g
or51Testing软件测试网$~G"|h]'D
service --status-all | grep running(Red Hat/Fedora Core based systems)

L4S W*t$I-Gu:k0

\?"E2yJN0GUI tool:/usr/X11R6/bin/tksysv

2I&f;hs;w'c0

"A4U@RB_7T8DM$o051Testing软件测试网#Gt#fn%M7j


Run Level Commands:

]l2d.P?5T6]!Z(K0

6I#Pn[D7W'^4v051Testing软件测试网'`!yub#oC"Y3Ll

6l,p u"fH Q t?0
Init scrīpt Activation:

,^U-ld5Yo:~0Adding 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软件测试网/V'TM ^\ih.e0E_

51Testing软件测试网K%v(UM'i y

The start/stop/status scrīpts actually reside in the directory:

*B#r&L M:N0Oh*bwt}0
  • /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.

g-V8T$J"z2Y E2t ~0Basic services include:51Testing软件测试网 S/`yrgiV'bN

w!s EH,]:g8[$L]1j0

3@z+W;z:P@;g0
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.
51Testing软件测试网:\!gG-c };J

Recommended basic services:anacron, ard, autofs, crond, gpm, iptables, keytable, kudzu, microcode_ctl(Intel32 hardware only),network, random. syslog51Testing软件测试网JV.G!S3sP_
Graphics Workstation - add:xfs51Testing软件测试网X7D6^\O$_X0Y
File Server for PC clients - add:smb51Testing软件测试网 ~W^9y }!_
Print Server - add:lpdorcups51Testing软件测试网R5?5r*uoU$V"P!yj
File server Linux/Unix clients - add:nfs, netfs, nfslock, portmap, ypbind, yppasswd, ypserv
6FA#c9p'y1nid0Web Server - add:httpd, tux, xinetdi, sshd

]_ W/j9A)zm8KY4\051Testing软件测试网&cv1}bk0wF&Z*~ E,b

R)es&ym.p0y,x@3r8J0
51Testing软件测试网+LX?W8FA#g

51Testing软件测试网 [9W[z8FQ

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-services51Testing软件测试网^.UZi-hK
    (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)
51Testing软件测试网.B7@|2K!H7G1ng;]s;u(s

Red Hat/Fedora Core text console services selection tool:/usr/sbin/ntsysv

s!XvB6u1k C0

3D-wg&m)Fp051Testing软件测试网)m:s:_A l+]:~I P%G2WP

Init scrīpt:
51Testing软件测试网6}*I9`ha

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软件测试网Z(Q.PV5{ev
Use the commandchkconfigto generate soft links to the appropriate directories for the various run levels.

#s_'H0w$_ jx:aw0

D%V'GQ:b051Testing软件测试网BHe}X

#!/bin/sh51Testing软件测试网lG%Y{g'g"e
E,M&X
#
1`)cR;m#N J:sG*o0# Startup scrīpt forprogram51Testing软件测试网 qup6zYx
#51Testing软件测试网W't lx"C
# chkconfig: 345 85 15- This statement tells the chkconfig command how to add or delete this process to the boot process
'pb!}O:P-c:k7v0# descrīption:Descrīption of program
5Dx*x+F t"hC ?U0# processname:process-name51Testing软件测试网9wa Qj&M)e
# pidfile: /var/run/process-name.pid
k`#G:Xyi'_'GT051Testing软件测试网c(u_l]^
# Source function library.This creates the operating environment for the process to be started51Testing软件测试网$z7^5Ba@_2f"sJS
. /etc/rc.d/init.d/functions51Testing软件测试网,q&V9Su(t*h B _r
51Testing软件测试网kW\e'b%[ a
case "$1" in
1Vb}Pm7~+e{S0}%h0start)51Testing软件测试网l-u!s%^i-{d+Y%O
echo -n "Startingprocess-name: "
ka;Z2q.wF1{EFI0daemonprocess-name- Starts only one process of a given name.
F3L?\bDSt0echo51Testing软件测试网7wx%i z v
touch /var/lock/subsys/process-name
1N~(l&o [P w0;;51Testing软件测试网D)l9nS!l l
stop)51Testing软件测试网 |'El4{'lH{ f
echo -n "Shutting downprocess-name: "51Testing软件测试网#yy S.p _$P,a
killprocprocess-name
YJv)b*q4a*h`w:z0echo51Testing软件测试网\TRNt4a~ k
rm -f /var/lock/subsys/process-name
6?)A-S R*GA6|1V O0rm -f /var/run/process-name.pid- Only if process generates this file
Th8g%F]:\"i9Z6J0;;
R5n,~ a.EsC M-N-W[5|K0status)
6~o"|P^0statusprocess-name
?'w5[RmOmH0;;
4ktP[&E+QM0o@\0restart)51Testing软件测试网kk!g"Jr)wr
$0 stop51Testing软件测试网1GM6HS8j'y.k"C
$0 start51Testing软件测试网5P:vL[8Ks
;;
I:P~_:\1VN1N0reload)
DS/K@R0echo -n "Reloadingprocess-name: "51Testing软件测试网8o `xx'k[ d#`(F
killprocprocess-name-HUP
]X&Q7Zp9J5Y0echo
/u/MC)yP.e0;;51Testing软件测试网@~0zN~de
*)
|'jV S"t$@D"S0echo "Usage: $0 {start|stop|restart|reload|status}"
,v"D1Cdm'A#oI0exit 1
!W'x"C:J;Z0esac
%o"a8b*T9Z`051Testing软件测试网 GN&|Ep)F
exit 0

qD0G m M0The bash scrīpt functionsdaemon, killproc and statuscan all be found in the scrīpt/etc/rc.d/init.d/functions. (Red Hat/Fedora distributions)51Testing软件测试网/c5]L`H8}L,v*I

51Testing软件测试网 })Vj4_SR Bwd J

51Testing软件测试网!oD x%}Y~B


$gi;SsG qVr0U0The scrīpt must be executable to work. (chmod +xscrīpt-name).

G*dp d*l![ZPRC0

w8_c7h)_:d0The scrīpt may be used to start and stop processes. i.e.:

C;OSp)~4Zx%p0
  • /etc/rc.d/init.d/httpd restart
    A A-rs:z(ga?O+vV0(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

V!hk v%nA@&lL0Note that two lines in the scrīpt enable thechkconfigcommand to control the scrīpt for the boot and shutdown process.

*cW%u9TA'YD J#G0
# chkconfig: 345 85 1551Testing软件测试网pF-b:j6el
# descrīption:Descrīption of program
51Testing软件测试网 V5x g2_3{eI

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软件测试网5T:l}{A,U6E5i

f([:M#TD5H5T0

p.l!j}.ETit0
chkconfig:
51Testing软件测试网 ?6s5\(mjzs$e

The (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软件测试网:E!W` ube s aKM

51Testing软件测试网 KsSw3LZ

;gB@(g-Cl4j;R0
chkconfig [--level]on | off | reset >
Q ~LVtLT-L0chkconfig --list
o9P'bw*g!N EV7{%C0chkconfig --list
8C7GO@ vF@1m6J0chkconfig --add51Testing软件测试网pNHE/mR ZE
51Testing软件测试网.T0s)jqGJ k~
chkconfig --del
8eF&J$HJ6OG!l"s0chkconfig --level 0123456off51Testing软件测试网z#V)to[e(blI:pS
51Testing软件测试网4s R$g7e6`$go

Examples:

1e9c3X'I:Dm-O*L0
  • 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.

3T;j/Sd!Xt7w6@l Oj0Using chkconfig to administer xinetd processes.

EXX l6I4O-WA0
  • 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.51Testing软件测试网(J!a8l\(l(~ X

Also see:chkconfig - Linux man page.51Testing软件测试网7V jW N4l|K3S;[

;MOqqh B0

#s JA(o})I%H0
Related Commands:
51Testing软件测试网*M XAu`Q@$l

51Testing软件测试网,?U X.|)e%kC.X R

serviceDisplay status of system services.
&qgO,]I0Example:service --status-all51Testing软件测试网k.vcb;I;mF$D
Help:service --help

`M,K.xiC0Also see:service - Linux man page.51Testing软件测试网nbDL9AJE

%fG3lt^&H0

Ep-fq0x&q%l0
Links and resources:
51Testing软件测试网3y-kA(t:W

51Testing软件测试网ty%t2T {-xj be3d

=====================================51Testing软件测试网].jI;`)i0ok
51Testing软件测试网(G_qN _QT2d9e8{
参考来源:
j4r {%M&h kV ZF!j6qV0www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html
,G&|"x&? N|&\0

Chapter 18. System Initialization

www.ahinc.com/linux101/boot.htm

TAG: PC 启动过程 软件开发

 

评分:0

我来说两句

Open Toolbar