9.4、系统移植 -- 文件系统
程序员文章站
2022-05-22 18:58:22
...
-
文件系统:
是一种最原始的界面:最初 用户都是操作文件系统来实现自己的功能,包括 放歌 看电影 娱乐因为在linux世界,一切皆文件. linux把所有的硬件都抽象为 对文件的读写 。 -
内容:
命令 配置文件 库文件 普通文件 -
目录结构:
bin-存放系统命令
sbin-存放命令的
etc-存放系统配置文件
tmp 临时文件
var: variable 可变的, 日志
lib :库文件
mnt : 系统推荐的挂载点
usr: 存放你的 代码 文档 等等.....
bin: 存放命令的
sbin: 存放命令的
内存[RAM]文件系统: 断电丢失 访问速度快
dev: 里面是 所有设备的文件,这些设备 文件不需要保存, 而且需要很快的访问速度
proc: 通过proc我们可以获取内核的 大量信息
cmdline,记录 bootargs的参数
cpuinfo 记录cpu的信息
interrupts 内核中断发生情况
meminfo 内存的信息,
stat: 系统信息
version: 内核版本信息
device-tree 记录了设备树中,所有的节点
数字: 是每一个进程的信息
sys:设备驱动专用的
很多命令,ps top ifconfig uname 等都是 基于proc文件系统实现的 这些命令只是简单 读取里面的 各个文件,分析 显示 结束.
- 如何开机启动:
内核启动过程:
1.汇编:arch/arm/kernel/head.S ,修改cpsr指针,进入svc模式,关闭所有中断,得到cpu id,判断cpu合法性
bl __vet_atags :检查设备树的合法性
bl __create_page_tables :创建页表, RAM初始化
bl __mmap_switched : b start_kernel:这是kernel C语言的 第一个 函数
2.C: start_kernel: 关中断,
setup_arch, 进入arch/arm/mach-xxxx 初始化具体的 某款cpu
mm_init(); 内存管理初始化
sched_init(); 进程调度初始化
init_IRQ(); 外部中断初始化
init_timers(); 硬件定时器初始化
console_init(); 终端初始化
fork_init(); 进程初始化
rest_init();
1.启动内核第一个线程 kernel_init
内核线程init 执行exec(/linuxrc),将自己牺牲,替换为 用户的程序/linuxrc
/linuxrc使用户的 第一个进程所有的用户进程都是 /linuxrc的子进程 linuxrc 去解析一个配置文件:/etc/inittab
#this is run first except when booting in single-user mode.
::sysinit:/etc/init.d/rcS 描述了系统初始化的时候,执行 /etc/init.d/rcS
RCS里面记录了 开机要执行的动作
# /bin/sh invocations on selected ttys
# Start an "askfirst" shell on the console (whatever that may be)
::respawn:-/bin/sh
# Stuff to do when restarting the init process
::restart:/sbin/init
# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
2.启动内核的第二个线程 kthreadd
kernel thread domain(守护,内核的守护 进程)
3.当前执行体进化为 一个 空闲进程idle
当cpu忙完所有工作,没有任务可以出,就去执行空闲进程.
telnet: 远程登录程序,见附件
- 嵌入式上文件系统格式:
文件系统,有不同的格式U盘 最常见的fs 是 fat32 文件最大2GB ,fat16 电脑 NTFS 2TB linux ext2 ext3 ext4[最常见] ext5[最新的]
嵌入式:
jiffs2 主要针对nor flash, 也兼容nand flash(效果不好)
yaffs2 只用于nand flash
ext2 不是很常用
nor flash: 70年代,intel,nor flash模仿ram制作,所以 线多[地址线 数据线],体积大,容量小 工艺要求高,贵, 安全性高
nand flash: 比较晚, 针对nor flash缺陷改进.只有8根线,数据和地址共用这8根线, 体积小,容量大, 工艺低,成本低,安全性低 。 nand flash,有一套安全校验机制,可以保证数据 大部分可以恢复.