在看initramfs的东西的时候,牵涉到了initrd,于是看了下initrd的运作过程,中间便有linuxrc脚本的执行。于是一个在我心头很久的问题就诞生了。rc代表什么?bashrc,rc.d,rc.local都带有rc字样,一般都是启动时需要加载的,不知道这个'rc'是什么的缩写.......
google 了一下
结果1:
RC
中文释义:含有程序(应用程序甚至操作系统)启动指令的脚本文件
注 解:这一文件在操作系统启动时会自动执行,它含有要运行的指令(命令或其它脚本)列表
结果2:
RC是RunCom(run commands)的缩写
"rc" 是取自 "runcom", 来自麻省理工学院在 1965 年发展的 CTSS系统。相关文献曾记载这一段话: '具有从档案中取出一系列命令来执行的功能;这称为 "run commands" 又称为 "runcom",而这种档案又称为一个 runcom (a runcom)。
附上正在看的Linux kernel 2.4 中,initrd 大致的處理流程:
- [boot loader] Boot loader 依據預先設定的條件,將 kernel 與 initrd 這兩個 image 載入到 RAM
- [boot loader -> kernel] 完成必要的動作後,準備將執行權交給 Linux kernel
- [kernel] 進行一系列初始化動作,initrd 所在的記憶體被 kernel 對應為 /dev/initrd 裝置設備,透過 kernel 內部的 decompressor (gzip 解壓縮) 解開該內容並複製到 /dev/ram0 裝置設備上
- [kernel] Linux 以 R/W (可讀寫) 模式將 /dev/ram0 掛載為暫時性的 rootfs
- [kernel-space -> user-space] kernel 準備執行 /dev/ram0 上的 /linuxrc 程式,並切換執行流程
- [user space] /linuxrc 與相關的程式處理特定的操作,比方說準備掛載 rootfs 等
- [user-space -> kernel-space] /linuxrc 執行即將完畢,執行權轉交給 kernel
- [kernel] Linux 掛載真正的 rootfs 並執行 /sbin/init 程式
- [user space] 依據 Linux distribution 規範的流程,執行各式系統與應用程式
参考:
initramfs, a new model for initial RAM