ใจกลางลินุกซ์

ใจกลางลินุกซ์ เป็นใจกลางระบบปฏิบัติการแบบยูนิกซ์ที่เสรีและต้นทางเปิด เดิมเขียนขึ้นในปี พ.ศ. 2534 โดย ลีนุส ทอร์วัลด์ส สำหรับพีซีของเขาที่ใช้สถาปัตยกรรม i386 และในไม่ช้ามันก็ถูกนำมาใช้เป็นใจกลางสำหรับระบบปฏิบัติการกนู ซึ่งเขียนขึ้นเพื่อเป็นซอฟต์แวร์เสรีทดแทนยูนิกซ์
ใจกลางลินุกซ์ ได้รับการเผยแพร่สัญญาอนุญาต GNU General Public License เวอร์ชัน 2 เท่านั้น แต่ในตัวใจกลางก็มีไฟล์ภายใต้ ใบอนุญาตอื่น ๆ ที่เข้ากันได้ ตั้งแต่ปลายทศวรรษ 1990 เป็นต้นมา ระบบปฏิบัติการดังกล่าวได้ถูกรวมไว้เป็นส่วนหนึ่งของลินุกซ์ดิสทริบิวชันจำนวนมาก ซึ่งหลายระบบเรียกสั้น ๆ แค่ว่า ลินุกซ์
ลินุกซ์ถูกนำไปใช้ในระบบคอมพิวเตอร์ที่หลากหลาย เช่น อุปกรณ์ฝังตัว สมาร์ทโฟน (รวมถึงการใช้งานในระบบแอนดรอยด์) คอมพิวเตอร์ส่วนบุคคล เซิร์ฟเวอร์ เมนเฟรม และ ซูเปอร์คอมพิวเตอร์ ลินุกซ์สามารถปรับแต่งให้เหมาะกับสถาปัตยกรรมเฉพาะและสำหรับสถานการณ์การใช้งานต่าง ๆ โดยใช้กลุ่มคำสั่งง่าย ๆ (นั่นคือ ไม่จำเป็นต้องแก้ไขรหัสต้นทางด้วยตนเองก่อนทำการคอมไพล์) ผู้ใช้ที่ได้รับสิทธิ์ผู้ดูแลระบบยังสามารถปรับแต่งพารามิเตอร์ใจกลางขณะระบบกำลังทำงานได้อีกด้วย รหัสใจกลางลินุกซ์ส่วนใหญ่เขียนโดยใช้ภาษาซี, ส่วนขยาย GNU ของภาษาซี และมีเพียงส่วนน้อยที่เขียนด้วยคำสั่งเฉพาะสถาปัตยกรรม (ISA) สิ่งนี้สร้างไฟล์ปฏิบัติการที่ได้รับการปรับปรุงประสิทธิภาพสูงสุด (vmlinux) โดยคำนึงถึงการใช้พื้นที่หน่วยความจำและเวลาดำเนินการงาน : 379–380 
การอภิปรายเกี่ยวกับการพัฒนาในแต่ละวันเกิดขึ้นใน บัญชีจ่าหน้าใจกลางลินุกซ์  หรือ LKML ติดตามการเปลี่ยนแปลงโดยใช้ระบบควบคุมเวอร์ชันกิต ซึ่งเดิมเขียนโดย ลีนุส ทอร์วัลด์ส เพื่อเป็นซอฟต์แวร์เสรีแทนที่ BitKeeper
ความเป็นมา.
ในเดือนเมษายน พ.ศ. 2534 ลีนึส ตูร์วัลดส์ในขณะนั้นเป็นนักศึกษาวิทยาการคอมพิวเตอร์ อายุ 21 ปีที่มหาวิทยาลัยเฮลซิงกิ ประเทศฟินแลนด์ ได้เริ่มทำงานกับแนวคิดง่าย ๆ สำหรับระบบปฏิบัติการที่ได้รับแรงบันดาลใจจากยูนิกซ์ สำหรับคอมพิวเตอร์ส่วนบุคคล เขาเริ่มต้นด้วยตัวสลับงานในภาษาแอสเซมบลี Intel 80386 และ ไดรเวอร์เทอร์มินัล เมื่อวันที่ 25 สิงหาคม พ.ศ. 2534 Torvalds ได้โพสต์ข้อความต่อไปนี้ใน "comp.os.minix" ซึ่งเป็น กลุ่มข่าวสารบนยูสเน็ต
<templatestyles src="แม่แบบ:คำพูด/style.css" />ข้าพเจ้ากำลังสร้างระบบปฏิบัติการเสรี (เป็นเพียงงานอดิเรก ไม่อลังการและเป็นมืออาชีพแบบกนูหรอก) สำหรับตัวโคลนของ 386(486) AT ข้าพเจ้าได้เริ่มสร้างมาตั้งแต่เดือนเมษายนแล้ว และเริ่มเตรียมพร้อม ข้าพเจ้าต้องการข้อเสนอแนะเกี่ยวกับสิ่งที่ผู้คนชอบ/ไม่ชอบใน minix เนื่องจากระบบปฏิบัติการของข้าพเจ้ามีลักษณะคล้ายคลึงมันอยู่พอสมควร (รูปแบบทางกายภาพของระบบไฟล์ที่เหมือนกัน (เนื่องจากเหตุผลในทางปฏิบัติ) และเหตุผลอื่น ๆ)<br>ขณะนี้ข้าพเจ้าได้พอร์ตแบช(1.08) และชุดแปลโปรแกรมของกนู(1.40) และสิ่งต่าง ๆ ดูเหมือนจะได้ผล นี่หมายความว่าข้าพเจ้าจะได้สิ่งที่ใช้งานได้จริงภายในไม่กี่เดือน [...]<br>ใช่ - ระบบนี้ไม่มีโค้ด minix ใด ๆ และมีระบบไฟล์แบบมัลติเธรด มันไม่สามารถพอร์ตได้ (ใช้การสลับงานแบบ 386 ฯลฯ) และอาจจะไม่รองรับสิ่งอื่นใดนอกจาก AT-harddisks เพราะนั่นคือทั้งหมดที่ข้าพเจ้ามี :-(เมื่อวันที่ 17 กันยายน พ.ศ. 2534 ลีนุส ทอร์วัลด์สได้เตรียม ลินุกซ์เวอร์ชัน 0.01 และวางบน "ftp.funet.fi" ซึ่งเป็นเซิร์ฟเวอร์ FTP ของมหาวิทยาลัยฟินแลนด์และเครือข่ายการวิจัย (FUNET) ณ ตอนนั้นระบบยังไม่สามารถเรียกใช้งานได้ด้วยซ้ำเนื่องจากโค้ดของมันยังคงต้องใช้ Minix เพื่อคอมไพล์และทดสอบ
เมื่อวันที่ 5 ตุลาคม พ.ศ. 2534 ลีนุส ทอร์วัลด์สได้ประกาศเปิดตัว ลินุกซ์เวอร์ชัน "อย่างเป็นทางการ" รุ่นแรก เวอร์ชัน 0.02 ณ จุดนี้ ลินุกซ์สามารถใช้งาน แบช, ชุดแปลโปรแกรมของกนู และยูทิลิตี้ GNU อื่น ๆ ได้: 
<templatestyles src="แม่แบบ:คำพูด/style.css" />[ดังที่] ข้าพเจ้าได้กล่าวไว้เมื่อเดือนที่แล้วว่าข้าพเจ้ากำลังสร้างสิ่งที่คล้าย Minix แบบเสรีสำหรับคอมพิวเตอร์ AT-386 ในที่สุดก็มาถึงขั้นที่สามารถใช้งานได้แล้ว (แต่คุณอาจจะใช้มันไม่ได้ก็ได้ ขึ้นอยู่กับว่าคุณต้องการอะไร) และข้าพเจ้ายินดีที่จะหาแหล่งสำหรับการเผยแพร่ในวงกว้าง มันเป็นเพียงเวอร์ชัน 0.02 ... แต่ข้าพเจ้าเรียกใช้แบช, ชุดแปลโปรแกรมของกนู, gnu-make, gnu-sed, compress ฯลฯ ได้สำเร็จแล้ว
ลินุกซ์เวอร์ชัน 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
ทางกฎหมาย.
สัญญาอนุญาต.
เดิมทีนั้นลีนุส ทอร์วัลด์สเผยแพร่ลินุกซ์ภายใต้สัญญาอนุญาตที่ห้ามการใช้งานเชิงพาณิชย์