Linux内核基础
2013-08-27 22:35
246 查看
Linux系统运行的应用程序通过系统调用来与内核通信。应用程序通常调用库函数(比如C库函数)再有库函数通过系统调用界面,让内核带其完成各种不同的任务。
下面这张图显示的就是应用程序,内核和硬件之间的关系:
在任何时间点上我们都可以将每个处理器的活动概括为以下三者之一:
1.运行于用户空间,执行用户进程
2.运行于内核空间,处于进程上下文,代表某个特定的进程执行
3.运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断
以上所列几乎包括所有的情况,即使边边角角的情况也不例外,例如,当CPU空闲时,内核就运行一个空进程,处于进程上下文,但运行于内核空间。
Linux是一个单内核,也就是说,Linux内核运行在单独的内核地址空间上。不过,Linux汲取了微内核的精华:其引以为豪的是模块化设计,抢占式内核,支持内核线程以及动态装载内核模块的能力。不仅于此,Linux还避其微内核设计上性能损失的缺陷,让所有事情都运行于内核态,直接调用函数,无需消息传递。至今,Linux是模块化的,多线程的以及内核本身可调度的操作系统。
下面这张图显示的就是应用程序,内核和硬件之间的关系:
在任何时间点上我们都可以将每个处理器的活动概括为以下三者之一:
1.运行于用户空间,执行用户进程
2.运行于内核空间,处于进程上下文,代表某个特定的进程执行
3.运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断
以上所列几乎包括所有的情况,即使边边角角的情况也不例外,例如,当CPU空闲时,内核就运行一个空进程,处于进程上下文,但运行于内核空间。
Linux是一个单内核,也就是说,Linux内核运行在单独的内核地址空间上。不过,Linux汲取了微内核的精华:其引以为豪的是模块化设计,抢占式内核,支持内核线程以及动态装载内核模块的能力。不仅于此,Linux还避其微内核设计上性能损失的缺陷,让所有事情都运行于内核态,直接调用函数,无需消息传递。至今,Linux是模块化的,多线程的以及内核本身可调度的操作系统。
相关文章推荐
- Linux 内核入门学习笔记(一) AT&T汇编基础
- Linux内核设计基础(八)之内核数据结构
- Linux内核基础-container_of
- Linux 基础一之计算机原理、内核原理、发展历程
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- 简图记录-linux内核同步基础
- linux内核基础及其编译安装
- Linux内核设计基础(四)之虚拟文件系统
- Linux内核驱动基础(一)常用宏定义
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- Android之linux基础教学之八 内核同步介绍
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- linux 学习- 编程基础之内核模块开发
- Linux从用户层到内核层系列 - TCP/IP协议栈部分系列7: 基础知识之 - Linux内核源码目录与内核编译选项
- Linux基础之内核态与用户态
- Linux基础知识:内核编译-内核管理概述
- 在双机调试linux3.2内核的基础上源码调试编写的内核模块
- Linux内核管理基础知识概述
- linux内核基础(系统调用,简明)
- Linux内核基础