Tôi đang cố gắng chạy một số thử nghiệm với Linux và tìm phân phối nhỏ nhất theo kích thước cài đặt. (RAM, CPU không thực sự quan trọng)
Tôi đang cố gắng chạy một số thử nghiệm với Linux và tìm phân phối nhỏ nhất theo kích thước cài đặt. (RAM, CPU không thực sự quan trọng)
Câu trả lời:
Cập nhật: ttylinux hiện không rõ ràng! Nếu bạn vẫn quan tâm bắt đầu ở đây hoặc ở đây .
Tùy thuộc vào nền tảng của bạn, ttylinux có thể là một cái gì đó cho bạn:
Hệ thống ttylinux nhỏ nhất này có hệ thống tệp 8 MB và chạy trên máy tính i486 trong 28 MB RAM, nhưng cung cấp môi trường dòng lệnh hoàn chỉnh và sẵn sàng truy cập Internet.
Bắt đầu vào năm 2001 và bản phát hành mới nhất là từ 2015 / 03-05 nên nó vẫn được duy trì.
OpenWrt cũng là một trong những nhỏ nhất.
Nếu bạn sẵn sàng trải qua quá trình biên dịch và cắt giảm các tính năng, bạn có thể thử buildroot . Tôi đã tạo một bản cài đặt Linux rất cơ bản (về cơ bản chỉ là kernel, các tiện ích Busybox tối thiểu và một ứng dụng bổ sung) phù hợp với hình ảnh ISO 6MB.
Chìa khóa ở đây là giảm cấu hình kernel và Busybox ("make linux-nconfig" và "make busybox-menuconfig") xuống mức tối thiểu bạn cần, sau đó kích hoạt nén XZ trên ramdisk kernel ban đầu. Việc cắt giảm mọi thứ tôi không cần cho phép tôi giảm toàn bộ hình ảnh ISO xuống còn khoảng 9MB và sau khi cho phép nén XZ xuống còn 6MB.
Đối với kernel, tôi chỉ kiểm tra từng tùy chọn trong menu cấu hình và tắt nó trừ khi tôi đặc biệt cần nó. Bạn có thể vô hiệu hóa tất cả các trình điều khiển mạng mà bạn không có bộ điều hợp mạng tương ứng, vô hiệu hóa phần cứng khác, ít phổ biến hơn mà bạn không thấy trước khi sử dụng (thẻ nối tiếp nhiều cổng, cần điều khiển, thiết bị đa chức năng ...) và như vậy trên. Bạn cũng có thể để nhiều hệ thống con trên các triển khai cơ bản thay vì các hệ thống phức tạp hơn (ví dụ: trạng thái nhàn rỗi CPU ACPI cơ bản thay vì trạng thái nhàn rỗi CPU Intel / AMD), điều đó có nghĩa là bạn sẽ đánh đổi hiệu quả năng lượng và hỗ trợ phần cứng đầy đủ cho kích thước hạt nhân. Bạn cũng có thể vô hiệu hóa toàn bộ hệ thống con như ngủ đông / hỗ trợ ngủ và hệ thống âm thanh nếu bạn không cần sử dụng chúng.
Bạn có thể tiết kiệm rất nhiều không gian bằng cách làm điều đó. Ví dụ, các mô-đun hỗ trợ KVM (ảo hóa) và btrfs (mà tôi đã quyết định đặt bên ngoài hạt nhân dưới dạng các mô-đun có thể tải trong trường hợp tôi sẽ cần chúng trong tương lai) tự chiếm 1,1 MB. Bằng cách xóa các tệp mô-đun, bạn có thể giảm xuống còn khoảng 4,9 MB. Có thể là chúng chiếm ít không gian tích hợp vào nhị phân hạt nhân, nhưng sau đó tôi đã thấy rằng các mô-đun nhỏ hơn khác có kích thước 20 - 100 kilobyte, do đó số dặm của bạn có thể thay đổi.
Busybox là một nhị phân duy nhất hoạt động như các nhị phân khác nhau tùy thuộc vào cách nó được gọi từ dòng lệnh, cho phép bạn tiết kiệm không gian. Nó được bao gồm trong Buildroot theo mặc định. Nó có thể hoạt động như ls, df, dd, cat, nc, bash và nhiều người khác. Nó trông giống như một sự thay thế tốt cho gần như toàn bộ vùng người dùng * nix, trừ khi bạn cần một số tiện ích mở rộng tiện ích cụ thể mà bạn chỉ có thể tìm thấy trong các phiên bản đầy đủ tính năng / truyền thống (ví dụ GNU, BSD) của các tiện ích này. Busybox tương tự như kernel về các tính năng vô hiệu hóa - vô hiệu hóa mọi thứ trừ các nhị phân (applet AKA) bạn cần, và kích thước sẽ được giảm xuống. Hệ thống nhị phân Busybox được biên dịch động, nó chiếm tới 512 kilobyte trong Buildroot và khoảng 2.1MB trên Ubuntu 14.10. Phiên bản Ubuntu lớn hơn hỗ trợ nhiều hơn phiên bản Buildroot của tôi và nó '
Bạn có thể thử một số điều dưới đây để giảm kích thước hơn nữa, nhưng hãy thường xuyên sao lưu thư mục làm việc vì bạn có thể phá vỡ cài đặt Buildroot mà bạn đang làm việc và có thể phải xây dựng lại một số nhị phân.
Nén tất cả các tệp thực thi (bao gồm cả kernel) bằng máy nén UPX. Vì UPX được thiết kế đặc biệt để thực hiện nén thực thi, điều này làm cho các kết quả thực thi nhỏ hơn nhiều. Nhưng hãy chắc chắn rằng bạn kiểm tra tất cả các thực thi sau đó và chúng hoạt động chính xác.
Sử dụng một libc khác nhau. Tôi đang sử dụng uClibc, nhưng tôi nghe nói rằng musl và dietlib nhỏ hơn nhiều và tạo ra các tệp thực thi nhỏ hơn. Tôi đã có một số vấn đề xây dựng với musl lần này, nhưng nó có thể hoạt động tốt hơn.
Thay thế một số hoặc tất cả các tiện ích người dùng bằng asmutils . Các tiện ích này triển khai một số tiện ích * nix phổ biến trong hội thuần túy (chứ không phải C hoặc các ngôn ngữ khác), về mặt lý thuyết cho phép mã nhỏ gọn hơn nhiều. Một số trong số chúng hoạt động tốt, nhưng một số chỉ có thể được sử dụng theo những cách rất cơ bản (ví dụ: "mount" chỉ lấy tham số theo một trình tự cụ thể và không có tùy chọn gắn cụ thể nào của FS được thực hiện). Mặt khác, chúng rất nhỏ (hầu hết được biên dịch dưới 1KB, nhỏ hơn khoảng 139 byte hoặc hơn). Bạn có thể chọn những cái bạn muốn sử dụng, vì vậy bạn chỉ có thể sử dụng những thay thế này cho các lệnh bạn muốn tiết kiệm dung lượng và giữ các phiên bản giàu tính năng hơn như các applet Busybox.
Tomsrtbt là một vài megabyte; nó phù hợp với một đĩa mềm.