linux内核主要由哪些部分组成?
1,内存管理?
内存管理的主要任务是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。
Linux内存管理支持虚拟内存,多余的内存是通过磁盘应用获得的。平时系统只把当前运行的程序块保存在内存中,其他程序块都保存在磁盘中。当内存不足时,内存管理负责在磁盘和内存之间交换程序块。
2.流程管理?
进程管理主要控制系统进程对CPU的访问。当一个进程需要运行时,进程调度器根据基于优先级的调度算法启动一个新的进程。Linux支持多任务,那么如何在单个CPU上支持多任务呢?这项工作通过进程调度管理来实现。
系统运行时,每个进程都会被分配一定的时间片,然后进程调度器会根据不同的时间片选择每个进程依次运行。例如,当一个进程用完时间片时,调度程序将选择一个新的进程继续运行。
因为切换的时间和频率都非常快,用户感觉同时运行多个程序,但实际上同时运行的只有一个CPU进程,这是进程调度管理的结果。
3.进程间通信?
进程间通信主要用于控制用户空间中不同进程之间的同步、数据共享和交换。因为不同的用户进程有不同的进程空间,所以进程间的通信要通过内核的调用来实现。
通常,在等待硬件操作完成时,进程会被挂起。当硬件操作完成时,进程被恢复,并且是进程之间的通信机制协调这个进程。
4.虚拟文件系统?
Linux内核中的虚拟文件系统用一个通用的文件模型来表示不同的文件系统,屏蔽了许多特定文件系统的差异,使Linux内核能够支持许多不同的文件系统。
这个文件系统可以分为逻辑文件系统和设备驱动:逻辑文件系统是指Linux支持的文件系统,比如ext2、ext3、fat设备驱动是指为每个硬件控制器编写的设备驱动模块。
5.网络接口?
网络接口提供了各种网络标准的实现和各种网络硬件的支持。网络接口一般分为网络协议和网络驱动。网络协议部分负责实现每一种可能的网络传输协议。
网络设备驱动主要负责与硬件设备通信,每一个可能的网络硬件设备都有对应的设备驱动。
扩展数据:
Linux操作系统的诞生、发展和壮大始终依赖于五大重要支柱:UNIX?操作系统,MINIX?操作系统,GNU项目,POSIX?标准和互联网网络。
1981年,IBM推出了微型计算机IBM PC。
1991年,GNU项目开发了很多工具和软件,最值得期待的GNU C编译器出现了。GNU操作系统的核心HURD一直处于实验阶段,一直没有面世,本质上也没能开发出完整的GNU操作系统,但GNU为Linux用户和开发环境奠定了基础。
1991年初,linus torvalds开始在一台386sx兼容的微机上学习minix操作系统。1991 4月,linus torvalds开始酝酿和准备自己的操作系统。
1991 4月13在comp.os.minix上发布说他已经成功将bash移植到minix上了,他爱不释手,离不开这个外壳软件。
1993年,约有100名程序员参与了Linux内核代码的编写/修改,其中核心组由5人组成。此时Linux 0.99代码约10万行,用户约65438+万。
1994年3月,Linux1.0发布,代码量17万行。当时是按照完全免费免费的协议发布的,然后正式采用了GPL协议。
1995 65438+10月,鲍勃·扬创立了RedHat(小红小红帽),以GNU/Linux为核心,集成了400多个开源代码的程序模块,开发了一个品牌化的Linux,即RedHat Linux,被称为Linux的“发行版”,在市场上销售。这是商业模式上的一个创举。
2001 1,Linux 2.4发布,进一步提高了SMP系统的扩展性,同时也集成了很多支持桌面系统的特性:USB,PCMCIA支持,内置即插即用,等等。
5438年6月+2003年2月,Linux的内核2.6版本发布,与内核2.4版本相比,系统支持有了很大的改变。
2004年65438+10月,SuSE嫁给Novell,SCO在骂名下继续“化缘”,Asianux和MandrakeSoft也五年来首次公布季度盈利。3月,SGI宣布成功实现支持256个安腾2处理器的Linux操作系统。