美文网首页
第2章 从内核出发

第2章 从内核出发

作者: 涵仔睡觉 | 来源:发表于2020-11-08 16:33 被阅读0次

内核开发的特点:

  • 内核编程时既不能访问C库也不能访问标准C头文件(大部分常用的C库函数在内核中都已经得到实现)
  • 内核编程时必须使用GNU C(内核开发者总要用到gcc提供的语言扩展部分,而gcc是多种GNU编译器的集合),内核中C语言的扩展部分包含:
    • 内联函数
    • 内联汇编:使用asm()指令在C函数中嵌入汇编指令
    • 分支声明:对于条件选择语句,gcc内建一条指令用于优化,在一个条件经常出现(likely()宏)或很少出现(unlikely()宏),编译器可以根据这条指令对于条件分支选择进行优化。
  • 缺乏像用户空间那样的内存保护机制
  • 难以执行浮点运算
  • 内核给每一个进程只有一个很小的定长堆栈
  • 由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发
  • 要考虑可移植性的重要性(如保持字节序、64位对齐、不假定字长和页面长度等)

相关文章

  • 第2章 从内核出发

    内核开发的特点: 内核编程时既不能访问C库也不能访问标准C头文件(大部分常用的C库函数在内核中都已经得到实现) 内...

  • 深入剖析Linux内核与设备驱动

    《深入剖析Linux内核与设备驱动》这本书从需求的角度出发,以层次分析的方法探究Linux内核以及驱动的各部分框架...

  • 《Linux内核设计与实现》读书笔记——从内核出发

    内核源码树结构 配置、编译及安装内核 配置内核 内核提供了各种不同的工具来简化内核配置。 一. 通过一个字符界面下...

  • linux内核设计与实现 第二章,从内核出发

    内核开发的特点 内核编程时既不能访问c库,也不能访问标准的c头文件。 内核编程必须使用,gnuc 内核编程时缺乏像...

  • 数据库内核杂谈 - 一小时实现一个基本功能的数据库

    欢迎阅读数据库内核杂谈的第一篇。今天我们摒弃直接介绍数据库内核各个模块的思路,而是从应用开发者的角度出发,来看实现...

  • 比利林恩们为什么要回伊拉克战场?

    任何一部作品,只有从内核出发、从本质入手,去评析解读,才能心领神会,真正懂得它的内涵。在《比利林恩的中场战事》这部...

  • Android事件传递

    驱动 -> 触摸屏幕出发硬件驱动 -> 产生原生态的内核事件 -> Linux内核讲事件包装为通用的Event存到...

  • 微内核架构

    第85篇 极客时间《从0开始学架构》课程笔记。 定义 微内核架构(Microkernel Architecture...

  • KVM原理

    Linux内核模型: 单内核 单内核单内核指整个内核从整体上作为一个过程实现,运行在一个单独的地址空间内 ,内核之...

  • Linux实例日常内核网络参数调优

    本文总结了常见的 Linux 内核参数及相关问题。修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,...

网友评论

      本文标题:第2章 从内核出发

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