Linux的特性
<1> 多用户
系统资源可以被不同用户各自拥有并使用,即每个用户对自己的资源(如文件、设备)有特定的权限,互不影响。
<2> 多任务
计算机同时执行多个程序,而且各个程序的云新相互独立。Linux系统调度每一个进程,平等的访问微处理器。
<3> 多平台
Linux内核的高度可移植性使其能够支持众多平台
<4> 良好的用户界面
Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即shell。可编程的shell是指将多条命令组合在一起,形成一个shell程序,这个程序可以单独运行,也可以与其他程序同时运行。系统调用给用户提供编程时使用的界面。用户可以在编程时直接使用系统提供的系统调用命令。
<5> 设备独立性
指操作系统把所有外部设备统一当成文件来卡看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操作、使用这些设备,而不必知道它们的具体存在形式。
<6> 强大的通信和联网功能
完善的内置网路是Linux的一大特点。Linux在通信和网络功能方面具有明显的优势。
<1>支持Internet
<2>文件传输(用户可以通过一些Linux命令完成内部信息或文件的传输)
<3>远程访问。
提供强大的网络服务,Linux中有各种软件包,可以用来搭建文件/打印服务其、web服务器、FTP服务器、Mail服务器、News服务器或者工作组服务器等。
<7> 可靠的系统安全
Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪和核心授权等,这为网络多用户环境中的用户提供了必要的安全保障
<8> 开放性
Linux不开放,那么什么操作系统开放呢?特别是Linux遵循开放系统互连国际标准(Open System Interconnection,OIS)
<9> 应用程序支持
Linux内核结构及主要组成部分
<1>进程调度(SCHED)
控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行的进程实际上是指那些仅等待CPU资源的进程,如果某个进程在等待其他资源,则该进程是不可运行进程。
<2>内存管理(MM)
允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存。内存管理逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关部分为内存管理提供了虚拟接口
<3>虚拟文件系统(VFS)
隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多大数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统。如EXT2、FAT等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。
<4>网络接口(NET)
提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可以分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备的通信,每一种可能的硬件设别都有相应的设备驱动程序。
<5>进程间通信(IPC)
处于中心位置的进程调度。,所有其他子系统都依赖它,因为每个子系统都需要挂起或恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被挂起;当操作真正完成时,进程恢复执行
Linux内核的源码组成结构
Linux的内核源码的组织结构采用目录树的结构,通常每个有源码的文件的目录下都有Makefile和Kconfig两个文件,用于组织内核的配置和编译。下面是主要的子目录及其存放的内容:
—arch。包含与硬件体系结构相关的代码,每种平台占一个相应的目录。每个平台的目录下还有一些重要的子目录,如kernel(内核核心部分)、mm(内存管理)、lib(硬件相关工具函数)、和boot(引导程序)
—Documentation.关于内核各部分的通用解释和注释
—driver。设备驱动程序,每个不同的驱动占用一个子目录
—fs。各种支持的文件系统,如EXT、FAT和NTFS等
—include。内核头文件。
—init内核C语言部分的初始化代码(不是系统引导代码)
—ipc。进程间通信的代码
—kernel。内核最核心的部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下
—lib。各种库文件代码
—mm内存管理代码,和平台相关的一部分代码都放在arch/*/mm目录下
—net。网络相关代码,实现了各种网络常见的协议
—crypto。常用加密和散列算法,还有一些压缩和CRC校验算法
—script。用于配置内核文件的脚本文件
—sound。常用音频设备的驱动程序等
—usr。实现了一个cpio。Cpio可以从cpio或者tar格式的归档包中存入和兑取文件,归档包是一种包含其他文件和有关信息的文件。
—————————————