ประวัติของ MacOS นั้นซับซ้อนกว่าเล็กน้อย ฉันสนใจสิ่งนี้มากในช่วงปลายยุค 90 เนื่องจากมัคได้รับการแหลมทั่วโลกเพื่อสร้างระบบ Unix ที่เร็วขึ้น
ที่มาของเคอร์เนลนั้นซับซ้อนกว่าเล็กน้อย
ทุกอย่างเริ่มต้นจาก AT&T กระจายระบบปฏิบัติการไปยังมหาวิทยาลัยบางแห่งฟรี Unix นี้ได้รับการปรับปรุงอย่างกว้างขวางที่ Berkeley และกลายเป็นรากฐานสำหรับการเปลี่ยนแปลง BSD ของ Unix และรวมเอานวัตกรรมใหม่หลายอย่างเช่น "Fast File System" (UFS), symlink ที่แนะนำและ sockets API AT&T ดำเนินการด้วยตนเองและสร้าง System V ในเวลาเดียวกัน
ในขณะเดียวกันการวิจัยยังคงดำเนินต่อไปและบางคนก็นำงานจาก BSD มาเป็นพื้นฐาน ที่ CMU เคอร์เนล BSD ถูกใช้เป็นรากฐานสำหรับการสร้างต้นแบบแนวคิดใหม่ไม่กี่อย่าง: เธรด, API เพื่อควบคุมระบบหน่วยความจำเสมือน (ผ่านทาง "pagers" - ผู้ใช้ระดับ mmap), ระบบเรียกโพรซีเดอร์ระยะไกลระดับเคอร์เนลและส่วนใหญ่ ที่สำคัญแนวคิดของการย้ายการดำเนินการระดับเคอร์เนลไปยังพื้นที่ผู้ใช้ นี่กลายเป็นมัคเคอร์เนล
ฉันไม่แน่ใจ 100% ถ้า mmap มาจาก Mach และภายหลังได้รับการรับรองจาก BSD หรือถ้า Mach เป็นผู้บุกเบิกความคิดและ BSD เพิ่ม mmap ของตัวเองตามความคิดของ Mach
แม้ว่าเคอร์เนล Mach ถูกอธิบายว่าเป็นไมโครเคอร์เนลจนถึงเวอร์ชัน 2.5 แต่เป็นเพียงระบบที่ให้เธรด mmap คุณลักษณะการส่งข้อความ แต่ยังคงเป็นเคอร์เนลเสาหินบริการทั้งหมดทำงานบนโหมดเคอร์เนล
ในเวลานี้ Rick Rashid (ตอนนี้ที่ Microsoft) และ Avie Tevanian (ตอนนี้ที่ Apple) ได้เกิดแนวคิดใหม่ที่สามารถเร่งความเร็ว Unix ได้ แนวคิดคือการใช้การเรียกระบบ mmap เพื่อส่งผ่านข้อมูลที่จะคัดลอกจากพื้นที่ผู้ใช้ไปยัง "เซิร์ฟเวอร์" ที่ใช้ระบบไฟล์ ความคิดนี้เป็นรูปแบบที่แตกต่างกันของการพยายามหลีกเลี่ยงการทำสำเนาของข้อมูลเดียวกัน แต่มันถูกตั้งค่าเป็นประโยชน์ของเมล็ดขนาดเล็กแม้ว่าคุณลักษณะนั้นสามารถแยกได้จากเคอร์เนลขนาดเล็ก
มาตรฐานของระบบ Unix ที่เร็วขึ้นซึ่งสนับสนุนโดย VM คือสิ่งที่ผลักดันผู้คนใน NeXT และที่ FSF ให้เลือกมัคเป็นพื้นฐานสำหรับเมล็ดของพวกเขา
NeXT ไปพร้อมกับเคอร์เนล Mach 2.5 (ซึ่งอิงจาก BSD 4.2 หรือ 4.3) และ GNU จะไม่เริ่มทำงานจริงเป็นเวลาหลายปี นี่คือสิ่งที่ระบบปฏิบัติการ NeXTSTEP ใช้
ในขณะที่ CMU ทำงานอย่างต่อเนื่องกับ Mach และในที่สุดพวกเขาก็ตระหนักถึงวิสัยทัศน์ของการมีเซิร์ฟเวอร์หลายตัวที่ทำงานบนไมโครเคอร์เนลด้วยเวอร์ชัน 3.0 ฉันไม่ทราบว่าใครก็ตามที่อยู่ในสภาวะปกติสามารถเรียกใช้ Mach 3.0 ได้เนื่องจากเซิร์ฟเวอร์ระดับผู้ใช้ที่น่าสนใจทั้งหมดใช้รหัส AT&T ดังนั้นพวกเขาจึงถูกพิจารณาว่ามีการเข้ารหัส
ในช่วงเวลานี้ทีมงาน Jolitz ได้ทำพอร์ต 4.3+ BSD ไปยังสถาปัตยกรรม 386 แห่งและเผยแพร่ความพยายามในการย้ายพอร์ตของพวกเขาใน DrDobbs 386BSD ไม่ได้รับการบำรุงรักษาอย่างแข็งขันและกลุ่มหนึ่งปรากฏตัวขึ้นเพื่อรักษาและเคลื่อนย้ายไปข้างหน้า 386BSD ซึ่งเป็นทีม NetBSD การต่อสู้ภายในของกลุ่ม NetBSD ทำให้เกิดการแตกครั้งแรกและ FreeBSD ถูกสร้างขึ้นจากสิ่งนี้ NetBSD ในเวลานั้นต้องการที่จะมุ่งเน้นไปที่การมี BSD ข้ามแพลตฟอร์มและ FreeBSD ต้องการที่จะมุ่งเน้นไปที่การมี Unix ที่ทำได้ดีบนแพลตฟอร์ม x86 เล็กน้อยภายหลัง NetBSD แยกอีกเนื่องจากข้อพิพาทอื่น ๆ และนำไปสู่การสร้าง OpenBSD
ทางแยกของ BSD 4.3 สำหรับแพลตฟอร์ม x86 ไปทำการค้ากับ บริษัท ชื่อ BSDi และสมาชิกหลายคนของทีม Berkeley ดั้งเดิมทำงานที่นั่นและรักษาความสัมพันธ์ที่ดีกับทีม BSD ที่มหาวิทยาลัย
AT&T ไม่สนุกและเริ่มต้นการฟ้องร้องของ AT&T กับ BSDi ซึ่งต่อมาถูกขยายออกไปฟ้องมหาวิทยาลัยเช่นกัน คดีดังกล่าวเกี่ยวกับ BSDi โดยใช้รหัสที่เป็นกรรมสิทธิ์จาก AT&T ที่ไม่ได้เขียนขึ้นใหม่โดย Berkeley ชุดนี้กลับ BSD เมื่อเทียบกับระบบปฏิบัติการ Linux ที่กำลังจะมาถึง
ถึงแม้สิ่งต่าง ๆ จะดูไม่ดีต่อจำเลย แต่ในบางครั้งมีคนรู้ว่า SystemV ได้รวมรหัส BSD จำนวนมากภายใต้ใบอนุญาต BSD และ AT&T ไม่ปฏิบัติตามภาระหน้าที่ในใบอนุญาต ถึงข้อตกลงที่ AT&T ไม่จำเป็นต้องดึงผลิตภัณฑ์ออกจากตลาดและมหาวิทยาลัยตกลงที่จะคัดลอกรหัสใด ๆ ที่อาจยังคงใช้รหัส AT&T
มหาวิทยาลัยได้เปิดตัว BSD 4.4 สองรุ่นที่มีการเข้ารหัสและ 4.4 lite เวอร์ชันที่เข้ารหัสจะบู๊ตและรัน แต่มีรหัส AT&T รุ่น lite ไม่มีรหัสใด ๆ จาก AT&T แต่ไม่ทำงาน
ความพยายามของ BSD ที่หลากหลายได้ทำการทำงานอีกครั้งบนการเปิดตัว 4.4 lite ใหม่และมีระบบบูทภายในไม่กี่เดือน
ในขณะเดียวกัน Mach 3.0 micro kernel ยังคงมีประโยชน์ไม่มากหากไม่มีเซิร์ฟเวอร์ของผู้ใช้
นักเรียนจากมหาวิทยาลัยสแกนดิเนเวีย (ฉันเชื่อว่าฉันอาจผิดพลาด) เป็นคนแรกที่สร้างระบบ Mach 3.0 เต็มรูปแบบด้วยระบบปฏิบัติการที่สมบูรณ์ตามการเปิดตัว 4.4 lite ฉันเชื่อว่านี่เรียกว่า "Lites" ระบบทำงานได้ แต่ช้า
ในช่วงปี 1992-1996 และในขณะนี้ BSD มีการเรียกระบบ mmap () เช่นเดียวกับระบบ Unix อื่น ๆ ส่วนใหญ่ "ความได้เปรียบของเคอร์เนลไมโคร" ที่ไม่ได้อยู่ที่นั่นไม่เคยเกิดขึ้นจริง NeXT ยังคงมีเคอร์เนลเสาหิน FSF ยังคงพยายามให้มัคสร้างและไม่ต้องการสัมผัสรหัส BSD หรือสนับสนุนความพยายามของโอเพ่นซอร์ส BSD ใด ๆ พวกเขายังคงเรียกเก็บเงินจากเคอร์เนลที่ระบุไว้ไม่ดีและพวกเขาก็จมอยู่ในโปรโตคอล RPC ด้วยตนเอง เมล็ด ไมโครเคอร์เนลดูดีมากบนกระดาษ แต่กลับกลายเป็นวิศวกรรมที่ผ่านมาและทำให้ทุกอย่างช้าลง
ณ จุดนี้เรายังมี Linus vs Andy ถกเถียงเรื่อง micro-kernels กับ monolithic kernels และโลกก็เริ่มตระหนักว่ามันเป็นไปไม่ได้ที่จะเพิ่มรอบพิเศษเหล่านั้นทั้งหมดลงใน micro kernel และยังมาก่อนหน้าของ monolithic kernel ที่ออกแบบมาอย่างดี .
Apple ยังไม่ได้ซื้อ NeXTSTEP แต่ก็เริ่มมองว่า Mach เป็นเคอร์เนลที่มีศักยภาพสำหรับระบบปฏิบัติการในอนาคต พวกเขาจ้าง Open Software Foundation เพื่อย้าย Linux ไปยังเคอร์เนล Mach และสิ่งนี้ทำจากสำนักงาน Grenoble ของพวกเขาฉันเชื่อว่านี่เรียกว่า "mklinux"
เมื่อ Apple ซื้อ NeXT สิ่งที่พวกเขามีอยู่นั้นเป็นรากฐานของ Unix ที่ค่อนข้างเก่าซึ่งเป็น Unix ที่ใช้ 4.2 หรือ 4.3 และในตอนนี้ไม่มีแม้แต่ซอฟต์แวร์ฟรีที่วิ่งออกมานอกกรอบในระบบเหล่านั้น พวกเขาจ้าง Jordan Hubbard จาก FreeBSD เพื่ออัพเกรด Unix stack ของพวกเขา ทีมของเขารับผิดชอบในการอัพเกรดพื้นที่ของผู้ใช้และไม่น่าแปลกใจเลยที่ผู้ใช้ MacOS จะได้รับการอัปเกรดเป็นรุ่นล่าสุดที่มีอยู่ใน BSD
Apple ได้เปลี่ยน Mach จาก 2.5 เป็น 3.0 ในบางจุด แต่ตัดสินใจที่จะไม่ใช้วิธี micro-kernel และเก็บทุกอย่างในกระบวนการแทน ฉันไม่สามารถยืนยันได้ว่า Apple ใช้ Lites จ้างแฮกเกอร์สแกนดิเนเวียหรือไม่หรือถ้าพวกเขาใช้ 4.4 lite เป็นระบบปฏิบัติการ ฉันสงสัยว่าพวกเขาทำ แต่ฉันได้ย้ายไปยัง Linux แล้วและหยุดติดตามโลก BSD / Mach
มีข่าวลือในช่วงปลายยุค 90 ที่ Avie ที่ Apple พยายามจ้าง Linus (ซึ่งมีชื่อเสียงอยู่แล้วในตอนนี้) มาทำงานกับลูกของเขา แต่ Linus เลือกที่จะทำงานกับ Linux ต่อไป
เก็บประวัติหน้านี้อธิบายผู้ใช้และเคอร์เนล Mach / Unix:
http://developer.apple.com/mac/library/documentation/Darwin/Conceptual/KernelProgramming/Architecture/Architecture.html#//apple_ref/doc/uid/TP30000905-CH1g-CACDAEDC
ฉันพบกราฟิกของประวัติของ OSX นี้: