内核通识——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打印的软件设置问题,我…

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

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

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

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

感谢大家对我微软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)校验启动合法…

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

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

内核源码——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地址与上月大体相同,主要集中在湖北、北京…

SCOM Rule 介绍 [SCOM中文系列之六]

SCOM的Rule主要用来收集数据,我们看到的EventView,PerformanceData,Report所需数据大部分都是通过Rule来收集的。 SCOM Rule的基础结构是触发指定的条件,就执行指定的动作。这个我们通过Rule的属性界面可以看的清楚点:…

init进程的详解

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 参考博客 内核源码——C语言阶段的start_kernel函数_天糊土的博客-CSDN博客 分析根文件系统中的/linuxrc文件_天糊土的博客-CSDN博客 linux内核sys_mount()分析_kai_ding的博客-CSDN博客_sys_mount…

跟着石头哥哥学cocos2d-x(四)--cocos2dx中的动画以及TexturePacker使用

2019独角兽企业重金招聘Python工程师标准>>> 之前向Andreas Loew申请了一枚TexturePacker注册码,很快都下来了,作为回报我打算还是写一篇关于TexturePacker的使用博客吧,有兴趣的可以在这里申请密钥,http://www.codeandweb.com&am…

头像和Karma汽车

Powered by Zoundry RavenTechnorati : Karma, 头像, 汽车 Del.icio.us : Karma, 头像, 汽车 转载于:https://www.cnblogs.com/bsmagic/archive/2008/08/06/1261858.html

All-In-One Code Framework [一站式示例代码库] 【转】

All-In-One Code Framework [一站式示例代码库]2010 对一站式示例代码库,对奋战在一站式示例代码库上的每一位工程师来说都是不同寻常的一年。 在我们共同努力和开发社区的支持下,该项目从一年前的草根雏形,成长为CodePlex排名前三&#xff0…

Ioc容器Autofac介绍

Autofac是轻量级的开源Ioc容器,在这里可以下载http://code.google.com/p/autofac/。如果你用过其他的Ioc容器,那么学习Autofac使用也会比较容易,下面将通过一些例子来讲解其用法。 先看一个例子: 首先新建一个工程,添加…

用代码实现Sharepoint2010的个人信息的照片上传(2)(原创)

用代码从AD读取照片信息并同步到SharePoint2010的个人照片信息中 前言 上篇我们讲到用代码实现了照片信息同步到SharePoint2010的个人照片信息中,但是做的是从文件夹读取照片信息到SharePoint2010,今天我们要做的从AD的thumbnailPhoto属性中读取照片信息到SharePoin…

HTML5实现Word中文字全环绕图片效果

实现这个功能是当时看见数字报的展示出来的编排方式,就是图片热点,而且下载打开还是PDF的,让我这个WP用户咋个看。想实现Word中的编排方式,也需要浏览器支持Word插件,火狐、谷歌、Opera这些都要另外弄插件,…

Bzoj 2127 happiness 最小割

happiness 题解: 将图转换成最小割. 将割完的图中与S相连的点看做选文科, 与T相连的点看做选理科. flow(s, u) 文科值 flow(u,t) 理科值 假设u 和 v 一起选文科有奖励值z, flow(s,u) z/2 flow(s,v) z/2, flow(u,v) z/2 假设u 和 v 一起选理科有奖励值z, flow(u,t) z/2…