GNU/Linux >> Belajar Linux >  >> Linux

Kernel Linux:5 inovasi teratas

Kata inovasi diperbincangkan di industri teknologi hampir sebanyak revolusi , jadi mungkin sulit untuk membedakan hiperbola dari sesuatu yang benar-benar mengasyikkan. Kernel Linux telah disebut inovatif, tetapi sekali lagi juga disebut sebagai peretasan terbesar dalam komputasi modern, sebuah monolit di dunia mikro.

Mengesampingkan pemasaran dan pemodelan, Linux bisa dibilang sebagai kernel paling populer di dunia open source, dan memperkenalkan beberapa pengubah permainan nyata selama hampir 30 tahun masa pakainya.

Grup C (2.6.24)

Kembali pada tahun 2007, Paul Menage dan Rohit Seth mendapatkan kelompok kontrol esoteris (cgroups) fitur ditambahkan ke kernel (implementasi cgroups saat ini adalah penulisan ulang oleh Tejun Heo.) Teknologi baru ini pada awalnya digunakan sebagai cara untuk memastikan, pada dasarnya, kualitas layanan untuk serangkaian tugas tertentu.

Misalnya, Anda dapat membuat definisi grup kontrol (cgroup) untuk semua tugas yang terkait dengan server web Anda, cgroup lain untuk pencadangan rutin, dan satu lagi untuk persyaratan sistem operasi umum. Anda kemudian dapat mengontrol persentase sumber daya untuk setiap cgroup, sehingga OS dan server web Anda mendapatkan sebagian besar sumber daya sistem sementara proses pencadangan Anda memiliki akses ke apa pun yang tersisa.

Yang paling terkenal dari cgroups adalah perannya sebagai teknologi yang mendorong cloud saat ini:container. Sebenarnya, cgroups awalnya bernama wadah proses. Tidaklah mengejutkan ketika mereka diadopsi oleh proyek-proyek seperti LXC, CoreOS, dan Docker.

Pintu air dibuka, istilah wadah menjadi identik dengan Linux, dan konsep "aplikasi" berbasis cloud bergaya layanan mikro dengan cepat menjadi norma. Hari-hari ini, sulit untuk melepaskan diri dari cgroup, mereka sangat umum. Setiap infrastruktur skala besar (dan mungkin laptop Anda, jika Anda menjalankan Linux) memanfaatkan cgroups dengan cara yang berarti, membuat pengalaman komputasi Anda lebih mudah dikelola dan lebih fleksibel dari sebelumnya.

Misalnya, Anda mungkin sudah menginstal Flathub atau Flatpak di komputer Anda, atau mungkin Anda sudah mulai menggunakan Kubernetes dan/atau OpenShift di tempat kerja. Terlepas dari itu, jika istilah "container" masih kabur bagi Anda, Anda dapat memperoleh pemahaman langsung tentang container dari Behind the Scenes with Linux container.

LKMM (4.17)

Pada tahun 2018, kerja keras Jade Alglave, Alan Stern, Andrea Parri, Luc Maranget, Paul McKenney, dan beberapa lainnya, digabungkan ke dalam kernel Linux arus utama untuk menyediakan model memori formal. Subsistem Linux Kernel Memory [Consistency] Model (LKMM) adalah seperangkat alat yang menjelaskan model koherensi memori Linux, serta menghasilkan tes lakmus (klitmus , khususnya) untuk pengujian.

Ketika sistem menjadi lebih kompleks dalam desain fisik (lebih banyak inti CPU ditambahkan, cache dan RAM bertambah, dan seterusnya), semakin sulit bagi mereka untuk mengetahui ruang alamat mana yang diperlukan oleh CPU mana, dan kapan. Misalnya, jika CPU0 perlu menulis data ke variabel bersama dalam memori, dan CPU1 perlu membaca nilai itu, maka CPU0 harus menulis sebelum CPU1 mencoba membaca. Demikian pula, jika nilai ditulis dalam satu urutan ke memori, maka ada harapan bahwa nilai tersebut juga dibaca dalam urutan yang sama, terlepas dari CPU atau CPU mana yang melakukan pembacaan.

Bahkan pada satu CPU, manajemen memori memerlukan urutan tugas tertentu. Tindakan sederhana seperti x =y membutuhkan CPU untuk memuat nilai y dari memori, lalu simpan nilai itu di x . Menempatkan nilai yang disimpan di y ke dalam x variabel tidak dapat terjadi sebelum CPU telah membaca nilai dari memori. Ada juga dependensi alamat:x[n] =6 mengharuskan n dimuat sebelum CPU dapat menyimpan nilai enam.

LKMM membantu mengidentifikasi dan melacak pola memori ini dalam kode. Ia melakukan ini sebagian dengan alat yang disebut kawanan , yang mendefinisikan batasan yang dikenakan oleh model memori (dalam bentuk aksioma logis), dan kemudian menghitung semua kemungkinan hasil yang konsisten dengan batasan ini.

Tambalan dengan latensi rendah (2.6.38)

Dahulu kala, pada hari-hari sebelum 2011, jika Anda ingin melakukan pekerjaan multimedia "serius" di Linux, Anda harus mendapatkan kernel latensi rendah. Ini sebagian besar diterapkan pada perekaman audio sambil menambahkan banyak efek waktu nyata (seperti bernyanyi ke mikrofon dan menambahkan gema, dan mendengar suara Anda di headset tanpa penundaan yang nyata). Ada distribusi, seperti Ubuntu Studio, yang menyediakan kernel seperti itu dengan andal, sehingga dalam praktiknya tidak terlalu menjadi kendala, hanya peringatan yang signifikan saat memilih distribusi Anda sebagai artis.

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Namun, jika Anda tidak menggunakan Ubuntu Studio, atau Anda memiliki beberapa kebutuhan untuk memperbarui kernel Anda sebelum distribusi Anda melakukannya, Anda harus membuka halaman web rt-patches, mengunduh patch kernel, menerapkannya ke kernel Anda kode sumber, kompilasi, dan instal secara manual.

Dan kemudian, dengan rilis kernel versi 2.6.38, proses ini selesai. Kernel Linux tiba-tiba, seolah-olah ajaib, memiliki kode latensi rendah (menurut tolok ukur, latensi menurun hingga faktor 10, setidaknya) bawaan secara default. Tidak ada lagi men-download patch, tidak ada lagi kompilasi. Semuanya bekerja dengan baik, dan semua karena patch 200 baris kecil yang diterapkan oleh Mike Galbraith.

Untuk seniman multimedia open source di seluruh dunia, ini adalah pengubah permainan. Segalanya menjadi sangat baik sejak tahun 2011 hingga pada tahun 2016, saya menantang diri saya sendiri untuk membangun Digital Audio Workstation (DAW) pada Raspberry Pi v1 (model B) dan ternyata bekerja dengan sangat baik.

RCU (2.5)

RCU, atau Read-Copy-Update, adalah sistem yang didefinisikan dalam ilmu komputer yang memungkinkan beberapa utas prosesor untuk membaca dari memori bersama. Ini dilakukan dengan menunda pembaruan, tetapi juga menandainya sebagai diperbarui, untuk memastikan bahwa konsumen data membaca versi terbaru. Secara efektif, ini berarti pembacaan terjadi bersamaan dengan pembaruan.

Siklus RCU yang khas adalah sedikit seperti ini:

  1. Hapus pointer ke data untuk mencegah pembaca lain mereferensikannya.
  2. Tunggu pembaca menyelesaikan proses kritis mereka.
  3. Kembalikan ruang memori.

Membagi tahap pembaruan menjadi fase penghapusan dan reklamasi berarti pembaru melakukan penghapusan segera sambil menunda reklamasi hingga semua pembaca aktif selesai (baik dengan memblokirnya atau dengan mendaftarkan panggilan balik untuk dipanggil setelah selesai).

Meskipun konsep read-copy-update tidak ditemukan untuk kernel Linux, implementasinya di Linux adalah contoh yang menentukan dari teknologi tersebut.

Kolaborasi (0.01)

Jawaban terakhir atas pertanyaan tentang inovasi kernel Linux akan selalu, di atas segalanya, kolaborasi. Sebut saja waktu yang tepat, sebut saja keunggulan teknis, sebut saja kemampuan untuk diretas, atau sebut saja open source, tetapi kernel Linux dan banyak proyek yang diaktifkannya adalah contoh kolaborasi dan kerja sama yang cemerlang.

Dan itu lebih dari sekadar kernel. Orang-orang dari semua lapisan masyarakat telah berkontribusi pada open source, bisa dibilang karena dari kernel Linux. Linux adalah, dan tetap sampai hari ini, kekuatan utama Perangkat Lunak Bebas, menginspirasi pengguna untuk membawa kode, seni, ide, atau hanya diri mereka sendiri, ke komunitas manusia yang global, produktif, dan beragam.

Apa inovasi favorit Anda?

Daftar ini bias terhadap kepentingan saya sendiri:wadah, akses memori non-seragam (NUMA), dan multimedia. Saya pasti telah meninggalkan inovasi kernel favorit Anda dari daftar. Ceritakan tentang hal itu di komentar!


Linux
  1. Analisis kernel Linux dengan ftrace

  2. Linux – Apa yang Disiratkan oleh Tata Letak Memori Kernel Virtual Di Dmesg?

  3. Bagaimana saya bisa memesan satu blok memori dari kernel Linux?

  1. Pengujian integrasi berkelanjutan untuk kernel Linux

  2. Linux – Berpartisipasi Di Milis Kernel?

  3. Linux – Mengapa Kernel Tidak Dapat Menjalankan Init?

  1. Kernel Linux:5 inovasi teratas

  2. Linux – Bagian Kernel yang Dimiliki Atau Tertutup?

  3. Periksa Beban Sistem di Linux