0
点赞
收藏
分享

微信扫一扫

Linux内核学习(一)编译内核并运行一个最小系统

南柯Taylor 2022-04-18 阅读 63
linux

目录

写在前面

之前做项目的时候,有前辈告诉自己,要去学一下Linux内核,对很多方面都有帮助,现在闲下来,来花时间学一下这一部分的知识点,也算是一个学习笔记
目前跟着B站UP主——简说linux 的教程《Linux内核开发100讲》学习,链接如下:
简说linux个人空间

整体环境

为了学习代码,我们需要一个一套Linux环境,因为为了方便自己记笔记和学习,没有用双系统,直接在windows10下面用VMware建了一个虚拟机进行试验。
UP主用的是在这里插入图片描述
但我图方便,之前装过18的虚拟机,不想装别的了,我直接用18.04跑的linux-4.9.229
由于虚拟机的配置的时候,遇到了许多问题,把这些博客都记录下来,超链接如下:便于以后自己解决问题(注:我的虚拟机安装的Ubuntu18.04的最省略的版本,即基本上没有任何函数包和其他文本、视频软件)

由于自己的Ubuntu基本上没有装库,所以还需要装几个后续在编译Linux内核中需要使用的库

sudo apt-get install libncurses5-dev #内核编译进行配置的一个文本窗口界面
sudo apt-get install build-essential #编译需要的重要函数库

学习笔记

内核源码文件夹介绍

进入Linux内核源码之后,会有很多文件夹,下面是目录对应的功能的大概了解
在这里插入图片描述
-arch 可以支持的CPU体系的相关的代码,内核移植基本上这个文件夹有关
|–x86 支持x86体系相关的代码
|—boot 启动相关的
|—net 网络相关的
-Documentation 开发中参考的第一手的资料文件
-init 内核启动及其初始化相关代码
-tools 内核的相关工具
-block 与块设备相关的代码
-drivers 内核对外设的支持,与驱动移植相关的代码
|–i2C… 对不同类型外设的驱动
-ipc 进程通信相关代码
-security 安全相关的代码
-net 协议相关的代码
-sound 声音相关代码
-fs 文件系统相关的代码
|–sysfs… 虚拟文件系统等
-kernel 内核核心相关代码,与内核进程 调用代码
-include 头文件相关代码
-mm 内存管理相关的代码

内核编译

了解完了基本的知识点之后,我们就开始编译一下我们自己的环境吧。
因为要学习Linux内核,你一定要让他跑起来。直接参考up主的教程
从源码编译linux-4.9内核并运行一个最小的busybox文件系统(最新整理版)
这里面还包含了一个busybox文件系统,这个文件系统里面有很多很实用的库,便于我们后续去使用

举报

相关推荐

0 条评论