Linux学习笔记4
一.Linux的系统结构
1.用户进程
2.OS服务层
(1)System Call Interface(POSIX.1)
(2)shell 命令解释器
(3)GUI Graphic User Interface,X window 图形界面
(4)Compiler 让高级语言在Compiler下执行程序
(5)Library 动态静态库
3.Linux内核层
(1)Linux kernel
(2)Modules 和 Module Interface
(3)Device Drivers 和 Device Driver Interface
4.硬件层
二.Linux内核组成
1.进程调度子系统 Schedule
①控制进程访问CPU
②保证进程公平的访问CPU资源
③保证内核可执行一些必需的硬件操作
2.内存管理程序 Memory Management,MM
使多个进程可以安全地共享机器的主存,并支持虚拟内存
3.虚拟文件系统 Virtual File System,VFS
通过接口来访问不同格式的文件系统
4.网络接口 NET
提供对许多建网标准和网络硬件的访问
5.进程间通信子系统 Inter-Process Communication
通过四种方式通信:消息队列;信号;信号量;共享存储
三.Linux的启动流程
1.BIOS到Kernel
MBR-->Kernel-->Kernel自解压-->内核初始化-->内核启动(start_kernel函数,在Linux内核源代码树的/usr/src/linux/init/main.c)
2.内核启动
创建1#(PID=1的init)进程并执行由它创建若干kernel thread,然后装入并执行/sbin/init,依据/etc/inittab进行初始化
对于Redhat来说执行顺序为:
/etc/rc.d/rc.sysinit #由init执行的第一个脚本
/etc/rc.d/rc $RUNLEVEL #$RUNLEVEL为缺省的运行模式
/etc/rc.d/rc.local #运行模式2、3、5时会运行的脚本
/sbin/mingetty(或getty) #等待用户登录
/etc/inittab中指定了系统的运行级别(RUNLEVEL),init根据运行级别启动相关的服务(一些后台进程),实现不同的功能。
RUNLEVEL:0~6
0:halt 1:单用户 2:多用户 3:多用户并启动NFS服务 4:保留 5:运行Xdm(X window) 以图形化界面方式登录 6:reboot