Làm thế nào một hệ điều hành Linux có thể là hệ điều hành dựa trên nền tảng hệ điều hành Linux khác?


38

Gần đây tôi đã xem qua một số bản phân phối Linux để có ý tưởng về những gì xung quanh và một cụm từ tiếp tục được đưa ra là "[HĐH này] dựa trên [HĐH khác]". Ví dụ:

  • Fedora dựa trên Red Hat
  • Ubuntu dựa trên Debian
  • Linux Mint dựa trên Ubuntu

Đối với một người đến từ môi trường Mac, tôi hiểu "OS X dựa trên Darwin" như thế nào, tuy nhiên khi tôi xem Linux Distros, tôi thấy mình tự hỏi "Không phải tất cả đều dựa trên Linux ..?"

Trong bối cảnh này, chính xác thì nó có ý nghĩa gì đối với một HĐH Linux dựa trên một HĐH Linux khác?


17
và Darwin dựa trên BSD. Bạn có thể ném HĐH NeXT vào hai mạng đó ...: D
Keltari

12
"Red Hat dựa trên Fedora", điều đó khá không chính xác. Giống như Fedora là bản thử nghiệm beta cho các yếu tố sau này được sử dụng trong RedHat.
vartec

Về cơ bản bạn hãy phân bố thành phần cốt lõi, thay đổi những gì bạn muốn, (phần mềm, logo, tên, bất cứ điều gì ...) và bây giờ bạn bạn có một "hương vị", hoặc phân phối dựa trên "distro" khác
TheXed

2
Cách đơn giản nhất là bạn lấy bản phân phối Linux chính xác mà bạn thích và thay đổi một dòng, ở đâu đó, có thể /etc/motd, và voila, bạn có Bản phân phối Linux mới của riêng bạn. Làm thế nào một hệ điều hành Linux KHÔNG thể dựa trên một hệ điều hành hiện có. Đó là câu hỏi khó hơn.
Warren P

4
Tôi nghĩ rằng câu trả lời của bạn đã được trả lời. Tuy nhiên, đây là một đại diện đồ họa đẹp về lịch sử của tất cả các bản phân phối Linux xung quanh: upload.wik hè.org / wikipedia / commons / 1 / 1b / Kẻ
Dohn Joe

Câu trả lời:


59

Linux là một hạt nhân , Debian là một bản phân phối của hạt nhân đó và một loạt phần mềm để thực sự tương tác với hệ thống.

Bây giờ tôi có thể lấy Debian và thay đổi logo trên màn hình khởi động thành logo của riêng tôi và sau đó bản phân phối của tôi dựa trên Debian (theo cách rất nguyên thủy). Thông thường, các điều chỉnh được thực hiện trong phân phối dẫn xuất là đáng kể hơn.

Vấn đề là, nếu bạn muốn thay đổi một cái gì đó về một bản phân phối, thì bạn chỉ cần lấy cái đó, sửa đổi nó theo ý thích của bạn và sau đó xuất bản bản phân phối của riêng bạn, dựa trên bản phân phối hiện có (miễn là tất cả các giấy phép đều được tôn trọng).


10
Chính xác, nhưng có lẽ quá đơn giản?
Austin T Pháp

... Tất nhiên trong thực tế, phân phối dẫn xuất tạo ra một số thay đổi quan trọng cho người dùng, thường là trong khu vực cụ thể. Ví dụ Ubuntu tập trung vào việc đánh bóng môi trường máy tính để bàn. Nhưng hầu hết các gói trong Ubuntu chỉ được sao chép từ Debian.
Jan Hudec

2
@AthomSfere: Xin lỗi, tôi đã nghe điện thoại khi viết bài. Tôi sẽ cải thiện nó ngay bây giờ, nhưng có vẻ như các câu trả lời khác có tất cả các chi tiết được đề cập.
Der Hochstapler

8
@OliverSalzburg Bạn đã nghe điện thoại? Bạn rất nghiện :-D
Luc M

9
@AthomSfere KISS cũng có thể được áp dụng cho câu trả lời!
jsedano

32

Linux là một hạt nhân - một phần mềm (phức tạp) hoạt động với phần cứng và xuất một Giao diện lập trình ứng dụng (API) nhất định và các quy ước nhị phân về cách sử dụng chính xác (Giao diện nhị phân ứng dụng, ABI) có sẵn cho "người dùng- không gian "ứng dụng.

Debian , RedHat và các hệ điều hành khác là các hệ điều hành - môi trường phần mềm hoàn chỉnh bao gồm kernel và một bộ chương trình không gian người dùng giúp máy tính trở nên hữu ích khi chúng thực hiện các tác vụ hợp lý (gửi / nhận thư, cho phép bạn duyệt Internet, lái xe robot v.v.).

Bây giờ mỗi hệ điều hành như vậy, trong khi cung cấp hầu hết cùng một phần mềm ( chẳng hạn như có quá nhiều chương trình máy chủ thư miễn phí hoặc trình duyệt Internet hoặc môi trường máy tính để bàn) khác nhau về cách tiếp cận để thực hiện điều này và cả trong các mục tiêu đã nêu và chu kỳ phát hành.

Thông thường, các hệ điều hành này được gọi là "phân phối". IMO, một thuật ngữ hơi sai xuất phát từ thực tế là bạn có thể tự mình xây dựng tất cả các phần mềm cần thiết và cài đặt nó trên máy đích, vì vậy các HĐH này phân phối phần mềm đóng gói để bạn không cần phải xây dựng nó (Debian, RedHat) hoặc chúng tạo điều kiện cho tòa nhà đó (Gentoo). Họ cũng thường cung cấp một trình cài đặt giúp cài đặt HĐH lên máy đích.

Tạo và hỗ trợ HĐH là một công việc rất phức tạp đòi hỏi cơ sở hạ tầng phức tạp và phức tạp (tải lên hàng đợi, xây dựng máy chủ, theo dõi lỗi và lưu trữ máy chủ, phần mềm danh sách gửi thư, v.v.) và nhân viên. Điều này rõ ràng làm tăng một rào cản lớn cho việc tạo ra một hệ điều hành mới, từ đầu. Chẳng hạn, Debian cung cấp ca. Gói 37k cho một số năm kiến ​​trúc phần cứng - hãy tính xem có bao nhiêu công việc được đưa vào để hỗ trợ công cụ này.

Tuy nhiên, nếu ai đó nghĩ rằng họ cần tạo ra một hệ điều hành mới vì bất kỳ lý do gì, thì có thể nên sử dụng một nền tảng hiện có để xây dựng. Và đây chính xác là nơi các HĐH dựa trên các HĐH khác ra đời. Chẳng hạn, Ubuntu xây dựng trên Debian bằng cách chỉ nhập hầu hết các gói từ nó và chỉ đóng gói lại một tập hợp con nhỏ của chúng, cộng với việc đóng gói riêng, cung cấp tác phẩm nghệ thuật, cài đặt mặc định, tài liệu của riêng chúng, v.v.

Lưu ý rằng có những biến thể cho điều "dựa trên" này. Chẳng hạn, Debian thúc đẩy việc tạo ra "hỗn hợp thuần túy" của chính nó: các bản phân phối sử dụng Debian thay vì trực tiếp và chỉ thêm một loạt các gói và các thứ khác chỉ hữu ích cho các nhóm người dùng khá nhỏ như những người làm việc trong giáo dục hoặc y học hoặc âm nhạc công nghiệp vv

Một vấn đề khác là không phải tất cả các HĐH này đều dựa trên Linux. Chẳng hạn, Debian cũng cung cấp hạt nhân FreeBSD và Hurd. Họ có các nhóm người dùng khá nhỏ nhưng dù sao đi nữa.


8

Red Hat, Debian, v.v. đều là các bản phân phối ("distro") của Linux.

Hãy nhớ rằng Linux về mặt kỹ thuật chỉ là hạt nhân, là một phần duy nhất của một hệ thống hoạt động và hữu ích.

Bạn sẽ cần các tiện ích cơ bản, các quyết định liên quan đến nơi mọi thứ sống trong hệ thống, cơ chế cài đặt và cập nhật phần mềm và các quy ước / tiêu chuẩn (chẳng hạn như thư mục nơi các chương trình đi) để gắn kết điều này với nhau.

Hầu hết các phiên bản GNU của các tiện ích cổ điển thường được coi là cơ bản bởi nhiều bản phân phối và do đó, tại sao Debian, ví dụ, gọi nó là GNU / Linux. Với tất cả mọi thứ khác, có rất nhiều sự lựa chọn. Và vì Linux, các tiện ích GNU và nhiều thứ chạy trên Linux là phần mềm miễn phí, bất kỳ ai cũng có thể tạo một bản phân phối mới bất cứ lúc nào họ muốn. Bao gồm xuất phát từ một bản phân phối hiện có nếu bản phân phối đó không bao gồm bất cứ thứ gì có bản quyền hoặc quyền sở hữu.

Hình ảnh và logo thường là thứ được đăng ký nhãn hiệu / bản quyền và thường không thể được sử dụng trực tiếp trong một bản phân phối phái sinh trừ khi bạn tuân theo các điều khoản và điều kiện của bất cứ ai sở hữu nó. Phần mềm tương tự thường có thể là nếu nó được cấp phép GPL hoặc GPL.

Một điều quan trọng thường được phân phối cụ thể là trình quản lý gói hoặc phương pháp mà phần mềm được duy trì, kiểm tra và phân phối. Các bản phân phối có nguồn gốc thường tương thích với các trình quản lý gói "ngược dòng" của chúng. Dù vậy, không có gì ngăn cản bạn cài đặt chương trình thủ công trên bất kỳ bản phân phối Linux nào.

Thông thường, điều này có nghĩa là bạn sẽ cài đặt phần mềm theo cùng một cách sử dụng cùng một trình quản lý gói và vị trí của các tệp thực thi và tệp cấu hình sẽ ở cùng một nơi.


7

Với Linux, có các bản phân phối hoặc bản phân phối. Nghĩa đen là hàng trăm người trong số họ.

Linux là nguồn mở, vì vậy bất kỳ ai (hoặc bất kỳ nhóm hoặc công ty nào) đều có thể sửa đổi bất kỳ phần nào của HĐH mà họ muốn. Đây là lý do tại sao một số phiên bản có trình cài đặt khác nhau ( .debso với RPM hoặc chỉ tar) và các lệnh khác nhau ( apt-getso với yum).

Hầu hết các distro chọn sử dụng mục tiêu hoặc sử dụng cụ thể và sắp xếp phát triển xung quanh đó.

Ví dụ Redhat và người thân của nó được định hướng máy chủ. Hầu hết các hệ điều hành được thiết kế xung quanh là ổn định hoặc nhanh chóng.

Debian có nghĩa là dễ sử dụng hơn, vì vậy nó hỗ trợ .debcác tệp là các gói cài đặt dễ dàng.

Ubuntu đã lấy cơ sở Debian và thêm mã và các gói để làm cho nó trở thành một bản phân phối Linux đầu tiên tốt.

Mint sau đó đã đi và tước một số mã Ubuntu để tạo ra một hệ điều hành nhanh hơn tương tự như Ubuntu nhưng cũng giống với máy tính để bàn truyền thống hơn khi Ubuntu thay đổi trình quản lý máy tính để bàn thành Unity.

Dưới đây là một cây gia đình GNU / Linux chi tiết: http://upload.wikidia.org/wikipedia/commons/9/9a/Gldt1009.svg


1
AFAIK, sudođược sử dụng ở mọi nơi. yumTương đương là apt-gethoặcaptitude
Izkata

1
@Izkata Vâng, xin lỗi. Đã được một lúc và cà phê đã yếu vào sáng nay;)
Austin T French

1
Bạn đang nhầm lẫn kernel (Linux) với phần còn lại của phần mềm được tổng hợp trong các bản phân phối.
Matteo Italia

2

Mở rộng về các câu trả lời trên. Linux chỉ là hạt nhân, hầu hết các lệnh cấp hệ thống (gcc, grep, bison) ban đầu được viết bởi dự án GNU, hầu hết các ứng dụng cấp người dùng (XFCE, Apache, XMMS) được viết bởi các bên thứ ba.

Khi phân phối thường được tạo trong những ngày đầu, kernel được gói cùng với các lệnh cấp hệ thống và một tập hợp con của các ứng dụng người dùng và các thành phần máy chủ. Điều này vẫn đúng cho đến ngày nay nhưng nhiều bản phân phối mới không muốn lặp lại nỗ lực để mọi thứ cùng chơi tốt để họ có một bản phân phối cơ bản như Debian, CentOS, Slackware và thêm hoặc trừ các ứng dụng người dùng như Gnome, KDE , LXDE, v.v. Họ cũng có thể viết các menu tùy chỉnh và đưa logo và hình nền của riêng họ vào bản phân phối (SUSE, PCLinux, v.v.). Họ có thể đi xa hơn và tạo các ứng dụng cụ thể phân phối như trình quản lý gói hoặc giao diện người dùng tùy chỉnh.

Vì vậy, khi bạn nói ví dụ Ubuntu dựa trên Debian, bạn đúng về mặt kỹ thuật nhưng ngày nay sẽ tốt hơn để nói, đặc biệt là trong trường hợp của Ubuntu, nó có nguồn gốc từ Debian vì những thay đổi đối với Debian có thể hoặc không thể tìm thấy Ubuntu.

Điều này sẽ giúp hình dung những gì tôi đang nói về một chút, nó cho thấy một số bản phân phối được thiết lập đã được rẽ nhánh vào những người khác. Trong khi không chính xác 100%, nó đưa ra một ý tưởng.

http://photos1.blogger.com/blogger/3370/2500/1600/GNULinuxupdatedw4.0.jpg

Hình ảnh này chính xác 100% theo hiểu biết của tôi và là dòng thời gian của tất cả các bản phân phối linux và cho thấy chúng đến từ đâu. Ngày nay, chỉ có một số phân phối rất nhỏ, dưới sáu, có thể theo dõi nguồn gốc của chúng trở lại từ đầu. Theo bản đồ này, chỉ có 2, Redhat và Debian, thậm chí cả Slackware yêu quý của tôi cũng không phải là bản gốc.

http://www.techjini.com/blog/wp-content/uploads/2011/10/linuxdistrotimeline-7.2.png


1

Mac OS X dựa trên Darwin theo nghĩa là nó chạy trên đỉnh Darwin. Nó có một sự phụ thuộc thời gian vào Darwin, có thể nói như vậy.

Ubuntu dựa trên Debian theo nghĩa đó là một tác phẩm phái sinh.

Nếu bạn lấy gói và hệ thống xây dựng của Debian, các gói và tập lệnh của Debian và không có gì, và tạo bản phân phối của riêng bạn tương tự như Debian, thì bạn có thứ gì đó dựa trên Debian.

Người dùng hệ thống của bạn sẽ tìm thấy sự tương đồng lớn với Debian (ví dụ: cách hệ thống cài đặt, cách các gói được cập nhật hoặc cách cấu hình hệ thống được định hình bên dưới /etc).

Debian cũng dựa trên Debian: bản phát hành mới nhất Debian dựa trên bản phát hành Debian trước đó.


0

Linux chỉ là phần cốt lõi cho phép bạn truy cập vào phần cứng của máy tính. Lớp dựa trên đó thường là Thư viện GNU C, trên đó được xếp lớp tất cả các lệnh và phần mềm bạn đã sử dụng (bao gồm mọi giao diện người dùng đồ họa).

Điều gì xảy ra trong một thế giới nơi một phần mềm không bị khóa bởi một số công ty, các nhóm khác nhau tập hợp một bộ phần mềm khác nhau dựa trên hai thành phần chính: nhân Linux và Thư viện GNU C. Hai cái đó được tìm thấy khá nhiều trong mọi hệ thống.

Thông thường, chúng tôi gọi tất cả các hệ điều hành này là "Linux" hoặc "dựa trên Linux" và chúng đều rất giống nhau do thỏa thuận về các tiêu chuẩn khác nhau.

Mặt khác, nhân Darwin của OS X thực sự được phát triển từ BSD (cũ hơn Linux).

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.