2. 基本概念

这一章主要对Linux/UNIX操作系统里面涉及到的基本概念,比如从基本的内核,再到shell,进程线程信号量等等, 通过本章可以做一个粗略的了解。

下面是一个粗略的本章子段的目录,可以通过点击查阅相关内容。

目录

2.1 操作系统内核:Kernel

Kernel的任务


2.1 操作系统内核:Kernel

通常对操作系统的理解可以有两种:

  • 包含了整个对计算机资源控制和管理,以及囊括了所有标准软件工具,比如命令行解释器以及用户图形界面,文件和编辑器。这样子的一个大的软件在这个概念下统称为操作系统。
  • 更狭义的一种概念是仅仅是一个管理和分配计算机资源的一种软件,包括对CPU, RAM以及设备管理的软件。

通常我们所谓的kernel则是相对于第二种操作系统的描述。

其实从我以前做单片机,所谓的实时系统相关的经验来看,kernel即类似一个RTOS的操作系统,当然它要比普通单片机上的复杂很多。它可以用来帮助更好的从芯片抽象出来一些接口,令开发者可以更快地开发软件,同样它也可以更好的管理整个资源使得它可以在复杂系统当中达到一个更好的使用和效率。当然类似于这本书上所说,其实也可以没有kernel的存在,及类似于完全没有RTOS的实时嵌入式,但是这样子只能服务于简单系统。在没有kernel的帮助下,当软件数量增加时,对中断,CPU等等管理的难度会指数级增加,这个时候我们就需要一个更专业的软件来帮助我们减轻劳动量。

Kernel的任务

kernel主要承担以下任务:

  1. Process Scheduling, 进程管理:
    Linux是一种抢占式多任务preemtive multitasking操作系统。多任务意味着有多个进程可以同时存在与内存当中,都可以利用CPU资源。抢占则意味着管理哪一个进程可以由kernel process scheduler在什么时候被CPU执行以及执行多长时间。
  2. Memory Management,内存管理:
    因为物理RAM的容量的限制,以及现在软件尺寸的增加,导致所有在运行的进程有必要以一种更高效的方式分享物理RAM。因此Linux引入了Virtual Memory Management技术。它可以带来以下的这些好处:
           - 在内核当中,进程所占用的内存相互之间是相互隔离的,进程A不可以访问并修改进程B的内容
           - 在运行进程的过程中,并不是将所有进程拷贝到内存当中运行,而是其中一部分。这样子可以使得更多进程同时存在于内存当中,这样子可以间接提高CPU的利用率,毕竟CPU是直接与RAM进行交换以及通信
    这一点其实很重要,因为可以想象比如现在大型游戏50G以上,但是很多电脑只有16G RAM,这个时候想象如果这个游戏全部加载进RAM会发生什么。
  3. Provision of a file system,文件系统:
    kernel提供硬盘上文件系统
  4. Creation and termination of processes,创建和销毁进程:
    在创建进程的时候,kernel会加载进程进内存,并分配给它资源,比如CPU,内存空间以及对一些文件的访问权限。一般这样的一个instance of a running program被称为是一个process进程。当这个进程运行结束之后,kernel会收回它所用资源并准备分配给下一个程序。
  5. Access to devices,设备访问:
    kernel提供了对各个设备访问的标准简化接口,比如鼠标,显
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值