什麼是最小的 Linux 實現?
什麼是 Linux 作業系統能夠正常執行的最低限度的組件,並且當我學習 Linux 以及我的理解和需求增長時,我可以將其用作擴展和改進的基礎?
如果您的意思是像了解原始碼一樣學習 Linux,那麼您可能想從頭開始嘗試 Linux
單個可執行 rootfs
/init
正如我在Single Application Linux |中所解釋的,絕對最小系統執行單個程序。超級使用者最小的 Linux 直播
https://github.com/ivandavidov/minimal
對於更有趣的互動系統,這是一個(主要是教育性的)小腳本,它:
- 下載核心和busybox的原始碼
- 編譯它們
- 用它們生成一個可引導的 8Mb ISO
ISO 然後將您留在帶有busybox 的最小外殼中。
使用 QEMU,您可以輕鬆啟動進入系統。
我已經修改它以允許從核心源目錄執行它:https ://github.com/cirosantilli/runlinux
用法:
git clone https://github.com/ivandavidov/minimal cd minimal/src ./build_minimal_linux_live.sh # Wait. # Install QEMU. # minimal_linux_live.iso was generated ./qemu64.sh
你將被留在一個 QEMU 視窗中,裡面有你新的最小系統。驚人的。
由於它很小,因此這是閱讀原始碼並了解正在發生的事情的好選擇。
在 Ubuntu 16.04 上測試。
建構根
大量 Makefile 腳本管理:
- GCC交叉編譯工具鏈
- 核心編譯
- 引導載入程序編譯
- rootfs的生成
- 在原始碼樹中有大量的包下載/建構配方,包括 GTK 等複雜的東西。有一個依賴系統。
最小的例子:
git clone git://git.buildroot.net/buildroot cd buildroot git checkout 2016.05 make qemu_x86_defconfig # Can't use -jN, use `BR2_JLEVEL=2` instead. BR2_JLEVEL=2 make # Wait. # cat board/qemu/x86_64/readme.txt qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user # You are now in a shell with BusyBox utilities.
它甚至還有從頭開始建構 X11 的秘訣:如何在我自己的 Linux Buildroot 系統上安裝 X11?
一些大企業使用的專業實戰測試的東西。
約克托
https://en.wikipedia.org/wiki/Yocto_Project
與 Buildroot 非常相似的目標,不確定權衡。快速瀏覽後,根據您想如何稱呼它,它感覺更臃腫/更有特色。他們的腳本可能有點理智。
尼克斯作業系統
另一個看起來很像 Buildroot,但這個確實有一個真正健全的包描述格式!它似乎還專注於支持同時安裝的多個版本的庫。
當我在 2020 年最後一次檢查時,交叉編譯 + 在 QEMU 上執行的能力非常棒,這是 Buildroot 的重點。但是,這仍然是一個非常有前途的項目。
高山 Linux
https://github.com/gliderlabs/docker-alpine
帶有包管理器的嵌入式發行版,可提供來自網站的預編譯二進製文件。
也可以看看