Linux操作系统主要分为:内核、shell,应用程序
一、Linux内核
内核直接与底层硬件进行通信,决定整个系统的稳定性,如图:
总的来讲分为四部分:内存管理,进程管理,硬件管理,虚拟文件系统管理。的
1. 内存管理
Linux里面有一个名词叫swap分区,是物理磁盘上的一块空间,称为虚拟内存。Linux实际上管理了两部分内存,一部分是物理内存,另一部分就是这个虚拟内存。从微观上看,虚拟内存和真实物理内存之间也在不断的交换数据。进一步,Linux会将内存资源池(虚拟内存和物理内存)划分成很多份内存页即Memory Page,当然内核自己会记录和维护每一块内存页和虚拟内存、物理内存的对应关系。
2. 进程管理
Linux启动时,首先会启动一个init进程,再由这个init进程来启动其它所有进程。Linux系统里一般会有一个目录来存放开机启动的进程。如: ubuntu 下的/etc/rcX.local
root@test:/etc# cd rc rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ rc.local rcS.d/
Linux的init采用了“运行级”,运行级决定了如果运行/etc/rcX.d里面定义的进程。运行级越低,代表init越先运行一些基本的简单的进程。比如Linux的单用户模式,就是运行级为1时运行的。
Ubuntu的运行级配置文件位置:
root@test:/lib/systemd/system# ls -l runleve*.target lrwxrwxrwx 1 root root 15 Feb 15 2017 runlevel0.target -> poweroff.target lrwxrwxrwx 1 root root 13 Feb 15 2017 runlevel1.target -> rescue.target lrwxrwxrwx 1 root root 17 Feb 15 2017 runlevel2.target -> multi-user.target lrwxrwxrwx 1 root root 17 Feb 15 2017 runlevel3.target -> multi-user.target lrwxrwxrwx 1 root root 17 Feb 15 2017 runlevel4.target -> multi-user.target lrwxrwxrwx 1 root root 16 Feb 15 2017 runlevel5.target -> graphical.target lrwxrwxrwx 1 root root 13 Feb 15 2017 runlevel6.target -> reboot.target
查看和修改运行级:
root@test:/lib/systemd/system# runlevel N 5 root@test:/lib/systemd/system# systemctl get-default graphical.target root@test:/lib/systemd/system# 例如: 设置系统的默认运行级别为5 root@test:/lib/systemd/system# systemctl set-default graphical.target root@test:/lib/systemd/system# rm -f /etc/systemd/system/default.target root@test:/lib/systemd/system# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
3. 硬件设备管理
Linux内核通过驱动程序来管理硬件设备。具体就是在内核代码中加入具体设备的驱动程序,最早以前,技术不太成熟时,每一次由于添加新硬件,需要添加驱动程序时,内核都得重新编译;现在Linux提出了内核模块的概念,类似于热插拔,可以单独加载进内核中,而不需要内核重新编译。
4. 虚拟文件系统管理
Linxu支持多种不同的文件系统同时使用,如Ext2,Ext4,nfs,fat等。Linux内核采用了VFS(Virtual File System)向下对接各种抽象的文件系统,向上提供统一的比如对于读写等操作的函数和API接口。
因此对于上层用户来讲,并不需要关系底层具体的文件系统是什么,只需要调用统一的API来操作就可以。