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

相关推荐

  • 马哥Linux第五周作业

    at,cron,rpm,yum,sed

    2018-01-12
  • Linux文本处理三剑客之grep

    一、grep命令 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。 模式:由正则表达式字符及文本字符所编写的过滤条件 二、grep命令格式 grep [OPT…

    Linux干货 2016-08-15
  • LAMP

    1、请描述一次完整的http请求处理过程; 一次完整的http请求处理过程: (1) 建立或处理连接:接收请求或拒绝请求; (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; (3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; (4) 访问资源:获取请求报文中请求的资源; (5) 构建响应报文: (…

    Linux干货 2016-12-14
  • linux程序包管理

    对第五周学习的内容进行总结

    2018-01-01
  • week3

    一,列出当前系统上所有已经登录的用户的用户名,注意,同一个用户登录多次只显示一次即可 who | cut -d' ' -f1 | sort -u 二,取出最后登录到当前系统的用户相关信息 who | cut -d'&nb…

    Linux干货 2016-11-15
  • linux 基础命令(四)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@localhost home]# cp -r /etc/skel/ /home/tuser1 [root@localhost home]# c…

    Linux干货 2016-10-16