Kernel Linux

Tutorial Kernel Linux untuk Pemula

Tutorial Kernel Linux untuk Pemula

Info latar belakang tentang Sistem Operasi

Sistem Operasi, disingkat OS, adalah perangkat lunak yang mengontrol komponen perangkat keras suatu sistem, baik itu telepon, laptop, atau desktop. Ini bertanggung jawab atas komunikasi antara perangkat lunak dan perangkat keras. Windows XP, Windows 8, Linux dan Mac OS X adalah contoh sistem operasi operating. Sistem operasi terdiri dari:

Ruang kernel dan Ruang Pengguna

Ruang Kernel: kernel ditemukan dalam status sistem yang ditingkatkan, yang mencakup ruang memori yang dilindungi dan akses penuh ke perangkat keras perangkat device. Status sistem dan ruang memori ini secara keseluruhan disebut sebagai ruang kernel. Di dalam ruang kernel, akses inti ke perangkat keras dan layanan sistem dikelola dan disediakan sebagai layanan ke seluruh sistem.

Ruang pengguna: aplikasi pengguna dilakukan di ruang pengguna, di mana mereka dapat mencapai subset dari sumber daya mesin yang tersedia melalui panggilan sistem kernel. Dengan menggunakan layanan inti yang disediakan kernel, aplikasi tingkat pengguna dapat dibuat seperti game atau perangkat lunak produktivitas kantor misalnya.

Linux

Linux telah mendapatkan popularitas selama bertahun-tahun karena menjadi open source karenanya, berdasarkan desain seperti UNIX, dan porting ke lebih banyak platform dibandingkan dengan sistem operasi pesaing lainnya. Ini adalah sistem operasi, seperti yang ditunjukkan, yang menyerupai OS UNIX - sistem operasi multi-tugas multi-pengguna yang stabil, dan telah dirakit sebagai perangkat lunak bebas dan sumber terbuka untuk pengembangan dan distribusi. Artinya setiap individu atau perusahaan memiliki izin untuk menggunakan, meniru, mempelajari, dan mengubah sistem operasi Linux dengan cara apa pun yang mereka inginkan.

Kernel Linux

Sejak rilis pertamanya pada 17 September 1991, kernel Linux telah menantang segala rintangan untuk menjadi komponen penentu Linux. Ini dirilis oleh Linus Torvalds dan menggunakan GNU/Linux untuk mendeskripsikan sistem operasi.  OS Android berbasis kernel Linux pada smartphone telah membuat Linux mengalahkan pesaingnya untuk menjadi basis OS terinstal terbesar dari semua sistem operasi tujuan umum.  Sejarah Kernel Linux dapat ditemukan di sini.

Kernel dapat berupa monolitik, mikrokernel, atau hibrida (seperti OS X dan Windows 7). Kernel Linux adalah kernel sistem operasi komputer monolitik yang menyerupai sistem UNIX. Garis Sistem Operasi Linux yang biasa disebut sebagai Distribusi Linux didasarkan pada kernel ini.  Kernel monolitik, tidak seperti mikrokernel, tidak hanya mencakup Unit Pemrosesan Pusat, memori, dan IPC, tetapi juga memiliki driver perangkat, panggilan server sistem, dan manajemen sistem file. Mereka paling baik dalam berkomunikasi dengan perangkat keras dan melakukan beberapa tugas secara bersamaan. Karena alasan inilah proses di sini bereaksi dengan kecepatan tinggi.

Namun, beberapa kemunduran adalah instalasi besar dan jejak memori yang dibutuhkan dan keamanan yang tidak memadai karena semuanya beroperasi dalam mode supervisor. Sebaliknya, mikrokernel dapat bereaksi lambat terhadap panggilan aplikasi karena layanan pengguna dan kernel dipisahkan. Dengan demikian ukurannya lebih kecil jika dibandingkan dengan kernel monolitiklith.  Mikrokernel mudah diperluas, tetapi lebih banyak kode diperlukan untuk menulis mikrokernel. Kernel Linux ditulis dalam bahasa pemrograman C dan Assembly.

Hubungan kernel Linux dengan Perangkat Keras

Kernel dapat mengatur perangkat keras sistem melalui apa yang disebut sebagai interupsi. Ketika perangkat keras ingin berinteraksi dengan sistem, sebuah interupsi dikeluarkan yang menginterupsi prosesor yang pada gilirannya melakukan hal yang sama ke kernel. Untuk menyediakan sinkronisasi, kernel dapat menonaktifkan interupsi, baik itu satu atau semua interupsi. Di Linux, bagaimanapun, penangan interupsi tidak berjalan dalam konteks proses, mereka malah berjalan dalam konteks interupsi yang tidak terkait dengan proses apa pun.Konteks interupsi khusus ini ada semata-mata untuk membiarkan penangan interupsi dengan cepat merespons interupsi individu dan akhirnya keluar.

Apa yang membuat Kernel Linux berbeda dari Kernel Unix Klasik lainnya?

Ada perbedaan yang signifikan antara kernel Linux dan kernel Classic Unix; seperti yang tercantum di bawah ini:

  1. Linux mendukung pemuatan dinamis modul kernel.
  2. Kernel Linux bersifat preemptive.
  3. Linux memiliki dukungan multiprosesor simetris.
  4. Linux gratis karena sifat perangkat lunaknya yang terbuka.
  5. Linux mengabaikan beberapa fitur Unix standar yang oleh pengembang kernel disebut "dirancang dengan buruk".”
  6. Linux menyediakan model perangkat berorientasi objek dengan kelas perangkat, acara hot-pluggable, dan sistem file perangkat ruang pengguna
  7. Kernel Linux gagal membedakan antara utas dan proses normal.

Arsitektur

Komponen Kernel Linux

Kernel hanyalah manajer sumber daya; sumber daya yang dikelola dapat berupa proses, memori, atau perangkat keras. Ini mengelola dan menengahi akses ke sumber daya antara beberapa pengguna yang bersaing. Kernel Linux ada di ruang kernel, di bawah ruang pengguna, di mana aplikasi pengguna dijalankan. Untuk ruang pengguna untuk berkomunikasi dengan ruang kernel, Perpustakaan GNU C digabungkan yang menyediakan forum untuk antarmuka panggilan sistem untuk terhubung ke ruang kernel dan memungkinkan transisi kembali ke ruang pengguna.

Kernel Linux dapat dikategorikan menjadi tiga level utama:

  1. Antarmuka panggilan sistem; ini adalah yang paling atas dan melakukan tindakan dasar seperti membaca dan menulis.
  2. Kode kernelnya; terletak di bawah antarmuka panggilan sistem, itu umum untuk semua arsitektur prosesor yang didukung oleh Linux, kadang-kadang didefinisikan sebagai kode kernel arsitektur-independen.
  3. Kode yang bergantung pada arsitektur; itu di bawah kode arsitektur-independen, membentuk apa yang biasanya disebut sebagai Board Support Package (BSP) - ini berisi program kecil yang disebut bootloader yang menempatkan Sistem Operasi dan driver perangkat ke dalam memori.

Perspektif arsitektur kernel Linux terdiri dari: System call interface, Process Management, Virtual File system, Memory Management, Network Stack, Architecture dan Device Drivers.

  1. Antarmuka panggilan sistem; adalah lapisan tipis yang digunakan untuk melakukan panggilan fungsi dari ruang pengguna ke dalam kernel. Antarmuka ini mungkin bergantung pada arsitektur
  2. Manajemen proses; terutama ada untuk menjalankan proses. Ini disebut sebagai utas dalam kernel dan mewakili virtualisasi individu dari prosesor tertentu
  3. Manajemen memori; memori dikelola dalam apa yang dikenal sebagai halaman untuk efisiensi. Linux menyertakan metode untuk mengelola memori yang tersedia serta mekanisme perangkat keras untuk pemetaan fisik dan virtual.  Ruang swap juga disediakan
  4. Sistem file virtual; ini menyediakan abstraksi antarmuka standar untuk sistem file. Ini menyediakan lapisan peralihan antara antarmuka panggilan sistem dan sistem file yang didukung oleh kernel.
  5. Tumpukan jaringan; dirancang sebagai arsitektur berlapis yang dimodelkan setelah protokol tertentu.
  6. Driver perangkat; bagian penting dari kode sumber di kernel Linux ditemukan di driver perangkat yang membuat perangkat keras tertentu dapat digunakan.  Tutorial driver perangkat
  7. Kode yang bergantung pada arsitektur; elemen-elemen yang bergantung pada arsitektur tempat mereka dijalankan, oleh karena itu harus mempertimbangkan desain arsitektur untuk operasi dan efisiensi normal normal.

Antarmuka

Panggilan sistem dan Interupsi

Aplikasi meneruskan informasi ke kernel melalui panggilan sistem. Pustaka berisi fungsi yang digunakan aplikasi applications. Pustaka kemudian, melalui antarmuka panggilan sistem, menginstruksikan kernel untuk melakukan tugas yang diinginkan aplikasi.  Apa itu Panggilan Sistem Linux??

Interupsi menawarkan cara di mana kernel Linux mengelola perangkat keras sistem. Jika perangkat keras harus berkomunikasi dengan sistem, interupsi pada prosesor berhasil, dan ini diteruskan ke kernel Linux Linux.

Antarmuka kernel Linux

Kernel Linux menawarkan berbagai antarmuka ke aplikasi ruang pengguna yang melakukan berbagai tugas dan memiliki properti yang berbeda. Ada dua Antarmuka Pemrograman Aplikasi (API) yang berbeda; itu ruang pengguna kernel dan kernel internal.  API Linux adalah kernel-userspace API; itu memberikan akses ke program di ruang pengguna ke dalam sumber daya sistem dan layanan kernel. Itu terdiri dari Antarmuka Panggilan Sistem dan subrutin dari GNU C Library.

Linux ABI

Ini mengacu pada ruang pengguna kernel ABI (Application Binary Interface). Ini dijelaskan sebagai antarmuka yang ada di antara modul program. Saat membandingkan API dan ABI, perbedaannya adalah bahwa ABI digunakan untuk mengakses kode eksternal yang sudah dikompilasi sementara API adalah struktur untuk mengelola perangkat lunak.  Mendefinisikan ABI yang penting sebagian besar merupakan pekerjaan distribusi Linux daripada untuk kernel Linux. ABI spesifik harus ditentukan untuk setiap set instruksi, misalnya, x86-64. Pengguna akhir produk Linux lebih tertarik pada ABI daripada API.

Antarmuka Panggilan Sistem

Seperti yang telah dibahas sebelumnya, ini memainkan peran yang lebih menonjol di kernel. Ini adalah denominasi dari seluruh bagian dari semua panggilan sistem yang ada.

Pustaka standar C

Semua panggilan sistem kernel berada di dalam GNU C Library sedangkan, Linux API terdiri dari antarmuka panggilan sistem dan GNU C Library, juga disebut glibc.

Antarmuka Sistem Operasi Portabel (POSIX)

POSIX adalah istilah kolektif standar untuk menjaga kompatibilitas di antara sistem operasi. Ini mendeklarasikan API bersama dengan antarmuka utilitas dan shell baris perintah. API Linux, tidak hanya memiliki fitur yang dapat digunakan yang ditentukan oleh POSIX tetapi juga memiliki fitur tambahan di kernelnya:

  1. Grup C subsistem.
  2. Panggilan sistem Direct Rendering Manager.
  3. SEBUAH baca dulu fitur.
  4. acak panggilan yang ada di V 3.17.
  5. Panggilan sistem seperti: futex, epoll, sambatan, beri tahu, fanotifikasi dan beri tahu.

Informasi lebih lanjut tentang Standar POSIX ada di sini.

Kernel modular

Versi sebelumnya dari kernel Linux sedemikian rupa sehingga semua bagiannya secara statis diperbaiki menjadi satu, monolitik. Namun, kernel Linux modern memiliki sebagian besar fungsinya yang terkandung dalam modul yang dimasukkan ke dalam kernel secara dinamis. Ini berbeda dengan tipe monolitik, disebut sebagai kernel modular. Pengaturan seperti itu memungkinkan pengguna untuk memuat atau mengganti modul di kernel yang sedang berjalan tanpa perlu me-reboot.

Modul Kernel yang Dapat Dimuat (LKM) Linux

Cara dasar untuk menambahkan kode di kernel Linux adalah melalui pengenalan file sumber ke pohon sumber kernel. Namun, Anda mungkin ingin menambahkan kode saat kernel sedang berjalan. Kode yang ditambahkan dengan cara ini disebut sebagai modul kernel yang dapat dimuat. Modul khusus ini melakukan berbagai tugas tetapi ditentukan menjadi tiga: driver perangkat, driver sistem file, dan panggilan sistem.

Modul kernel yang dapat dimuat dapat dibandingkan dengan ekstensi kernel di sistem operasi lain. Anda dapat memasukkan modul ke dalam kernel dengan memuatnya sebagai LKM atau mengikatnya ke kernel dasar.

Manfaat LKM dibandingkan mengikat ke kernel dasar:

Kegunaan LKM

  1. Driver perangkat; kernel bertukar informasi dengan perangkat keras melalui ini. Kernel harus memiliki driver perangkat sebelum menggunakannya.
  2. Driver sistem file; ini menerjemahkan konten sistem file
  3. Panggilan sistem; program di ruang pengguna memanfaatkan panggilan sistem untuk memperoleh layanan dari kernel.
  4. Driver jaringan; menginterpretasikan protokol jaringan
  5. Interpreter yang dapat dieksekusi; memuat dan mengelola file yang dapat dieksekusi.

Mengkompilasi Kernel Linux

Tidak seperti apa yang kebanyakan orang katakan, mengkompilasi kernel Linux adalah tugas yang sederhana. Berikut ini adalah ilustrasi langkah demi langkah dari proses menggunakan salah satu distribusi Linux: Fedora 13 KDE. (Disarankan untuk mencadangkan data dan grub Anda.conf untuk berjaga-jaga jika terjadi kesalahan)

  1. Dari http://kernel.situs web org, unduh sumbernya.
  2. Saat berada di direktori unduhan Anda, ekstrak sumber kernel dari arsip dengan memasukkan perintah berikut di terminal:
    tar xvjf Linux-2.6.37.ter.bz2
  3. Gunakan perintah make mrproper untuk menghapus area build sebelum kompilasi apa pun.
  4. Gunakan konfigurasi katakanlah xconfig, Konfigurasi ini dirancang untuk memudahkan menjalankan program apa pun di Linux.
  5. Tentukan modul dan fitur yang Anda inginkan untuk memuat kernel Anda.
  6. Setelah memperoleh .konfigurasi file, langkah selanjutnya adalah pergi ke Makefile
  7. Jalankan perintah make dan tunggu kompilasi selesai.
  8. Instal modul menggunakan perintah make modules_install
  9. Salin kernel Anda dan peta sistem ke /boot.
  10. Jalankan kernel-pkg baru untuk membuat daftar dependensi modul dan hal-hal seperti grub.konf

Memutakhirkan kernel

Dimungkinkan untuk memutakhirkan kernel Linux dari versi yang lebih lama ke yang lebih baru, sambil mempertahankan semua opsi konfigurasi dari versi sebelumnya. Untuk mencapai ini, seseorang harus terlebih dahulu mencadangkan .konfigurasi file di direktori sumber kernel; ini untuk berjaga-jaga jika terjadi kesalahan saat mencoba memutakhirkan kernel Anda. Langkah-langkahnya adalah:

  1. Dapatkan kode sumber terbaru dari kernel utama.situs web org
  2. Terapkan variasi ke pohon sumber lama untuk membawanya ke versi terbaru.
  3. Konfigurasi ulang kernel berdasarkan file konfigurasi kernel sebelumnya yang telah Anda buat cadangannya.
  4. Bangun kernel baru.
  5. Sekarang Anda dapat menginstal kernel baru.

Mengunduh sumber baru; pengembang kernel Linux memahami bahwa beberapa pengguna mungkin tidak ingin mengunduh kode sumber lengkap untuk pembaruan kernel, karena ini akan membuang waktu dan bandwidth. Oleh karena itu, tambalan tersedia yang dapat meningkatkan versi kernel lama. Pengguna hanya perlu mengetahui patch mana yang berlaku untuk versi tertentu, karena file patch kernel hanya akan memperbarui kode sumber dari satu rilis tertentu. File patch yang berbeda dapat diterapkan melalui cara berikut;

  1. Patch kernel stabil yang berlaku untuk versi kernel dasar.
  2. Patch rilis kernel dasar hanya berlaku untuk versi kernel dasar sebelumnya
  3. Peningkatan patch tambahan dari rilis tertentu ke rilis berikutnya. Ini memungkinkan pengembang menghindari hiruk pikuk penurunan versi kemudian memutakhirkan kernel mereka. Sebagai gantinya, mereka dapat beralih dari rilis stabil saat ini ke rilis stabil berikutnya.

Berikut adalah langkah-langkah lebih rinci untuk proses memperbarui kernel Anda dari sumber di Debian, dan dari binari pra-bangun di CentOS dan Ubuntu.

Kesimpulan

Kernel Linux terutama bertindak sebagai manajer sumber daya yang bertindak sebagai lapisan abstrak untuk aplikasi. Aplikasi memiliki koneksi dengan kernel yang pada gilirannya berinteraksi dengan perangkat keras dan layanan aplikasi. Linux adalah sistem multitasking yang memungkinkan beberapa proses untuk dieksekusi secara bersamaan. Kernel Linux populer karena sifatnya yang open source yang memungkinkan pengguna untuk mengubah kernel menjadi apa yang cocok untuk mereka dan perangkat keras mereka. Oleh karena itu dapat digunakan di berbagai perangkat, tidak seperti sistem operasi lain.

Karakteristik modular dari kernel Linux menambah lebih banyak sensasi bagi penggunanya. Ini karena berbagai macam modifikasi yang dapat dilakukan di sini tanpa me-reboot sistem. Fleksibilitas memberi penggunanya ruang besar untuk mengaktualisasikan imajinasi mereka imagination.

Selain itu, sifat kernel yang monolitik merupakan keuntungan besar karena memiliki kemampuan pemrosesan yang tinggi daripada mikrokernel. Kemunduran utama dengan jenis kernel Linux adalah jika salah satu layanannya gagal, maka seluruh sistem akan ikut mati. Versi terbaru telah dirancang sedemikian rupa sehingga jika layanan baru ditambahkan, tidak perlu memodifikasi seluruh sistem operasi. Ini adalah peningkatan jika dibandingkan dengan versi sebelumnya.

Sumber

  1. Kernel Linux Wikipedia
  2. Antarmuka Kernel Linux Wikipedia
  3. Modul Kernel Linux yang Dapat Dimuat Bagaimana caranya
  4. linux.com panduan pemula
  5. https://www.quora.com/What-are-good-tutorials-to-learn-Linux-Kernel
  6. https://unix.pertukaran tumpukan.com/questions/1003/linux-kernel-good-beginners-tutorial
  7. http://www.linux-tutorial-tutorial.info/modul.php?nama=MCContent&pageid=82
  8. https://www.howtogeek.com/howto/31632//what-is-the-linux-kernel-and-what-does-it-do/
Tombol tengah mouse tidak berfungsi di Windows 10
Itu tombol tengah mouse membantu Anda menelusuri halaman web dan layar yang panjang dengan banyak data. Jika itu berhenti, Anda akhirnya akan mengguna...
Cara Mengganti Tombol Kiri & Kanan Mouse di PC Windows 10
Sudah menjadi hal biasa bahwa semua perangkat mouse komputer dirancang secara ergonomis untuk pengguna yang tidak kidal. Tetapi ada perangkat mouse ya...
Tiru klik Mouse dengan mengarahkan mouse menggunakan Clickless Mouse di Windows 10
Menggunakan mouse atau keyboard dalam posisi yang salah dari penggunaan yang berlebihan dapat menyebabkan banyak masalah kesehatan, termasuk keteganga...