我發現到有很多人的電腦裡只安裝了 Microsoft 的作業系統, 並且往往一安裝就是佔據了整個硬碟的儲存空間. 這造成如果有一天, 該名使用者突然想試試看 Linux 作業系統, 但又不想重新 fdisk, format 硬碟內的寶貴資料 (因為只是想試試看而已), 所以常常就這樣放棄了使用 Linux 的大好契機. 這對於推廣 Linux 的使用與佔有率有一定程度的影響, 所以我小小修改了 Linux kernel 的開機啟動流程, 使得這一經過修改的 Linux kernel 可以在不重新 fdisk, format 硬碟的情況下來使用 Linux. (i.e. 整顆硬碟都還是保持 Microsoft windows 作業系統), 經由特別為此 kernel 製作的 bootable 安裝光碟安裝完後, 可以經由硬碟 (i.e. 安裝完後就不再需要光碟了) 來啟動一個完整的 Linux 作業系統. 我所 focus 的 Linux kernel 版本編號為 2.2.16, 基本上, 2.2.x 的版本應該都可以使用, 2.0.x 或 2.4.x 就沒有試驗過了. 我所修改的效果為: 當 lilo (或其他可以達到 multiboot 效果的 boot loader) 啟動 Linux kernel 時, kernel 會去 "第一顆" 硬碟的 "第一個分割區" 內 (i.e. /dev/hda1) 的 root directory 尋找一個名為 linux 的檔案, (i.e. windows 系統下的 C:\linux) (i.e. 檔名全為小寫, 因為是寫死在 source code 內) 這個 C:\linux 檔案就是 Linux 系統的 root file system (可用 loopback device 製作出來), 當 kernel 找到 C:\linux 檔案後, 會自動將其 dump 到 ramdisk 內, 而後就以該存在 ramdisk 內的 root file system 來進行整個 Linux 系統的運作. 這樣作法的好處是, 縱使該名使用者因不熟悉 Linux 的使用而破壞了 root file system 的架構, 因其破壞的只是存在 memory 內的 root file syst...