Linux系统概述

 

  题目既然讲的是Linux内核原理,首先让我们从不同的角度认识下什么是操作系统。

 

  首先,从普通使用者的角度来看,当我们打开计算机的时候,首先映入眼帘的就是操作系统的图形用户界面(GUI),它是我们和操作系统交流的工具,我们几乎不费什么力气就可以在操作系统之上安装很多实用的程序,看电影,听音乐,网上 冲浪,事实上是用户不需要知道怎样在屏幕上显示内容,如何控制音频设备输出声音以及如何通过网络设备发送与接收网络数据,因为这些都太复杂了,所以操作系统要做的事情就是“繁琐留给自己,简单留给用户”。

 

  其次,从程序开发者的角度来看,我们关心操作系统是否给我们提供了足够的、简单的、高效的系统调用来完成各种功能,例如下面这段拷贝文件命令的实现涉及到了open、read、close这三个文件系统相关的系统调用。

 

inf=open(“/floppy/TEST”,O_RDONLY,0);
out=open(“/mydir/test”,O_WRONLY,0600);
do{
l=read(inf,buf,4096);
write(outf,buf,l);
} while(l);
close(outf);
close(inf);

 

  再次,从操作系统所处的位置来看,它介于硬件和应用软件程序之间,帮助应用程序有效合理的使用硬件设备。并且要为应用程序提供可执行环境。也就是说我们编写的程序要能够运行在操作系统之上并且可以合理高效的使用各种设备资源。

 

  最后,从操作系统的设计者角度来看,操作系统要尽可能方便用户使用计算机,同时让各种软件资源和硬件资源高效而协调地运转起来。也就是说我们的操作系统不但要考虑用户的使用交互问题,也要考虑如何更好的支持应用程序的开发与运行。

 

接下来给出一些定义:

 

操作系统是计算机系统中的一个系统软件,是一些程序模块的集合——它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效、顺畅地运行。

 

  操作系统内核(Kernel)在计算机科学中是操作系统最基本的部分,主要负责管理系统资源。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并由内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的。所以内核通常提供一种硬件抽象的方法,来完成这些操作。通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备)。

 

  简单来讲,一个完整的操作系统=Kernel + Shell | GUI +其他系统管理程序集合。内核Kernel是操作系统的灵魂,通常分为单内核与微内核两种,Linux内核采用的是单内核结构。

 

 

 


如上所示为单内核结构,追求效率,模块之间直接调用函数,除了函数调用的开销外,没有额外开销。缺点是庞大的操作系统有数以千计的函数复杂的调用关系势必导致操作系统维护的困难。

如上图所示为微内核结构,内核与各个服务器之间通过通信机制进行交互,这使得微内核结构的效率大打折扣。内核发出请求,服务器做出应答,各个服务器模块相对独立,维护相对容易

 

 

  下面我们看下Linux内核子系统,如下图所示,用户进程是运行在Linux内核之上的一个庞大软件集合。系统调用是内核的出口,用户程序通过它使用内核提供的功能。Linux内核是操作系统的灵魂,负责管理磁盘上的文件、内存,负责启动并运行程序,负责从网络上接收和发送数据包等等。硬件则包括了Linux安装时需要的所有可能的物理设备。例如,CPU、 内存、硬盘、网络硬件等等。

 

 

  其中,Linux内核子系统负责管理磁盘上的文件、各种输入输出设备、内存、负责启动并运行程序、进行进程调度、实现进程间通信、负责从网络上接收和发送数据包以及提供系统调用等等。Linux内核子系统的结构如下所示:

 

 

 

 

 

  其中,进程调度控制着进程对CPU的访问;内存管理允许多个进程安全地共享主内存区域;虚拟文件系统隐藏各种不同硬件的具体细节,为所有设备提供统一的接口;网络提供了对各种网络标准协议的存取和各种网络硬件的支持;进程间通信(IPC) 支持进程间各种通信机制,包括共享内存、消息队列及管道等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值