อะไรทำให้ระบบปฏิบัติการ“ Unix-Like”


20

ฉันมักเจอคำว่า "เหมือนยูนิกซ์" ในเว็บไซต์หลายแห่ง

ไม่มีมาตรฐาน มันเป็นเพียงในลักษณะที่มันทำงาน

แต่ถ้าฉันต้องพัฒนาเคอร์เนลตั้งแต่เริ่มต้นอะไรจะทำให้มันพิจารณาว่า "เหมือนยูนิกซ์"?

โดยพื้นฐานแล้วอะไรคือสิ่งที่ทำให้โค้ดที่เขียนเหมือน Unix?


1
en.wikipedia.org/wiki/Unix-like (ซึ่งเชื่อมโยงกับlinfo.org/unix-like.html ) ในตัวของมันเอง
Drav Sloan

คำตอบ:


15

ไม่มีมาตรฐาน มันเป็นเพียงในลักษณะที่มันทำงาน

ฉันเชื่อว่าระบบปฏิบัติการ "เหมือนยูนิกซ์" ส่วนใหญ่ใช้ความพยายามอย่างจริงจังในการปฏิบัติตามมาตรฐาน POSIXซึ่งดูแลโดย Open Group ซึ่งเป็นผู้ควบคุมข้อกำหนดUNIX แบบเดี่ยวซึ่งกำหนด "UNIX ที่แท้จริง" อดีตคือแก่นของภายหลัง

จึงมีในความเป็นจริงมาตรฐานที่กำหนดปฏิบัติการของยูนิกซ์เช่นระบบปฏิบัติการ ดูรายการ "สมบูรณ์" และ "ส่วนใหญ่" ระบบปฏิบัติการที่เข้ากันได้ในตอนท้ายของบทความ wikipedia บน POSIX

มีเหตุผลบางอย่างที่ชัดเจนโดยเฉพาะอย่างยิ่งลินุกซ์อาจไม่ได้รับการพิจารณาอย่างสมบูรณ์ตามมาตรฐานหรือรับรองโดย Single Unix Specification (SUS) แต่สิ่งเหล่านี้ไม่ใช่เพราะระบบลินุกซ์ที่ให้มานั้นไม่สอดคล้องกับมัน บทความวิกิพีเดียสรุปข้อมูลจำเพาะด้วยวิธีนี้:

SUSv3 มีทั้งหมด 3700 หน้าซึ่งแบ่งออกเป็นสี่ส่วนหลัก:

คำจำกัดความฐาน (XBD) - รายการคำจำกัดความและข้อกำหนดที่ใช้ในข้อกำหนดและรายการของไฟล์ส่วนหัว C ซึ่งต้องจัดทำโดยระบบที่เป็นไปตามข้อกำหนด มีการจัดทำไฟล์ส่วนหัวทั้งหมด 84 ไฟล์

เชลล์และยูทิลิตี้ (XCU) - รายการของยูทิลิตี้และคำอธิบายของเชลล์, sh. มีการระบุสาธารณูปโภคทั้งหมด 160 รายการ

อินเทอร์เฟซระบบ (XSH) - มีคุณสมบัติของฟังก์ชั่นต่าง ๆ ซึ่งจะดำเนินการตามการเรียกระบบหรือฟังก์ชั่นห้องสมุด มีการระบุส่วนต่อประสานของระบบ 1123 ทั้งหมด

เหตุผล (XRAT) - คำอธิบายที่อยู่เบื้องหลังมาตรฐาน

บรรทัดคำสั่งผู้ใช้มาตรฐานและอินเตอร์เฟสการสคริปต์คือ POSIX เชลล์ซึ่งเป็นส่วนขยายของ Bourne Shell โดยอิงจาก Korn Shell เวอร์ชันก่อนหน้า

โปรแกรมบริการและยูทิลิตี้ระดับผู้ใช้อื่น ๆ ได้แก่ awk, echo, ed, vi และอื่น ๆ อีกหลายร้อยรายการ บริการระดับโปรแกรมที่ต้องการรวมถึงบริการ I / O พื้นฐาน (ไฟล์เทอร์มินัลและเครือข่าย)

ชุดทดสอบมาพร้อมกับมาตรฐาน เรียกว่า PCTS หรือ POSIX Certification Test Suite

นอกจากนี้ SUS ยังมีข้อมูลจำเพาะ CURSES (XCURSES) ซึ่งระบุฟังก์ชั่น 372 และ 3 ไฟล์ส่วนหัว โดยรวมแล้ว SUSv3 ระบุอินเตอร์เฟส 1742

เห็นได้ชัดว่านี้อ้างถึงส่วนประกอบผู้ใช้จำนวนมาก (เช่นเชลล์) ซึ่งไม่ได้เป็นส่วนหนึ่งของเคอร์เนลลินุกซ์ ดังนั้นจึงไม่มีวิธีที่ linux.org และ อัล สามารถรับรองเคอร์เนลเพียงอย่างเดียว - ในแง่นี้มันไม่ได้เป็นระบบปฏิบัติการเลย แน่นอนพวกเขาสามารถลองรับรองระบบบางอย่างโดยใช้เคอร์เนล แต่สิ่งนี้จะไม่มีความหมายในแง่ของรูปแบบการกระจายทั่วไป: เคอร์เนลและผู้ที่รักษามันเป็นอิสระจากคนที่รักษาแกน userland (GNU) ผู้ที่เป็นอิสระจากคนที่รักษาการกระจายระบบปฏิบัติการจริง (Debian, Fedora และอื่น ๆ )

ฉันคิดว่า Debian หรือ Fedora เองสามารถมีส่วนร่วมในกระบวนการรับรอง (เช่นเช่น RedHat Enterprise อาจกลายเป็น "ยูนิกซ์ที่ได้รับการรับรอง") แต่สิ่งนี้ทำให้เกิดคำถามว่าสิ่งเหล่านี้เป็นที่ต้องการจริงๆ ฉันคิดว่าเหตุผลหลักสำหรับระบบ SUS ก็คือการใช้งานซอฟต์แวร์ระดับเชิงพาณิชย์ที่ไม่ใช่ของผู้บริโภคที่เขียนขึ้นสำหรับสิ่งนี้ซึ่งไม่ใช่ช่อง linux ผู้คนที่ทำสิ่งนี้จะจ่ายเงินหลายพันดอลลาร์ต่อใบอนุญาตสำหรับระบบปฏิบัติการ การสนับสนุน ฯลฯ เนื่องจากพวกเขายังจ่ายเงินเป็นหมื่นหรือแสนดอลลาร์ต่อใบอนุญาตสำหรับซอฟต์แวร์เพิ่มเติมใด ๆ ก็ตามที่พวกเขาต้องการทำงานบนระบบ ในทางกลับกัน Linux และผู้ผิดกฎหมายอื่น ๆ ได้ดำเนินการตามเป้าหมายการออกแบบที่นอกเหนือไปจากการปฏิบัติตามวัตถุประสงค์เชิงพาณิชย์อย่างง่ายและยังมีตัวอย่างอีกหลายประการเช่น (จากhttp://en.wikipedia.org/wiki/STREAMS ):

จำเป็นต้องใช้ STREAMS เพื่อให้สอดคล้องกับข้อกำหนดคุณลักษณะ UNIX เดี่ยวรุ่น 1 (UNIX 95) และ 2 (UNIX 98) แต่เป็นผลมาจากการปฏิเสธของนักพัฒนา BSD และ Linux เพื่อให้บริการ STREAMS ถูกระบุว่าเป็นตัวเลือกสำหรับ POSIX การปฏิบัติตามข้อกำหนดโดย Austin Group ในเวอร์ชัน 3 (UNIX 03)

ที่พักที่น่าสนใจที่เน้นจุดที่ SUS และ The Open Group! = linux,! = BSD ฯลฯ


2
โปรดทราบว่าการรับรองจะแตกต่างจากการปฏิบัติตาม ตัวอย่างเช่นมันเป็นไปไม่ได้สำหรับ Linux Foundation ที่จะได้รับการรับรองเคอร์เนลแต่ละรุ่นเนื่องจากต้นทุนและอัตราการพัฒนา แต่นั่นไม่ได้หมายความว่ามัน (เคอร์เนล) ไม่ได้ปฏิบัติตามอย่างเต็มที่หรือส่วนใหญ่
strugee

2
@strugee มาตรฐาน POSIX ใช้ไม่ได้กับหรือสนใจเกี่ยวกับเคอร์เนล สิ่งที่ได้มาตรฐานคือคำสั่ง (เชลล์, ls, cat, ... ) และ API (สิ่งที่ libc จัดเตรียมไว้, เธรด) สิ่งที่ทำให้การแจกจ่ายบน Linux เป็น Unix like ส่วนใหญ่เป็นส่วนประกอบของ GNU (คำสั่งและ glibc) เคอร์เนลอยู่นอกขอบเขตของการรับรอง / การปฏิบัติตาม
jlliagre

1
ไม่หักล้าง แต่ชี้แจง (ฉันทำซ้ำจากความคิดเห็นของฉันในคำตอบของilluminÉ): มาตรฐานคือ "อะไร" เคอร์เนลคือ "อย่างไร" ฉันเพิ่งอ่านบิตและชิ้นส่วนของมาตรฐาน แต่ฉันไม่คิดว่าพวกเขาอ้างถึง "เคอร์เนล" เลย (มันเป็นแค่ "ระบบ") ดังนั้นการรับรองและความสอดคล้องของ WRT: มันคือ "สิ่งที่" เคอร์เนล / ระบบปฏิบัติการทำไม่ใช่ "อย่างไร"
goldilocks

3
@strugee ข้อกำหนด Unix เดี่ยวนำไปใช้กับอินเตอร์เฟสผู้ใช้ เคอร์เนลมีส่วนเกี่ยวข้องแน่นอน แต่ความคิดเห็นของฉันเกี่ยวกับคำสั่งของคุณเกี่ยวกับ Linux Foundation ที่ได้รับการรับรองเมล็ด เคอร์เนลไม่สามารถได้รับการรับรองมันหายไปส่วนประกอบทั้งหมดที่กระบวนการรับรองโต้ตอบกับ สิ่งที่สามารถได้รับการรับรอง (หรืออย่างน้อยพยายามที่จะทำตามที่เป็นไปได้) เป็นระบบปฏิบัติการคือสิ่งที่เรียกว่าการกระจายในชุมชน Linux
jlliagre

2
@strugee นั่นอาจเป็นเหตุผลที่เป็นไปได้ แต่ไม่ใช่การโรลโอเวอร์แบบรวดเร็วที่สำคัญ แต่ความจริงแล้วไม่มีความมุ่งมั่นที่จะทำให้แน่ใจว่าจะไม่มีการเปลี่ยนแปลงที่เข้ากัน ตัวอย่างเช่น Solaris 10 เป็นไปตามมาตรฐานรับประกันความเข้ากันได้นี้และมีการอัปเดตมากกว่าหนึ่งโหลเนื่องจากได้รับการรับรอง Unix03 ยิ่งกว่านั้นการรวมกันของ Gnu / Linux นั้นพยายามที่จะเป็นไปตามที่มันสามารถทำได้ / ต้องการ แต่ไม่มากกว่านั้น มัน (เกือบ) ไม่เคยพยายามรับรองเพราะเป็นทั้งกระบวนการที่มีราคาแพงและจะไม่ปฏิบัติตามเพราะข้อกำหนดบางอย่างขาดหายไป (โดยเจตนา) และส่วนขยายบางส่วนเข้ากันไม่ได้
jlliagre

12

หากต้องการขยายคำตอบแรกเกี่ยวกับ POSIX ให้เข้าใจความหมายของคำว่า "เหมือนยูนิกซ์" ก่อนอื่นควรลองเข้าใจว่า UNIX คืออะไร ดูเอกสารจากOpen Groupซึ่งเป็นเจ้าของเครื่องหมายการค้า Unix คุณจะพบรายละเอียดเกี่ยวกับวิวัฒนาการของข้อมูลจำเพาะ Single UNIX - นี่คือUNIX03 :

มาตรฐานผลิตภัณฑ์ UNIX 03 เป็นเครื่องหมายสำหรับระบบที่สอดคล้องกับเวอร์ชั่น 3 ของข้อมูลจำเพาะ UNIX เดี่ยว เป็นรุ่นที่ปรับปรุงอย่างมากของมาตรฐานผลิตภัณฑ์ UNIX 98 การปรับปรุงที่จำเป็นรวมถึงการจัดตำแหน่งด้วย ISO / IEC 9989: 1999 ภาษาโปรแกรม C, IEEE Std 1003.1-2001 และ ISO / IEC 9945: 2002 มาตรฐานผลิตภัณฑ์นี้รวมถึงมาตรฐานผลิตภัณฑ์ที่บังคับใช้ดังต่อไปนี้: การโทรและไลบรารี่ระบบระหว่างประเทศแบบขยาย V3, คำสั่งและยูทิลิตี้ V4, C Language V2 และการเชื่อมต่อเทอร์มินัลสากล

UNIX98 :

มาตรฐานผลิตภัณฑ์ UNIX 98 เป็นรุ่นปรับปรุงอย่างมากของมาตรฐานผลิตภัณฑ์ UNIX 95 การปรับปรุงที่บังคับ ได้แก่ (1) เธรดอินเตอร์เฟส, (2) ส่วนขยายการสนับสนุนแบบหลายไบต์ (MSE), (3) การสนับสนุนไฟล์ขนาดใหญ่, (4) การเชื่อมโยงแบบไดนามิก (5) การเปลี่ยนแปลงเพื่อลบการอ้างอิงหรือข้อ จำกัด ของฮาร์ดแวร์ ) การเปลี่ยนแปลงปี 2000 นอกจากนี้ยังมีการปรับปรุงเพิ่มเติมดังต่อไปนี้: สิ่งอำนวยความสะดวกการบริหารซอฟต์แวร์และชุดของ API สำหรับการสนับสนุนเรียลไทม์ มาตรฐานผลิตภัณฑ์นี้รวมถึงมาตรฐานผลิตภัณฑ์ที่บังคับต่อไปนี้: การโทรระบบและไลบรารีที่ขยายเป็นสากล V2, คำสั่งและยูทิลิตี้ V3, ภาษา C, บริการการขนส่ง (XTI) V2, Sockets V2 และอินเตอร์เฟซเทอร์มินัลสากล นอกจากนี้ยังอาจเป็นไปตามมาตรฐานผลิตภัณฑ์การจัดการซอฟต์แวร์

UNIX95 (ความสำคัญของฉัน):

มาตรฐานผลิตภัณฑ์นี้กำหนดแพลตฟอร์มรวมสำหรับการสนับสนุนแอพพลิเคชั่นที่หลากหลายซึ่งพัฒนาขึ้นสำหรับคลาสระบบปฏิบัติการที่ได้รับมาจากรหัสระบบปฏิบัติการ UNIX และ / หรืออินเทอร์เฟซที่พัฒนาโดย AT&Tนอกเหนือจากสิ่งอำนวยความสะดวกที่ให้ ตามมาตรฐานผลิตภัณฑ์ฐาน มันมีขอบเขตที่กว้างกว่าฐาน มาตรฐานผลิตภัณฑ์นี้รวมถึงมาตรฐานผลิตภัณฑ์ต่อไปนี้: การโทรด้วยระบบที่เป็นสากลและไลบรารีที่ขยายเพิ่ม, คำสั่งและยูทิลิตี้ V2, C ภาษา, บริการการขนส่ง (XTI), ซ็อกเก็ตและอินเตอร์เฟซเทอร์มินัลสากล

เซิร์ฟเวอร์รุ่นมาตรฐานเพิ่ม Internet Server และ IPv6 ในบางกรณี

ดังนั้นเราจึงเห็นการอ้างอิงถึงAT&T Bell Laboratoriesและภาษา C คือหัวใจของ UNIX คือ: ภาษา C, เครื่องมือพื้นฐานแบบแยกส่วนและเชลล์และวิธีเคอร์เนลระบบไฟล์และส่วนประกอบระบบปฏิบัติการที่สำคัญอื่น ๆ ได้รับการออกแบบและดำเนินการ .

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

นั่นคือสิ่งที่หนังสือการออกแบบระบบปฏิบัติการ UNIXโดย Maurice J. Bach กลายเป็นการอ่านที่มีค่าเพราะมันเป็นเรื่องทางประวัติศาสตร์ ณ จุดนี้ แน่นอนว่าสิ่งนี้เกี่ยวข้องกับการประดิษฐ์อื่น ๆเช่นภาษา C แน่นอน C ได้รับการพัฒนาโดย AT&T Bell เพื่อใช้ Unix ด้วยภาษาที่สามารถทำงานได้เร็วเท่ากับการประกอบ แต่สามารถพกพาข้ามฮาร์ดแวร์ที่แตกต่างกันได้และ POSIX จำนวนมากเป็นส่วนเสริมของมาตรฐาน C

ตราบเท่าที่เคอร์เนลเป็นห่วงคุณมักจะพบไดอะแกรมแนวคิดเช่นนี้เพื่อแสดงให้เห็นถึงสิ่งที่เคอร์เนล UNIX แบบดั้งเดิมเกี่ยวกับ:

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือข้อความที่ตัดตอนมาจากหนังสือคลาสสิกของ Mr Bach (1986) ซึ่งกล่าวถึงรากฐานของ UNIX System V kernel:

อย่างไรก็ตามพวกเขา [แอปพลิเคชันระบบย่อยและโปรแกรม] ทั้งหมดใช้บริการระดับล่างในท้ายที่สุดโดยเคอร์เนลและพวกเขาประโยชน์ตัวเองของบริการเหล่านั้นผ่านชุดของการเรียกระบบ มีการเรียกใช้ระบบ 64 ระบบใน System V ซึ่งน้อยกว่า 32 ใช้บ่อย พวกเขามีตัวเลือกง่าย ๆ ที่ทำให้ใช้งานง่าย แต่ให้พลังงานแก่ผู้ใช้มาก ชุดของการเรียกของระบบและอัลกอริธึมภายในที่นำมาใช้ในรูปแบบเนื้อความของเคอร์เนล [... ]

[... ] สององค์ประกอบหลักคือระบบย่อยไฟล์และระบบย่อยกระบวนการ

ไฟล์ถูกจัดระเบียบเป็นระบบไฟล์ซึ่งถือว่าเป็นอุปกรณ์โลจิคัล อุปกรณ์ฟิสิคัลเช่นดิสก์สามารถมีอุปกรณ์โลจิคัลหลายตัว (ระบบไฟล์) แต่ละระบบไฟล์มี superblock ที่อธิบายถึงโครงสร้างและเนื้อหาของระบบไฟล์และแต่ละไฟล์ในระบบไฟล์นั้นจะอธิบายโดย inode ที่ให้คุณสมบัติของไฟล์ การเรียกระบบที่จัดการไฟล์ทำได้ผ่าน inodes [และบัฟเฟอร์พูล]

[... ] มี inode สองรุ่น: สำเนาดิสก์ที่เก็บข้อมูล inode เมื่อไฟล์ไม่ได้ใช้งานและสำเนา in-core ที่บันทึกข้อมูลเกี่ยวกับไฟล์ที่ใช้งานอยู่

การดำเนินการของกระบวนการผู้ใช้บนระบบ UNIX แบ่งออกเป็นสองระดับ: ผู้ใช้และเคอร์เนล เมื่อกระบวนการดำเนินการเรียกระบบที่โหมดการดำเนินการของกระบวนการเปลี่ยนจากโหมดผู้ใช้ไปยังโหมดเคอร์เนล : รันระบบปฏิบัติการและความพยายามในการให้บริการการร้องขอผู้ใช้ [ ... ]

[... ] ปรัชญาของระบบ UNIX คือการจัดเตรียมระบบปฏิบัติการเบื้องต้นที่ช่วยให้ผู้ใช้สามารถเขียนโปรแกรมโมดูลาร์ขนาดเล็กที่สามารถใช้เป็นหน่วยการสร้างเพื่อสร้างโปรแกรมที่ซับซ้อนมากขึ้น หนึ่งเช่นดั้งเดิมที่มองเห็นเปลือกผู้ใช้คือความสามารถในการเปลี่ยนเส้นทางของ I / O

[... ] นอกเหนือจากการให้บริการระบบการเรียกเคอร์เนลทำบัญชีทั่วไปสำหรับชุมชนผู้ใช้การควบคุมการจัดตารางกระบวนการการจัดการการจัดเก็บและการป้องกันกระบวนการในหน่วยความจำหลักขัดจังหวะการจัดการไฟล์และอุปกรณ์และดูแลข้อผิดพลาดของระบบ เงื่อนไข

หากคุณสนใจกับการใช้งานที่แตกต่างกันของเมล็ดในระบบปฏิบัติการแบบยูนิกซ์คุณสามารถดูการใช้งาน FreeBSD (4.4BSD) หรือที่เคอร์เนล Machหรือดูการเปรียบเทียบคุณลักษณะเหล่านี้ได้

ยิ่งคุณรู้เกี่ยวกับการออกแบบของยูนิกซ์ที่มากกว่าที่คุณเข้าใจสิ่งที่เกิดขึ้นในแผนภาพต่อไปนี้เกี่ยวกับบรรพบุรุษของ UNIX และของประวัติศาสตร์ Mr Bach กำลังพูดถึง System V ในหนังสือของเขาเป็นส่วนใหญ่ แต่เขาก็พูดถึง BSD ด้วยเช่นกัน:

ป้อนคำอธิบายรูปภาพที่นี่

มีมากกว่านี้มากกว่าที่จะพบกับดวงตาจริงๆ ตัวอย่างเช่น Mac OSX ได้รับการรับรองจาก UNIX03 แต่คุณเห็นว่ามันเชื่อมต่อกับUNIX บริสุทธิ์ใด ๆ (สีแดงส่วนใหญ่)?

ป้อนคำอธิบายรูปภาพที่นี่

ด้านบนคุณจะเห็นว่า BSD, GNU, Microsoft และบุคคลที่มีความหลากหลายมีส่วนร่วมในจักรวาลนี้อย่างไร แม้ว่า GNU และท้ายที่สุด linux จะไม่มีเชื้อสายโดยตรงไปยัง UNIX คุณเห็นว่าGNUเป็นความพยายามในการสร้างวิศวกรในโลกโอเพนซอร์สเครื่องมือและซอฟต์แวร์จาก UNIX เชิงพาณิชย์ที่ปิดตัวลง ดังนั้นการดูซอฟต์แวร์ GNU ที่ปรับปรุงแล้วจึงให้แนวคิดเช่นแอพต้นแบบและไลบรารีเริ่มต้น

สงครามการออกใบอนุญาตมีบทบาทในการวิวัฒนาการ (และความซบเซาในบางครั้ง) ของ UNIX คุณสามารถเห็นได้ทันทีว่า UNIX ถูกเรียงตามประเภทไลเซนส์เทียบกับ BSD ( BSD อนุญาตให้สร้างซอร์สโค้ดโค้ดที่ปิด ... ดู OSX) และGPLซึ่งอนุญาตให้ Linux และ GNU ประกอบกันในโลกแห่งโคเลฟต์ นี่คือแผนที่คลาสสิกของเคอร์เนล linux ที่พัฒนาโดย Linus Torvalds ซึ่งยังเผยให้เห็นว่าเคอร์เนล "สามารถ" อยู่ในระบบปฏิบัติการแบบ Unix ได้อย่างไร:

ป้อนคำอธิบายรูปภาพที่นี่

คำแนะนำนี้มีแนวคิดว่าประเภทการออกแบบ " เคอร์เนล " ไม่ใช่สิ่งที่ทำให้มาตรฐาน UNIX หรือสิ่งที่กำหนดระบบปฏิบัติการยูนิกซ์ นี่เป็นหลักฐานจากความจริงที่ว่าระบบปฏิบัติการยูนิกซ์ที่เหมือนยูนิกซ์หลายตัวอาจมีทั้งเคอร์เนลเสาหินหรือ microkernel - เสาหินเป็นประเภทการออกแบบแบบคลาสสิกสำหรับ UNIX ในความเป็นจริงแม้ใน UNIX ที่บริสุทธิ์ HPUX มีเคอร์เนลเสาหินในขณะที่ AIX ใช้ microkernel นี้การอภิปรายเกี่ยวกับการออกแบบเป็นเรื่องเกี่ยวกับประสิทธิภาพการทำงานและไม่ได้เกี่ยวข้องกับระบบปฏิบัติการยูนิกซ์วงศ์ตระกูลหรือเอกลักษณ์ ในทางตรงกันข้ามมีแนวคิดแบบดั้งเดิมในการให้บริการซอฟต์แวร์การจัดการกับระบบไฟล์ ฯลฯ ภายใต้ระบบปฏิบัติการ UNIX / UNIX เหมือน

ฉันเชื่อว่าการพิจารณาดังกล่าวจะเพิ่มบริบทให้กับส่วนระบบปฏิบัติการของคำถามของคุณ


3
+1 บางจุดที่ดีที่นี่: 1) เกี่ยวกับความสัมพันธ์ระหว่าง C และ Unix (เพื่อเพิ่ม: C พัฒนาโดย AT&T Bell เพื่อใช้ Unix ด้วยภาษาที่อาจเร็วเท่ากับชุดประกอบ แต่เคลื่อนย้ายข้ามฮาร์ดแวร์ที่แตกต่างกันและ POSIX จำนวนมาก เป็นส่วนขยายของมาตรฐาน C) 2) การออกแบบเคอร์เนลนั้นไม่ขึ้นกับมาตรฐาน มาตรฐานคือ "อะไร" เมล็ดเป็น "อย่างไร"
goldilocks

1
@goldilocks ขอขอบคุณฉันได้เพิ่มความคิดเห็นของคุณเกี่ยวกับ C verbatim ฉันพยายามทำให้ชัดเจนว่าการพิจารณาเคอร์เนลไม่เกี่ยวข้องกับมาตรฐาน คำถามสันนิษฐานว่ามีบางอย่างที่เฉพาะเจาะจงเกี่ยวกับเคอร์เนลที่เหมือนยูนิกซ์ แต่ยังไม่มี ในทางตรงกันข้ามในอดีตเมล็ด Unix ตัวแรกอาจมีลักษณะเช่นนี้และเป็นเช่นนั้น ความเข้าใจของฉันมี จำกัด แต่ฉันจะถือว่าเมล็ดมีการเปลี่ยนแปลงอย่างมากเพราะฮาร์ดแวร์เปลี่ยนไปมากตั้งแต่ยุค 70 สิ่งที่ชัดเจนคือเคอร์เนลไม่ได้กำหนด Unix / เหมือนยูนิกซ์คิดว่าเคอร์เนลลินุกซ์กำหนด GNU / Linux หรือ Linux อย่างชัดเจน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.