kernel learning2

                                                     笔记2


二.源码

    1.源码树结构

        源码在/usr/src里

      我的内核为4.13.0.37     4为大版本,13为小版本,0为修改版本,37为稳定号,(每一个稳定号一般为改了哪些bug)

        

        其中       arch为特定体系结构的源码

                block 为块设备I/O层

       (PS:

            Linux中I/O设备分为两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。
(1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字 符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备
(2)块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取。

           )       

                           certs为证书

                            crypto 为加密API。

                            Document为内核文档

                            drivers为设备驱动程序

扫描二维码关注公众号,回复: 1480561 查看本文章

                            dirmware 为使用某些驱动而需要的设备固件

                            vfs 为VFS(virtual file switch)和各种文件系统

                           zfs为一种zfs文件系统

                          

            2.内核编译安装

                参考快速编译内核
              编译中由大把的垃圾信息,可以重定向到/dev/null,这个目录没有返回值(黑科技。。)
           3.内核编程的注意点
              3.1不能用c库和标准c的头文件(标准C都太大,常用的头文件include里都有了,include<linux/..>就行)
              3.2只能用gnu c
              3.3浮点书不要轻易用,因为很难
              3.4每个进程堆栈很小,而且定长
              

猜你喜欢

转载自blog.csdn.net/amous_x/article/details/79934920
今日推荐