Linux的内核

Linux的内核是什么

        Linux内核是Linux的核心,该核心涵盖Linux的所有功能,是一个大内核。

        Linux内核采用单内核模式,是将所有基本功能集于同个进程,形成一个大进程。内核内部采用的是模块化设计,不同功能属于不同模块。模块间通信采用的是函数调用。运行内核的所有信息都在内核空间,而用户程序普遍都在用户空间。若用户程序想使用内核功能时,则需通过内核提供的接口,进行系统调用。

Linux为什么选择了单内核

      单内核的优点在于实现简单。功能都在同个地址空间上,内部的协同合作都可以通过函数调用,不需要另外设计一套通信结构。除此之外Linux内核也借鉴了微内核很多优点:

  • 模块化设计
  • 动态装载内核模块
  • 抢占式内核

Linux的单内核做了什么

     CPU处理器通常为了安全期间,会对权限划分等级,如下图。对于Linux内核来说,只是用了Ring0和Ring3。其中内核处于Ring 0,用户进程处于Ring 3。Ring 0也被称为内核空间,Ring3则被称为用户空间。

  • 处于Ring 0的进程,其控制权被内核独占。该等级下拥有最高权限,能访问硬件等资源
  • 处于Ring 3的进程只有基本权限。想使用系统功能时,如硬件资源的内存分配,需调用内核提供的系统接口

    用户态的进程进行系统调用时,进程会由用户态转为内核态,并且控制权移交到内核上。内核处理完后会再由内核态转为用户态,并将控制权还回去。此过程发生了特权模式切换:用户=>内核,再由内核=>用户。

    频繁的特权模式切换会消耗一定的系统资源。因为寄存器和用户栈等数据无法在用户/内核空间不通用。所以在切换前需要先保存这些数据,等系统调用完后,切换回来时在将这些数据给加载回来。要注意的是此处的特权模式切换并非是上下文切换。

    内核拥有的功能部分大致分为:

  • 进程管理和调度
  • 抢占式内核
  • 对称多处理(SMP)支持
  • 动态装载/移除模块
  • 内存分配、交换分区实现
  • 磁盘读取与写入
  • 异常、中断和陷阱的处理
  • 网络发送与接收
  • 外部设备通讯
  • ……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值