Linux内核设计与实现第三版 读书笔记Chapter1Linux内核简介

前言:由于笔者想加深linux内核的学习,所以开始学习linux的神书之一的<Linux内核设计与实现>,为了鞭策自己坚持不懈的学习以及通过写的方式加深理解,故有此读书笔记,笔记中包含自己对每一章节的理解(如有错误,欢迎指出)以及疑问(希望论坛各位前辈留言解惑);

       ·Linux内核设计与实现第三版--Chapter1

       在这里Linux与Linus之间的历史车轮我们就不再陈述,主要先从内核的特性讲起:

内核的是什么:

       所谓内核,即为系统软件里面最为核心的软件部分,其主要的工作分为以下3大项: 1.管理外部硬件设备;2..分配系统资源;3.管理进程与线程;

       1.管理外部硬件设备,如:处理器,网卡,串口设备,GPIO等管理,只有内核能直接访问硬件设备,内核以上的应用软件通过内核软件提供的函数接口来访问硬件设备;

       2.分配系统资源:内核以上的应用软件需要向内核申请系统内存资源,设备资源(串口,网卡,声卡等),顺利完成资源申请后,应用程序才能在指定的内存空间(用户空间)里面成功运行以及通过调用内核函数接口访问外部硬件资源;

       3.管理进程与线程:进程的切换(分享处理器时间)与线程的管理,以及IPC进程间通信机制;

       这里引出一个概念,由于内核作为系统最为重要的软件,所以内存空间单独划分出来了一块用来存放内核软件,这部分内存空间称为系统空间;供应用程序访问的内存空间成为用户空间;

                                     

                   · 应用程序运行于用户空间,执行用户进程。

                   · 系统调用接口运行子内核空间,处于进程上下文,代表某个特定的进程执行。

                   · 内核子系统与设备驱动程序运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。

根据内核的功能,我们可以推测内核功能程序组成:

       1.中断服务程序:为了处理外设硬件设备的异步中断信号,内核需要中断程序来处理外审硬件的中断请求,如:网卡的接收网络信息的中断信号,内核中断现有程序,尽快处理网卡的中断请求,并且接受网卡的网络报文,避免网络信息覆盖丢失。

       2.内存管理程序:管理各个应用程序进程以及自身内核软件的地址空间;

       3.进程的调度管理程序以及IPC实现程序:内核需要能够恰当的分配处理器资源,在各个进程间进行调度,实行伪同步执行;内核需要实现进程间通信,所以还需要有进程间通信的程序;

       4.外部硬件的设备驱动程序:管理硬件外设:如网卡,声卡,串口设备等等;

单内核与微内核之争:      

       单内核:就是整个内核程序都链接到连续的一整块的地址空间,内核程序间的相互访问不需要地址转换,直接调用,性能高,理解起来也简单;

       微内核:整个内核被划分为多块内核程序,根据重要程度被分到内核空间或者用户空间,并且不同功能块程序独立运行,互不干涉,通过IPC(进程间通信)机制交互信息,这样一个内核功能程序块挂了不会殃及整个内核程序。但是用户空间和内核空间的切换,IPC都需要耗时耗资源,通过让大部分内核模块处于内核空间,减少用户与内核空间切换消耗,通过函数来访问。

      目前LINUX是采用的单内核机制,但是LINUX借鉴了UNIX的优点,采用单内核模块化的内核服务程序的设计

      并且支持动态加载内核模块,支持SMP(多处理机制),内核任务可以抢占其他任务执行等;

版本说明:

     

           LINUX一般分为稳定版和开发版:如上图,现在比较常见的2.6的内核;从版本号为偶数代表稳定版本,为奇数则为开发版本;我们学习内核源码,选取一个稳定版本即可,2.6比较合适。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值