linux体系结构
linux体系结构
从大面上来说,linux体系结构分为:
用户空间:C库、用户应用程序
内核空间:系统调用接口、内核、硬件平台依赖代码
具体来讲,linux可划分为5个部分:linux内核、GNU工具链、桌面环境、应用软件
linux内核
系统调用接口(SCI层):给应用用户提供一套标准的系统调用函数,上层用户可以通过这一套标准接口来访问底层
内存管理:
进程管理:
文件管理:
设备驱动管理:
内存管理
1.作用:管理物理内存、创建和管理虚拟内存
为了使有限的物理内存满足应用程序对内存的需求,linux采用“虚拟内存”的内存管理方式实现,实现原理:
交换空间:内核在硬盘上化一段存储空间来实现虚拟内存,这段存储空间称为“交换空间”
页面:内存存储单元被分割成很多块,称为“页面”
页面内存表:内核会维护一张表,来指明哪些页面位于物理内存,那么页面位于交换空间
换出:物理内存---->交换空间
换入:交换空间---->物理内存
工作过程:
1、内核将程序运行用到的页面就放到内存里,暂时不用就放到交换空间中(换出)。
2、当用到交换空间的页面时,就把它们调到内存中(换入),然后把物理内存其他用不到的页面换出到交换空间。
查看内存
#cat /proc/meminfo
MemTotal: 1035244 kB #物理内存1G
MemFree: 786616 kB #空闲内存700M左右
...
SwapTotal: 2096472 kB #有2G的交换空间
....
查看内存使用情况
#free
total used free shared buffers cached
Mem: 502360 489964 12396 0 53852 283372
-/+ buffers/cache: 152740 349620
Swap: 1015800 0 1015800
共享内存页面:
创建一写共享内存页面,用于多个进程共享使用。
#ipcs -m #查看共享内存页面
key shmid owner perms bytes nattch status
0x00000000 0 rich 600 52228 6 dest
#owner:共享内存段的所有者
#perms:权限
进程管理
参见进程管理
文件管理
linux内核文件管理采用虚拟文件系统(VFS),隐藏各种文件系统的具体细节,为文件操作提供统一的接口。Linux提供了一个大的通用模型,如下:
常见文件系统:
ext3:第3阔啊站文件系统,支持日志功能
ext4 :第4扩展文件系统,支持高级日志功能
iso9660:ISO 9660文件系统(CD-ROM)
nfs :网络文件系统
ntfs:支持Microsoft NT文件系统
proc:访问系统信息
smb:支持网络访问的Samba SMB文件系统
vfat:Windows 95文件系统(FAT32)
硬件设备管理:
内核代码中必须加入设备驱动程序代码,才能与硬件进行通信,linux内核提供2种方法来插入设备驱动代码:
1.编译进内核的设备驱动代码,缺点:添加新设备时,需要重新编译内核。
2.可插入内核的设备驱动模块:增加新设备,驱动模板插入内核中,无需重新编译。设备不可用时,也可从内核模块中移走。
GNU工具链
操作系统还需要工具链来执行一些标准功能,将linux内核和GNU操作系统工具整合起来,就可以创造一个完整的、功能丰富的免费操作系统
GNU工具链包括:
1.核心GNU工具链:有一组核心工具,称为GNU软件包,包括:处理文件、操作文件、管理进程的工具。
2.shell:是用户和操作系统沟通的桥梁:(用户----shell----kernel----硬件)
linux桌面环境
1.X-window系统
2.KDE桌面
3.GNOME桌面:已成为许多linux发行版,默认的桌面环境。