嵌入式linux(基于飞腾派)
首先看一下phytiumpi OS 的目录结构
ren@phytiumpi:/$ ls
bin boot data dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var
linux体系结构:
linux内核结构:
注意区分:
四.内核
强烈推荐去看“土豆西瓜大芝麻”《深度:一文看懂Linux内核!Linux内核架构和工作原理详解》一文,去了解内核的大体内容
4.1 内核查看
ren@phytiumpi:/$ uname -a
Linux phytiumpi 6.6.63-phytium-embedded-v3.1 #1 SMP PREEMPT Sun Mar 30 19:58:00 CST 2025 aarch64 GNU/Linux
PhytiumPi使用Linux 6.6.63-phytium-embedded-v3.1 内核(aarch64架构)
4.2 内核加载方式
ren@phytiumpi:/$ cat /proc/cmdline
console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;
说明没有独立/boot分区
4.3 内核主要目录:
arch:与cpu架构相关的文件,每个架构包含一个子目录
drivers:包含设备驱动程序
Documentation:包含内核说明文档
fs:文件系统相关程序
include:包含内核头文件,包括构建工具链所需文件
init:内核初始化代码
kernel:包含内核源代码,核心功能,包括调度,定时器,电源管理和调试/跟踪代码
mm:内存管理相关程序
net:包含网络协议
scripts:包含内核构建脚本
tools:包含工具
…
飞腾派linux内核源码clone
git clone https://gitee.com/phytium_embedded/phytium-linux-kernel.git
4.4 内核配置与编译
1.内核配置
Kconfig
2.内核编译
Kbuild
(现学习阶段不进一步深入,未来有时间会深入学习)
五.根文件系统
根文件系统:内核启动时加载的初始文件系统,用于引导用户空间程序
5.1 基本文件布局
/bin :包含一些基本的命令行工具
/dev:设备节点和其他特殊文件
/etc:系统配置文件
/lib:基本共享库
/proc:虚拟文件系统,提供内核和进程信息
/sbin:超级用户专用命令
/sys:虚拟文件系统,提供系统信息
/tmp:临时文件
/usr:用户级应用程序和文件
/var:可变数据,如日志和缓存
5.2 create根文件系统的必要要素
init:系统启动时执行的第一个进程,负责初始化系统
shell:用于交互式命令行操作
守护程序(daemon):为其他程序提供服务的后台程序,如系统日志守护进程(syslogd),安全shell守护进程(sshd)
共享库(shared library):用于支持程序
配置文件(configuration file):init和其他守护程序的配置文件
设备节点(device node):允许访问各种设备驱动程序的设备文件
proc,sys文件系统
kernel module:内核模块
…
后期会尝试制作根文件系统