【Linux】Linux内核编译与入门

★,°:.☆( ̄▽ ̄)/$:.°★
这篇文章主要介绍Linux内核编译。
学其所用,用其所学。——梁启超
欢迎来到我的博客,一起学习知识,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路

文章目录

    • :smirk:1. Linux内核介绍
    • :blush:2. Linux内核编译
    • :satisfied:3. Linux内核使用

1. Linux内核介绍

Linux内核是一种开源操作系统内核,它是基于Unix系列操作系统的设计思想和原则。与其他操作系统内核相比,Linux内核具有很多特点,例如高度可定制、模块化设计、强大的网络支持、多处理器支持、安全性、稳定性等。

Linux内核最初由芬兰程序员Linus Torvalds于1991年创建,并在全球范围内得到了广泛的使用和支持。现在,Linux内核已经成为许多流行的操作系统的核心,包括Ubuntu、Red Hat、Debian、CentOS等。

在Linux内核中,各种设备和功能都采用模块化设计,这使得内核可以灵活扩展,只需加载必要的模块即可实现所需功能。此外,Linux内核还支持多种文件系统和文件系统类型,例如ext4、xfs、btrfs、nfs等。

总体来说,Linux内核是一个高度可定制的、功能丰富的、稳定的操作系统内核,其开放源代码和广泛的社区支持使其成为开发者和用户的首选之一。

2. Linux内核编译

首先准备一台Linux机器,查看内核版本:uname -r

根据获取的linux kernel版本,在www.kernel.org上面下载合适的kernel版本。(如我的Ubuntu18.04内核版本是5.4.0,安装版本选择5.4.244)

【Linux】Linux内核编译与入门_第1张图片

解压后,将boot下config文件拷贝到本地:cp -v /boot/config-$(uname -r) .config

然后编辑.config文件:

vim .config
# 将该项原有内容删掉即可,如下
CONFIG_SYSTEM_TRUSTED_KEYS=""

输入make menuconfig 启动配置界面,小白直接保存即可;

安装依赖:

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison dwarves

开始编译内核:

# 根据机器选择核数 -j x
make -j 10	#(时间很长)
# 安装模块
sudo make modules_install
# 安装内核
sudo make install

完成后的结果如下(不容易呀):

然后重启电脑:

sudo update-grub
sudo reboot

如果出现error vmlinuz has invalid signature 【或者】 mmx64.efi not found这种错误,是因为bios开启了安全启动,去bios-secure boot,设置为disable(禁用安全模式)即可。

正常启动后,查看当前内核版本:uname -r

在这里插入图片描述

内核编译成功。

3. Linux内核使用

内核目录如下:

【Linux】Linux内核编译与入门_第2张图片

可以基于此学习Linux驱动开发、应用开发等,还可以在新内核的基础上进行裁剪等操作。

嵌入式Linux学习路线:

1.嵌入式开发基础知识:学习 C/C++ 编程语言、计算机体系结构、操作系统和嵌入式系统的基础概念。 Linux 系统管理员技能:熟悉
2.Linux 操作系统的基本命令行和文件系统,了解如何管理用户帐户和权限,如何安装软件包等。
3.嵌入式 Linux 知识:学习如何配置和定制Linux 内核、驱动程序和 bootloaders,以及嵌入式设备的文件系统和启动过程。
4.嵌入式开发板的选择和使用:学习如何选择适合您项目需求的嵌入式开发板,了解如何调试和测试硬件和软件。
5.特殊的应用场景:如实时操作系统、网络编程、多线程编程、图像处理等。 项目经验:完成一些小型嵌入式项目,如控制LED、读取传感器数据等,并逐步提高难度,最终达到完成完整项目的能力。

参考:

http://t.csdn.cn/7F656
https://zhuanlan.zhihu.com/p/378149586

在这里插入图片描述

以上。

你可能感兴趣的:(c++基础与应用,linux,内核)