ฉันไม่สามารถเข้าใจความแตกต่างระหว่างเคอร์เนลและระบบปฏิบัติการ ฉันไม่เห็นความแตกต่างระหว่างพวกเขา เคอร์เนลเป็นระบบปฏิบัติการหรือไม่?
ฉันไม่สามารถเข้าใจความแตกต่างระหว่างเคอร์เนลและระบบปฏิบัติการ ฉันไม่เห็นความแตกต่างระหว่างพวกเขา เคอร์เนลเป็นระบบปฏิบัติการหรือไม่?
คำตอบ:
คำจำกัดความด้านเทคนิคของระบบปฏิบัติการคือ "แพลตฟอร์มที่ประกอบด้วยชุดของไลบรารีและโครงสร้างพื้นฐานเฉพาะสำหรับแอปพลิเคชันที่ต้องสร้างและโต้ตอบกับแต่ละอื่น ๆ " เคอร์เนลเป็นระบบปฏิบัติการในแง่นั้น
คำจำกัดความของผู้ใช้มักจะเป็นสิ่งที่อยู่รอบตัว "แพคเกจซอฟต์แวร์ที่ให้เดสก์ท็อปทางลัดไปยังแอปพลิเคชันเว็บเบราว์เซอร์และเครื่องเล่นสื่อ" เคอร์เนลไม่ตรงกับคำจำกัดความนั้น
ดังนั้นสำหรับผู้ใช้ปลายทางการแจกจ่าย Linux (เช่น Ubuntu) เป็นระบบปฏิบัติการในขณะที่โปรแกรมเมอร์เคอร์เนล Linux นั้นเป็นระบบปฏิบัติการที่ถูกต้องสมบูรณ์แบบขึ้นอยู่กับสิ่งที่คุณพยายามจะบรรลุ ตัวอย่างเช่นระบบฝังตัวส่วนใหญ่เป็นเพียงเคอร์เนลที่มีกระบวนการพิเศษจำนวนน้อยที่ทำงานอยู่ด้านบน ในกรณีนั้นเคอร์เนลจะกลายเป็นระบบปฏิบัติการของตัวเอง
ฉันคิดว่าคุณสามารถวาดเส้นที่ส่วนใหญ่ของแอปพลิเคชันที่ทำงานบนระบบปฏิบัติการที่ต้องการ หากส่วนใหญ่ต้องการเพียงเคอร์เนลเคอร์เนลคือระบบปฏิบัติการหากส่วนใหญ่ต้องการระบบ X Window ที่ใช้งานอยู่ระบบปฏิบัติการของคุณจะกลายเป็นเคอร์เนล X +
เคอร์เนลเป็นส่วนหนึ่งของระบบปฏิบัติการที่ไกล่เกลี่ยเข้าถึงทรัพยากรของระบบ มีหน้าที่รับผิดชอบในการเปิดใช้งานแอปพลิเคชั่นหลายตัวเพื่อแบ่งปันฮาร์ดแวร์ได้อย่างมีประสิทธิภาพโดยการควบคุมการเข้าถึง CPU, หน่วยความจำ, ดิสก์ I / O และระบบเครือข่าย
ระบบปฏิบัติการเป็นเคอร์เนลบวกการใช้งานที่ให้ผู้ใช้สามารถรับสิ่งที่ทำ (เช่นคอมไพเลอร์แก้ไขข้อความจัดการหน้าต่าง ฯลฯ )
ดูเหมือนว่าคำอุปมาดั้งเดิมที่ทำให้เราได้คำว่า "เคอร์เนล" สำหรับสิ่งนี้ตั้งแต่แรกถูกลืมไปแล้ว อุปมาคือระบบปฏิบัติการเป็นเมล็ด "เคอร์เนล" ของเมล็ดเป็นแกนหลักของระบบปฏิบัติการที่ให้บริการระบบปฏิบัติการแก่โปรแกรมแอปพลิเคชันซึ่งล้อมรอบด้วย "เชลล์" ของเมล็ดพันธุ์ซึ่งเป็นสิ่งที่ผู้ใช้มองเห็นจากภายนอก
บางคนต้องการผูก "เคอร์เนล" (และแน่นอน "เชลล์") ลงเพื่อให้เจาะจงยิ่งกว่านั้น แต่ในความเป็นจริงมันมีการเปลี่ยนแปลงมากมายในระบบปฏิบัติการ สิ่งที่เปลี่ยนแปลงไม่น้อยคือสิ่งที่ถือเป็น "เชลล์" (ซึ่งอาจมีตั้งแต่ Solaris ' sh
ถึง Netware's Console Command Interpreter ถึง Workplace Shell ของ OS / 2 และ Explorer ของ Windows NT) แต่ก็มีความแปรปรวนมากมายจากระบบปฏิบัติการหนึ่งไปยังอีกระบบหนึ่งใน คืออะไรและไม่ได้เป็นส่วนหนึ่งของ "เคอร์เนล" (ซึ่งอาจมีหรือไม่มีดิสก์ I / O เป็นต้น)
มันเป็นเรื่องที่ดีที่สุดจำไว้ว่าคำเหล่านี้เป็นคำอุปมาอุปมัย
มีความแตกต่างระหว่างเคอร์เนลและระบบปฏิบัติการ เคอร์เนลตามที่อธิบายไว้ข้างต้นเป็นหัวใจสำคัญของระบบปฏิบัติการที่จัดการคุณสมบัติหลักของระบบปฏิบัติการในขณะที่หากมีการเพิ่มแอปพลิเคชั่นและยูทิลิตี้ที่มีประโยชน์บนเคอร์เนลแพคเกจที่สมบูรณ์จะกลายเป็นระบบปฏิบัติการ ดังนั้นจึงสามารถกล่าวได้อย่างง่ายดายว่าระบบปฏิบัติการประกอบด้วยพื้นที่เคอร์เนลและพื้นที่ผู้ใช้
ดังนั้นเราสามารถพูดได้ว่า Linux เป็นเคอร์เนลเนื่องจากไม่รวมแอพพลิเคชั่นเช่นระบบไฟล์, ระบบหน้าต่างและเดสก์ท็อปแบบกราฟิก, คำสั่งผู้ดูแลระบบ, โปรแกรมแก้ไขข้อความ, คอมไพเลอร์เป็นต้นดังนั้น บริษัท ต่างๆ และจัดหาระบบปฏิบัติการเช่น Ubuntu, Suse, CentOS, redHat เป็นต้น
ระบบปฏิบัติการเป็นทั่วไปชื่อที่กำหนดให้กับทุกธาตุ (ส่วนติดต่อผู้ใช้ห้องสมุดทรัพยากร) ซึ่งจะทำให้ระบบโดยรวม
เคอร์เนลคือ"สมอง"ของระบบปฏิบัติการซึ่งควบคุมทุกอย่างตั้งแต่การเข้าถึงฮาร์ดดิสก์ไปจนถึงการจัดการหน่วยความจำ เมื่อใดก็ตามที่คุณต้องการทำอะไรมันจะไปแม้เคอร์เนล
เคอร์เนลเป็นส่วนหนึ่งของระบบปฏิบัติการในขณะที่ไม่ได้เป็นระบบปฏิบัติการ แทนที่จะไปในทุกสิ่งที่เคอร์เนลไม่ฉันจะเลื่อนไปยังหน้าวิกิพีเดีย: http://en.wikipedia.org/wiki/Kernel_%28computing%29 ภาพรวมที่ยอดเยี่ยมและละเอียด
เคอร์เนลเป็นส่วนหนึ่งของระบบปฏิบัติการมันเป็นสิ่งแรกที่บูตโหลดโหลดลงบน cpu (สำหรับระบบปฏิบัติการส่วนใหญ่) มันเป็นส่วนที่เชื่อมต่อกับฮาร์ดแวร์และมันจัดการสิ่งที่โปรแกรมสามารถทำอะไรกับ ฮาร์ดแวร์มันเป็นส่วนสำคัญของระบบปฏิบัติการมันประกอบด้วยไดรเวอร์ไดรเวอร์เป็นโปรแกรมที่เชื่อมต่อกับฮาร์ดแวร์บางชิ้นเช่นถ้าฉันสร้างกล้องดิจิตอลสำหรับคอมพิวเตอร์ฉันจะต้องทำ ไดรเวอร์สำหรับมันไดรเวอร์เป็นโปรแกรมเดียวที่สามารถควบคุมอินพุตและเอาต์พุตของคอมพิวเตอร์
คำตอบง่ายๆ
เคอร์เนลเป็นส่วนหลักของระบบปฏิบัติการ มันไม่จำเป็นต้องเป็นระบบปฏิบัติการในตัวมันเอง
ทุกอย่างอื่นถูกสร้างขึ้นโดยรอบ
คำจำกัดความที่ซับซ้อน
ในการคำนวณ 'เคอร์เนล' เป็นส่วนประกอบหลักของระบบปฏิบัติการคอมพิวเตอร์ส่วนใหญ่ มันเป็นสะพานเชื่อมระหว่างแอพพลิเคชันและการประมวลผลข้อมูลจริงในระดับฮาร์ดแวร์ ความรับผิดชอบของเคอร์เนลรวมถึงการจัดการทรัพยากรของระบบ (การสื่อสารระหว่างส่วนประกอบฮาร์ดแวร์และซอฟต์แวร์) โดยปกติจะเป็นองค์ประกอบพื้นฐานของระบบปฏิบัติการเคอร์เนลสามารถให้เลเยอร์ abstraction ระดับต่ำสุดสำหรับทรัพยากร (โดยเฉพาะโปรเซสเซอร์และอุปกรณ์ I / O) ที่แอพพลิเคชั่นซอฟต์แวร์ต้องควบคุมเพื่อทำหน้าที่ของมัน โดยทั่วไปแล้วสิ่งอำนวยความสะดวกเหล่านี้สามารถใช้ได้กับกระบวนการแอปพลิเคชันผ่านกลไกการสื่อสารระหว่างกระบวนการและการเรียกระบบ
เคอร์เนลอาจเป็นระบบปฏิบัติการหรืออาจเป็นส่วนหนึ่งของระบบปฏิบัติการ ใน Linux เคอร์เนลจะถูกโหลดและดำเนินการก่อน จากนั้นจะเริ่มบิตอื่น ๆ ของระบบปฏิบัติการ (เช่น init) เพื่อให้ระบบมีประโยชน์
โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมแบบไมโครเคอร์เนล เคอร์เนลมีฟังก์ชันการทำงานน้อยที่สุด ทุกอย่างอื่นเช่นระบบไฟล์และ TCP / IP ทำงานเป็นกระบวนการผู้ใช้
ruby -e "puts Kernel.methods"
และคุณจะเห็นวิธีการมากมายที่กำหนดไว้
เคอร์เนลอยู่ใน OS.A จริง ๆ แล้วมันเป็นพื้นที่หน่วยความจำที่ให้ไว้เป็นพิเศษสำหรับการจัดการฟังก์ชั่นระบบปฏิบัติการบางคนบอกว่าระบบปฏิบัติการจัดการทรัพยากรของระบบและเคอร์เนลเป็นหนึ่งซึ่งเป็นหัวใจของระบบปฏิบัติการและบำรุงรักษาจัดการ iekeep ติดตามของระบบปฏิบัติการ