เคอร์เนล(Kernel) ทำหน้าที่อะไรในระบบปฏิบัติการ

เคอร์เนลเป็นระดับต่ำสุดของซอฟต์แวร์ที่ถอดเปลี่ยนได้ง่ายซึ่งเชื่อมต่อกับฮาร์ดแวร์ในคอมพิวเตอร์ของคุณ รับผิดชอบการเชื่อมต่อแอปพลิเคชันทั้งหมดของคุณที่ทำงานใน“ โหมดผู้ใช้” ลงไปที่ฮาร์ดแวร์ทางกายภาพและอนุญาตให้กระบวนการที่เรียกว่าเซิร์ฟเวอร์เพื่อรับข้อมูลจากกันและกันโดยใช้การสื่อสารระหว่างกระบวนการ (IPC).

ชนิดต่าง ๆ ของเมล็ด

แน่นอนว่ามีวิธีการต่าง ๆ ในการสร้างเคอร์เนลและข้อควรพิจารณาทางสถาปัตยกรรมเมื่อสร้างหนึ่งจากศูนย์ โดยทั่วไปเมล็ดส่วนใหญ่ตกอยู่ในหนึ่งในสามประเภท: เสาหิน, microkernel และลูกผสม Linux เป็นเคอร์เนลเสาหินในขณะที่ OS X (XNU) และ Windows 7 ใช้เมล็ดพันธุ์แบบผสม ลองทัวร์สามหมวดอย่างรวดเร็วเพื่อเราจะได้เข้าไปดูรายละเอียดเพิ่มเติมในภายหลัง.

เคอร์เนล(Kernel) ทำหน้าที่อะไรในระบบปฏิบัติการ

ภาพโดย ข้าวโพดคั่วในเมือง

microkernel
microkernel ใช้แนวทางการจัดการสิ่งที่มี: CPU, หน่วยความจำและ IPC ค่อนข้างทุกอย่างอื่นในคอมพิวเตอร์สามารถมองเห็นเป็นอุปกรณ์เสริมและสามารถจัดการในโหมดผู้ใช้ Microkernels มีข้อดีของการพกพาเพราะพวกเขาไม่ต้องกังวลหากคุณเปลี่ยนการ์ดแสดงผลหรือแม้แต่ระบบปฏิบัติการตราบใดที่ระบบปฏิบัติการยังพยายามเข้าถึงฮาร์ดแวร์ในลักษณะเดียวกัน Microkernels มีขนาดเล็กมากทั้งสำหรับหน่วยความจำและพื้นที่ติดตั้งและพวกเขามีแนวโน้มที่จะปลอดภัยมากขึ้นเพราะมีเพียงกระบวนการเฉพาะที่ทำงานในโหมดผู้ใช้ที่ไม่มีสิทธิ์สูงในฐานะโหมดผู้ดูแล.

ข้อดี

  • ความเบา
  • รอยเท้าติดตั้งขนาดเล็ก
  • หน่วยความจำขนาดเล็ก
  • ความปลอดภัย

จุดด้อย

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

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

ข้อดี

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

จุดด้อย

  • รอยเท้าติดตั้งขนาดใหญ่
  • หน่วยความจำขนาดใหญ่
  • ปลอดภัยน้อยลงเพราะทุกอย่างทำงานในโหมดผู้ดูแล

เคอร์เนล(Kernel) ทำหน้าที่อะไรในระบบปฏิบัติการ

รูปภาพผ่าน schoschie บน Flickr

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

ข้อดี

  • นักพัฒนาสามารถเลือกและเลือกสิ่งที่ทำงานในโหมดผู้ใช้และสิ่งที่ทำงานในโหมดหัวหน้างาน
  • การติดตั้งมีขนาดเล็กกว่าเคอร์เนลเสาหิน
  • ยืดหยุ่นกว่ารุ่นอื่น ๆ

จุดด้อย

  • สามารถทนทุกข์ทรมานจากกระบวนการล่าช้าเช่นเดียวกับ microkernel
  • ไดรเวอร์อุปกรณ์จำเป็นต้องได้รับการจัดการโดยผู้ใช้ (โดยทั่วไป)

ไฟล์เคอร์เนล Linux อยู่ที่ไหน?

เคอร์เนล(Kernel) ทำหน้าที่อะไรในระบบปฏิบัติการ

ไฟล์เคอร์เนลในอูบุนตูถูกเก็บไว้ในโฟลเดอร์ / boot ของคุณและเรียกว่า vmlinuz-รุ่น. ชื่อ vmlinuz มาจากโลกของยูนิกซ์ที่พวกเขาเคยเรียกว่าเมล็ดของพวกเขาเพียงแค่ "unix" ย้อนกลับไปในยุค 60 ดังนั้น Linux เริ่มเรียกเคอร์เนล "linux" ของพวกเขาเมื่อมันถูกพัฒนาขึ้นครั้งแรกใน 90.

เมื่อหน่วยความจำเสมือนได้รับการพัฒนาเพื่อความสามารถในการทำงานหลายอย่างง่ายขึ้น“ vm” ถูกวางไว้ด้านหน้าของไฟล์เพื่อแสดงว่าเคอร์เนลรองรับหน่วยความจำเสมือน ในขณะที่เคอร์เนล Linux ถูกเรียกว่า vmlinux แต่เคอร์เนลมีขนาดใหญ่เกินไปที่จะพอดีกับหน่วยความจำบูตที่มีอยู่ดังนั้นภาพเคอร์เนลจึงถูกบีบอัดและตอนจบ x ถูกเปลี่ยนเป็น z เพื่อแสดงว่าถูกบีบอัดด้วยการบีบอัด zlib การบีบอัดแบบเดียวกันนี้ไม่ได้ถูกนำมาใช้เสมอ ๆ มักจะถูกแทนที่ด้วย LZMA หรือ BZIP2 และเมล็ดบางส่วนเรียกง่ายๆว่า zImage.

การกำหนดหมายเลขเวอร์ชันจะอยู่ในรูปแบบ A.B.D โดยที่ A.B อาจเป็น 2.6, C จะเป็นเวอร์ชั่นของคุณและ D หมายถึงแพตช์หรือการแก้ไขของคุณ.

เคอร์เนล(Kernel) ทำหน้าที่อะไรในระบบปฏิบัติการ

ในโฟลเดอร์ / boot จะมีไฟล์สำคัญอื่น ๆ ที่เรียกว่า initrd.img-version, system.map-version และ config-version ไฟล์ initrd จะใช้เป็นดิสก์ RAM ขนาดเล็กที่แยกและดำเนินการไฟล์เคอร์เนลจริง ไฟล์ system.map ใช้สำหรับการจัดการหน่วยความจำก่อนที่เคอร์เนลจะโหลดเต็มที่และไฟล์ config จะบอกเคอร์เนลว่าตัวเลือกและโมดูลใดที่จะโหลดเข้าสู่อิมเมจเคอร์เนลเมื่อมีการรวบรวม.

สถาปัตยกรรมเคอร์เนล Linux

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

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

ลองนึกภาพถ้าคุณสามารถอัพเกรดเป็น Service Pack ของ Windows โดยไม่จำเป็นต้องรีบูต ...

โมดูลเคอร์เนล

เคอร์เนล(Kernel) ทำหน้าที่อะไรในระบบปฏิบัติการ

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

โดยทั่วไปโมดูลจะเพิ่มฟังก์ชันการทำงานให้กับเคอร์เนลฐานสำหรับสิ่งต่าง ๆ เช่นอุปกรณ์ระบบไฟล์และการเรียกระบบ LKMs มีนามสกุลไฟล์. ko และโดยทั่วไปจะถูกเก็บไว้ในไดเรกทอรี / lib / modules เนื่องจากลักษณะแบบแยกส่วนคุณสามารถปรับแต่งเคอร์เนลของคุณได้อย่างง่ายดายโดยการตั้งค่าโมดูลให้โหลดหรือไม่โหลดระหว่างการเริ่มต้นด้วยคำสั่ง menuconfig หรือแก้ไขไฟล์ / boot / config ของคุณหรือคุณสามารถโหลดและยกเลิกการโหลดโมดูลได้ทันทีด้วย modprobe คำสั่ง.

โมดูลบุคคลที่สามและโมดูลที่ปิดมีให้บริการในการแจกจ่ายบางอย่างเช่น Ubuntu และอาจไม่ได้รับการติดตั้งเป็นค่าเริ่มต้นเนื่องจากไม่มีซอร์สโค้ดสำหรับโมดูลนั้น ผู้พัฒนาซอฟต์แวร์ (เช่น nVidia, ATI และอื่น ๆ ) ไม่ได้ให้ซอร์สโค้ด แต่จะสร้างโมดูลของตนเองและรวบรวมไฟล์. ko ที่จำเป็นสำหรับการแจกจ่าย แม้ว่าโมดูลเหล่านี้จะฟรีเหมือนในเบียร์ แต่ก็ไม่ได้ฟรีเหมือนในการพูดและดังนั้นจึงไม่รวมอยู่ในการแจกแจงบางอย่างเนื่องจากผู้ดูแลรู้สึกว่า "taints" เคอร์เนลโดยการให้ซอฟต์แวร์ที่ไม่ใช่ฟรี.

เคอร์เนลไม่ใช่เวทมนต์ แต่เป็นสิ่งจำเป็นอย่างยิ่งสำหรับคอมพิวเตอร์ทุกเครื่องที่ทำงานอย่างถูกต้อง เคอร์เนล Linux แตกต่างจาก OS X และ Windows เนื่องจากมีไดรเวอร์ในระดับเคอร์เนลและทำให้หลายสิ่งรองรับ“ ไม่ใช้งาน” หวังว่าคุณจะรู้เพิ่มเติมเล็กน้อยเกี่ยวกับการทำงานร่วมกันของซอฟต์แวร์และฮาร์ดแวร์และไฟล์ที่คุณต้องใช้ในการบูตเครื่องคอมพิวเตอร์ของคุณ.

เคอร์แนล (Kernel) คือข้อใด

เคอร์เนล (Kernel) คือโปรแกรมพื้นฐานภายใต้ระบบปฏิบัติการคอมพิวเตอร์ (OS) ที่คอยทำหน้าที่เป็นสื่อกลางระหว่างฮาร์ดแวร์ กับ ซอฟต์แวร์และช่วยจัดการทรัพยากรในคอมพิวเตอร์ต่าง ๆ เช่น การใช้พื้นที่ หน่วยความจำ (RAM) , การใช้ หน่วยประมวลผลกลาง (CPU) การจัดการไฟล์ และ ระบบอื่น ๆ ส่วนใหญ่ เป็นต้น (เว้นแต่ GPU อยู่นอกเหนือหน้าที่ ...

Linux ทำอะไรได้บ้าง

ลีนุกซ์ เป็นระบบปฏิบัติการเช่นเดียวกับ ดอส ไมโครซอฟต์วินโดวส์ หรือยูนิกซ์ โดยลีนุกซ์นั้นจัดว่าเป็นระบบปฏิบัติการยูนิกซ์ประเภทหนึ่ง การที่ลีนุกซ์เป็นที่กล่าวขานกันมากขณะนี้ เนื่องจากความสามารถของตัวระบบปฏิบัติการและโปรแกรมประยุกต์ที่ทำงานบนระบบลีนุกซ์ โดยเฉพาะอย่างยิ่งโปรแกรมในตระกูลของ GNU (GNU's Not UNIX) และสิ่งที่ ...

โครงสร้างของระบบปฏิบัติการยูนิกส์ส่วนใดที่ทำหน้าเป็นตัวกลางระหว่างผู้ใช้งานกับ kernel

เชลล์ (shell)เป็นซอฟต์แวร์ตัวกลางที่ท าหน้าที่ติดต่อระหว่างผู้ใช้กับเคอร์เนล แบ่ง ออกเป็น 2 กลุ่มคือ กลุ่มเชลล์ที่มีการติดต่อกับผู้ใช้ด้วยค าสั่ง (Command Line Interface - CLI) และเชลล์ที่มีการติดต่อกับผู้ใช้โดยใช้ภาพสัญลักษณ์ (Graphic User Interface - GUI) - CLI ผู้ใช้จะต้องป้อนค าสั่งผ่านทางคีย์บอร์ดเป็นลักษณะข้อความ ...

ระบบปฏิบัติการแบ่งออกเป็นกี่ประเภท อะไรบ้าง

ระบบปฏิบัติการสามารถแบ่งได้เป็นสองประเภทตามลักษณะการใช้งาน ได้แก่แบบ "งานเดี่ยว" (single-tasking) และแบบ "หลายงาน" (multi-tasking) ระบบแบบงานเดี่ยวเป็นระบบที่ยอมให้มีผู้ใช้เพียงหนึ่งคนเท่านั้นในการใช้่แต่ละครั้ง และเมื่อมีผู้ใช้หนึ่งคนก็จะสามารถใช้โปรแกรมได้เพียงหนึี่งโปรแกรมเท่านั้น