ความแตกต่างทางแนวคิดระหว่าง Linux และเคอร์เนล BSD (ฟรี)


19

(ฉันสังเกตเห็นแล้วว่าคำถามนี้ถูกถามมาก่อน แต่ฉันคิดว่ามันยังไม่ได้รับคำตอบในแบบที่ฉันต้องการจะทำความเข้าใจในหัวข้อนี้)

อะไรคือความแตกต่างทางแนวคิดและโครงสร้างระหว่าง a

  • เคอร์เนล Linux
  • เคอร์เนล BSD (สมมุติว่า FreeBSD)

ในตอนท้ายของวันพวกเขาเป็นทั้งเมล็ด - ฉันคิดว่าอาจมีความแตกต่างในโครงสร้างการทำงานและความเชี่ยวชาญ เคอร์เนลชนิดใดที่จะได้เปรียบกว่าอีกสถานการณ์หนึ่ง (เว็บเซิร์ฟเวอร์ฐานข้อมูลคอมพิวเตอร์ ฯลฯ )

มีความพยายามร่วมกันในการรวมแรงสำหรับเคอร์เนลทั่วไปหนึ่งตัวหรือโมดูลบางตัวหรือที่จะไม่มีจุดหมายหรือไม่?

PS: ประเภทใบอนุญาตที่แตกต่างกันหรือวิธีการจัดส่ง / บรรจุภัณฑ์ / การบำรุงรักษาไม่สำคัญในบริบทนี้ ฉันสนใจที่จะเข้าใจว่าพวกเขามีความแตกต่างในด้านโครงสร้างระดับการทำงาน / คุณสมบัติและความเชี่ยวชาญอย่างไร


มีความพยายามร่วมกันในการรวมแรงสำหรับเคอร์เนลทั่วไปหนึ่งตัวหรือโมดูลบางตัวหรือที่จะไม่มีจุดหมายหรือไม่? ความคิดแรกของฉันคือสิ่งที่เป็นไปได้ที่จะมี ... ในการสร้างเคอร์เนลตัวที่สาม
goldilocks

ไม่ไม่เลยค่อนข้างจะเป็นไปในทางกลับกัน - สร้างความร่วมมือสำหรับชิ้นส่วนที่เหมือนกันสำหรับทั้งคู่ ฉันคิดว่าไดรเวอร์บางตัวอาจเป็นกรณีนี้หากฉันไม่เข้าใจผิด
binaryanomaly

1
@binaryanomaly: ใบอนุญาตที่แตกต่างกันมีความสำคัญอย่างมากต่อทั้งสองฝ่าย ในระดับที่ใคร ๆ ก็เรียกมันว่าเป็นอุดมการณ์ทั้งสองข้างทางเดิน ตัวอย่างเช่น GCC เคยเป็นจุดเจ็บใน BSDs และ FreeBSD ตอนนี้เปลี่ยนเป็นเสียงดังกราวเป็นค่าเริ่มต้นด้วยเหตุผลอย่างนี้: ปัญหาใบอนุญาต
0xC0000022L

1
@ 0xC0000022L: คุณพูดถูกและฉันไม่อยากพูดว่าคำถามเรื่องสิทธิ์การใช้งานนั้นไม่สำคัญ - ฉันแค่อยากจะไม่ให้มันเป็นจุดสนใจหลักในการสนทนานี้
binaryanomaly

จริงๆ @ goldilocks คุณไม่สามารถเห็นประโยชน์ของสิ่งที่สามที่ไม่ลินุกซ์มากเกินไปหรือ BSDish เกินไป แต่ใช่ไหม?
Josh Rumbut

คำตอบ:


22

1. ความแตกต่างทางแนวคิดและโครงสร้างระหว่าง Linux-Kernel และ BSD-kernel คืออะไร

เกี่ยวกับสถาปัตยกรรมและโครงสร้างภายในมีความแตกต่างแน่นอนในสิ่งที่ทำ (เช่น: lvm vs geom , คุณลักษณะคุกเร็วและซับซ้อนสำหรับ FreeBSD, ... ) แต่โดยรวมแล้วมีความแตกต่างกันไม่มากนักระหว่างสอง:

  • เคอร์เนล BSD * และเคอร์เนล Linux ได้รับการพัฒนาทั้งจากวิธีเสาหินแบบบริสุทธิ์

ยังมีความแตกต่างพื้นฐานในวิธีการและประวัติศาสตร์ของพวกเขา:

  • BSD-เคอร์เนลกำลังใช้ใบอนุญาต BSDและลินุกซ์เคอร์เนลจะใช้ใบอนุญาต GPL
  • BSD-เคอร์เนลจะไม่ได้ยืนอยู่คนเดียวเมล็ดแต่มีการพัฒนาในฐานะที่เป็นส่วนหนึ่งของทั้งหมด ของหลักสูตรนี้เป็นเพียงจุดปรัชญาของมุมมองและไม่ได้เป็นหนึ่งในทางเทคนิค แต่นี้การเชื่อมโยงระบบการให้
  • เคอร์เนล BSD ได้รับการพัฒนาด้วยจุดของมุมมองที่อนุรักษ์นิยมมากขึ้นและมีความกังวลมากขึ้นเกี่ยวกับการรักษาให้สอดคล้องกับวิธีการของพวกเขามากกว่าการมีฟีเจอร์แฟนซี
  • ลินุกซ์เคอร์เนลเป็นข้อมูลเพิ่มเติมเกี่ยวกับไดรเวอร์คุณลักษณะ ... (ยิ่งดี)

ตามที่ระบุไว้อย่างมากที่อื่น :

มันคือการออกแบบที่ชาญฉลาดและการสั่งซื้อ (BSD *) เมื่อเทียบกับการคัดเลือกโดยธรรมชาติและความโกลาหล (GNU / Linux)

2. ในสถานการณ์ใดเคอร์เนลชนิดใดที่จะได้เปรียบกว่าอีก?

เกี่ยวกับโครงสร้างและแนวคิดโดยรวมของพวกเขาในขณะที่เปรียบเทียบเคอร์เนลเกือบวานิลลาและ FreeBSD-kernel พวกเขามีระดับการใช้งานทั่วไปที่เหมือนกันมากขึ้นหรือน้อยลงซึ่งไม่มีความเชี่ยวชาญเฉพาะทาง (ไม่ใช่เรียลไทม์ เกมเป็นเกมที่ไม่ฝังตัว, ... )

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

แต่บางคนก็ยืนยันว่าOpenBSDมีวิธีการรักษาความปลอดภัยที่ลึกและสม่ำเสมอในขณะที่การแจกแจงแบบลีนุกซ์ที่แข็งขึ้นนั้นเป็นเพียงแค่การปรับเปลี่ยนเวอร์ชั่นของ vanilla Linux-kernel นี่อาจเป็นจริงสำหรับระบบที่มีความเชี่ยวชาญสูงเช่นเดียวกับSteam-OS ที่จะเป็นเกมอันดับหนึ่งในการเล่นเกม

3. มีความพยายามร่วมกันในการรวมพลังสำหรับเคอร์เนลทั่วไปหนึ่งโมดูลหรือบางโมดูลหรือไม่?

นอกจากนี้ไม่มีความพยายามร่วมกันที่จะมีสมาธิกองกำลังหนึ่งเคอร์เนลทั่วไปที่มีใบอนุญาตที่สำคัญปรัชญาหรือวิธีการปัญหา

หากมีความพยายามร่วมกันจริงบางอย่างเช่นOpenZFSส่วนใหญ่แล้วมันเกี่ยวกับไดรเวอร์และแนวคิดที่เกิดขึ้นหรือได้รับแรงบันดาลใจจากกันและกัน


การสรุปทั่วไปเกี่ยวกับ BSD นั้นผิดปกติ หมายเหตุที่นี่ตัวอย่างเช่น DragonFly BSD นั้นมีอยู่เพราะการอนุรักษ์นั้นไม่ใช่ลักษณะทั่วไปที่เราสามารถนำไปใช้กับโลก BSD ได้
JdeBP

5

คำตอบบางส่วนกล่าวถึงบางประเด็น

ตัวเลือกมากมายมักถูกมองว่าเป็นสิ่งที่ไม่ดีเมื่อมองจากด้านนอกในการพัฒนาโอเพนซอร์ซ แต่คิดว่ามันเป็นธรรมชาติมีสัตว์หลายชนิด มี 17 แต่ละชุดนั้นมีความต้องการเฉพาะชุดของข้อกำหนดเฉพาะดังนั้นด้วยโครงการโอเพนซอร์ซ (โดยทั่วไป) การคัดเลือกโดยธรรมชาติจะช่วยกำจัดวัชพืชที่มาจากโอเพ่นซอร์สที่มีแนวโน้มน้อยลงเมื่อเวลาผ่านไป

มีความพยายามร่วมกันในการรวมแรงสำหรับเคอร์เนลทั่วไปหนึ่งตัวหรือโมดูลบางตัวหรือที่จะไม่มีจุดหมายหรือไม่?

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

ฉันไม่สามารถพูดคุยกับโครงสร้างที่แตกต่างเกี่ยวกับกระสุนอื่น ๆ ของคุณ แต่คิดว่าอย่างน้อยฉันก็ควรพูดถึง 2 ข้อ


แน่นอนคุณมีจุดที่มีความเชี่ยวชาญ ในทางกลับกันฉันก็พนันได้เลยว่า DNA ของเพนกวินนั้นมีเปอร์เซ็นต์ที่สูงมากเหมือนกัน (สำหรับลิงและมนุษย์) และมันแตกต่างกันในพื้นที่เล็ก ๆ เท่านั้น ธรรมชาติค่อนข้างดีในการหลีกเลี่ยงความพยายามซ้ำซ้อน แต่แยกความแตกต่างเฉพาะเมื่อจำเป็นและที่ การทำซ้ำตามธรรมชาตินับพันล้านครั้ง (การทำซ้ำ) จะตัดสินใจ (เลือก) รูปแบบใดที่ปรับให้เหมาะที่สุดกับสภาพแวดล้อมที่กำหนด (มันกำลังได้รับปรัชญา;)
binaryanomaly

@binaryanomaly - นั่นเป็นปัญหากับการเปรียบเทียบ 8-) ฉันอาจจะไม่ไปถึงระดับนั้นเนื่องจากความสัมพันธ์ของภาษาการเขียนโปรแกรม / รหัสเป็นเรื่องยากที่จะสัมพันธ์กับ DNA
slm

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