ลินุกซ์เคอร์เนล

ลินุกซ์เคอร์เนล เป็นเคอร์เนลระบบปฏิบัติการแบบยูนิกซ์ที่เสรีและต้นทางเปิด เดิมเขียนขึ้นในปี พ.ศ. 2534 โดย ลีนุส ทอร์วัลด์ส สำหรับพีซีที่ใช้ i386 ของเขา และในไม่ช้ามันก็ถูกนำมาใช้เป็นเคอร์เนลสำหรับ ระบบปฏิบัติการกนู ซึ่งเขียนขึ้นเพื่อเป็นซอฟต์แวร์เสรีทดแทนยูนิกซ์
ลินุกซ์เคอร์เนล ได้รับการเผยแพร่สัญญาอนุญาต GNU General Public License เวอร์ชัน 2 เท่านั้น แต่ในตัวเคอร์เนลก็มีไฟล์ภายใต้ ใบอนุญาตอื่นๆ ที่เข้ากันได้ ตั้งแต่ปลายทศวรรษ 1990 เป็นต้นมา ระบบปฏิบัติการดังกล่าวได้ถูกรวมไว้เป็นส่วนหนึ่งของลินุกซ์ดิสทริบิวชันจำนวนมาก ซึ่งหลายระบบเรียกสั้นๆ แค่ว่า ลินุกซ์
ลินุกซ์ถูกนำไปใช้ในระบบคอมพิวเตอร์ที่หลากหลาย เช่น อุปกรณ์ฝังตัว อุปกรณ์มือถือ (รวมถึงการใช้งานในระบบแอนดรอยด์) คอมพิวเตอร์ส่วนบุคคล เซิร์ฟเวอร์ เมนเฟรม และ ซูเปอร์คอมพิวเตอร์  ลินุกซ์สามารถปรับแต่งให้เหมาะกับสถาปัตยกรรมเฉพาะและสำหรับสถานการณ์การใช้งานต่างๆ โดยใช้กลุ่มคำสั่งง่ายๆ (นั่นคือ ไม่จำเป็นต้องแก้ไขรหัสต้นทางด้วยตนเองก่อนทำการคอมไพล์)    ผู้ใช้ที่ได้รับสิทธิพิเศษยังสามารถปรับแต่งพารามิเตอร์เคอร์เนลขณะรันไทม์ได้อีกด้วย    รหัสเคอร์เนลลินุกซ์ส่วนใหญ่เขียนโดยใช้ส่วนขยาย GNU ของ ชุดแปลโปรแกรมของกนู  : 18  ต่อ ภาษาซีฉบับมาตรฐาน และด้วยการใช้คำสั่งเฉพาะสถาปัตยกรรม (ISA) ในส่วนน้อยของเคอร์เนล สิ่งนี้สร้างไฟล์ปฏิบัติการที่ได้รับการปรับปรุงประสิทธิภาพสูงสุด ( vmlinux ) โดยคำนึงถึงการใช้พื้นที่หน่วยความจำและเวลาดำเนินการงาน  : 379–380
การอภิปรายเกี่ยวกับการพัฒนาในแต่ละวันเกิดขึ้นใน รายชื่อผู้รับจดหมายลินุกซ์เคอร์เนล (Linux kernel mailing list) หรือ LKML ติดตามการเปลี่ยนแปลงโดยใช้ระบบควบคุมเวอร์ชันกิต ซึ่งเดิมเขียนโดย ลีนุส ทอร์วัลด์ส เพื่อเป็นซอฟต์แวร์เสรีแทนที่ BitKeeper
== ความเป็นมา ==

ในเดือนเมษายน พ.ศ. 2534 ลีนึส ตูร์วัลดส์ในขณะนั้นเป็นนักศึกษาวิทยาการคอมพิวเตอร์ อายุ 21 ปีที่มหาวิทยาลัยเฮลซิงกิ ประเทศฟินแลนด์ ได้เริ่มทำงานกับแนวคิดง่ายๆ สำหรับระบบปฏิบัติการที่ได้รับแรงบันดาลใจจากยูนิกซ์ สำหรับคอมพิวเตอร์ส่วนบุคคล  เขาเริ่มต้นด้วยตัวสลับงานในภาษาแอสเซมบลี Intel 80386 และ ไดรเวอร์เทอร์มินัล  เมื่อวันที่ 25 สิงหาคม พ.ศ. 2534 Torvalds ได้โพสต์ข้อความต่อไปนี้ใน comp.os.minix ซึ่งเป็น กลุ่มข่าวสารบนยูสเน็ต
เมื่อวันที่ 17 กันยายน พ.ศ. 2534 ลีนุส ทอร์วัลด์สได้เตรียม ลินุกซ์เวอร์ชัน 0.01 และวางบน "ftp.funet.fi" ซึ่งเป็นเซิร์ฟเวอร์ FTP ของมหาวิทยาลัยฟินแลนด์และเครือข่ายการวิจัย (FUNET) ณ ตอนนั้นระบบยังไม่สามารถเรียกใช้งานได้ด้วยซ้ำเนื่องจากโค้ดของมันยังคงต้องใช้ Minix เพื่อคอมไพล์และทดสอบ
เมื่อวันที่ 5 ตุลาคม พ.ศ. 2534 ลีนุส ทอร์วัลด์สได้ประกาศเปิดตัว ลินุกซ์เวอร์ชัน "อย่างเป็นทางการ" รุ่นแรก เวอร์ชัน 0.02  ณ จุดนี้ ลินุกซ์สามารถใช้งาน แบช, ชุดแปลโปรแกรมของกนู และยูทิลิตี้ GNU อื่นๆ ได้:  ลินุกซ์เวอร์ชัน 0.95 เป็นรุ่นแรกที่สามารถเรียกใช้งานเอ็กซ์วินโดวซิสเต็มได้  ในเดือนมีนาคม พ.ศ. 2537 ลินุกซ์ 1.0.0 เปิดตัวพร้อมรหัสต้นทาง 176,250 บรรทัด  เป็นเวอร์ชันแรกที่เหมาะสำหรับใช้ในสภาพแวดล้อมการผลิต
มันเริ่มระบบการกำหนดเวอร์ชันสำหรับเคอร์เนลด้วยตัวเลขสามหรือสี่ตัวคั่นด้วยจุด โดยตัวแรกแสดงถึงรุ่นหลัก ตัวที่สองคือ รุ่นรอง และตัวที่สามคือรุ่นแก้ไข  : 9  โดยในเวลานั้นรุ่นรองที่มีเลข คี่ มีไว้สำหรับการพัฒนาและการทดสอบ ในขณะที่รุ่นรองที่มีเลข คู่ มีไว้สำหรับการผลิต ตัวเลขตัวที่สี่ที่ไม่บังคับระบุชุดของแพตช์สำหรับ การแก้ไข  รุ่นการพัฒนาจะระบุด้วยคำต่อท้าย -rc ("release Candidate")
การกำหนดหมายเลขเวอร์ชันปัจจุบันแตกต่างจากด้านบนเล็กน้อย การใช้เลขคู่และเลขคี่ถูกยกเลิก และตอนนี้รุ่นหลัก เจะแสดงด้วยตัวเลขสองตัวแรกร่วมกัน ในขณะที่ยังอยู่ในช่วงของการพัฒนา รุ่นหลัก ถัดไป ส่วนต่อท้าย -rcก จะถูกใช้เพื่อระบุ release candidate รุ่นที่ ก สำหรับเวอร์ชันถัดไป  ตัวอย่างเช่น การเปิดตัวเวอร์ชัน 4.16 นำหน้าด้วย 4.16-rcN เจ็ดตัว (จาก -rc1 ถึง -rc7) เมื่อปล่อยเวอร์ชันเสถียรแล้ว การบำรุงรักษาจะส่งต่อไปยัง "ทีมเสถียร" การอัปเดตเป็นครั้งคราวสำหรับเวอร์ชันเสถียรจะถูกระบุด้วยรูปแบบการลำดับเลขสามตัว (เช่น 4.13.1, 4.13.2, ..., 4.13.16) 
หลังจากเคอร์เนลเวอร์ชัน 1.3 ทอร์วัลด์สตัดสินใจว่าลินุกซ์มีการพัฒนาเพียงพอที่จะคู่ควรต่อเลข รุ่นหลัก ใหม่ ดังนั้นเขาจึงออกเวอร์ชัน 2.0.0 ในเดือนมิถุนายน พ.ศ. 2539   ซีรีส์นี้มีการปล่อย 41 ครั้ง คุณสมบัติหลักของรุ่น 2.0 คือการรองรับ Symmetric Multiprocessing (SMP) และรองรับโปรเซสเซอร์ประเภทต่างๆ มากขึ้น
ตั้งแต่เวอร์ชัน 2.0 เป็นต้นไป ลินุกซ์สามารถกำหนดค่าได้สำหรับการเลือกเป้าหมายฮาร์ดแวร์เฉพาะ และสำหรับการเปิดใช้งานคุณสมบัติเฉพาะทางสถาปัตยกรรมและการเพิ่มประสิทธิภาพ  คำสั่งตระกูล make *config ของ kbuild ใช้เพื่อเปิดใช้งานและกำหนดค่าของตัวเลือกหลายพันรายการสำหรับการสร้างไฟล์ปฏิบัติการเคอร์เนลเฉพาะกิจ (vmlinux) และโมดูลที่โหลดได้  
เวอร์ชัน 2.2 เปิดตัวเมื่อวันที่ 20 มกราคม พ.ศ. 2542  ปรับปรุงรายละเอียดการล็อคและการจัดการ SMP เพิ่ม m68k, PowerPC, Sparc64, Alpha และการสนับสนุนแพลตฟอร์ม 64 บิตอื่น ๆ  นอกจากนี้ยังเพิ่มระบบไฟล์ใหม่ๆ รวมถึงความสามารถแบบอ่านอย่างเดียวของระบบ NTFS ของไมโครซอฟต์  ในปี พ.ศ. 2542 IBM เผยแพร่แพทช์สำหรับรหัสต้นทางของลินุกซ์ 2.2.13 เพื่อรองรับสถาปัตยกรรม S/390 
เวอร์ชัน 2.4.0 ได้รับการปล่อยเมื่อวันที่ 4 มกราคม พ.ศ. 2544  มันรองรับ ISA Plug and Play, USB และ การ์ดพีซี รุ่น 2.4 ยังเพิ่มการรองรับสำหรับ Pentium 4 และ Itanium (Itanium ยังได้เปิดตัว ia64 ISA ที่ได้รับการพัฒนาร่วมกันโดย Intel และ Hewlett-Packard เพื่อแทนที่ PA-RISC รุ่นเก่า) และสำหรับโปรเซสเซอร์ MIPS 64 บิต รุ่นใหม่  การพัฒนาสำหรับ 2.4 x เปลี่ยนแปลงเล็กน้อยเนื่องจากมีฟีเจอร์เพิ่มเติมให้ใช้งานตลอดระยะเวลาของซีรีส์นี้ รวมถึงการสนับสนุน Bluetooth, Logical Volume Manager (LVM) เวอร์ชัน 1, รองรับ RAID, InterMezzo และระบบไฟล์ ext3
รุ่น 2.6.0 เปิดตัวเมื่อวันที่ 17 ธันวาคม พ.ศ. 2546  การพัฒนาสำหรับ 2.6.x เปลี่ยนแปลงเพิ่มเติมไปสู่การรวมคุณสมบัติใหม่ตลอดระยะเวลาของซีรีส์ การเปลี่ยนแปลงที่เกิดขึ้นในซีรีย์ 2.6 ได้แก่: การรวม µClinux เข้ากับรหัสต้นทางของเคอร์เนลโดยตรง, การรองรับ PAE, การรองรับหน่วยประมวลผลกลางใหม่หลายรุ่น, การรวม Advanced Linux Sound Architecture (ALSA) เข้ากับรหัสต้นทางของเคอร์เนลโดยตรง, การรองรับ ผู้ใช้สูงสุด 232 ราย (เพิ่มจาก 216 ราย ) รองรับ ID กระบวนการสูงสุด 229 ราย (เฉพาะ 64 บิต สถาปัตยกรรม 32 บิตยังคงจำกัดอยู่ที่ 215 ราย)  เพิ่มจำนวนประเภทอุปกรณ์และจำนวนอย่างมาก ของอุปกรณ์แต่ละประเภท การสนับสนุน 64 บิตที่ได้รับการปรับปรุง รองรับ ระบบไฟล์ที่รองรับขนาดไฟล์สูงสุด 16 เทราไบต์ การจองล่วงหน้า ในเคอร์เนล การรองรับ Native POSIX Thread Library (NPTL) การรวมโหมดผู้ใช้ลินุกซ์เข้ากับรหัสต้นทางของเคอร์เนลโดยตรง การรวม SELinux เข้ากับรหัสต้นทางของเคอร์เนลโดยตรง, การรองรับ InfiniBand และอื่นๆ อีกมากมาย
สิ่งที่น่าสังเกตอีกอย่างคือการเพิ่มระบบไฟล์ที่มีให้เลือกมากมายตั้งแต่เวอร์ชัน 2.6 x : ตอนนี้เคอร์เนลรองรับระบบไฟล์จำนวนมาก บางตัวได้รับการออกแบบมาสำหรับลินุกซ์โดยเฉพาะ เช่น ext3, ext4, FUSE, Btrfs,  และอื่น ๆ ที่เป็นระบบปฏิบัติการอื่นเช่น JFS, XFS, Minix, Xenix, Irix, Solaris, System V, Windows และ MS-DOS 
== ทางกฎหมาย ==
=== สัญญาอนุญาต ===
เดิมทีนั้นลีนุส ทอร์วัลด์สเผยแพร่ลินุกซ์ภายใต้สัญญาอนุญาตที่ห้ามการใช้งานเชิงพาณิชย์
== ดูเพิ่ม ==
ลินุกซ์
โอเพนซอร์ส
ซอฟต์แวร์เสรี
ยูนิกซ์
ระบบปฏิบัติการ
==อ้างอิง==
== แหล่งข้อมูลอื่น ==
The Linux Kernel Archives
ซอฟต์แวร์ในปี พ.ศ. 2534
คเคอร์เนล
ระบบปฏิบัติการ