Việc triển khai Linux nhỏ nhất có thể là gì? [đóng cửa]


21

Các thành phần tối thiểu để hệ điều hành Linux hoạt động là gì và tôi có thể sử dụng làm cơ sở để mở rộng và cải thiện khi tôi học Linux và sự hiểu biết và nhu cầu của tôi tăng lên?

Câu trả lời:



9

Nếu bạn đang muốn tìm hiểu, Gentoo là một lựa chọn tốt - cài đặt Gentoo tối thiểu là trình bao gốc và trình quản lý gói và bạn xây dựng phần còn lại của hệ thống của mình từ đó. Gentoo cũng khá gần với việc ngược dòng trên các gói, vì vậy bạn sẽ không gặp quá nhiều vấn đề nếu bạn muốn tự tải xuống và xây dựng một số gói (và trên thực tế, bạn có thể thêm chúng vào tệp /etc/portage/package.provided sau khi chúng được cài đặt và sử dụng chúng làm phần phụ thuộc!)

Nếu bạn đang tìm kiếm hệ thống Linux nhỏ nhất có thể, thì hãy xây dựng kernel của riêng bạn, loại bỏ tất cả các trình điều khiển và các tính năng mà bạn không định sử dụng, sau đó thêm một initramfs chứa bản dựng Busybox được thu nhỏ tương tự. Kết quả là một hệ thống Linux có khả năng khởi động hoàn toàn trong một tệp thực thi duy nhất (mà bạn có thể trỏ bộ tải khởi động của mình vào) và bạn có thể điều chỉnh dưới 10 MB mà không cần thử.


Para cuối cùng của bạn - Tôi nghĩ rằng đó sẽ là một nơi tốt để bắt đầu. Sau đó, tôi sẽ biết những gì ở đó và tại sao nó ở đó, sử dụng nó làm cơ sở để phát triển.
slashmais

10 MB? Bạn có thể có thể làm điều đó dưới 1MB
Falmarri

8

Archlinux sử dụng một nhóm các tệp cơ sở để cài đặt rất tối thiểu.

Cùng với một nhóm phát triển cơ sở , nếu bạn sắp thực hiện bất kỳ phát triển hệ thống nào.


3
Theo đúng hướng, vẫn bao gồm rất nhiều gói, nhưng tôi có thể sử dụng những gì họ cung cấp & cắt gói cho đến khi mọi thứ bị phá vỡ.
slashmais

Arch install đã trở nên mô-đun hơn rất nhiều so với năm 2010 - nói từ bộ nhớ / không cần cài đặt mới, tiện ích 'pacstrap' cung cấp cho bạn tùy chọn nhóm nào sẽ sử dụng, bao gồm cả 'cơ sở' hoặc thậm chí không có gì cả (mặc dù Tôi nghĩ rằng cơ sở chứa các công cụ hệ thống). Nếu bạn muốn đi sâu hơn một bước nhưng vẫn có một bản phân phối ít được sử dụng một cách mơ hồ, Slackware có lẽ là một.
djvs

Arch install ít mô-đun hơn trước vì chúng chỉ hỗ trợ chính thức am64 arch, systemd-only cho init, v.v. Tuy nhiên, tôi cũng muốn giới thiệu Slackware.
Lucas Ramage

8

Nếu bạn thực sự muốn chỉ ở mức tối thiểu của hệ thống Linux, bạn có thể thử phân phối cho các hệ thống nhúng như bộ định tuyến. Chúng thường chỉ mang tối thiểu tuyệt đối phần mềm và thiếu giao diện người dùng đồ họa phổ biến buộc bạn phải làm quen với dòng lệnh. Một nhược điểm là, thường các hệ thống đó phá vỡ các quy ước của các bản phân phối Linux thông thường, ví dụ: chúng cài đặt phần mềm ở những nơi không phổ biến hoặc sử dụng các hệ thống init đơn giản hóa.

Nếu bạn muốn cho nó một shot, bạn có thể thử, ví dụ như openwrt trong một máy ảo .


Tôi có thể sử dụng OpenWrt để tham khảo; Tôi sẽ rất vui nếu bạn có thể chỉ ra các trang web khác như vậy. Đã sử dụng VirtualBox và họ có một hướng dẫn phù hợp để cài đặt OpenWrt trong đó.
slashmais

Có thể nhúng Debian: emdebian.org
fschmitt


8

Rootfs thực thi duy nhất

Hệ thống tối thiểu tuyệt đối chạy một /initchương trình như tôi đã giải thích tại Single Application Linux | Siêu người dùng

Tối thiểu Linux Live

https://github.com/ivandavidov/minimal

Đối với một hệ thống tương tác thú vị hơn, đây là một kịch bản nhỏ (chủ yếu là giáo dục):

  • tải nguồn cho kernel và busybox
  • biên dịch chúng
  • tạo ra ISO 8Mb có thể khởi động cùng với chúng

ISO sau đó để bạn trong một vỏ tối thiểu với busybox.

Với QEMU bạn có thể dễ dàng khởi động vào hệ thống.

Tôi đã sửa đổi nó để cho phép chạy nó từ thư mục nguồn kernel: https://github.com/cirosantilli/runlinux

Sử dụng:

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

và bạn sẽ được để lại bên trong Cửa sổ QEMU cùng với hệ thống tối thiểu mới. Tuyệt vời.

Vì nó nhỏ, đây là một lựa chọn tốt để đọc nguồn và hiểu những gì đang xảy ra.

Đã thử nghiệm trên Ubuntu 16.04.

Xây dựng

https://buildroot.org/

Tập hợp lớn các tập lệnh Makefile quản lý:

  • Công cụ biên dịch chéo GCC
  • biên dịch kernel
  • trình biên dịch bootloader
  • thế hệ rootfs
  • có hàng tấn công thức tải xuống / xây dựng gói trong cây nguồn, bao gồm những thứ phức tạp như GTK. Có một hệ thống phụ thuộc.

Ví dụ tối thiểu:

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.

Nó thậm chí còn có các công thức để xây dựng X11 từ đầu: Làm cách nào để cài đặt X11 trên hệ thống Linux Buildroot của riêng tôi?

Công cụ thử nghiệm trận chiến chuyên nghiệp được sử dụng bởi một số doanh nghiệp lớn.

Núi cao Linux

https://github.com/gliderlabs/docker-alpine

Phân phối nhúng với trình quản lý gói cung cấp các tệp nhị phân được biên dịch sẵn từ một trang web.

Xem thêm


1
Cuối cùng tôi đã đi theo con đường LFS. Ghi chú về điều này & sẽ khám phá nó sớm
slashmais

6

Làm thế nào mà không ai đã đề cập đến tomsrtbt ? (Linux trên đĩa mềm 1,44 ")


âm thanh về phải - liên kết?
slashmais

đừng lo lắng - đã tìm thấy nó
slashmais

4
Ai vẫn có một ổ đĩa mềm những ngày này? ;)
p-static

1
Tôi đang nhìn vào một cái ngay bây giờ. Nhưng tôi chỉ sử dụng nó một lần trong những năm tôi có PC.
lamcro

3
@ p-static: Tôi đang sử dụng một hộp cũ làm máy chủ in - nó vẫn có ổ đĩa mềm 8 1/4 inch & tôi vừa thử nó với đĩa mềm 20 năm tuổi - thật đáng ngạc nhiên là đĩa mềm vẫn ổn! với dữ liệu chưa được xử lý trên chúng (mã turbo pascal v3 từ ngày sinh viên).
slashmais

4

Bạn có thể thử Slackware linux. Cài đặt dựa trên menu sẽ cho phép bạn cài đặt một hệ thống tối thiểu. Bạn có thể dễ dàng rời khỏi các trang man, X11, Tcl, Emacs và đó chỉ là từ bản cài đặt cấp cao nhất. Bạn có thể đi sâu vào cài đặt và chỉ cài đặt tối thiểu các gói.

Sau đó, tôi sẽ biên dịch lại kernel riêng cho máy bạn đã cài đặt.

Slackware vẫn mặc định cho trình quản lý khởi động Lilo, vì vậy cuối cùng bạn sẽ biết nhiều hơn một chút so với những gì bạn muốn biết về các thành phần khởi động, phân vùng nào được đánh dấu là có khả năng khởi động, những gì initrd của bạn chứa, v.v.


3

Đối với tôi, Damn Small Linux có tên là "bản phân phối Linux nhỏ nhất có thể"! Tuy nhiên tôi nghe nói rằng đó là loại ngưng. Bạn cũng có thể thấy một danh sách các bản phân phối tương tự (được gọi là "Mini Linux") trên trang wiki này .

Nếu không gian không phải là mục đích của bạn, tôi sẽ đề xuất Gentoo hoặc Arch Linux , cả hai đều cài đặt một hệ thống cơ bản. Bạn chọn những gì để sử dụng và cài đặt các gói khi nhu cầu của bạn tăng lên.


Không phải không gian - học Linux. Tôi đã xem xét hầu hết những thứ đó, cũng như LFS, nhưng LFS làm cho bạn làm / thêm công cụ với, cảm thấy, không đủ giải thích.
slashmais

3
Nếu bạn muốn học, Archlinux thực sự tốt. Các Arch WikiALOT của thông tin rõ ràng, hữu ích.
Stefan

có vẻ như tôi đã chuyển mục tiêu sau khi bạn bắn phát súng của mình, xin lỗi: o
slashmais

2

Những gì bạn cần làm là tải xuống kernel mới nhất từ ​​kernel.org, thực hiện make menuconfigvà chỉ xem qua các tùy chọn và sử dụng nó làm điểm khởi đầu cho nghiên cứu và điều tra. Bạn sẽ học được rất nhiều.


"Thời gian là kẻ thù của tôi." - không thực sự, nhưng tôi chắc chắn sẽ xem xét đề xuất của bạn.
slashmais

0

Bạn có thể nhìn vào Puppy Linux . Nó có thể không phải là nhỏ nhất nhưng nó có một sự phản đối là nhỏ.

Tuy nhiên, Linux distrtos có nghĩa là nhỏ thường có xu hướng nhỏ. Đối với việc học linux, tôi sẽ là một debian sống ở đâu đó. .Tôi sẽ nhận được các nguồn kernel debian, các nguồn bash và các nguồn grub biên dịch chéo và cài đặt. Sau đó, biên dịch chéo cài đặt một trình soạn thảo, apt và gcc. Sau đó tạo một danh sách các gói từ debian live. Cài đặt nguồn cho mỗi gói, biên dịch và cài đặt. Sau đó thêm X rồi Wm bạn chọn thì bạn có cơ sở cho những gì bạn muốn làm.

PS: apt-get source giúp bạn lấy nguồn cho gói debian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.