ลินุกซ์เคอร์เนลเก่าเกือบ 25 ปีที่ผ่านมา ถ้าฉันต้องมากับเวอร์ชั่นสั้น ๆ เกี่ยวกับประวัติการพัฒนาของเคอร์เนลลินุกซ์ตั้งแต่ปี 1991 (วันที่เริ่ม) และในระดับตั้งแต่ปี 1994 (1.0.0) จนถึงวันนี้ฉันไม่สามารถทำได้ สิ่งที่ดีที่สุดที่ฉันสามารถทำได้เพียงอ่านทุกครั้งที่รีลีสเคอร์เนลรีลีสคือการให้ฟีเจอร์ต่อไปนี้ซึ่งเป็นฟีเจอร์รีลีสทั่วไปที่เพิ่มเข้าไปในเคอร์เนลจนถึงเวอร์ชัน 3.11 (บันทึกและลิงก์ที่ละเว้น):
- เคอร์เนล Linux เวอร์ชัน 1.0เปิดตัวเมื่อวันที่ 14 มีนาคม 2537 เคอร์เนล Linux รุ่นนี้รองรับระบบคอมพิวเตอร์ที่ใช้โปรเซสเซอร์ i386 ตัวเดียวเท่านั้น การพกพากลายเป็นปัญหาและ รุ่น 1.2 (วางจำหน่าย 7 มีนาคม 2538) ได้รับการสนับสนุนสำหรับระบบคอมพิวเตอร์ที่ใช้โปรเซสเซอร์โดยใช้สถาปัตยกรรมแบบ Alpha, SPARC และ MIPS
- รุ่น 2.0ได้รับการปล่อยตัว 9 มิถุนายน 2539 มี 41 เผยแพร่ในซีรีส์ คุณสมบัติที่สำคัญของ 2.0 คือการสนับสนุน SMP (กล่าวคือรองรับโปรเซสเซอร์หลายตัวในระบบเดียว) และรองรับโปรเซสเซอร์ประเภทอื่น ๆ
- เวอร์ชัน 2.2 (เผยแพร่เมื่อวันที่ 26 มกราคม 1999) ลบ spinlock ทั่วโลกและให้การสนับสนุน SMP ที่ปรับปรุงและเพิ่มการสนับสนุนสำหรับสถาปัตยกรรม m68k และ PowerPC รวมถึงระบบไฟล์ใหม่ (รวมถึงการสนับสนุนแบบอ่านอย่างเดียวสำหรับ Microsoft NTFS)
- เวอร์ชั่น 2.4.0 วางจำหน่ายเมื่อวันที่ 4 มกราคม 2544 มีการรองรับ ISA Plug and Play, USB และการ์ดพีซี นอกจากนี้ยังรวมถึงการสนับสนุนโปรเซสเซอร์ PA-RISC จาก Hewlett-Packard การพัฒนา 2.4.x เปลี่ยนไปเล็กน้อยซึ่งฟีเจอร์เพิ่มเติมนั้นมีให้ใช้งานตลอดระยะเวลาของซีรีย์ ได้แก่ : รองรับบลูทู ธ , Logical Volume Manager (LVM) เวอร์ชั่น 1, การสนับสนุน RAID, ระบบไฟล์ InterMezzo และ ext3
- เวอร์ชัน 2.6.0เปิดตัวเมื่อวันที่ 18 ธันวาคม พ.ศ. 2546 การพัฒนา 2.6.x มีการเปลี่ยนแปลงเพิ่มเติมเพื่อรวมคุณสมบัติใหม่ ๆ ตลอดระยะเวลาของซีรีย์ ท่ามกลางการเปลี่ยนแปลงที่เกิดขึ้นในซีรีส์ 2.6 ได้แก่ การรวมของ µClinux เข้ากับเคอร์เนล mainline source, การสนับสนุน PAE, การสนับสนุน CPU ใหม่หลายบรรทัด, การรวม ALSA เข้ากับเคอร์เนล mainline ที่รองรับผู้ใช้สูงสุด 2 32คน ( เพิ่มขึ้นจาก 2 16 ) รองรับID กระบวนการมากถึง 2 29 (64- บิตเท่านั้นส่วนโค้ง 32- บิตยังคง จำกัด อยู่ที่ 2 15) เพิ่มจำนวนของประเภทอุปกรณ์และจำนวนอุปกรณ์ของแต่ละประเภทเพิ่มขึ้นรองรับ 64- บิตที่ดีขึ้นรองรับระบบไฟล์ที่รองรับขนาดไฟล์สูงสุด 16 เทราไบต์, การจองในเคอร์เนล, รองรับไลบรารีเธรด POSIX แบบเนทีฟ (NPTL), การรวม Linux ในโหมดผู้ใช้ในแหล่งเคอร์เนล mainline, การรวม SELinux เข้ากับแหล่งเคอร์เนล mainline, การสนับสนุน InfiniBand และอื่น ๆ อีกมาก สิ่งที่น่าสังเกตอีกอย่างก็คือการเพิ่มระบบไฟล์หลาย ๆ ระบบในเวอร์ชัน 2.6.x: FUSE, JFS, XFS, ext4 และอื่น ๆ รายละเอียดเกี่ยวกับประวัติของชุดเคอร์เนล 2.6 สามารถพบได้ในไฟล์ ChangeLog บนพื้นที่ปล่อยซอร์สโค้ดชุดเคอร์เนล 2.6 ของ kernel.org
- เวอร์ชัน 3.0เปิดตัวเมื่อวันที่ 22 กรกฎาคม 2011 Torvalds ประกาศว่าการเปลี่ยนแปลงครั้งใหญ่คือ "ไม่มีอะไรไม่มีอะไรแน่นอนเลย" 30 พฤษภาคม 2554 เห็น Torvalds ประกาศว่า "... ขอให้แน่ใจว่าเราจะเปิดตัวรุ่นต่อไปอย่างแท้จริงไม่ใช่แค่หมายเลขเงาใหม่ แต่เป็นเคอร์เนลที่ดีเช่นกัน" หลังจากกระบวนการพัฒนา 6-7 สัปดาห์คาดว่าจะเปิดตัวใกล้ครบรอบ 20 ปีของ Linux
- ในเดือนธันวาคม 2012 Torvalds ตัดสินใจลดความซับซ้อนของเคอร์เนลโดยยกเลิกการสนับสนุนโปรเซสเซอร์ i386 ทำให้ชุดเคอร์เนล 3.7 เป็นชุด สุดท้ายที่ยังคงสนับสนุนโปรเซสเซอร์ดั้งเดิม ซีรี่ส์เดียวกันนี้รองรับการใช้งานโปรเซสเซอร์ ARM
- เวอร์ชัน 3.11เผยแพร่เมื่อวันที่ 2 กันยายน 2556 เพิ่มคุณสมบัติใหม่มากมายเช่น O_TMPFILE flag ใหม่สำหรับ open (2) เพื่อลดช่องโหว่ของไฟล์ชั่วคราวการจัดการพลังงานไดนามิก AMD Radeon แบบไดนามิกการสำรวจเครือข่าย low-latency และ zswap (แคช swap ที่บีบอัด)
ฉันยังสามารถเพิ่มสิ่งนั้นเป็นเวลาหลายปีในขณะนี้มูลนิธิ Linuxได้รับรายงานเกี่ยวกับการพัฒนาเคอร์เนล นี่คือจุดเด่นการพัฒนาเคอร์เนล 2012-2013:
- ชุดการเปลี่ยนแปลงเกือบ 92,000 ชุดได้รับการรวมเข้าด้วยกันจากนักพัฒนารายย่อย 3,738 รายซึ่งเป็นตัวแทนของ บริษัท 536 แห่ง (ที่เรารู้จัก)
- คุณสมบัติใหม่ที่สำคัญมากมายได้ถูกรวมเข้ากับการฉีด สิ่งเหล่านี้รวมถึงการดำเนินการที่ไม่มีขีด จำกัด อย่างสมบูรณ์, เนมสเปซผู้ใช้, การจำลองเสมือนของ KVM และ Xen สำหรับ ARM, การติดตามโหลดเอนทิตีในตัวกำหนดตารางเวลา, จุดตรวจสอบ / รีสตาร์ทพื้นที่ผู้ใช้, การสนับสนุนสถาปัตยกรรม ARM 64 บิต, ระบบไฟล์แฟลช ที่ปัญหาเวลาแฝงและบัฟเฟอร์, ระบบย่อยอิสระสองระบบที่ให้การแคชอย่างรวดเร็วสำหรับอุปกรณ์จัดเก็บข้อมูลแบบบล็อกและอีกมากมาย
- การทะเลาะกันอย่างยาวนานกับคุณสมบัติเคอร์เนลเฉพาะของ Android นั้นได้จางหายไปอย่างสิ้นเชิงในพื้นหลัง ฟีเจอร์ "wakelocks" ที่ถูกกล่าวถึงมากได้ถูกแทนที่อย่างเงียบ ๆ ด้วยวิธีการฉีดที่แตกต่างกันซึ่งใช้ในอุปกรณ์ Android รุ่นล่าสุด
- การใช้เครื่องมืออัตโนมัติเพื่อค้นหาข้อบกพร่องในเมล็ดพัฒนาได้เพิ่มขึ้นอย่างมากในช่วงเวลานี้ เครื่องมือเช่นเครื่องทดสอบฟัซซี่ "ทรินิตี้" และระบบ build-and-boot แบบ zero-day กำลังค้นหาข้อบกพร่องจำนวนมากในเมล็ดก่อนปล่อยทำให้วงจรการพัฒนาสั้นลงและทำให้ชุมชนสามารถเผยแพร่คุณภาพสูงขึ้น
- การมีส่วนร่วมจากอุตสาหกรรมมือถือและอุตสาหกรรมฝังตัวเพิ่มขึ้นอย่างต่อเนื่อง ยกตัวอย่างเช่น Linaro, Samsung และ TI รวม 4.4% ของการเปลี่ยนแปลงในรุ่นก่อนหน้าของเอกสารนี้; สำหรับช่วงเวลาสูงสุด 3.10 พวกเขามีส่วนร่วมเกือบ 11% ของการเปลี่ยนแปลงทั้งหมด
- โครงการเคอร์เนลเข้าร่วมในโครงการบริการวิชาการสำหรับผู้หญิงเป็นครั้งแรกซึ่งนำไปสู่ 41 แอปพลิเคชันสำหรับตำแหน่งที่มีอยู่ 7 ตำแหน่ง ในระหว่างกระบวนการแอปพลิเคชันมีการส่งแพตช์ 374 ครั้งไปยังเคอร์เนลและมากกว่า 1/3 ของแพตช์เหล่านั้นได้รับการยอมรับในการปล่อยเคอร์เนล 3.10 ขณะนี้กระบวนการฝึกงานอยู่ในระหว่างดำเนินการ แต่ผลลัพธ์ของสิ่งนั้นจะไม่เริ่มปรากฏขึ้นจนกว่าเคอร์เนลจะมีการเปิดตัวในอนาคต
นอกจากนี้ปริมาณสิ่งที่เกิดขึ้นกับเคอร์เนลไม่ได้เป็นเรื่องยากมากที่เรามีตัวชี้วัดที่เกินกระทำของแต่ละบุคคล ตัวอย่างเช่นเรารู้ว่า 1.0.0 เคอร์เนลในปี 1994 มีรหัส 176 250 บรรทัด และเรารู้ว่าเคอร์เนลร่วมสมัยเช่น 3.10 มีโค้ดขนาด 15 803 499 บรรทัด มากขึ้น ความถี่ในการปล่อยเคอร์เนลเพิ่มขึ้น (63 วันสำหรับ 3.10) เช่นเดียวกับอัตราการเปลี่ยนแปลง (9 คอมมิตต่อชั่วโมงหรือมากกว่าที่เราพูด) เพื่ออ้างอิง Linux Foundation:
ความสามารถในการรักษาอัตราการเปลี่ยนแปลงนี้สำหรับปีเป็นประวัติการณ์ในโครงการซอฟต์แวร์สาธารณะใด ๆ ก่อนหน้านี้
แต่ทั้งหมดนี้ทำให้ฉันมีความเข้าใจลึกซึ้งเล็กน้อย ดังนั้นฉันจะถาม:
- ไตรมาสวิวัฒนาการของศตวรรษนี้สามารถสรุปได้อย่างชัดเจน นอกเหนือจากการเพิ่มคุณสมบัติเชิงเส้นของคุณสมบัติทั้งหมดที่รวมอยู่ในเคอร์เนลนี้เมื่อเวลาผ่านไปหรือไม่?
- และสิ่งนี้นำข้อมูลเชิงลึกเกี่ยวกับสิ่งที่เคอร์เนลลินุกซ์หรือสิ่งที่จะไป? หลังจาก 25 ปีของการพัฒนาข้อสรุปบางอย่างสามารถวาดเกี่ยวกับที่?
กำลังมองหาคำตอบที่เป็นนามธรรมในเงื่อนไขของคนธรรมดาที่บอกว่ามันทั้งหมดโดยไม่ต้องหันไปพูดทุกอย่าง