Bisakah 25 tahun pengembangan kernel Linux memenuhi syarat atau diabstraksi dalam istilah awam? [Tutup]

12

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:

  1. Dapatkah evolusi seperempat abad ini disingkat dengan kualifikasi melampaui penambahan linier dari semua fitur yang terdaftar yang membentuk kernel ini dari waktu ke waktu?
  2. 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.


sumber
"dukungan untuk hingga 229 ID proses" agak melompat ke arah saya, jadi saya mencari di Google dan satu-satunya referensi, tampaknya, sumber asli paragraf itu . Saya mengira ID proses memiliki rentang (ditandatangani) 16-bit, yaitu ~ 16.000, tetapi mungkin sebenarnya lebih dari itu . Jelas bukan beberapa ratus.
goldilocks
3
Pertanyaan ini terlalu luas karena mencari artikel Wikipedia tentang masalah ini.
Gilles 'SO- stop being evil'
Apakah Anda berniat untuk menulis makalah di sini? Tidak apa-apa, tetapi akan membantu, saran bijak, jika Anda spesifik tentang apa yang Anda coba lakukan. Saya kira itu bukan hanya untuk memiliki ringkasan yang baik siap untuk malam Anda berikutnya di lubang berair lokal;)
goldilocks
1
Samar-samar saya ingat ada setidaknya beberapa orang yang berencana menulis disertasi tentang ini, atau serupa. Saya curiga Anda akan menemukan literatur akademis tentang masalah ini ... Selain menunjukkan publikasi yang ada, sepertinya pertanyaan Anda akan membutuhkan riset berbulan-bulan untuk dijawab.
derobert
Pada pertanyaan Anda, mungkin Anda perlu memberi tahu kami tentang persyaratan awam, untuk mendapatkan jawaban yang baik di sini. Selain itu, poskan ini ke lkml dan dapatkan umpan balik mereka tentang kronologi Anda. Jika Anda melewatkan sesuatu yang penting, mereka akan membuat Anda tahu.
Bananguin

Jawaban:

11

Anda 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?

Saya ragu pertanyaan semacam itu memiliki jawaban yang jelas. Namun, saya pikir tidak sulit untuk memahami kekuatan yang mendorong pengembangan kernel Linux.

Pertama, komputer adalah hal yang semakin penting. Chomsky mengatakan di suatu tempat bahwa mereka adalah pusat dari setiap ekonomi industri. Komputer bukan apa-apa tanpa sistem operasi, yang menjadikan sistem operasi itu penting.

Untuk sementara di tahun 80-an dan 90-an, sistem operasi berpemilik menjadi naik. Dalam beberapa hal, ini adalah keadaan yang tidak wajar. Microsoft Windows untuk waktu yang dominan, dan dalam arti tertentu masih, tetapi hanya mempertahankan posisinya dengan memanfaatkan efek jaringan.

Dengan munculnya internet, menjadi mungkin untuk menghasilkan sistem operasi komunitas. Namun, sistem operasi seperti itu hanya akan berguna jika pada gilirannya tidak dapat dipatenkan. Keluarga BSD dari sistem operasi tidak dalam kategori itu. Oleh karena itu munculnya kernel Linux sebagai jantung dari sistem operasi komunitas yang tidak dapat dipatenkan.

Perhatikan bahwa banyak vendor komputer besar ada di belakang kernel Linux. Mengapa? Individu peduli dengan kebebasan. Masyarakat peduli tentang kebebasan. Perusahaan hanya peduli pada keuntungan dan strategi terkait. Saya percaya bahwa banyak perusahaan komputer berdamai dengan gagasan tentang sistem operasi "dikomoditisasi", "bidang permainan yang sejajar", jika Anda mau. Mereka melihat contoh Microsoft menghasilkan banyak uang dengan memprioritaskan sistem operasi, tetapi tidak semua orang bisa menjadi Microsoft, dan memiliki satu vendor berada dalam posisi kekuasaan seperti itu, bisa dikatakan paling tidak bermasalah, jika hanya karena itu memberi mereka keuntungan yang tidak adil dari sudut pandang perusahaan lain.

Jadi, saya pikir karena sebagian besar perusahaan tidak dalam posisi untuk menjadi Microsoft, dan mungkin tidak mau, telah memutuskan untuk mendukung sistem operasi "komoditas". Sekali lagi, bidang bermain level. Dengan demikian setiap orang dapat menggunakan OS ini untuk tujuan apa pun yang mereka inginkan, dan tidak ada orang dalam kelompok yang diuntungkan sehubungan dengan orang lain. Cara lain untuk melihatnya adalah bahwa memiliki sesuatu yang mendasar seperti sistem operasi menjadi milik adalah gangguan parah dengan prinsip-prinsip pasar bebas. Secara umum perusahaan tidak secara khusus mendukung pasar bebas jika mereka dapat berada di pihak yang menang, tetapi jika mereka tidak bisa, maka mereka berada.

Sebagian besar karakteristik kernel Linux benar-benar dapat disimpulkan dari dinamika ini. Sebagai contoh, sifat modular dan lunak dari sistem operasi mirip Unix sangat cocok untuk OS yang dirancang untuk menjadi "komoditas". Selain itu, sebagian sifat proyek kernel yang bergerak cepat adalah karena ia berusaha memenuhi semua tuntutan perusahaan ini untuk menjadi seperti yang mereka inginkan. Sementara banyak aktivitas terpusat di sekitar dukungan / driver perangkat keras, ada juga banyak aktivitas di luar area itu; pengembangan fitur baru secara konstan dan pemeliharaan serta peningkatan fitur yang ada.

Tentu saja, kita tidak boleh mengabaikan keinginan komunitas, yang biasa disebut komunitas perangkat lunak bebas, atau kadang-kadang FOSS (Perangkat Lunak Bebas dan Sumber Terbuka), untuk memiliki sistem operasi gratis untuk digunakan oleh orang awam, yang tidak dikendalikan oleh perusahaan. Bagaimanapun, proyek seperti Debian dan Fedora dijalankan oleh sukarelawan yang percaya pada nilai-nilai ini. Namun, saya berpikir bahwa peran yang dimainkan oleh perusahaan juga tidak boleh diremehkan.

Faheem Mitha
sumber
1
+1 Untuk mengangkat masalah kekuatan sosial-politik yang membuat Linux dalam kombinasi dengan GNU membingungkan di arus utama. Saya pikir itu adalah aspek yang sangat signifikan dari asal-usulnya, yang meskipun mungkin tampak sebagai "masalah non-teknis", sebenarnya merupakan karakteristik yang menentukan dari tangan pada pengembangan OS - lihat khususnya tulisan Eric S. Raymond - dan bagian utama dari dinamika pengadopsiannya oleh berbagai produsen perangkat keras dan sebagai platform internet yang dominan secara historis.
goldilocks
^ Catatan banyak orang memiliki kernel linux di rumah mereka dan bahkan tidak mengetahuinya karena ini (router Anda, kotak DVR Anda, dll.)
goldilocks
Saya memuji jawaban Anda untuk menempatkan kernel pada waktunya, dan menarik dinamika yang berlaku - evolusi komputasi; daya tarik bisnis; kekuatan pasar; internet; kebebasan komputasi; lisensi; dan bagaimana semua hal di atas berdampak pada implementasi di kernel, dengan pandangan tentang Linux secara keseluruhan. Saya harus membaca dalam pernyataan Anda tentang "keadaan tidak wajar" yang kita mungkin tidak memiliki perspektif historis untuk menilai ini dengan benar - dan ini penting. Walaupun saya benar-benar fokus pada kernel per se, saya akan lebih memikirkan poin dan komentar Anda di atas. Terima kasih!
1
@goldilocks: Belum lagi ponsel Android Anda.
slebetman