目录

  • 1.交叉编译工具的安装
  • 2.内核源码获取
  • 3.嵌入式设备带操作系统的启动过程扫盲
  • 4.Linux内核源码树扫盲
    • 1.内核源码简介
    • 2.Linux内核源代码目录树结构
      • tree指令查看
      • 内核源码目录树

1.交叉编译工具的安装

参照我之前的笔记

2.内核源码获取

下载哪个版本取决于树莓派的版本,用命令查看

uname -r

官网是外网下载慢,这里是提前下载好的树莓派源内核码资源
链接: https://pan.baidu.com/s/1d8KgnJIc8QoDlZMyt4ITDw
提取码: f3d4

官网下载方式(方便以后下载树莓派其他内核版本):
官网地址:https://github.com/raspberrypi/

3.嵌入式设备带操作系统的启动过程扫盲

4.Linux内核源码树扫盲

1.内核源码简介

2.Linux内核源代码目录树结构

tree指令查看

通过安装tree指令方便看内核源码树目录。
树状显示当前文件夹下包络的文件。做第三方工具安装的时候,可用于检查包里的内容是否完整。

  • 安装
sudo apt-get install tree
  • 使用
tree

内核源码目录树

arch
包含和硬件体系结构相关的代码,每种平台占一个相应的目录。

每个平台中比较重要的包括:

  • kernel(内核核心部分)
  • mm(内存管理)
  • math-emu(浮点单元仿真)
  • lib(硬件相关工具函数)
  • boot(引导程序)
  • pci(PCI总线)
  • power(CPU相关状态)

block
部分块设备(内存之类的存储介质等)驱动程序。

crypto
常用加密和散列算法(如AES、SHA等)(形成了一个标准,不需要自己去写这些算法),还有一些压缩和CRC校验算法。

Documentation
关于内核各部分的通用解释和注释。(大多看不懂)

drivers
设备驱动程序,每个不同的驱动占用一个子目录。

fs
各种支持的文件系统,如ext、fat、ntfs等。

include
头文件。其中,和系统相关的头文件被放置在linux子目录下。

init
内核初始化代码(注意不是系统引导代码)。

ipc
进程间通信的代码。

kernel
内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。

lib
库文件代码

mm
内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。

net
网络相关代码,实现了各种常见的网络协议。

scripts
用于配置内核文件的脚本文件。

security
主要是一个SELinux的模块。

sound
常用音频设备的驱动程序等。

usr
实现了一个cpio。

内核源码目录树详细结构介绍,参照博文:https://www.cnblogs.com/senior-engineer/p/4929703.html

树莓派内核开发准备(内核源码获取、启动过程、源码目录树)相关推荐

  1. Android内核开发:图解Android系统的启动过程

    本文是<Android内核开发>系列的第六篇文章,前面的几篇文章介绍了Android内核开发相关的基础知识,包括:Android源码的下载.版本和分支介绍.编译和烧写等等,从本文起就要开始 ...

  2. Android内核开发:学会分析系统的启动log

    本文是<Android内核开发>系列的第八篇文章,本文主要关注如何分析Android系统的启动log,学会通过搜索重要的TAG标签,找到Android启动过程中的重要节点. 要学会分析系统 ...

  3. php 框架获取服务器,Thinkphp 框架基础之源码获取、环境要求与目录结构分析

    本文实例讲述了Thinkphp 框架基础之源码获取.环境要求与目录结构.分享给大家供大家参考,具体如下: 获取ThinkPHP 获取ThinkPHP的方式很多,官方网站(http://thinkphp ...

  4. golang源码分析-启动过程概述

    golang源码分析-启动过程概述 golang语言作为根据CSP模型实现的一种强类型的语言,本文主要就是通过简单的实例来分析一下golang语言的启动流程,为深入了解与学习做铺垫. golang代码 ...

  5. ARM树莓派高级开发——linux内核源码、树莓派源码编译、SD卡挂载

    文章目录 linux内核开发基础(linux内核源码.树莓派源码编译.SD卡挂载) 树莓派等芯片带操作系统的启动过程 linux内核源码树 Linux内核源代码目录树结构: 树莓派Linux源码配置 ...

  6. 网易严选php版本小程序,Thinkphp5.0内核开发仿网易严选微信小程序商城源码 电商小程序源码...

    仿网易严选微信小程序商城源码 电商小程序源码 安装环境:php5.3及以上+mysql,开启https Thinkphp5.0内核开发的电商类小程序源码整站后端+前台仿网易严选商城化妆品电商小程序,完 ...

  7. Linux 内核开发 - Eclipse内核开发环境搭建

    翻译这篇文章的时候,我也想过可能会有高手说,内核开发用vi就足够了,还用什么eclipse,当然对于内核中函数特别了解的人确实如此,但是对于新 手,每使用一个函数,就要去查找一下函数的定义,实在是非常 ...

  8. linux eclipse 关联源码,获取Hadoop的源码和通过Eclipse关联Hadoop的源码

    一.获取Hadoop的源码 首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩, 因此有部分源码我们无法解压 ,因此在这里我讲述一下如 ...

  9. 【Android 插件化】VirtualApp 源码分析 ( 启动应用源码分析 | HomePresenterImpl 启动应用方法 | VirtualCore 启动插件应用最终方法 )

    文章目录 一.启动应用源码分析 1.HomeActivity 启动应用点击方法 2.HomePresenterImpl 启动应用方法 3.VirtualCore 启动插件应用最终方法 一.启动应用源码 ...

  10. linux加载内核后如何运行app,Android app启动过程

    Native进程的运行过程 一般程序的启动步骤,可以用下图描述.程序由内核加载分析,使用linker链接需要的共享库,然后从c运行库的入口开始执行. 通常,native进程是由shell或者init启 ...

最新文章

  1. 气氛拉满!高校补办2020届毕业典礼,这些专属礼物太戳心......
  2. 小猿圈之git 的几个好用自定义命令
  3. POJ 3784.Running Median
  4. 关于python的一些好的书籍推荐-推荐几本对于Python初学者比较好的书籍(内含PDF)...
  5. UML建模之时序图(Sequence Diagram)教程
  6. Python组织文件 实践:查找大文件、 用Mb、kb显示文件尺寸 、计算程序运行时间
  7. linux下gem卸载,gem 安装卸载pod
  8. 通俗地讲清楚fit_transform()和transform()的区别
  9. RabbitMq如何确保消息不丢失
  10. 2020年中职学计算机有前途吗,2020年南昌中专计算机专业都学什么
  11. C语言求一个文件的长度,求二进制文件的长度
  12. 倒计时1天 | 一年学遍吴恩达、李飞飞、周志华等17大精品课!(ML、CV、NLP一应俱全)...
  13. BUGKU 多次 手动注入+脚本盲注
  14. 聚类:Python遗传算法
  15. 使用CSF对kitti的点云数据过滤出地面点云,结合PCL使用,C++实现
  16. 查找国外硕士博士论文
  17. Android Activity 生命周期和重要的相关函数(基础一)
  18. yujin_ocs/yocs_velocity_smoother速度平滑velocity_smoother_nodelet源码解读
  19. 09 | I/O优化(上):开发工程师必备的I/O优化知识
  20. 模4补码(也称为变形补码)详解

热门文章

  1. OSPF地址汇总配置
  2. 对于一个IE8兼容性问题的反思
  3. 如何使用DNS反向映射来扫描IPv6地址?
  4. python的正则表达式 re
  5. Spock Primer 翻译
  6. 设置UILabel可变高度(根据文本内容自动适应高度)
  7. SUSE中LVM的使用心得
  8. 使用setsockopt()接口,设置TCP的接收与发送超时,Invalid argument错误问题
  9. 德鲁克的《卓有成效的管理者》
  10. 玩转C#控件-常用控件属性