美文网首页Linux
【笔记】Linux内核简介

【笔记】Linux内核简介

作者: chuunibyou | 来源:发表于2017-08-15 23:04 被阅读0次

用户态与内核态

用户态下,程序不能访问内核地址空间(数据和代码),内核态下则没有此限制。

激活内核例程的方法:

  • 系统调用。

  • CPU异常。如CPU遇到错误指令时,内核将代表进程执行错误处理程序。

  • 中断。如外部设备I/O请求。

  • 内核线程被执行。内核线程是运行在内核地址空间的特权线程,不与任何终端交互,随操作系统一同启动。

进程

内核使用进程描述符(process descriptor)来标识进程。

进程描述符包括:

  • 程序计数器(PC)和栈指针寄存器(SP)
  • 通用寄存器
  • 浮点寄存器
  • 包含CPU状态信息的处理器控制寄存器(处理器状态字,Processor Status Word)
  • 用来跟踪进程对RAM访问的内存管理寄存器。

内核同步与临界区

临界区是这样一段代码,进入这段代码的进程必须完成,之后另一个进程才可以进入。以下为内核同步的方法。

非抢占式内核

进程在内核态执行时,不能被任意挂起,也不能被另一个进程替代。内核态的进程可以主动放弃CPU。

禁止中断

进入临界区前禁止硬件中断,离开临界区再开启中断。

信号量

信号量是与一个数据结构相关的计数器,在访问这个数据结构之前,需要先检查信号量。可以把信号量看做一个对象,它包括:

  • 一个整数变量
  • 一个等待进程的列表
  • 两个原子操作:down()和up()

down()操作将信号量的值减1,如果此时信号量小于0,则将当前进程描述符加入等待进程的列表,并阻塞当前进程;up()操作将信号量的值加1,如果当前等待进程的列表不为空,则唤醒其中一个。

自旋锁

与信号量类似,但是没有等待进程的列表。当一个进程发现锁被另外一个进程占用时,就执行一个循环直到锁被释放。

信号

SIGKILL和SIGSTOP不能被进程进程捕获和忽略。除此之外,进程对信号的处理方式:

  • 忽略该信号。
  • 执行信号处理程序。

如果进程不选择处理方式,则内核会根据不同的信号,使用以下默认处理方式之一:

  • 终止进程。
  • 如果进程曾被暂停,则恢复它的执行。
  • 忽略信号。
  • 挂起进程。
  • 将执行上下文和进程地址空间写入一个文件(核心转储,core dump),并终止进程。

进程间通信

  • 信号量。
  • 消息队列。
  • 共享内存。

设备驱动程序


当应用程序想访问外围设备时,就利用文件相关的系统调用和/dev下的相关设备文件对内核发出请求。

设备文件是设备驱动程序接口中用户可见的部分。

每个设备文件都有相应的设备驱动程序,由内核调用以执行对硬件的请求操作。

相关文章

  • IMX6ULL学习笔记(8)——获取和编译Linux内核

    一、简介 1.1 Linux内核 Kernel 即是Linux内核,Linux内核采用宏内核架构,即Linux大部...

  • 【笔记】Linux内核简介

    用户态与内核态 用户态下,程序不能访问内核地址空间(数据和代码),内核态下则没有此限制。 激活内核例程的方法: 系...

  • Linux kernel内核功能及架构

    linux 内核源码网站 linux内核命名规则 Linux内核源码简介 1. 源码获取 在www.kernel...

  • Android移植

    [TOC] Android 简介 Android 操作系统是基于Linux内核, Google使用Linux内核构...

  • Linux驱动之内核模块

    一、Linux内核模块简介 1.1 Linux内核模块介绍 Linux内核的整体结构已经非常庞大,而其包含的组件也...

  • Linux菜鸟笔记

    Linux菜鸟笔记简介Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上...

  • (a40i)嵌入式Linux 按键驱动

    简介 Linux内核已经集成按键驱动。按键和键盘在Linux上都属于输入设备;Linux内核为此专门抽象了...

  • Linux

    一. Linux简介 a. Linux 英文解释为 Linux is not Unixb. Linux内核最初只是...

  • (a40i)嵌入式Linux LED驱动

    简介 Linux内核已经集成LED灯驱动。Linux内核的LED灯驱动采用platform框架,因此我们只...

  • Linux入门学习(1)

    第一章 Linux简介 1.Linux分类: Linux内核版本: Linux发行版本: 2.开源软件简介: 开源...

网友评论

    本文标题:【笔记】Linux内核简介

    本文链接:https://www.haomeiwen.com/subject/qrovrxtx.html