内核通识——linux内核源码(2.6.35.7版本)的目录结构

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

一、文件

(1)Kbuild文件

Kbuild是kernel build的缩写,就是内核编译的意思。这个文件就是linux内核特有的内核编译体系需要用到的文件。

(2)Makefile文件

这个文件是linux内核的总makefile,整个内核工程用这个Makefile来管理的。

它记录了各个模块之间的关系,编译器根据这个文件来编译内核。

(3)mk文件

这个文件是九鼎在移植时自己添加的,不是linux内核本身的东西。九鼎添加这个文件的作用是用这个文件来管理kernel目录的配置和编译,也就是说这个文件有点类似于我们之前移植uboot时自己创建的那个cp.sh。

二、文件夹

(1)arch文件夹

arch是architecture的缩写,意思是架构。

arch目录下是不同架构的cpu的子目录,譬如arm这种cpu的所有文件都在arch/arm目录下,X86的cpu的所有文件都在arch/x86目录下。

(2)block文件夹

在linux中block表示块设备(以块为单位来整体访问),譬如SD卡、iNand、Nand、硬盘等都是块设备。你几乎可以认为块设备就是存储设备。

block目录下放的是一些linux存储体系中关于块设备管理的代码,是逻辑层面的代码。

(3)crypto文件夹

这个目录存放一些常见的加密与压缩算法的C语言代码实现。譬如crc32、md5、sha1等。

(4)Documentation文件夹

里面放了一些文档,是内核部分功能的解释文档。

(5)drivers文件夹

驱动目录,里面分门别类地列出了linux内核支持的所有硬件设备的驱动源代码。

(6)firmware文件夹

固件其实是软件,不过这个软件是固话到IC里面运行的,就像S5PV210里的iROM代码。

(7)fs文件夹

文件系统目录,里面列出了linux支持的各种文件系统的实现。

(8)include文件夹

头文件目录,各种CPU架构共用的头文件都在这里。

每种CPU架构特有的一些头文件在arch/arm/include目录及其子目录下。

(9)init文件夹

这个目录下的代码就是linux内核启动时初始化内核的代码,包含内核启动的main()函数

(10)ipc文件夹

ipc就是inter process commuication,进程间通信,里面都是linux支持的IPC的代码实现。

(11)kernel文件夹

存放内核本身需要的代码文件,包括进程调度、内存管理等内容,是内核最核心的代码。

(12)lib文件夹

这里面都是一些公用的库函数。

注意这里的库函数和C语言的库函数不一样的。在内核编程中是不能用C语言标准库函数,这里的lib目录下的库函数就是用来替代那些标准库函数的。譬如在内核中要把字符串转成数字用atoi,但是内核编程中只能用lib目录下的atoi函数,不能用标准C语言库中的atoi。又譬如在内核中要打印信息时不能用printf,而要用printk,这个printk就是我们这个lib目录下的。

(13)mm文件夹

mm是memory management,内存管理,存放独立于CPU体系结构的的内存管理代码,不同平台的代码在该目录下有相应的子目录。

(14)net文件夹

该目录下是网络相关的代码,譬如TCP/IP协议栈等都在这里。

(15)scripts

这个目录下全部是脚本文件,这些脚本文件不是linux内核工作时使用的,而是用来辅助对linux内核进行配置编译生产的。我们并不会详细进入分析这个目录下的脚本,而是通过外围来重点学会配置和编译linux内核即可。

(16)security

安全相关的代码。不用去管。

(17)sound

音频处理相关的。

(18)tools

linux中用到的一些有用工具。

(19)usr

目录下是initramfs相关的,和linux内核的启动有关,暂时不用去管。

(20)virt

内核虚拟机相关的,暂时不用管。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原创】自制PCB经验教训之一:版图打印篇

看了篇帖子《用感光电路板自制PCB攻略(网友电子白菜撰写)》,于是前几天在淘宝上买了一批PCB DIY工具和材料回来,想自己弄个试试,岂料障碍重重,甚至于酿成大祸... 首先是PCB打印的软件设置问题,我…

magento cms page、登錄頁面修改(增加)breadcrumbs

由於magento的cms功能有限,在cms page的角度來看,差不存在cms的category,所以cms page的breadcrumbs只會出現單層的結構(HOME->About Us), 要想模仿出分層次的結構,就需要修改cbreadcrumbs了。 修改方法如下&#x…

分享一套非常不错的bootstarp3.0.2响应式模板

2019独角兽企业重金招聘Python工程师标准>>> 这是销量第一的bootstrap 响应式后台管理模板,每套模板都是我用20美金买回来的话不多说,下面是五个模板的演示地址,你看到的,就是你可以下载到的。都是收费模板。 官方演示…

内核配置与编译——编译初体验

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、获取内核源码 第一种是kernel.org的官方版本,第二种是三星移植过的,第三种是X210的移植版本。讲课时使用第三种内核,移植实验使用第二种内核。九鼎配置好的k…

10 个理由让你继续干 IT

1.钱,钱,钱对,我们努力工作就是为了赚钱,而IT专业人士的努力工作的确得到了很好的补偿。报酬不仅仅是好而已,而是非常棒。根据美国劳工部《2010年美国 就业与报酬情况概览》(表6,PDF&#xff09…

脱机下载至校验成功的脚本

今天又差点在 root 权限下破坏了系统 (归功于破坏力极强的 build-sysroot.sh), 心想逐步把写过的一些小工具备份。 sureget #!/bin/sh if [ -z $2 ]; thenfnamebasename "$1" elsefname$2 fiwhile true; do[ -f $fname ] && rm -f $fnamewget -c $1 -O $fnam…

MySQL同步状态双Yes的假象及seconds_behind_master的含义

近期由于特殊原因有一台主库宕机了一个小时没有处理,说起来这是个挺不好啥意思的事情,但是由于这个事情反而发现个比较诡异的情况,那就是在主库宕机一个小时候后,监控才发出从库IO thread中断的报警,也就是说在那一个小…

内核配置与编译——内核的配置原理

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 概述 编译内核前需要进行两步配置,即先make x210ii_qt_defconfig,然后再make menuconfig。第一步如果成功,则会提示“configuration written to .config”。注意…

gluPickMatrix和glReadPixels

gluPickMatrix的使用2008年12月03日 星期三 23:40void gluPickMatrix(GLdouble x,GLdouble y,GLdouble width,GLdouble height,GLint viewport[4]); 它是用来根据当前鼠标选择区域生成一个相应的投影矩阵的。这里面头两个参数不是这个选择区域的左上角位置,而是整个…

STM32的串口通信

在基础实验成功的基础上,对串口的调试方法进行实践。硬件代码顺利完成之后,对日后调试需要用到的printf重定义进行调试,固定在自己的库函数中。 b) 初始化函数定义: void USART_Configuration(void); //定义串口初始化函…

感谢大家对我微软TECHED2013课程的支持

http://technet.microsoft.com/zh-cn/teched2013_hols 转载于:https://blog.51cto.com/136840/1339733

C语言简介

摘自 老九学堂 徐嵩老师转载于:https://www.cnblogs.com/CheeseIce/p/11238694.html

内核源码——汇编阶段的head.S文件

以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。 前言 1、内容总结 汇编阶段,或者说内核引导阶段,主要是arch/arm/kernel/head.S文件,主要完成以下内容: (1)校验启动合法…

phpcms V9利用num++实现多样形式列表标签调用

在首页或者频道页调用文章列表的时候,经常会使用到左右对称或者每五行出现一条横线的调用形式。 其实代码很简单,利用num的循环方式,以及{if}{/if}进行样式判断即可。代码如下: {pc:content action"lists" catid"6…

Python第十七课(面向对象基础)

Python第17课(面向对象基础) >>>思维导图>>>中二青年 面向对象编程思想OOP 什么是面向对象 面向对象是一种编程思想,是前辈们总结出的经验,指导程序员如何编写出更好的程序,核心是对象,程序就是一系列对象的…

USACO 6.1.3 Cow XOR

题目大意: 给出一个数列,求最大区间异或和。异或和相同时取终点最靠前的,仍相同取最短的。简单题解:先求出前缀和。对每个数,将其前一项的前缀和插入0-1树中。然后在该树中,从高位到低位(贪心思…

内核源码——C语言阶段的start_kernel函数

以下内容源于朱有鹏嵌入式课程的学习,如有侵权请告知删除。 前言 1、内容总结 C语言阶段的start_kernel函数位于内核源码/init/main.c文件,主要完成以下内容: (1)打印一些输出信息。 (2)初始化…

Excel2007数据透视表学习(四)改变数据透视表布局

通过在【数据透视表字段列表】对话框内将【列标签】、【行标签】和【报表筛选】区域的字段转换即可创建不同分析角度的数据透视表。 如果还是习惯Excel2003版本字段拖拽方式创建数据透视表,可以在数据透视表中单击鼠标右键→【数据透视表选项】→【显示】→勾选【…

经典基础算法之面试题(系列一)(转)

1. 打靶问题的递归解法 Technorati 标记: 递归算法,字典法,二分法,打靶问题,日期问题,求幂,多项式求值伦敦奥运会火热进行中,让我们来看个打靶的问题:一个射击运动员打靶,靶一共有10环,求连开10枪打中90环的可能行有多少种&#x…

2013年11月份我国网络不良与垃圾短信息分析报告

IDC评述网(idcps.com)12月17日报道:近日,12321网络不良与垃圾信息举报受理中心最新播报了11月份我国不良与垃圾短信息发送情况。根据报告显示,11月份垃圾邮件发送IP地址与上月大体相同,主要集中在湖北、北京…