shell,系统启动和内核管理

shell中的for和while循环,Linux的组成,系统启动的步骤,以及内核的管理

一、shell中的for和while循环

(1)for循环:

格式:    for  变量名  in 列表;do

循环体

done

执行机制:

依次将列表中的元素赋值给“变量名”; 每次赋值后即执
行一次循环体; 直到列表中的元素耗尽,循环结束

例子:1. 打印九九乘法表

for i in {1..9};do
for j in `seq $i`;do
echo -n “$j*$i=$[i*j] ”
done
echo
done

2.0

例子:2.打印等腰三角形

read -p “Please input ni xisng yao de ceng shu: ” k
for i in `seq $k`;do
n=$[k-i]
for j in `seq $n`;do
echo -n ” ”
done
l=$[2*i-1]
for m in `seq $l`;do
echo -ne “\033[5m*\033[0m”
done
echo

done

2.1

 

(2)while循环

while CONDITION; do
循环体
done

例子:1. 打印九九乘法表

i=1
while [ “$i” -le 9 ];do
j=1
while [ “$j” -le “$i” ];do
echo -n “$j*$i=$[i*j] ”
let j+=1
done
echo
let i+=1
done

3.0

例子:2.打印三角形

read -p “Please Input length : ” n
i=1
while [ “$i” -le “$n” ];do
k=1
m=$[n-i]
while [ “$k” -le “$m” ];do
echo -n ” ”
let k+=1
done
j=1
l=$[2*i-1]
while [ “$j” -le “$l” ];do
echo -n “*”
let j+=1
done
echo
let i+=1
done

3.1

二、Linux的组成

1. Linux由kernel内核+rootfs 组成

(1)kernel的功能:进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能

(2)rootfs:程序和glibc库文件

库文件就是函数集合,function,调用接口

过程调用:procedure,无返回值

函数调用:function

程序:二进制执行文件

2.内核设计流派:

(1)单内核:Linux ————>把所有功能都集成于同一个程序

(2)微内核:Windows,Solaris—->每种功能使用一个单独子系统实现

3.Linux内核特点:

(1)支持模块化:.ko(内核对象)如:文件系统,硬件驱动,网络协议等

(2)支持内核模块的动态装载和卸载

(3)组成部分:

核心文件:/boot/vmlinuz-VERSION-release

ramdisk:辅助的伪根系统

CentOS 5: /boot/initrd-VERSION-release.img

CentOS 6,7: /boot/initramfs-VERSION-release.img

模块文件:/lib/modules/VERSION-release

三、系统启动的步骤

(1)步骤:POST加电自检——>MBR引导——>GRUB——>加载内核——>启动init进程

——>读取/etc/inittab文件 /etc/init/*.conf文件——>……

(2) 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控制主机

(3)POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部
分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接
口、键盘、CD-ROM光驱等硬件情况的检测。

(4)ROM:BIOS,Basic Input and Output System,保存着有关计
算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和
系统启动自举程序等。

(5)RAM:CMOS互补金属氧化物半导体,保存各项参数的设定
按次序查找引导设备,第一个有引导程序的设备为本次启动设备

(6) bootloader:

Windows: ntloader

Linux:

LILO

GRUB

(7)MBR:

446:bootloader ,64:分区表,2:55AA

(8)GRUB:

primary boot loader : 1st stage,1.5 stage
secondary boot loader :2nd stage,分区文件

(9)kernel:
自身初始化:
探测可识别到的所有硬件设备
加载硬件驱动程序(借助于ramdisk加载驱动)
以只读方式挂载根文件系统
运行用户空间的第一个应用程序:/sbin/init

(10)ramdisk:

内核中的特性之一:使用缓冲和缓存来加速对磁盘上的文件访
问,并加载相应的硬件驱动

ramdisk文件的制作:

mkinitrd命令:

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

0.0

0.1

(11)init程序的类型

init读取其初始化文件:/etc/inittab
初始运行级别(RUN LEVEL)
系统初始化脚本
对应运行级别的脚本目录
捕获某个关键字顺序
定义UPS电源终端/恢复脚本
在虚拟控制台生成getty
在运行级别5初始化X

CentOS 7:

1.0

CentOS 6:

1.2

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90469

(0)
zss123456zss123456
上一篇 2017-12-21 13:07
下一篇 2017-12-22 23:32

相关推荐

  • 正则表达式基础知识及grep、egrep详解

    什么是正则表达式     在计算机科学中,正则表达式是这样解释的:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。对于系统管理员来讲,正则表达式贯穿在我们…

    Linux干货 2016-08-08
  • 【26期】Linux第八周学习小总结

        前言     本周的学习已经过去了,虽然本周学习中老师一直都有说,哎呀,这个不重要,以后有网络管理员给你们来做,了解一下就行,然而话锋一转就又说,其实小公司没有网络管理员,如果你们不好好学,以后就会做得更多更杂的工作,这一周的知识点基本上都是在一个pdf上的,大概有200…

    2017-09-02
  • iptables

    一、机制 部队大院、高档私人住宅区都是在一个被保护起来的范围内,要想进入只能从各个大门进入,在进入的时候还在门口出示证件、或者是指纹识别、或者是保安身份认证等,只有通过了这些检查才能进入到大院、住宅区内部。 Linux系统也是这么一个大院,netfilter就是这个大院的围墙,prerouting、input、output、forward、postrouti…

    Linux干货 2017-01-13
  • Linux运维之路基础学习四

    当文件的权限不能满足某个用户时,ACL是一个好办法

    Linux干货 2017-12-03
  • 马哥教育网络班21期第6周课程练习

    一、vim编辑器的使用 二、练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@www ~]# cp /etc/rc.d/rc.sysinit /tmp [root@www ~]# l…

    Linux干货 2016-08-15
  • Linux之初见

     前言        第一次听到Linux的大名是在进行网络培训的时候,隔壁的红帽子培训时听到的。由于这样,导致我很长一段时间都以为Linux就是红帽,红帽就是Linux,当听到Ubantu的时候,还以为又是另一个全新的,区别于windows和Linux的版本,现在想起来很是羞愧。近期因为…

    Linux干货 2016-02-14