系统启动与内核管理 ;AWK部分 重要内容 (实验及awk的常见面试题)

CentOS6启动流程
1.加载BIOS的硬件信息,获取第一个启动设备
2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息
3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
4.核心执行init程序,并获取默认的运行信息
5.init程序执行/etc/rc.d/rc.sysinit文件
6.启动核心的外挂模块
7.init执行运行的各个批处理文件(scripts)
8.init执行/etc/rc.d/rc.local
9.执行/bin/login程序,等待用户登录
10.登录之后开始以Shell控制主机
制作centos6系统的ramdisk文件
目的 掌握centos6系统中的启动顺序中/boot目录的作用,制作启动时所需的文件ramdisk文件。
前提 可用的centos6系统。
/boot目录作用
在系统启动以后,/boot整目录内容就没什么用了,甚至可以把boot目录删除,只要不重启,系统仍然能正常运行。
利用mkinitrd命令创建ramdisk文件 为当前正在使用的内核重新制作ramdisk文件,使用mkinitrd命令。
【例1】制作ramdisk文件
为了证明制作一个ramdisk文件而且启动正常,则先删除ramdisk文件。
[[email protected] ~]# ls /boot/initramfs-2.6.32-696.el6.x86_64.img
/boot/initramfs-2.6.32-696.el6.x86_64.img
[[email protected] boot]# rm -f initramfs-2.6.32-696.el6.x86_64.img
注意,该文件名不能随意定义,因为在启动文件中是已经定义好的了:
[[email protected] boot]# tail -5 /boot/grub/grub.conf
hiddenmenu
title CentOS 6 (2.6.32-696.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/mapper/vg_magedu-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_magedu/lv_swap rd_NO_MD rd_LVM_LV=vg_magedu/lv_root SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-696.el6.x86_64.img
最后一行,initrd指明了该文件的完整名称,这就是之所以为什么不能随意指定文件名的原因。
制作ramdisk文件:
[[email protected] boot]# mkinitrd /boot/initramfs-2.6.32-696.el6.x86_64.img $(uname -r)
时间可能会稍长一些,之后,就可在/boot目录中新创建了initramfs-2.6.32-696.el6.x86_64.img文件。可以查看该文件:
[[email protected] boot]# cp initramfs-2.6.32-696.el6.x86_64.img /tmp/
解压该文件:
[[email protected] tmp]# zcat initramfs-2.6.32-696.el6.x86_64.img |cpio -id
152872 blocks
可以使用ls命令查看其结果。现在系统上的ramdisk文件已经被删除,而且手动创建了一个ramdisk文件,此时重启系统使用reboot命令,仍然可以正常启动。
配置centos6系统各服务的启动运行级别
目的 掌握centos6系统中配置开机启动时服务的运行级别。
前提 可用的centos6系统。
实验步骤
1、runlevel命令:查看上一次及当前系统启动的运行级别
[[email protected] ~]# runlevel
N 5
N表示上一次切换级别是无切换过。
5表示当前运行级别是有图形化的完整的多用户模式。
2、chkconfig命令:查看当前系统启动时服务的运行级别
[[email protected] ~]# chkconfig --list
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
abrt-ccpp ? ? 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrtd ? ? ? ? 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid ? ? ? ? 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd ? ? ? ? ? 0:off 1:off 2:off 3:on 4:on 5:on 6:off
...
以crond服务为例,查看开机启动时在各运行级别中是否开机启动:
[[email protected] ~]# chkconfig --list|grep crond
crond ? ? ? ? 0:off 1:off 2:on 3:on 4:on 5:on 6:off
从结果看crond服务分别在0-6的运行级别中开机分别为: 在0级别关机模式中是关闭的; 在1级别单用户模式中开机自动关闭; 在2级别没有网络的多用户模式中开机自动启动; 在3级别完整的多用户模式中的开机自动启动; 在4级别自定义模式中开机自动启动; 在5级别有图形化的完整的多用户模式中开机自动启动; 在6级别重启模式中开机自动关闭。
[[email protected] ~]# ll /etc/rc.d/rc?.d/???crond
lrwxrwxrwx. 1 root root 15 May 16 17:47 /etc/rc.d/rc0.d/K60crond -> ../init.d/crond
lrwxrwxrwx. 1 root root 15 May 16 17:47 /etc/rc.d/rc1.d/K60crond -> ../init.d/crond
lrwxrwxrwx. 1 root root 15 May 16 17:47 /etc/rc.d/rc2.d/S90crond -> ../init.d/crond
lrwxrwxrwx. 1 root root 15 May 16 17:47 /etc/rc.d/rc3.d/S90crond -> ../init.d/crond
lrwxrwxrwx. 1 root root 15 May 16 17:47 /etc/rc.d/rc4.d/S90crond -> ../init.d/crond
lrwxrwxrwx. 1 root root 15 May 16 17:47 /etc/rc.d/rc5.d/S90crond -> ../init.d/crond
lrwxrwxrwx. 1 root root 15 May 16 17:47 /etc/rc.d/rc6.d/K60crond -> ../init.d/crond
此结果说明rc0.d-rc6.d分别是设置各个启动运行级别时需要启动和停止的服务,而在其目录下K开头的文件都是开机自动关闭的服务,S开头的文件都是开机自动启动的服务。
列出指定crond服务开机启动各级别是否是自动关闭还是自动开启:
[[email protected] ~]# chkconfig --list crond
crond ? ? ? ? 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3、指定crond服务,在2、3、4、5运行级别时自动启动
[[email protected] ~]# chkconfig crond on
默认是在2、3、4、5级别进行设置,或单独指定3和5级别开机时自动启动:
[[email protected] ~]# chkconfig --level 35 crond on
当然,也可设置crond服务在2/3/4/5运行级别自动关闭,默认也是在2、3、4、5级别进行设置:
[[email protected] ~]# chkconfig crond off
或单独指定2和4运行级别的自动关闭:
[[email protected] ~]# chkconfig --level 24 crond off
4、自定义服务启动脚本,并添加到启动项中 编写mageserv服务启动样例脚本:
[[email protected] ~]# vim /etc/init.d/mageserv
#!/bin/bash
#

chkconfig: 2345 80 30

description: This is a service script

. /etc/init.d/functions

check_num(){
if [ ! $1 -eq 1 ];then
echo "Usage:$0 [start|stop|restart|status]"
exit 1
fi
}

check_argument(){
if [[ ! $1 =~ ^(start)|(stop)|(restart)|(status)$ ]];then
echo "Usage:$0 [start|stop|restart|status]"
exit 1
fi
}

main(){
script_name=mageserv
if [[ $2 = start ]];then
if [ ! -e /var/lock/subsys/${script_name} ];then
touch /var/lock/subsys/${script_name}
action "启动成功" true
else
echo "启动成功"
fi
elif [[ $2 = stop ]];then
if [ -e /var/lock/subsys/${script_name} ];then
rm -rf /var/lock/subsys/${script_name}
action "停止完成" true
else
action "停止完成" false
fi
elif [[ $2 = restart ]];then
if [ -e /var/lock/subsys/${script_name} ];then
rm -rf /var/lock/subsys/${script_name}
action "停止完成" true
touch /var/lock/subsys/${script_name}
action "启动成功" true
else
action "停止完成" false
touch /var/lock/subsys/${script_name}
action "启动成功" true
fi
elif [[ $2 = status ]];then
if [ -e /var/lock/subsys/${script_name} ];then
echo "$script_name is runing..."
else
echo "mageserv is dead!"
fi
fi
}

check_num $#
check_argument $1
main $0 $1
添加执行权限:
[[email protected] ~]# chmod +x /etc/init.d/mageserv
把mageserv服务加入系统服务管里中:
[[email protected] ~]# chkconfig --add mageserv
添加mageserv服务开机自启动: ? [[email protected] ~]# chkconfig mageserv on
或指定35启动级别时自动启动:
[[email protected] ~]# chkconfig mageserv off
[[email protected] ~]# chkconfig mageserv on --level 35
注意:改变启动级别,先关闭启动运行时的开机自动启动。 ? 查看mageserv服务设置的默认启动级别:
[[email protected] ~]# chkconfig --list mageserv
mageserv 0:off 1:off 2:off 3:on 4:off 5:on 6:off
查看:
[[email protected] ~]# ll /etc/rc?.d/???mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:31 /etc/rc0.d/K30mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:31 /etc/rc1.d/K30mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:34 /etc/rc2.d/K30mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:35 /etc/rc3.d/S80mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:34 /etc/rc4.d/K30mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:35 /etc/rc5.d/S80mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:31 /etc/rc6.d/K30mageserv -> ../init.d/mageserv
使用系统服务管理service命令管理mageserv服务:
[[email protected] ~]# service mageserv start
启动成功 [ OK ]

[[email protected] ~]# service mageserv restart
停止完成 [ OK ]
启动成功 [ OK ]

[[email protected] ~]# service mageserv status
mageserv is runing...

[[email protected] ~]# service mageserv stop
停止完成 [ OK ]

[[email protected] ~]# service mageserv status
mageserv is dead!
当然,也可以直接使用该服务脚本文件直接运行:
[[email protected] ~]# /etc/init.d/mageserv
Usage:/etc/init.d/mageserv [start|stop|restart|status]

[[email protected] ~]# /etc/init.d/mageserv start
启动成功 [ OK ]

[[email protected] ~]# /etc/init.d/mageserv restart
停止完成 [ OK ]
启动成功 [ OK ]

[[email protected] ~]# /etc/init.d/mageserv status
mageserv is runing...

[[email protected] ~]# /etc/init.d/mageserv stop
停止完成 [ OK ]

[[email protected] ~]# /etc/init.d/mageserv status
mageserv is dead!
注意: 正常级别下,最后启动一个服务/etc/rc5.d/S99local没有链接至/etc/rc.d/init.d目录下的一个服务脚本,而是指向了/etc/rc.d/rc.local脚本。不便或不需要写为服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.loal文件中。/etc/rc.d/rc.local在指定运行级别脚本后运行。
该文件是一个软连接:
[[email protected] ~]# ll /etc/rc5.d/S99local
lrwxrwxrwx. 1 root root 11 May 16 17:45 /etc/rc5.d/S99local -> ../rc.local
rc.local文件也是一个软连接:
[[email protected] ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 May 16 17:45 /etc/rc.local -> rc.d/rc.local
所以,最终用户自定义的一个启动脚本文件位置是/etc/rc.d/rc.local。 ? [[email protected] ~]# cat /etc/rc.d/rc.local #!/bin/sh # # This script will be executed after all the other init scripts. # You can put your own initialization stuff in here if you don‘t # want to do the full Sys V style init stuff.
touch /var/lock/subsys/local

AWK部分
awk变量? 变量:内置和自定义变量? FS:输入字段分隔符,默认为空白字符awk -v FS=‘:‘ ‘{print $1,FS,$3}’ /etc/passwdawk –F: ‘{print $1,$3,$7}’ /etc/passwd? OFS:输出字段分隔符,默认为空白字符awk -v FS=‘:’ -v OFS=‘:’ ‘{print $1,$3,$7}’ /etc/passwd? RS:输入记录分隔符,指定输入时的换行符awk -v RS=‘ ‘ ‘{print }’ /etc/passwd? ORS:输出记录分隔符,输出时用指定符号代替换行符awk -v RS=‘ ‘ -v ORS=‘###‘‘{print }’ /etc/passwd? NF:字段数量awk -F:‘{print NF}’ /etc/fstab 引用变量时,变量前不需加$awk -F:‘{print $(NF-1)}‘ /etc/passwd? NR:记录号 awk ‘{print NR}’ /etc/fstab ; awk END‘{print NR}’ /etc/fstab
FNR:各文件分别计数,记录号
awk ‘{print FNR}‘ /etc/fstab /etc/inittab
?FILENAME:当前文件名
awk ‘{print FILENAME}’ /etc/fstab
?ARGC:命令行参数的个数
awk ‘{print ARGC}’ /etc/fstab /etc/inittab
awk ‘BEGIN {print ARGC}’ /etc/fstab /etc/inittab
?ARGV:数组,保存的是命令行所给定的各参数
awk ‘BEGIN {print ARGV[0]}’ /etc/fstab /etc/inittab
awk ‘BEGIN {print ARGV[1]}’ /etc/fstab /etc/inittab
awk -F: -f awkscript script=“awk” /etc/passwd
Printf命令
格式符:与item一一对应
%c:显示字符的ASCII码
%d, %i:显示十进制整数
%e, %E:显示科学计数法数值
%f:显示为浮点数
%g, %G:以科学计数法或浮点形式显示数值
%s:显示字符串
%u:无符号整数
%%:显示%自身
? 修饰符
#[.#] 第一个数字控制显示的宽度;第二个#表示小数点后精度,%3.1f

  • 左对齐(默认右对齐) %-15s + 显示数值的正负符号 %+d
    赋值操作符:
    =, +=, -=, *=, /=, %=, ^=,++, --
    ?下面两语句有何不同
    ? awk ‘BEGIN{i=0;print ++i,i}’
    ? awk ‘BEGIN{i=0;print i++,i}’
    比较操作符:
    ==, !=, >, >=, <, <=
    ?模式匹配符:
    ~:左边是否和右边匹配,包含
    !~:是否不匹配
    ?示例:
    awk -F: ‘$0 ~ /root/{print $1}‘ /etc/passwd
    awk ‘$0~“^root"‘ /etc/passwd
    awk ‘$0 !~ /root/‘ /etc/passwd
    awk -F: ‘$3==0’ /etc/passwd
    逻辑操作符:与&&,或||,非!
    ?示例:
    ? awk -F: ‘$3>=0 && $3<=1000 {print $1}‘ /etc/passwd
    ? awk -F: ‘$3==0 || $3>=1000 {print $1}‘ /etc/passwd
    ? awk -F: ‘!($3==0) {print $1}‘ /etc/passwd
    ? awk -F: ‘!($3>=500) {print $3}’ /etc/passwd
    ?条件表达式(三目表达式)
    selector?if-true-expression:if-false-expression
    ? 示例:
    awk -F: ‘{$3>=1000?usertype="Common User":usertype="
    SysUser";printf "%15s:%-s\n",$1,usertype}‘ /etc/passwd
    awk PATTERN
    PATTERN:根据pattern条件,过滤匹配的行,再做处理
    (1)如果未指定:空模式,匹配每一行
    (2) /regular expression/:仅处理能够模式匹配到的行,需要用/ /括起来
    awk ‘/^UUID/{print $1}‘ /etc/fstab
    awk ‘!/^UUID/{print $1}‘ /etc/fstab
    (3) relational expression: 关系表达式,结果为“真”才会被处理
    真:结果为非0值,非空字符串
    假:结果为空字符串或0值
    BEGIN/END模式
    BEGIN{}:仅在开始处理文件中的文本之前执行一次
    END{}:仅在文本处理完成之后执行一次
    面试题
    取连接主机的ip数量
    ss -nt|awk ‘/^ESTAB/{print $5}‘ |awk -F: ‘{print $1}‘
    ss -nt|awk -F"([[:space:]]+|:)" ‘/^ESTAB/{print $6}‘
    ss -nt|awk -F"([[:space:]]+|:)" ‘/^ESTAB/{print $(NF-2)}‘
    ss -nt|awk -F"([[:space:]]+|:)" ‘/^ESTAB/{print $(NF-2)}‘|sort |uniq -c| sort -nr|head
    Sed 命令取出b开头的段至f开头的段
    sed -n ‘/^b/,/^f/p‘ /etc/passwd
    awk ‘/^b/,/^f/‘ /etc/passwd
    取分区利用率
    df |awk -F"([[:space:]]+|%)" ‘/^\/dev\//{if($5<10){print $5,"great" }else if($5<80){print $5,"warning"}else{print $5,"error"}}‘
    Shell部分
    取100以内的和 1、seq -s+ 100|bc
    2、i=1;sum=0;while [ $i -le 100 ];do let sum+=i;let i++;done;echo $sum
    3、for((sum=0,i=1;i<=100;i++));do let sum+=i ;done;echo $sum
    awk 部分 取100以内的和
    1、awk ‘BEGIN{i=1;sum=0;while(i<=100){sum+=i;i++};print sum}‘
    2、awk ‘BEGIN{sum=0;for(i=1;i<=100;i++){sum+=i};print sum}‘
    取最大值 最小值:
    Awk-F, ‘{for(i=1;i<=NF;i++){if(i==1){max=$i;min=$i}else{if($i>max)max=$i;if($i<min)min=$i}};print "max="max,"min="min}‘ num.txt
    防DDOS*** (******)
    for ip in ss -nt|awk -F"[[:space:]]+|:" ‘/^ESTAB/{print $6}‘|sort |uniq -c|awk ‘$1&gt;=3{print $2}‘;do iptables -A INPUT -s $ip -j REJECT;done
    改写awk 调用iptables
    参考
    awk ‘BEGIN{ip="192.168.35.6";system("iptables -A INPUT -s "ip" -j REJECT")}‘
    for ip in awk ‘{print $1}‘ /var/log/httpd/access_log |sort |uniq -c|sort -nr|head|awk ‘{print $2}‘;do iptables -A INPUT -s $ip -j REJECT;done
    三种方式取值:
    awk -F"/" ‘{print $3}‘ url.txt
    cut -d/ -f3 url.txt
    sed -rn ‘[email protected]//([^/]+)/.@\[email protected]‘ url.txt

Awk部分加{}与不加{}的区别:
[[email protected] ~]#awk ‘!line[$0]++{print $0,line[$0]}‘ f1.txt
aa 1
bb 1
cc 1
aaaa 1
bbb 1
dd 1
[[email protected] ~]#awk ‘{!line[$0]++;print $0,line[$0]}‘ f1.txt
aa 1
bb 1
cc 1
aaaa 1
bbb 1
aa 2
cc 2
dd 1
bb 2
cc 3
aaaa 2
取TCP状态出现的次数:
[[email protected] ~]#ss -nta > state.log
[[email protected] ~]#awk ‘NR!=1{state[$1]++}END{for(i in state){print i,state[i]}}‘ state.log
SYN-RECV 1
LISTEN 59
ESTAB 44
FIN-WAIT-2 1
TIME-WAIT 3593
取男生和女生的平均成绩:(两种不同的方法) 1.‘NR!=1{if($2=="m"){m_sum+=$3;m_num++}else{f_sum+=$3;f_num++}}END{print "male:"m_sum/m_num,"female:"f_sum/f_num}‘ score.txt
2.‘NR!=1{sum[$2]+=$3;num[$2]++}END{for(i in sum){print i":"sum[i]/num[i]}}‘ score.txt
m:89.5
f:92.5
统计ip地址出现的次数:
awk ‘{ip[$1]++}END{for(i in ip){print ip[i],i}}‘ /var/log/httpd/access_log

split(s,array,[r]):以r为分隔符,切割字符串s,并将切割后的结果保存至array所表示的数组中,第一个索引值为1,第二个索引值为2,…:
netstat -tn | awk ‘/^tcp\>/{split($5,ip,":");count[ip[1]]++}END{for (i in count) {print i,count[i]}}‘

原文地址:http://blog.51cto.com/14128387/2345199

时间: 2024-10-03 14:03:46

系统启动与内核管理 ;AWK部分 重要内容 (实验及awk的常见面试题)的相关文章

Liunx 系统启动和内核管理总结

Liunx 系统启动和内核管理总结 Liunx系统启动 一.硬件启动流程 (1).打开电源 (2).BIOS: 1. POST 初始化硬件设备,检查系统外围主要设备(CPU,内存,硬盘,显卡i-o设备,键盘鼠标) 2.确定启动设备 -根据BIOS设置的启动顺序,检测驱动器(硬盘,光盘,U盘,网络) --如果硬盘是启动项,读取硬盘第一个扇区(MBR,512字节)到内存 ---控制区转给MBR中的Boot loader (3).MBR 1.执行MBR中Bootloader 2.MBR由主引导程序,硬

linux基础—课堂随笔010_系统启动和内核管理

系统启动和内核管理 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc 库:函数集合, function, 调用接口(头文件负责描述) 程序:二进制执行文件 内核设计流派: 单内核(monolithic kernel):Linux 把所有功能集成于同一个程序,分层实现不同功能,系统庞大复杂 微内核(micro kernel):Windows, Solaris 每种功能使一个单独子系统实现,将内核功能

系统启动和内核管理

CentOS 5和6的启动流程 服务管理 Grub管理 自制Linux 启动排错 编译安装内核 Linux组成 Linux: kernel+rootfs kernel: 进程管理. 内存管理. 网络管理. 驱动程序. 文件系统. 安全功能 rootfs:程序和glibc 库:函数集合, function, 调用接口(头文件负责描述) 过程调用:procedure,无返回值 函数调用:function 程序:二进制执行文件 内核设计流派: 单内核(monolithic kernel):Linux

Linux系统启动和内核管理

Linux组成 由 kernel 和 rootfs 组成 单内核:(进程管理,内存管理,网络管理, 驱动程序,文件系统, 安全功能) /boot/vmlinuz-VERSION-release 辅助的伪根系统 /boot/initramfs-VERSION-release.img            这是一个cpio格式的归档文件,存放的是各种驱动模块 md5sum vmlinuz /boot/vmlinuz       查看两个文件中的内容是否完全一致,只要有一个字符不一样,两个文件的md5

第15章,系统启动和内核管理

更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) http://blog.51cto.com/13683480/2095439 本章内容 Centos5和6的启动流程 服务管理 Grub管理 自制Linux 启动排错 编译安装内核 Centos7启动流程 Unit介绍 服务管理和查看 启动排错 破解口令 修复grub2 Linux组成:------------------------------------------------------

Linux系统启动与内核管理(下)

从上一篇介绍了系统启动流程可以得知,在BIOS读取相关信息之后,接下来就是去找第一个可以启动的设备当中的MBR中读取Boot Loader信息,Boot Loader提供具有惨淡功能,直接加载内核信息,以及相关的控制权转交功能.启动系统必须有Boot Loader,然后才能去加载内核,Boot Loader存储于MBR当中,MBR只有512字节,其中前446字节存储Boot Loader,区区只有446自己不可能容纳较多的功能,Linux将Boot Loader的程序运行与配置项加载分成三个阶段

Linux之系统启动和内核管理

系统启动 常用命令: runlevelwho -r/etc/inittab:定义启动级别/etc/rc.d/init.d/NetworkManager 定义网络管理程序的详细信息/etc/rc.d/rc.sysinit 系统初始化脚本/etc/rc.d//rc[0-6].d/定义6个级别对应的服务程序开启或关闭/etc/rc.d/rc.local 开机最后一步要执行的脚本可以放到此文件中自定义服务 chkconfig --list 查看定义服务程序详情列表testsrv需要放入/etc/rc.d

Linux系统管理——系统启动和内核管理

1.内核 1.1内核分类 内核设计流派:     单内核(monolithic kernel):Linux     把所有功能集成于同一个程序 微内核(micro kernel):     Windows, Solaris     每种功能使用一个单独子系统实现 1.2.内核组成 组成部分:     核心文件:/boot/vmlinuz-VERSION-release 1.3.centos6启动     1.加载BIOS的硬件信息,获取第一个启动设备     2.读取第一个启动设备MBR的引导加

Linux启动和内核管理

系统启动和内核管理 Linux组成 Linux:kerne+rootfs(应用程序) kernel:进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 roots:程序和glibc 函数:相当于命令的集合 库:函数集合,function,调用接口(头文件负责描述) 过程调用:procedure,无返回值 函数调用:function 程序:二进制执行文件 内核设计: 单内核(monolithic kernel):Linux 把所有功能集成于一个同一个程序 微内核(micro kernel)