Làm thế nào để tôi bắt đầu với việc xây dựng một hệ thống Linux từ đầu?


9

Tôi đã cố gắng tạo một hệ điều hành với kernel được xây dựng tùy chỉnh. Nó đã không làm việc quá tốt. Tôi đang sử dụng Ubuntu và đã tải xuống Linux 3.2.7 từ kernel.org. Tôi không cố gắng thay đổi kernel trong hệ thống Ubuntu của mình. Tôi muốn tạo hệ điều hành của riêng mình với Grub, nhân Linux và tôi muốn có hệ điều hành homebrew này trong một loại tệp (chẳng hạn như iso) mà tôi có thể đặt trên đĩa cd và khởi động trên máy tính khác. Câu hỏi của tôi là: chính xác những gì tôi cần để tạo ra hệ điều hành này? Bất kỳ ý kiến ​​hoặc hướng dẫn sẽ hữu ích.


1
Bạn có thể cấu hình grub để khởi động kernel Linux. Có nhiều nơi để tìm hiểu làm thế nào để làm điều đó; trong đó có thẩm quyền nhất sẽ là hướng dẫn chính thức ( gnu.org/software/grub/manual/grub.html ). Khi kernel khởi động, nó sẽ cố gắng khởi động một chương trình tại /sbin/init(trừ khi được cấu hình khác). Chương trình này có thể làm bất cứ điều gì bạn muốn. Có một số tùy chọn phổ biến để sử dụng /sbin/init, chẳng hạn như Upstart, sysvinit, systemd hoặc chỉ bash. Từ đó, chương trình đó được kiểm soát. Nếu nó thoát ra, kernel sẽ bị sập, vì vậy nó sẽ có khả năng bắt đầu các chương trình khác.
Shawn J. Goff

4
Trang web linuxfromscratch.org có nhiều thông tin để xây dựng bản phân phối linux của riêng bạn.
daniel kullmann

Câu trả lời:


15

Đây là những gì bạn đang tìm kiếm: http://www.linuxfromscratch.org/


2
Tôi đồng ý rằng đây là những gì anh ấy NÊN làm, và tôi đã cho nó +1. Tôi nghĩ những gì anh ấy thực sự muốn là các chi tiết về việc xây dựng lại thương hiệu Ubuntu kể từ khi nó được di chuyển từ Askubfox.
RobotHumans

Ngay cả khi bạn đang cố gắng làm điều gì đó hơi khác biệt, Linux From Scratch chắc chắn là nơi để bắt đầu.
Vernon

Nếu không có gì khác, LFS là một kinh nghiệm học tập tuyệt vời.
tshubitz

@tshubitz Tôi đã xem LFS nhưng nó không có ý nghĩa với tôi. Nó có phải là một hệ điều hành dựng sẵn? nó là một hướng dẫn để làm cho một hệ điều hành? Nó là gì?
Coder404

LFS là một hướng dẫn để tạo một hệ điều hành GNU / Linux từ đầu. Trang này từ trang LFS tổng hợp khá nhiều: linuxfromscratch.org/lfs
tshubitz

4

Một nơi để bắt đầu sẽ là Buildroot .

Nó là gì? Đó là một tập hợp các tập lệnh / tệp tạo tệp cho phép bạn tạo ra một hệ thống linux theo nghĩa đen từ đầu. Nó kéo xuống tất cả các thành phần có liên quan, xây dựng trình biên dịch chéo trên máy chủ. - khá nhiều thứ.

được thiết kế chủ yếu cho công việc nhúng - như vậy, nó chứa uclibc chứ không phải glibc và thiếu các bước xây dựng cho nhiều thành phần, ví dụ Gnome và một số môi trường máy tính để bàn - tuy nhiên, nếu bạn tạo CD trực tiếp thì nó hoàn toàn tuyệt vời. Không giới hạn ở đĩa CD trực tiếp, tất nhiên. Tôi nói vậy - nó đi kèm với Qt nhúng.

Phiên bản ổn định mới nhất đi kèm với grub 0.97 có thể không đáp ứng yêu cầu của bạn.

Tôi đề cập đến điều này bởi vì trong khi Linux From Scratch rất hay ở chỗ nó cho bạn biết cách hoàn thành toàn bộ quá trình, nó rất lâu, tốn thời gian và đòi hỏi nhiều sự kiên nhẫn. Buildroot có thể được điều chỉnh để bao gồm mọi thứ bạn cần; như một kinh nghiệm học tập, khả năng sử dụng các menuconfigmenu phong cách và nhận được một cái gì đó khởi động và làm việc là tuyệt vời. Bạn cũng có thể xem cách nó thực hiện mọi thứ trước khi thêm các tính năng sau này.

Về mặt cấu hình kernel của bạn, tôi không thể khuyên bạn nên lấy cấu hình hiện tại của bạn (thường có sẵn /boot), sao chép nó vào cây kernel khi .configchạy make oldconfigvà bước qua các tùy chọn mới. Các tùy chọn mặc định được đảm bảo khá nhiều để hoạt động từ bản phân phối của bạn; nếu bạn bắt đầu hoàn toàn từ đầu, bạn cũng có thể xây dựng một cái gì đó không sử dụng được.


3

Tối thiểu bạn cần là kernel và một số tiến trình bạn có thể chạy dưới dạng init, cùng với mọi trình nạp và thư viện cần thiết cho tiến trình init. Bạn khởi động kernel bảo nó chạy tiến trình init và nó đi từ đâu là doanh nghiệp của bạn.

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.