| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 如何编译Linux内核源码? -> 正文阅读 |
|
[系统运维]如何编译Linux内核源码? |
前言
Linux用途广泛,包含的内容也琳琅满目。Linux系统的基础是内核、C库、工具集合系统的基本工具(如登录程序和Shell)。应用程序通过system call陷入内核,内核又通过驱动程序来与硬件交互。 应用程序、内核和硬件的关系 首先明确两点:
再明确内核文件的产物名称:
好了,明确了上述几点,就可以开始实验了。本文的实验环境如下:
1.下载并编译Linux内核https://www.kernel.org/ 下载并解压后,进入目录。 1.指定硬件体系架构 为了演示方便,选用了x86架构,如果编译arm则需要再下载对应的toolchain。
2.配置board config
3.配置内核 这一步其实是对第2步的进行微调,这里我们使用基于ncurse库编制的图形界面工具:
如果执行该命令时出现: 原因:缺少ncurses dev工具
如果需要内核支持ramdisk驱动,需要选中如下配置:
4.编译内核
编译成功后的内核位于:arch/x86_64/boot/bzImage 至此,内核编译完成。 2.编译busybox什么是busybox? busybox号称“嵌入式Linux的瑞士军刀”。BusyBox工具小巧高效,可以替代一大批常用的标准Linux命令行工具,功能有所简化,非常适合资源有限的嵌入式平台。BusyBox是模块化且高度可配置的,可以对其进行裁剪以满足特定需求。 在如下链接下载busybox: https://busybox.net/downloads/busybox.net/downloads/ 我们以busybox-1.30.0作为实验对象。 下载之后解压并进入该busybox目录开始配置并编译。这里把busybox配置为静态编译,这样不依赖其他动态库比较容易操作和演示。编译则似曾相识,与编译内核的指令是一样的!
配置完之后进行编译和安装
make是编译busybox,make install是为了在对应目录中编译安装一系列的工具。 编译完成后的busybox就安装在源码根目录下的_install目录了。 总结至此,我们对Linux内核和busybox进行了配置和编译。光编译肯定不过瘾,下一讲来演示如果基于busybox制作一个简单的文件系统,并通过qemu模拟器运行Linux,真正的让内核工作起来! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:48:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |