Linux文件系统
参考文献
微信阅读: Linux内核深度解析 https://weread.qq.com/web/reader/c06325c071ccfab5c069ddc
引导程序
我们知道,内存在掉电之后,再次上电,数据会清空.
所以我们上电之后要上将系统运行所需要的指令,数据重新加载到内存
这个加载操作就是引导程序做的事情
处理器上电以后,首先执行引导程序,引导程序把内核加载到内存,
然后执行内核
,内核初始化完成以后,启动用户空间的第一个进程。
基本常识
CPU架构通常分为几种主要类型,其中包括X86、ARM、RISC-V和MIPS等。
- X86架构:X86是一种复杂指令集计算机(CISC)架构,最初由Intel开发。它在个人电脑和服务器领域广泛应用,包括著名的Intel奔腾和酷睿处理器系列。
“x64”表示64位的CPU架构,而“based PC”表示基于这种架构的个人计算机。具体来说,x64是指x86架构的64位拓展,向后兼容于16位和32位的x86架构。这种架构最初由AMD设计,随后也被Intel采用,因此也称为“AMD64”或“Intel 64”。
- ARM架构:ARM是一种精简指令集计算机(RISC)架构,最初由英国的ARM Holdings开发。它在移动设备(如智能手机和平板电脑)和嵌入式系统中得到广泛应用,以其低功耗和高性能而闻名。
如何查看自己机器的CPU架构
- 在Linux系统中,可以使用以下命令查看当前系统的CPU架构:
uname -m
。如果输出结果为arm
,则表示当前系统的CPU架构为ARM;如果输出结果为x86_64
或i686
等,则表示当前系统的CPU架构为x86。- 在Windows系统中,可以通过系统信息或命令提示符来查看CPU架构。在命令提示符中输入
systeminfo
,然后找到处理器字段即可查看。另外,也可以在Windows搜索中输入关键字“CPU”,找到处理器信息的选择项,从而查看CPU架构。
初始化与默认
处理器在上电时自动把程序计数器设置为处理器厂商设计的某个固定值,对于ARM64处理器,这个固定值是0
。处理器的内存管理单元(Memory Management Unit, MMU)负责把虚拟地址转换为物理地址,ARM64处理器刚上电的时候没有开启内存管理单元
,物理地址和虚拟地址相同
,所以ARM64处理器到物理地址0取第一条指令
。
嵌入式设备的引导
我们知道,在个人电脑里面,实际上是通过BIOS芯片就进行引导的,但是在嵌入式设备中没有BIOS芯片
嵌入式设备通常使用NOR闪存作为只读存储器来存放引导程序
。NOR闪存的容量比较小,最小读写单位是字节
,程序可以直接在芯片内执行
。从物理地址0开始的一段物理地址
空间被分配给NOR闪存。
ARM64处理器到虚拟地址0取指令,就是到物理地址0取指令,也就是到NOR闪存的起始位置取指令
Linux文件系统
https://wainyz.online/wainyz/2024/04/17/Linux文件系统/