ผู้ใช้ทั่วไปและแฟนน้อยกว่าที่ไม่ยอมใครง่ายๆลีนุกซ์เป็นระบบปฏิบัติการ เพื่อให้คำจำกัดความอย่างไรก็ตามชื่อ "Linux" สงวนไว้สำหรับเคอร์เนลที่สนับสนุนระบบปฏิบัติการ หากคุณอยากทราบว่าเคอร์เนลลินุกซ์คืออะไรเราก็ควรตอบคำถามนี้กับผู้ใช้รายใหม่
โหมด
ก่อนที่เราจะอธิบายว่าเคอร์เนลคืออะไรสิ่งสำคัญคือต้องเข้าใจคำว่า "โหมดผู้ใช้" และ "โหมดเคอร์เนล" โหมดผู้ใช้คือเมื่อโค้ดรันไทม์ไม่มีความสามารถในการเข้าถึงฮาร์ดแวร์หรือหน่วยความจำอ้างอิงโดยตรง หากต้องการเข้าถึงฮาร์ดแวร์และหน่วยความจำรหัสที่เรียกใช้ในโหมดผู้ใช้ต้องมอบคำแนะนำไปยัง Application Programming Interfaces (APIs) ของระบบ โหมดเคอร์เนลคือเมื่อโค้ดรันไทม์มีการเข้าถึงฮาร์ดแวร์ที่ไม่ จำกัด และสงวนไว้สำหรับฟังก์ชันที่น่าเชื่อถือที่สุดของระบบปฏิบัติการ
เคอร์เนลคืออะไร?
ระบบปฏิบัติการทุกระบบมีเคอร์เนล Windows, macOS, iOS, Android, Chrome OS และ Linux แต่ละแห่งมีระบบระดับต่ำที่รับผิดชอบในการเชื่อมต่อแอปพลิเคชันทั้งหมดกับฮาร์ดแวร์ทางกายภาพของคอมพิวเตอร์ หากไม่มีเคอร์เนลแอพพลิเคชั่นของคุณจะไม่สามารถใช้งานคอมพิวเตอร์ได้ ปพลิเคชันเช่น Firefox, Chrome, LibreOffice, MS Office หรือ Outlook จะไม่ทำงาน เคอร์เนลยังมีหน้าที่ในการอนุญาตให้กระบวนการแลกเปลี่ยนข้อมูลโดยใช้สิ่งที่เรียกว่า Inter-Process Communication (IPC)
มี (โดยทั่วไปพูด) สามประเภทของเมล็ด:
- Monolithic kernels / เสาหิน: เมล็ดเหล่านี้ล้อมรอบ CPU หน่วยความจำ IPC ไดรเวอร์อุปกรณ์การจัดการระบบไฟล์และการเรียกใช้เซิร์ฟเวอร์ระบบ นอกจากนี้ยังมีหน้าที่จัดส่งหน่วยความจำระบบฟรีไปยังแอพพลิเคชัน เมล็ดพันธุ์เหล่านี้มักจะดีกว่าในการเข้าถึงฮาร์ดแวร์และการทำงานหลายอย่าง
- microkernels: ไมโครโพรเซสเซอร์ใช้วิธีการที่เรียบง่ายและจัดการหน่วยความจำและ IPC เท่านั้น
- เมล็ดไฮบริด: Hybrid Kernels มีความสามารถในการตัดสินใจว่าจะใช้งานอะไรใน User หรือ Kernel Mode แม้ว่าจะให้สิ่งที่ดีที่สุดของทั้งสองโลก แต่ก็ต้องใช้มากขึ้นจากผู้ผลิตฮาร์ดแวร์เพื่อสร้างไดรเวอร์ที่ใช้เชื่อมต่อระหว่างโค้ดและฮาร์ดแวร์
Linux ใช้โอเพ่นซอร์ส Kernel แบบเสาหินขณะที่ macOS และ Windows ใช้ทั้ง Hybrid Kernels เคอร์เนลลินุกซ์ได้รับการออกแบบโดย Linus Torvalds ในปีพ. ศ. 2534 จนถึงปัจจุบันนาย Torvalds ยังคงเป็นผู้นำด้านการพัฒนาเคอร์เนลในขณะที่นักพัฒนาจากทั่วโลกมีส่วนร่วมกับเคอร์เนล ในความเป็นจริงประมาณว่าเกือบ 10,000 นักพัฒนาจากกว่า 1,000 บริษัท มีส่วนร่วมกับเคอร์เนล (ตั้งแต่การติดตามเริ่มขึ้นในปีพ. ศ. 2548)
เคอร์เนลอยู่ที่ไหน?
หากคุณเปิดหน้าต่างเทอร์มินัลและออกคำสั่ง ls / bootคุณจะเห็นไฟล์ที่เรียกว่า vmlinuz รุ่น (ในกรณีที่ VERSION เป็นชื่อหรือหมายเลขที่เผยแพร่) ไฟล์ vmlinuz เป็นเคอร์เนลที่สามารถบู๊ตได้และ "z" คือการระบุเคอร์เนลที่ถูกบีบอัด ดังนั้นแทนที่จะ vmlinux เรามี vmlinuz
ภายในไดเร็กทอรี / บูตนี้เป็นไฟล์เคอร์เนลที่สำคัญอื่น ๆ เช่น initrd.img-VERSION, system.map-VERSION และ config-VERSION (ในกรณีที่ VERSION เป็นชื่อหรือหมายเลขที่เผยแพร่) ไฟล์อื่น ๆ มีวัตถุประสงค์ดังต่อไปนี้:
- initrd: ใช้เป็นแอดเดอร์ขนาดเล็กที่สกัดและประมวลผลไฟล์เคอร์เนลที่แท้จริง
- system.map: ใช้สำหรับการจัดการหน่วยความจำก่อนโหลดเคอร์เนล
- การตั้งค่า: สั่งให้เคอร์เนลเลือกตัวเลือกและโมดูลใด ๆ ในการโหลด
โมดูล
หากไม่มีโมดูลจะไม่มีการใช้เคอร์เนลมากนัก โมดูลได้อย่างมีประสิทธิภาพเปิดไดรเวอร์ที่จำเป็นในการสื่อสารกับฮาร์ดแวร์โดยไม่ต้องเสียทั้งหมดของหน่วยความจำระบบของคุณ โมดูลยังเพิ่มฟังก์ชันการทำงานของเคอร์เนลเช่นการสื่อสารกับอุปกรณ์ต่อพ่วงการจัดการระบบไฟล์ความปลอดภัยเป็นต้นเป็นไปได้ที่รายการเพิ่มและลบโมดูลไปยังเคอร์เนลด้วยคำสั่งต่อไปนี้:
- lsmod จะแสดงรายการโมดูลเคอร์เนลที่โหลดอยู่ทั้งหมด
- insmod จะโหลดโมดูลเคอร์เนลเป็นเคอร์เนลที่กำลังทำงานอยู่
- rmmod จะยกเลิกการโหลดโมดูลจาก kernel ที่กำลังทำงานอยู่
ดังนั้นคุณจะเห็นด้วยความช่วยเหลือของคำสั่งง่ายๆเคอร์เนลลินุกซ์สามารถยืดหยุ่นได้มาก
เคอร์เนลปัจจุบัน
ในขณะที่การเขียนนี้เคอร์เนลลินุกซ์มีความเสถียรอยู่ที่ 4.18.5 แต่จะไม่มีการกระจายลีนุกซ์ทั้งหมดรวมถึงเคอร์เนลรุ่นล่าสุด ในความเป็นจริงแล้วการอัพเดตเดสก์ท็อป OS สำหรับเดสก์ท็อปที่ปรับปรุงแล้วจะรันเคอร์เนล 4.15.0-30 ตัวเลขดังกล่าวหมายถึงอะไร? ในกรณีของเคอร์เนลล่าสุดใน Elementary OS หมายถึง:
- 4 คือรุ่น Major
- 15 คือรุ่นรอง
- 0-30 คือการแก้ไข
นอกจากนี้ยังสามารถดาวน์โหลดเคอร์เนล Linux เวอร์ชันต่างๆจาก kernel.org และรวบรวมได้ด้วยตัวเอง การรวบรวมเคอร์เนล Linux เป็นงานที่ดีที่สุดสำหรับผู้ที่รู้จริงๆว่ากำลังทำอะไรอยู่ เคอร์เนลที่ไม่ถูกต้องอาจทำให้ระบบไม่สามารถยกเลิกการบูตได้ ดังนั้นถ้าคุณไม่พร้อมที่จะดำน้ำในงานที่ท้าทายในการรวบรวมรหัสในระดับนี้ให้ใช้เคอร์เนลเริ่มต้นที่จัดส่งและอัปเดตข้อมูลเกี่ยวกับการกระจายข้อมูลที่คุณเลือก