Memahami kernel linux bekerja, dan bagaimana cara membuat kernel sederhana ?

/Networking

Lihat gambar ini. Ini adalah gambar bus.

Kalau anda jadi sopir, cara anda membelokkan mobil pakai apa? Setir dong…

Apakah anda tahu apa yang terjadi ketika setir diputar kok ban bisa belok?


Sekarang lihat gambar ini. Ini adalah gambar arsitektur kernel

Kernel itu terdiri dari device driver dan interface nya. Device driver adalah software yang berhubungan langsung dengan hardwareInterface adalah cara aplikasi berhubungan dengan device driver ini tanpa harus menulis kode spesifik untuk hardware, atau makelar hardware kalau bisa dibilang.

Misal Filesystem. Filesystem pasti harus mengakses harddisk atau flashdisk atau disk jenis lain. Sebagai programmer aplikasi kan nggak perlu tahu cara menghidupkan flashdisk, mengakses byte demi byte di sector flashdisk kan. Cukup readfile(). Yang betul- betul mengakses sector demi sector disk ya kernel.


Sama seperti kernel, device driver bus ya part yang berhubungan dengan roda, yang akan membelokkan roda ke kanan atau ke kiri tergantung arah setir.

Ada steering column sampai rack housing yang akan membelokkan roda. Sedangkan setir adalah interface nya, dimana user “berkomunikasi” dengan ban.

Atau kalau pedal gas itu interface, throttle body adalah device driver nya, yang akan mengatur sedikit banyaknya bahan bakar yang masuk ke ruang mesin.

Gampang kan?

.

Cara membuat kernel sederhana?

Anda mesti ngerti cara kerja hardware. Kalau bus ya tau cara kerja fuel pump, alternator, aki, fuse, piston, ECU, dan part- part lainnya. Kalau udah ngerti cara kerja part-part nya itu, kemudian anda pikirkan cara sopir mengendalikan part ini dari ruang kemudi, alias membuat interface nya, membuat setir dan pedal gasnya.

Tulis kode untuk CPU. Hidupkan CPU, baca register- registernya, siapkan untuk menerima command. Istilahnya bootstrapping.

Kalau sudah, lengkapi kode untuk RAM, GPU, harddisk, USB, kemudian keyboard, mouse, monitor. Kemudian bikin interface untuk user berinteraksi. Misal ketika user mengetik ls, anda tampilkan isi dari harddisk anda.

Supaya user lebih gembira lagi, pakai Graphical User Interface. Tadaaa…jadilah kernel windows..mantaafff..

Ni gambar kernel sederhana

Kernel linux adalah jantung dari sistem operasi. Tanpa Kernel, kita tidak bisa melakukan tugas apapun, karena kernel bertanggung jawab untuk menangani perangkat lunak dan perangkat keras dari komputer kita agar bekerja dengan benar dan dapat berinteraksi satu sama lain.

Kernel adalah salah satu proyek yang memiliki banyak kolaborator dan pengembang daripada proyek open source lainnya. Selain itu, proyek ini telah didokumentasikan dengan sangat baik sejak tahun 2005, menggunakan sistem manajemen kode sumber Git. Jika Anda ingin tahu semua dokumentasi Linux Anda dapat membuka website Linux Foundation.

Versi pertama dari kernel Linux adalah 0.01 , diluncurkan pada tahun 1991 dan versi stabil pertama adalah 1.0.0 dan sejak saat itu kernel linux telah berevolusi dengan bantuan ribuan pengembang di seluruh dunia dan sampai sekarang sampai di versi 4.x, di samping itu, update stabil yang dirilis setiap dua atau tiga bulan untuk para penggunanya. Jika Anda ingin tahu semua versi, patch, pembaruan dan perubahan Anda dapat mengunjungi The Linux Kernel Archives.

Identifikasi Kernel

Setelah versi 2.6, kernel Linux telah mengalami perubahan tertentu dalam nomenklatur identifikasi, karena di masa lalu kernel linux diidentifikasi dengan tiga angka yang menunjukkan seri, versi, dan revisi dalam urutan itu. Sekarang, identifikasi ini diberikan oleh 4 angka yang dipisahkan oleh titik di mana:

AA: Angka ini menunjukkan versi kernel.

BB: Dengan nomor ini, kita dapat mengetahui revisi dari kernel.

CC: Ini memberi kita informasi tentang apakah kernel memiliki revisi minor. Angka ini berubah ketika dukungan driver baru ditambahkan atau fitur baru ditambahkan ke kernel.

DD: Angka ini merupakan indikator update dan koreksi dari kegagalan dalam Kernel dan perubahan ketika koreksi dilakukan.

Kernel berfungsi sebagai jembatan antara perangkat keras komputer Anda dan perangkat lunak yang ingin Anda jalankan. Ini berbicara ke perangkat keras melalui driver yang termasuk dalam kernel (atau diinstal kemudian dalam bentuk modul kernel).

Dengan cara ini, ketika suatu aplikasi ingin melakukan sesuatu (katakanlah mengubah pengaturan volume speaker), itu dapat mengirimkan permintaan itu ke kernel, dan kernel dapat menggunakan driver speaker yang tersedia untuk benar-benar mengubah volume.

Kernel juga sangat terlibat dalam manajemen sumber daya. Itu harus memastikan bahwa ada cukup memori yang tersedia untuk menjalankan aplikasi dan untuk menempatkan aplikasi di lokasi yang tepat dalam memori. Kernel mencoba untuk mengoptimalkan penggunaan prosesor sehingga dapat menyelesaikan tugas secepat mungkin.

Torvalds menciptakan kernel Linux pada tahun 1991. Dia awalnya bernama proyek Freax (kombinasi “gratis,” “aneh,” dan “UNIX”). Seorang rekan kerja lebih suka nama Linux, dan nama itu macet. Torvalds merilis versi Linux pertama pada tahun 1992 di bawah lisensi GNU copyleft, yang menjadi bagian besar dari kesuksesan proyek.

Sebagian besar pengalaman desktop Linux berasal dari Proyek GNU, sebuah inisiatif yang lebih tua yang telah menciptakan sistem operasi desktop yang hampir lengkap. Yang dibutuhkan hanyalah kernel, dan Linux memenuhi kebutuhan itu. Inilah sebabnya mengapa beberapa orang menyebut OS sebagai GNU / Linux.

Desktop sumber terbuka dan gratis lainnya, seperti FreeBSD, terlihat dan terasa seperti Linux karena mereka menjalankan sebagian besar perangkat lunak GNU yang sama.

Cara Membuat Kernel Module sederhana Ubuntu

langkah pertama buat direktori baru di Home misal kernel

lalau $cd /home/paijan/kernel

paijan adalah (nama usename) , maka ganti dengan username kalian- ini dibuat agar file modul nanti tidak campur dengan yang lain

lalu buat file C… gedit modulku.c kemudian isi modulku.c tersebut dengan berikut ini:

  • #undef __KERNEL__
  • #define __KERNEL__
  • #undef MODULE
  • #define MODULE
  • #include <linux/module.h>
  • #include <linux/kernel.h>
  • #include <linux/init.h>
  • static int __init modulku_init(void)
  • {
  • printk(KERN_INFO “Hello world! Jalan\n”);
  • return 0;
  • }
  • static void __exit modulku_cleanup(void)
  • {
  • printk(KERN_INFO “Modulku dibuang.\n”);
  • }
  • module_init(modulku_init);
  • module_exit(modulku_cleanup);

Simpan file modulku.c tersebut. lalu buat file bernama Makefile di directory tersebut dan isikan dengan kode dibawah ini :

  • obj-m += modulku.o
  • all:
  • $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
  • clean:
  • $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Lalu Kompile file Makefile tersebut dengan perintah # make

lalu load modul kedalam kernel *pastikan berada pada direktori yang sama: # insmod modulku.ko

Kemudian cek apakah modul berhasil masuk di kernel :

# dmesg | tail

  • Hello world! Jalan

Berhasil
kemudian cek apakah modul sudah diload ke kernel

  • lsmod | more

jika sudah maka akan muncul nama modulku disitu
, akan keluar kira-kira seperti ini

  • Module Size Used by
  • modulku 12428 0

Selanjutnya, coba kita buang kernel module tersebut menggunakan perintah:

  • # rmmod mmodulku

Cek output di dmesg,

  • # dmesg | tail

Kita harusnya akan melihat:

  • Modulku dibuang.

itulah sedikit tutorial tentang Cara Membuat Kernel Module Ubuntu dan pastinya kalian sudah paham dan bisa menulis dan menjalan kan kenel modul yang baru

Dari berbagai Sumber