ความแตกต่างระหว่าง Unix, Linux, BSD และ GNU คืออะไร? [ปิด]


27

อะไรคือความแตกต่างพื้นฐานระหว่าง Unix, Linux, BSD และ GNU Unix เป็นระบบปฏิบัติการที่เก่าที่สุดดังนั้นคำว่า 'Unix like' จึงเป็นที่เข้าใจได้เนื่องจากมีเคอร์เนลโครงสร้างระบบไฟล์คำสั่งส่วนใหญ่ผู้ใช้ ฯลฯ จึงเหมือนกับ Unix ทำไมถึงแตกต่างกัน อะไรทำให้พวกเขาแยกกัน มันเป็นเคอร์เนลหรือไม่


คำตอบ:


30

นั่นเป็นคำถามที่ตอบยาก

โดยทั่วไป "Unix Like" หรือ "* nix" โดยทั่วไปหมายถึง POSIX ระบบทั้งหมดที่คุณระบุไว้คือระบบ POSIX POSIX เป็นชุดของมาตรฐานที่จะใช้

ตอนนี้สำหรับคำถามที่ยากขึ้น

GNU ไม่ใช่ระบบปฏิบัติการจริงๆ เป็นชุดของกฎหรือปรัชญาที่ควบคุมซอฟต์แวร์ฟรีซึ่งในขณะเดียวกันก็ให้กำเนิดเครื่องมือมากมายในขณะที่พยายามสร้างระบบปฏิบัติการ ดังนั้นเครื่องมือของ GNU จึงเป็นเครื่องมือรุ่นเปิดที่มีอยู่แล้ว แต่ถูกทำขึ้นใหม่เพื่อให้สอดคล้องกับหลักการของซอฟต์แวร์เปิด GNU / Linux เป็นส่วนหนึ่งของเครื่องมือเหล่านี้และเคอร์เนล Linux เพื่อสร้างระบบปฏิบัติการที่สมบูรณ์ แต่มี "GNU" อื่น ๆ ตัวอย่าง GNU / Hurd

Unix และ BSD เป็นการใช้งานที่เก่ากว่าของ POSIX ซึ่งเป็นระดับ "แหล่งข้อมูลปิด" ในระดับต่างๆ โดยปกติแล้ว Unix จะเป็นแหล่งข้อมูลปิดทั้งหมด แต่มี Unix รสชาติมากเท่ากับ Linux หากไม่มาก BSD มักจะไม่ได้รับการพิจารณาว่า "เปิด" โดยบางคน แต่ในความจริงแล้วมันเปิดกว้างกว่ามาก การอนุญาตให้ใช้งานยังอนุญาตให้ใช้ในเชิงพาณิชย์โดยมีข้อ จำกัด น้อยลงเนื่องจากอนุญาตให้ใช้งานแบบ "เปิด" มากกว่า

Linux เป็นผู้มาใหม่ อย่างเคร่งครัดพูดว่า "เพียงเคอร์เนล" แต่โดยทั่วไปจะคิดว่าเป็นระบบปฏิบัติการแบบเต็มเมื่อรวมกับ GNU Tools และสิ่งอื่น ๆ

ความแตกต่างของการปกครองหลักคืออุดมคติ Unix, Linux และ BSD มีอุดมคติที่แตกต่างกัน พวกเขาทั้งหมด POSIX และทุกคนสามารถใช้แทนกันได้โดยทั่วไป พวกเขาแก้ปัญหาเดียวกันในวิธีที่ต่างกัน ดังนั้นนอกเหนือจากอุดมคติและวิธีที่พวกเขาเลือกใช้มาตรฐาน POSIX มีความแตกต่างเล็กน้อย

สำหรับข้อมูลเพิ่มเติมฉันแนะนำให้คุณอ่านบทความสั้น ๆ เกี่ยวกับการสร้าง GNU, OSS, Linux, BSD และ UNIX พวกเขาจะถูกเบี่ยงเบนไปสู่ความคิดของแต่ละคน แต่เมื่อคุณอ่านคุณจะได้รับความคิดที่ดีเกี่ยวกับความแตกต่าง

แผนภาพลำดับวงศ์ตระกูล Unix นี้แสดงให้เห็นอย่างชัดเจนถึงประวัติของ Unix, BSD, GNU และ Linux ( จาก Wikimedia ):

แผนภาพลำดับวงศ์ตระกูล Unix


หมายเหตุ: ไม่ใช่ทุกอย่างที่ POSIX เช่นดูman unimplemented(IIRC มันอาจจะเป็นman security) ในระบบ GNU / Linux
strugee

Strugee ถูกต้อง พวกเขาไม่สอดคล้องอย่างสมบูรณ์ แต่พวกเขาพยายามที่จะ ไม่แน่ใจว่าจะทำงานอย่างไรเพื่อหาคำตอบ Unix-Like ก็แตกต่างกันในทางเทคนิคแล้ว POSIX แต่โดยทั่วไปเมื่อคนพูดว่า Unix-Like พวกเขามักจะหมายถึง POSIX
coteyr

1
ข้อมูลเสริมบางอย่างในคำถาม & คำตอบนี้

ไม่นักพัฒนาเคอร์เนล Linux ไม่เคยต้องการให้เป็นไปตาม POSIX ฉันลืมที่ฉันอ่านสิ่งนี้ (ฉันดูใน manpages แต่หาไม่พบ) แต่มี syscalls บางอย่างที่ไม่สามารถใช้งานได้เนื่องจากข้อพิจารณาด้านความปลอดภัย
strugee

ฉันเชื่อว่า GNU เดิมทีตั้งใจจะให้เป็นระบบปฏิบัติการ
Faheem Mitha

14

Linux ไม่ใช่ระบบปฏิบัติการ แต่เป็นเคอร์เนล Linux เองไม่มีสภาพแวดล้อม 'userland' (ไม่มีแอพไม่มีคำสั่งไม่มี ... ฯลฯ ... )

หากคุณต้องการมีระบบปฏิบัติการที่สมบูรณ์คุณจะต้องเพิ่ม userland เข้ากับเคอร์เนลของคุณ ในอดีตสำหรับ Linux เป็น GNU การแจกแจง Linux ทั้งหมด (?) ไม่ใช่การกระจาย 'จริงของ Linux' มันคือการแจกแจง GNU / Linux (GNU + Linux)

BSD เป็นระบบปฏิบัติการที่สมบูรณ์แบบ 'unix-like' โดยมีเคอร์เนลเป็นของตัวเองและเป็น userland ของตัวเอง (ไม่มีเคอร์เนล linux หรือ GNU)

ตระกูล GNU / Linux และ * BSD (FreeBSD, OpenBSD และ NetBSD) เป็นระบบปฏิบัติการ 'เหมือนยูนิกซ์' พวกเขาทำงานเหมือน Unix

นี่คือการเปรียบเทียบระหว่าง (GNU) / Linux และ * BSD: http://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html


ลิงก์ของคุณใช้งานไม่ได้
Anthon

@ จากนั้นใช้งานได้
Prvt_Yadav
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.