Kernel Linux hampir berumur 25 tahun . Jika saya harus membuat versi singkat tentang sejarah pengembangan kernel Linux sejak 1991 (tanggal permulaannya), dan sebagian sejak 1994 (1.0.0) hingga hari ini, saya tidak bisa. Yang terbaik yang bisa saya lakukan singkat membaca setiap catatan rilis kernel tunggal adalah untuk menyediakan berikut ini yang merupakan fitur rilis umum ditambahkan ke kernel hingga versi 3.11 (catatan dan tautan dihilangkan):
- Versi 1.0 dari kernel Linux dirilis pada 14 Maret 1994. Rilis kernel Linux ini hanya mendukung sistem komputer berbasis prosesor tunggal i386. Portabilitas menjadi perhatian, sehingga versi 1.2 (dirilis 7 Maret 1995) memperoleh dukungan untuk sistem komputer menggunakan prosesor berbasis pada arsitektur Alpha, SPARC, dan MIPS.
- Versi 2.0 dirilis 9 Juni 1996. Ada 41 rilis dalam seri ini. Fitur utama 2.0 adalah dukungan SMP (yaitu, dukungan untuk beberapa prosesor dalam satu sistem) dan dukungan untuk lebih banyak jenis prosesor.
- Versi 2.2 (dirilis 26 Januari 1999) menghapus spinlock global dan memberikan dukungan SMP yang ditingkatkan, dan menambahkan dukungan untuk arsitektur M68k dan PowerPC serta sistem file baru (termasuk dukungan read-only untuk Microsoft NTFS).
- Versi 2.4.0 , dirilis pada 4 Januari 2001, berisi dukungan untuk ISA Plug and Play, USB, dan Kartu PC. Ini juga termasuk dukungan untuk prosesor PA-RISC dari Hewlett-Packard. Pengembangan untuk 2.4.x berubah sedikit sehingga lebih banyak fitur tersedia sepanjang seri, termasuk: dukungan untuk Bluetooth, Logical Volume Manager (LVM) versi 1, dukungan RAID, InterMezzo dan sistem file ext3.
- Versi 2.6.0 dirilis pada 18 Desember 2003. Pengembangan untuk 2.6.x berubah lebih jauh ke arah menyertakan fitur-fitur baru sepanjang durasi seri. Di antara perubahan yang telah dibuat dalam seri 2.6 adalah: integrasi µClinux ke dalam sumber kernel utama, dukungan PAE, dukungan untuk beberapa jalur CPU baru, integrasi ALSA ke dalam sumber kernel utama, dukungan hingga 2 32 pengguna ( naik dari 2 16 ), dukungan hingga 2 29 ID proses (hanya 64-bit, lengkungan 32-bit masih terbatas pada 2 15).), secara substansial meningkatkan jumlah jenis perangkat dan jumlah perangkat masing-masing jenis, meningkatkan dukungan 64-bit, dukungan untuk sistem file yang mendukung ukuran file hingga 16 terabyte, preemption di-kernel, dukungan untuk Native POSIX Thread Library (NPTL), Pengguna-mode Linux integrasi ke dalam sumber kernel garis utama, integrasi SELinux ke sumber kernel garis utama, dukungan InfiniBand, dan jauh lebih banyak. Juga penting adalah penambahan beberapa sistem file di sepanjang rilis 2.6.x: FUSE, JFS, XFS, ext4 dan banyak lagi. Rincian tentang sejarah seri kernel 2.6 dapat ditemukan di file ChangeLog pada area rilis kode sumber seri kernel 2.6 dari kernel.org.
- Versi 3.0 dirilis pada 22 Juli 2011. Torvalds mengumumkan bahwa perubahan besar adalah, "TIDAK ADA. Sama sekali tidak ada." 30 Mei 2011 melihat Torvalds mengumumkan, "... mari kita pastikan kita benar-benar membuat rilis berikutnya bukan hanya angka baru yang mengkilap, tapi juga kernel yang bagus." Setelah proses pengembangan yang diharapkan 6-7 minggu, itu akan dirilis mendekati ulang tahun ke 20 Linux.
- Pada Desember 2012, Torvalds memutuskan untuk mengurangi kompleksitas kernel dengan menghapus dukungan untuk prosesor i386, menjadikan seri 3.7 kernel yang terakhir masih mendukung prosesor asli. Seri yang sama menyatukan dukungan untuk prosesor ARM.
- Versi 3.11 , dirilis pada 2 September 2013, menambahkan banyak fitur baru seperti flag O_TMPFILE baru untuk terbuka (2) untuk mengurangi kerentanan file sementara, manajemen daya dinamis AMD Radeon eksperimental, polling jaringan latensi rendah, dan zswap (cache swap terkompresi).
Saya juga bisa menambahkan bahwa selama bertahun-tahun sekarang Linux Foundation telah melaporkan pengembangan kernel. Ini adalah Ikhtisar Pengembangan Kernel 2012-2013:
- Hampir 92.000 perubahan telah digabungkan dari 3.738 pengembang individu yang mewakili 536 perusahaan (yang kita ketahui).
- Sejumlah besar fitur baru yang penting telah digabungkan ke dalam jalur utama. Ini termasuk operasi tanpa centang penuh, ruang nama pengguna, KVM dan virtualisasi Xen untuk ARM, pelacakan beban per entitas dalam penjadwal, pos pemeriksaan / restart ruang pengguna, dukungan arsitektur ARM 64-bit, sistem file yang berorientasi flash F2FS, banyak sistem jaringan yang ditujukan pada masalah latensi dan bufferbloat, dua subsistem independen menyediakan caching cepat untuk perangkat penyimpanan blok, dan banyak lagi.
- Pertengkaran lama tentang fitur-fitur kernel spesifik Android telah memudar sepenuhnya ke latar belakang. Fitur "wakelocks" yang banyak dibahas telah diam-diam digantikan oleh solusi garis utama yang berbeda yang digunakan dalam perangkat Android terbaru.
- Penggunaan alat otomatis untuk menemukan bug di kernel pengembangan telah meningkat secara signifikan selama periode ini. Alat-alat seperti tester trinitas "trinitas" dan sistem build-and-boot nol-hari menemukan sejumlah besar bug di kernel pra-rilis, memperpendek siklus pengembangan dan memungkinkan komunitas untuk memberikan rilis berkualitas lebih tinggi.
- Kontribusi dari industri seluler dan tertanam terus meningkat. Linaro, Samsung, dan TI, misalnya, bersama-sama berkontribusi 4,4% dari perubahan dalam versi sebelumnya dari makalah ini; untuk periode hingga 3,10, mereka berkontribusi hampir 11% dari semua perubahan.
- Proyek kernel berpartisipasi dalam Program Penjangkauan untuk Wanita untuk pertama kalinya, mengarah ke 41 aplikasi untuk 7 posisi yang tersedia. Selama proses aplikasi, 374 tambalan dikirimkan ke kernel, dan lebih dari 1/3 tambalan tersebut diterima dalam rilis 3.10 kernel. Proses intern sekarang sedang berlangsung, tetapi hasil itu tidak akan mulai muncul sampai rilis kernel masa depan.
Selain itu, menghitung apa yang terjadi pada kernel tidak terlalu sulit karena kami memiliki metrik di luar komitmen individu . Sebagai contoh, kita tahu kernel 1.0.0 pada tahun 1994 memiliki 176 250 baris kode; dan kita tahu kernel kontemporer seperti 3.10 memiliki 15 803 499 baris kode. Jauh lebih banyak. Frekuensi rilis kernel telah meningkat (63 hari untuk 3,10), serta tingkat perubahan (9 komit per jam atau lebih seperti yang kita bicarakan). Mengutip Yayasan Linux:
Kemampuan untuk mempertahankan tingkat perubahan ini selama bertahun-tahun belum pernah terjadi sebelumnya dalam proyek perangkat lunak publik sebelumnya.
Tetapi semua ini membawa sedikit wawasan dalam pendapat saya. Karena itu, saya akan bertanya:
- Dapatkah evolusi seperempat abad ini disingkat dengan kualifikasi melampaui penambahan linier dari semua fitur yang terdaftar yang membentuk kernel ini dari waktu ke waktu?
- Dan apakah ini membawa wawasan tentang apa itu kernel Linux, atau ke mana arahnya? Setelah 25 tahun berkembang, beberapa kesimpulan pasti dapat ditarik tentang hal itu?
Mencari jawaban abstrak dalam istilah awam yang mengatakan semuanya tanpa harus mengatakan semuanya.