《Linux内核设计与实现》 第一章 读书笔记 Linux内核简介

《Linux内核设计与实现》 第一章 读书笔记 Linux内核简介

面试被怼了Linux内核,于是决定好好看一下这本书。作为经典书籍,Linux内核设计与实现是一本很重要的书籍。在大学本科的课程中已经学习过有关操作系统的内容,但只是比较粗略的学习。所以在这里看下《Linux内核设计与实现》,希望能对Linux内核有更加深入的理解。

第一章只是比较简单的介绍了Linux内核,包括它的历史,操作系统和内核简介,对比了Linux内核和传统Unix内核。并且介绍了Linux内核开发者社区。

在这里插入图片描述
操作系统和内核简介

内核是管理者或者是操作系统的核心,一个内核负责响应中断的中断服务程序,负责管理多个进程从而分享cpu的调度程序,负责管理进程地址空间和内存管理程序和网络,进程间通信等系统服务程序共同组成。内核一般处于系统态,拥有受保护的内存空间和访问硬件设备的权限,这种系统态和被保护起来的内存空间,统称为内核空间。用户空间只能使用某些特定的功能,不能直接访问硬件。当内核运行的时候,系统以内核态进入内核空间执行,而执行一个普通用户程序时,系统以用户态进入以用户空间执行。

系统的应用程序通过系统调用来与内核通信,程序调用库函数,再由库函数调用系统调用,让内核完成任务。1.复杂的函数中,调用内核的操作只是整个工作的一个步骤。2.有的函数,比如open()库函数,就只是调用了open()系统调用。3.有的库函数,strcpy(),不需要直接调用系统级的操作。

一个应用程序执行一条系统调用,应用程序被称为通过系统调用在内核空间运行,内核被称为运行于进程上下文中。应用程序通过系统调用界面陷入内核,是应用程序完成工作的基本行为方式。

内核负责管理硬件设备。硬件设备想要和系统通信,发出异中断信号,打断CPU的执行,进而打断内核的执行。中断通常对应一个中断号,内核通过这个中断号查找相应的中断服务程序,调用程序相应和处理中断。
在这里插入图片描述

Linux内核和传统Unix内核比较

单内核:整体上作为一个单独的大过程来实现,同时运行在一个单独的地址空间上。通常以单个静态二进制文件的形式存放在磁盘中,所有的内核服务都在这样一个大内核地址空间上运行。内核之间通信是微不足道的,内核可以直接调用函数,单模块简单性能高。

微内核:微内核的功能被划分成多个独立的过程,每个过程叫做一个服务器,只有强烈请求特权服务的服务器才运行在特权模式下,其它服务器都运行在用户空间。所有的服务器都保持独立运行在各自的地址空间上。通过消息传递处理内核通信,采用进程间通信IPC机制,各个服务器之间通过IPC机制互通消息。IPC的开销比函数调用大,会涉及内核空间于用户空间的上下文切换,所有实际应用的基于微内核系统大部分服务器位于内核,可以直接调用函数,消除频繁的上下文切换。Windows是微内核的实例

Linux是单内核,内核运行在单独的内核地址空间上,Linux也有微内核的优点,模块化设计,抢占式内核,支持内核线程程以及动态装载内核模块的能力。Linux让所有事情运行在内核态,直接调用函数,无须消息传递。Linux是模块化的、多线程、内核本身可调度的操作系统。(此处面试官问过,Linux与Windows有关的问题)

Linux与Unix的差异

  • Linux支持动态加载内核模块,Linux虽然是单内核,但是允许在需要的时候动态加载部分内核代码。
  • Linux支持对称多处理机制(SMP)
  • Linux内核可以抢占,大多数Unix内核不支持抢占。
  • Linux对线程支持:内核并不区分线程和其它的进程,所有的进程不过是其中的一些共享资源。
  • Linux提供设备类面向对象的设备模型,热插拔时间,用户的设备文件系统(sysfs).
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值