美文网首页
1.Linux内核简介

1.Linux内核简介

作者: 大雄good | 来源:发表于2016-12-06 21:32 被阅读0次

    Linux内核简介

    内核是操作系统的核心 ,其主要功能有:

    • 响应中断,执行中断服务程序
    • 管理多个进程,调度和分享处理器的时间
    • 管理进程地址空间的内存管理
    • 网络和进程间通信等系统服务程序

    为了保护系统,通常操作系统被划分为内核空间用户空间,内核独立于普通的应用程序,一般处于系统态,拥有受保护的内存地址和硬件设备的所有访问权限;相对的,应用程序工作在用户空间,仅能访问系统允许他们使用的部分系统资源,并通过系统调用的方式对硬件设备进行访问,同时不同的应用程序不能访问内核划给其他应用程序的内存范围。

    内核的活动范围:

    • 运行于用户空间,执行用户进程
    • 运行于内核空间,处于进程上下文,代表某个特定进程的执行
    • 运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断

    单内核和微内核

    操作系统内核主要分为两大阵营:单内核和微内核。

    单内核

    内核运行在一个单独的地址空间,因此所有内核服务都在一个大内核地址空间运行,内核间的通信开销很小,所有内核服务都运行在内核态,并处于同一地址空间,这种模式的优点是简单和性能高。大多数Unix系统都设计为单内核。

    微内核

    每个内核服务是一个独立的过程,叫做服务器,每个服务器都有各自的地址空间。仅有强烈要求特权服务的服务器会运行在特权模式下,其他服务器都运行在用户空间。因此系统不能直接调用函数,而是通过进程间通信(IPC)的方式进行消息传递。

    单内核和微内核对比

    单内核由于所有的服务运行于同一地址空间,因此可以系统可以直接调用服务,相对于微内核减少了IPC时间,同时不需要上下文来回切换的开销;但是单内核由于所有的服务处于同一地址空间,这样恶意程序容易通过内核服务对系统进行攻击。因此,Linux在单内核的基础上采用了微内核的优点。

    Linux单内核优化

    Linux是一个单内核,其内核运行在单独的内核地址空间,但是Linux汲取了微内核的精华:模块化设计抢占式内核支持内核线程动态加载内核模块

    Linux内核版本号

    2.6.26.1:2为主版本号;6为从版本;26为修订版本号;1,奇数为开发版本,若是偶数则为稳定版本。

    内核开发的特点

    相对于用户空间内应用程序的开发,内核开发有一些独特之处,因此需要注意以下事项:

    • 不能访问C库和标准的C头文件(个人理解这些都是系统调用部分的库)
    • 必须使用GNU C
    • 缺乏用户空间那样的内存保护机制
    • 难以执行浮点运算
    • 每个进程只有一个很小的定长堆栈
    • 由于支持异步中断、抢占和SMP,必须时刻注意同步和并发
    • 需要考虑可移植性

    相关文章

      网友评论

          本文标题:1.Linux内核简介

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