linux 概述

linux 概述


linux系统的抽象表示

用户进程
	图形用户界面    服务器    命令行
	
linux内核
	系统调用	进程管理	内存管理	设备驱动程序
	
硬件
	中央处理器CPU	主内存RAM	硬盘	网络端口

内核和用户进程之间最主要的区别是: 内核在内核模式(kernel mode)中运行,而用户进程 则在用户模式(user mode)中运行。在内核模式中运行的代码可以不受限地访问中央处理器和内 存,

内核

我们之所以介绍主内存和状态,是因为内核的几乎所有操作都和主内存相关。其中之一是将 内存划分为很多区块,并且一直维护着这些区块的状态信息。每一个进程拥有自己的内存区块, 且内核必须确保每个进程只使用它自己的内存区块。 15

内核负责管理以下四个方面。

  • 进程:内核决定哪个进程可以使用CPU。
  • 内存:内核管理所有的内存,为进程分配内存,管理进程间的共享内存以及空闲内存。
  • 设备驱动程序:作为硬件系统(如磁盘)和进程之间的接口,内核负责操控硬件设备。
  • 系统调用和支持:进程通常使用系统调用和内核进行通信。

进程管理

进程管理涉及进程的启动、暂停、恢复和终止。

一个 进程让出CPU使用权给另一个进程称为上下文切换

内核负责上下文切换。我们来看看下面的场景,以便理解它的工作原理。

  1. CPU为每个进程计时,到时即停止进程,并切换至内核模式,由内核接管CPU控制权。
  2. 内核记录下当前CPU和内存的状态信息,这些信息在恢复被停止的进程时需要用到。
  3. 内核执行上一个时间段内的任务(如从输入输出设备获得数据,磁盘读写操作等)。
  4. 内核准备执行下一个进程,从准备就绪的进程中选择一个执行。
  5. 内核为新进程准备CPU和内存。
  6. 内核将新进程执行的时间段通知CPU。
  7. 内核将CPU切换至用户模式,将CPU控制权移交给新进程。

内存管理

内核在上下文切换过程中管理内存,这是一项十分复杂的工作,因为内核要保证以下所有条件

  • 内核需要自己的专有内存空间,其他的用户进程无法访问;
  • 每个用户进程有自己的专有内存空间;
  • 一个进程不能访问另一个进程的专有内存空间;
  • 用户进程之间可以共享内存;
  • 用户进程的某些内存空间可以是只读的;
  • 通过使用磁盘交换,系统可以使用比实际内存容量更多的内存空间。

新型的CPU提供了MMU(Memory Management Unit,内存管理单元),MMU使用了一种叫 作虚拟内存的内存访问机制,即进程不是直接访问内存的实际物理地址,而是通过内核使得进程 看起来可以使用整个系统的内存。

设备驱动程序和设备管理

对于设备来说,内核的角色比较简单。通常设备只能在内核模式中被访问(例如用户进程请求内核关闭系统电源),因为设备访问不当有可能会让系统崩溃。另一个原因是不同设备之间没有一个统一的编程接口,即使同类设备也如此,比如两个不同的网卡。所以设备驱动程序传统意义上来说是内核的一部分,它们尽可能为用户进程提供统一的接口,以简化开发人员的工作

系统调用和系统支持

内核还对用户进程提供其他功能。例如,系统调用(system call或syscall)为进程执行一些 它们不擅长或无法完成的工作。打开、读取和写文件这些操作都涉及系统调用。

fork()和exec()这两个系统调用对于我们了解进程如何启动很重要。

  • fork():当进程调用fork()时,内核创建一个和该进程几乎一模一样的副本。
  • exec():当进程调用exec(program)时,内核启动program来替换当前的进程。
一个简单的例子是你在命 令行运行ls命令来显示目录内容
shell -> fork() -> shell
                 |
                 v
                 copy of shell -> exec(ls) -> ls

用户空间

前面提到过,内核分配给用户进程的内存我们称之为用户空间。因为一个进程简单说就是内 存中的一个状态。用户空间也可以指所有用户进程占用的所有内存。(用户空间还有一个不太正 式的名称,叫userland。)

用户

Linux内核支持用户这一Unix的传统概念。一个用户代表一个实体,它有权限运行用户进程, 对文件拥有所有权。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值