zoukankan      html  css  js  c++  java
  • Linux内核基础

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

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


     

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

     

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

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

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

     

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

     

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

  • 相关阅读:
    linux expr命令执行问题
    Virtual Box设置Host only模式的网络互通问题
    Linux下管理软件的方法
    转载 AMI方案和Insyde方案
    笔记二(名词详解)持续更新。。。
    笔记一(固件、BIOS、UEFI)
    Cache As Ram
    (二十四)C语言之文件
    (二十三)C语言之位运算
    (二十二)C语言之typedef
  • 原文地址:https://www.cnblogs.com/pangblog/p/3241421.html
Copyright © 2011-2022 走看看