เคอร์เนลระบบปฏิบัติการคืออะไร มันแตกต่างจากระบบปฏิบัติการอย่างไร? [ปิด]


147

ฉันไม่สามารถเข้าใจความแตกต่างระหว่างเคอร์เนลและระบบปฏิบัติการ ฉันไม่เห็นความแตกต่างระหว่างพวกเขา เคอร์เนลเป็นระบบปฏิบัติการหรือไม่?

คำตอบ:


74

คำจำกัดความด้านเทคนิคของระบบปฏิบัติการคือ "แพลตฟอร์มที่ประกอบด้วยชุดของไลบรารีและโครงสร้างพื้นฐานเฉพาะสำหรับแอปพลิเคชันที่ต้องสร้างและโต้ตอบกับแต่ละอื่น ๆ " เคอร์เนลเป็นระบบปฏิบัติการในแง่นั้น

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

ดังนั้นสำหรับผู้ใช้ปลายทางการแจกจ่าย Linux (เช่น Ubuntu) เป็นระบบปฏิบัติการในขณะที่โปรแกรมเมอร์เคอร์เนล Linux นั้นเป็นระบบปฏิบัติการที่ถูกต้องสมบูรณ์แบบขึ้นอยู่กับสิ่งที่คุณพยายามจะบรรลุ ตัวอย่างเช่นระบบฝังตัวส่วนใหญ่เป็นเพียงเคอร์เนลที่มีกระบวนการพิเศษจำนวนน้อยที่ทำงานอยู่ด้านบน ในกรณีนั้นเคอร์เนลจะกลายเป็นระบบปฏิบัติการของตัวเอง

ฉันคิดว่าคุณสามารถวาดเส้นที่ส่วนใหญ่ของแอปพลิเคชันที่ทำงานบนระบบปฏิบัติการที่ต้องการ หากส่วนใหญ่ต้องการเพียงเคอร์เนลเคอร์เนลคือระบบปฏิบัติการหากส่วนใหญ่ต้องการระบบ X Window ที่ใช้งานอยู่ระบบปฏิบัติการของคุณจะกลายเป็นเคอร์เนล X +


6
คำจำกัดความของผู้ใช้มักจะเป็นสิ่งที่อยู่รอบตัว "แพคเกจซอฟต์แวร์ที่ให้เดสก์ท็อปทางลัดไปยังแอปพลิเคชันเว็บเบราว์เซอร์และเครื่องเล่นสื่อ" เคอร์เนลไม่ตรงกับคำจำกัดความนั้น เพียงเพราะบางคนไม่รู้ว่าระบบปฏิบัติการไม่ได้หมายความว่าคำจำกัดความของพวกเขานั้นถูกต้อง
DIMMSum

1
@dimmsum มันไม่ได้เป็นเพียงนิยามภาษาพูด ระบบปฏิบัติการได้ถูกขายและทำการตลาดให้กับผู้ใช้เช่นนี้
Sedat Kapanoglu

คุณช่วยชี้ฉันไปที่การตลาดใด ๆ ฉันเห็นผู้ขายระบบปฏิบัติการบอกว่าพวกเขามีแพลตฟอร์มซึ่งโปรแกรมประเภทดังกล่าวทั้งหมดสามารถทำงานได้ แต่ระบบปฏิบัติการไม่รวมโปรแกรมเหล่านั้น หากคุณทำให้ทั้งคู่สับสนคุณก็กำลังพูดถึงระบบทั้งหมดดังนั้นคำจำกัดความจึงหมดความหมาย
DIMMSum

1
@dimmsum ฉันเข้าใจประเด็นของคุณและนั่นเป็นเหตุผลที่ฉันให้คำจำกัดความที่แตกต่างกันสอง บางทีฉันควรเรียกมันว่า "ความเข้าใจ"? ฉันคิดว่าผู้ใช้ปลายทางโดยเฉพาะอย่างยิ่งในยุคที่ระบบปฏิบัติการขายในกล่องมีความเข้าใจที่แตกต่างกันว่าระบบปฏิบัติการคืออะไรและเกี่ยวข้องโดยตรงกับระบบปฏิบัติการที่มีการซื้อขายอย่างไร กล่อง windows xp สัญญาการทำธุรกรรมที่แตกต่างอย่างสิ้นเชิงกว่าข้อกำหนดทางเทคนิคนั่นคือสิ่งที่ฉันต้องการชี้ให้เห็น
Sedat Kapanoglu

1
@dimmsum ดังนั้นจึงมีระบบปฏิบัติการในวิทยาการคอมพิวเตอร์และมีระบบปฏิบัติการอีกระบบหนึ่งที่ชั้นวางของร้านเทคโนโลยี ทั้งสองเป็นระบบปฏิบัติการจากมุมมองที่แตกต่างกัน ฉันต้องการเน้นความแตกต่างนั้น
Sedat Kapanoglu

73

เคอร์เนลเป็นส่วนหนึ่งของระบบปฏิบัติการที่ไกล่เกลี่ยเข้าถึงทรัพยากรของระบบ มีหน้าที่รับผิดชอบในการเปิดใช้งานแอปพลิเคชั่นหลายตัวเพื่อแบ่งปันฮาร์ดแวร์ได้อย่างมีประสิทธิภาพโดยการควบคุมการเข้าถึง CPU, หน่วยความจำ, ดิสก์ I / O และระบบเครือข่าย

ระบบปฏิบัติการเป็นเคอร์เนลบวกการใช้งานที่ให้ผู้ใช้สามารถรับสิ่งที่ทำ (เช่นคอมไพเลอร์แก้ไขข้อความจัดการหน้าต่าง ฯลฯ )


18
คอมไพเลอร์และบรรณาธิการข้อความมันเป็นส่วนหนึ่งของระบบปฏิบัติการ? Word เป็นเครื่องมือแก้ไขข้อความที่ได้รับเกียรติ - เป็นส่วนหนึ่งของ OS หรือไม่?
jon-hanson

6
สิ่งที่ฉันไม่ได้รับคือ "ระบบปฏิบัติการคือเคอร์เนลบวกแอปพลิเคชัน" แต่ถ้าฉันติดตั้งแอปพลิเคชันพูดคำว่าสมบูรณ์แบบแล้วนั่นไม่ควรนับเป็นส่วนหนึ่งของระบบปฏิบัติการใช่ไหม
Celeritas

7
@Celeritas สายไปปาร์ตี้เล็กน้อย แต่ไม่มีแอปพลิเคชันที่ติดตั้งไว้จะไม่ถูกนับเป็นส่วนหนึ่งของระบบปฏิบัติการ "แอปพลิเคชัน" เป็นยูทิลิตี้ระบบที่มาพร้อมกับระบบปฏิบัติการ โปรแกรม / แอพพลิเคชั่นอื่น ๆ ทั้งหมดที่คุณติดตั้งอยู่บนเลเยอร์ด้านบนนี้
hashcode55

คุณทำได้ดีจนกระทั่งคุณเขียนคำกล่าวสอดแทรกในย่อหน้าที่สอง ระบบปฏิบัติการจัดการคำขอของแอปพลิเคชันเหล่านั้นเพื่อควบคุมฮาร์ดแวร์ ดังนั้นระบบปฏิบัติการจึงรวมถึงเคอร์เนลไดรเวอร์อุปกรณ์และซอฟต์แวร์ / เฟิร์มแวร์อื่น ๆ ที่ควบคุมฮาร์ดแวร์ในระดับต่ำสุดโดยเฉพาะ
Bob

42

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

บางคนต้องการผูก "เคอร์เนล" (และแน่นอน "เชลล์") ลงเพื่อให้เจาะจงยิ่งกว่านั้น แต่ในความเป็นจริงมันมีการเปลี่ยนแปลงมากมายในระบบปฏิบัติการ สิ่งที่เปลี่ยนแปลงไม่น้อยคือสิ่งที่ถือเป็น "เชลล์" (ซึ่งอาจมีตั้งแต่ Solaris ' shถึง Netware's Console Command Interpreter ถึง Workplace Shell ของ OS / 2 และ Explorer ของ Windows NT) แต่ก็มีความแปรปรวนมากมายจากระบบปฏิบัติการหนึ่งไปยังอีกระบบหนึ่งใน คืออะไรและไม่ได้เป็นส่วนหนึ่งของ "เคอร์เนล" (ซึ่งอาจมีหรือไม่มีดิสก์ I / O เป็นต้น)

มันเป็นเรื่องที่ดีที่สุดจำไว้ว่าคำเหล่านี้เป็นคำอุปมาอุปมัย

อ่านเพิ่มเติม


ดี อย่างไรก็ตามคำตอบของคุณเป็นคำต่อคำที่มาจาก "การอ่านเพิ่มเติม" ตอนนี้ฉันรู้วิธีรับ upvotes มากมายจากการคัดลอกและวาง ฮ่า ๆ. ยังคงมีประโยชน์อย่างไรก็ตาม
lacostenycoder

18

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

ดังนั้นเราสามารถพูดได้ว่า Linux เป็นเคอร์เนลเนื่องจากไม่รวมแอพพลิเคชั่นเช่นระบบไฟล์, ระบบหน้าต่างและเดสก์ท็อปแบบกราฟิก, คำสั่งผู้ดูแลระบบ, โปรแกรมแก้ไขข้อความ, คอมไพเลอร์เป็นต้นดังนั้น บริษัท ต่างๆ และจัดหาระบบปฏิบัติการเช่น Ubuntu, Suse, CentOS, redHat เป็นต้น


9

ระบบปฏิบัติการเป็นทั่วไปชื่อที่กำหนดให้กับทุกธาตุ (ส่วนติดต่อผู้ใช้ห้องสมุดทรัพยากร) ซึ่งจะทำให้ระบบโดยรวม

เคอร์เนลคือ"สมอง"ของระบบปฏิบัติการซึ่งควบคุมทุกอย่างตั้งแต่การเข้าถึงฮาร์ดดิสก์ไปจนถึงการจัดการหน่วยความจำ เมื่อใดก็ตามที่คุณต้องการทำอะไรมันจะไปแม้เคอร์เนล


8

เคอร์เนลเป็นส่วนหนึ่งของระบบปฏิบัติการในขณะที่ไม่ได้เป็นระบบปฏิบัติการ แทนที่จะไปในทุกสิ่งที่เคอร์เนลไม่ฉันจะเลื่อนไปยังหน้าวิกิพีเดีย: http://en.wikipedia.org/wiki/Kernel_%28computing%29 ภาพรวมที่ยอดเยี่ยมและละเอียด


3
ฉันลองใช้ประโยคแรกของen.wikipedia.org/wiki/Operating_systemแทน ระบบปฏิบัติการได้รับมอบหมายอย่างเป็นทางการโดยมีการเข้าถึงสื่อกลางเพื่อ จำกัด ทรัพยากร (โดยประมาณทุกอย่างบนคอมพิวเตอร์) และเมล็ดเสาหินทำอย่างแน่นอน (เมล็ดขนาดเล็กถ่ายโอนข้อมูลบางส่วนของงานลงบนกระบวนการ จากโปรแกรมเมอร์ที่คาดหวังเคอร์เนลเป็นระบบปฏิบัติการ ผู้ใช้อาจนับบนเปลือกหรือเชื่อมต่ออื่น ๆ แต่ที่เป็นผู้ใช้ โปรดจำไว้ว่าระบบปฏิบัติการทำงานกับทุกสิ่งตั้งแต่ซุปเปอร์คอมพิวเตอร์ไปจนถึงวิดเจ็ตฝังตัวใด ๆ ที่ต้องทำสองสิ่ง
dmckee --- ลูกแมวผู้ดูแลอดีต

ดังนั้นประเด็นของคุณก็คือระบบปฏิบัติการบางอย่างเป็นเมล็ดของตัวเองหรือส่วนต่าง ๆ ของระบบปฏิบัติการที่ผู้ใช้โต้ตอบกับไม่ได้เป็นส่วนหนึ่งของระบบปฏิบัติการหรือไม่
danben

นอกจากนี้ "ประโยคแรกของ en.wikipedia.org/wiki/Operating_system" กล่าวว่า "ระบบปฏิบัติการ (OS) เป็นส่วนต่อประสานระหว่างฮาร์ดแวร์กับผู้ใช้ ... " ดังนั้นฉันไม่เข้าใจว่าทำไมคุณถึงแยกความแตกต่างระหว่างสิ่งที่ ผู้ใช้โต้ตอบกับและส่วนที่เหลือของมัน
danben

7

เคอร์เนลเป็นส่วนหนึ่งของระบบปฏิบัติการมันเป็นสิ่งแรกที่บูตโหลดโหลดลงบน cpu (สำหรับระบบปฏิบัติการส่วนใหญ่) มันเป็นส่วนที่เชื่อมต่อกับฮาร์ดแวร์และมันจัดการสิ่งที่โปรแกรมสามารถทำอะไรกับ ฮาร์ดแวร์มันเป็นส่วนสำคัญของระบบปฏิบัติการมันประกอบด้วยไดรเวอร์ไดรเวอร์เป็นโปรแกรมที่เชื่อมต่อกับฮาร์ดแวร์บางชิ้นเช่นถ้าฉันสร้างกล้องดิจิตอลสำหรับคอมพิวเตอร์ฉันจะต้องทำ ไดรเวอร์สำหรับมันไดรเวอร์เป็นโปรแกรมเดียวที่สามารถควบคุมอินพุตและเอาต์พุตของคอมพิวเตอร์


3

คำตอบง่ายๆ

เคอร์เนลเป็นส่วนหลักของระบบปฏิบัติการ มันไม่จำเป็นต้องเป็นระบบปฏิบัติการในตัวมันเอง

ทุกอย่างอื่นถูกสร้างขึ้นโดยรอบ

คำจำกัดความที่ซับซ้อน

เคอร์เนล (คำนวณ) - Wikipedia


ดังนั้นระบบปฏิบัติการเคอร์เนลที่ไม่มีไดรเวอร์คืออะไร?
Xinus

1
ไม่ ... เมล็ดส่วนใหญ่ผูกส่วนต่าง ๆ ของระบบปฏิบัติการไว้ด้วยกัน (ไม่ใช่แค่ไดรเวอร์)
Justin Niessner

2

ในการคำนวณ 'เคอร์เนล' เป็นส่วนประกอบหลักของระบบปฏิบัติการคอมพิวเตอร์ส่วนใหญ่ มันเป็นสะพานเชื่อมระหว่างแอพพลิเคชันและการประมวลผลข้อมูลจริงในระดับฮาร์ดแวร์ ความรับผิดชอบของเคอร์เนลรวมถึงการจัดการทรัพยากรของระบบ (การสื่อสารระหว่างส่วนประกอบฮาร์ดแวร์และซอฟต์แวร์) โดยปกติจะเป็นองค์ประกอบพื้นฐานของระบบปฏิบัติการเคอร์เนลสามารถให้เลเยอร์ abstraction ระดับต่ำสุดสำหรับทรัพยากร (โดยเฉพาะโปรเซสเซอร์และอุปกรณ์ I / O) ที่แอพพลิเคชั่นซอฟต์แวร์ต้องควบคุมเพื่อทำหน้าที่ของมัน โดยทั่วไปแล้วสิ่งอำนวยความสะดวกเหล่านี้สามารถใช้ได้กับกระบวนการแอปพลิเคชันผ่านกลไกการสื่อสารระหว่างกระบวนการและการเรียกระบบ


2

เคอร์เนลอาจเป็นระบบปฏิบัติการหรืออาจเป็นส่วนหนึ่งของระบบปฏิบัติการ ใน Linux เคอร์เนลจะถูกโหลดและดำเนินการก่อน จากนั้นจะเริ่มบิตอื่น ๆ ของระบบปฏิบัติการ (เช่น init) เพื่อให้ระบบมีประโยชน์

โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมแบบไมโครเคอร์เนล เคอร์เนลมีฟังก์ชันการทำงานน้อยที่สุด ทุกอย่างอื่นเช่นระบบไฟล์และ TCP / IP ทำงานเป็นกระบวนการผู้ใช้


เคอร์เนลในภาษาสคริปต์เช่น Ruby เป็นอย่างไร ตัวอย่างเช่นหากคุณติดตั้ง Ruby คุณสามารถเรียกใช้จากเทอร์มินัล * nix ruby -e "puts Kernel.methods"และคุณจะเห็นวิธีการมากมายที่กำหนดไว้
lacostenycoder

2

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

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