Linux内核基础

Linux系统运行的应用程序通过系统调用来与内核通信。应用程序通常调用库函数(比如C库函数)再有库函数通过系统调用界面,让内核带其完成各种不同的任务。

下面这张图显示的就是应用程序,内核和硬件之间的关系:



      在任何时间点上我们都可以将每个处理器的活动概括为以下三者之一:


1.运行于用户空间,执行用户进程

2.运行于内核空间,处于进程上下文,代表某个特定的进程执行

3.运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断


      以上所列几乎包括所有的情况,即使边边角角的情况也不例外,例如,当CPU空闲时,内核就运行一个空进程,处于进程上下文,但运行于内核空间。


      Linux是一个单内核,也就是说,Linux内核运行在单独的内核地址空间上。不过,Linux汲取了微内核的精华:其引以为豪的是模块化设计,抢占式内核,支持内核线程以及动态装载内核模块的能力。不仅于此,Linux还避其微内核设计上性能损失的缺陷,让所有事情都运行于内核态,直接调用函数,无需消息传递。至今,Linux是模块化的,多线程的以及内核本身可调度的操作系统。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值