Linus Torvalds, announcing Linux v2.0

Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen an angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had.

Linux Kernel

Sabtu, 29 Desember 2012


Apa itu Linux Kernel dan Apa kegunaannya?
Kernel menghubungkan perangkat lunak aplikasi dengan perangkat keras komputer

Linux kernel memiliki lebih dari 13 juta baris kode dan juga salah satu proyek open source terbesar di dunia, tetapi apa itu kernel dan apa kegunaannya?
Kernel adalah software tingkat terendah yang bekerja dengan perangkat keras di komputer Anda. Ia bertanggung jawab untuk menghubungkan semua aplikasi yang berjalan ke perangkat keras, dan memungkinkan proses, untuk mendapatkan informasi dari satu sama lain.

Berbagai Jenis Kernel
Ada beberapa cara yang berbeda untuk membangun kernel dan beberapa pilihan arsitektur yang berbeda ketika hendak membangunnya dari awal. Ada 4 kategori kernel : Monolithic kernel, Microkernel. Hybrid (modifikasi dari microkernel), dan Exokernel Linux terbangun dari sebuah Monolithic kernel. Sementara Mac OS X (xnu) dan Windows 7 menggunakan kernel Hybrid. 

Microkernel
Microkernel mengambil pendekatan dengan hanya mengelola apa yang terpenting yakni: CPU, memori, dan inter-process communication (IPC). Sedangkan yang lainnya hanya dilihat sebagai aksesori dan diserahkan pada user mode. Microkernels memiliki keuntungan dari portabilitas karena Anda tidak perlu khawatir jika Anda mengganti video card atau bahkan mengganti sistem operasi yang baru, selama sistem operasi itu masih bekerja dengan perangkat keras dengan cara yang sama. Microkernels tidak memerlukan kapasitas yang besar, baik itu untuk memori maupun hardisk. Dan mereka cenderung lebih aman karena hanya proses tertentu yang berjalan dalam user mode dan tidak perlu memiliki izin yang tinggi sebagai dalam supervisor mode.


Dalam pendekatan mikrokernel, kernel itu sendiri hanya menyediakan fungsi dasar yangmemungkinkan pelaksanaan server

Kelebihan
  • Portabilitas
  • Kapasitas hardisk yang kecil
  • Kapasitas memori yang kecil
  • Keamanan 
Kekurangan
  • Hardware harus bekerja melalui driver
  • Hardware mungkin bereaksi lebih lambat karena driver dalam user mode
  • Proses harus menunggu dalam antrian untuk mendapatkan informasi
  • Proses yang tidak bisa mendapatkan akses ke proses lainnya tanpa menunggu

Monolithic kernel
Monolithic kernel adalah kebalikan dari microkernels karena mereka tidak hanya mencakup CPU, memori, dan IPC, tetapi juga mencakup hal-hal seperti driver device, manajemen file sistem, dan panggilan sistem server. Monolithic kernel cenderung lebih baik dalam mengakses hardware dan multitasking karena jika program perlu mendapatkan informasi dari memori atau proses lain yang sedang berjalan maka ia dapat memiliki garis yang lebih langsung untuk mengaksesnya dan tidak harus menunggu dalam antrian untuk mendapatkan sesuatu. Namun ini dapat menyebabkan masalah karena semakin banyaknya hal-hal yang berjalan dalam mode supervisor, maka semakin banyak pula hal yang dapat membawa sistem anda untuk tidak berperilaku baik.

Diagram Monolithic kernels

Kelebihan
  • Program dapat lebih langsung mengakses ke perangkat keras
  • Lebih mudah bagi pemrosesan untuk berkomunikasi satu sama lain
  • Jika perangkat kerja Anda didukung, maka mereka dapat terus bekerja tanpa instalasi tambahan
  • Proses bereaksi lebih cepat karena tidak ada antrian untuk waktu prosesor
Kekurangan
  • Kapasitas hardisk yang lebih besar
  • Kapasitas memori yang lebih besar
  • Kurang aman karena semuanya berjalan dalam mode supervisor

Hybrid (modifikasi dari microkernel)
Hybrid kernel memiliki kemampuan untuk memilih dan memilih apa yang ingin mereka jalankan dalam user mode dan apa yang mereka ingin jalankan dalam mode supervisor. Sering kali hal-hal seperti device driver dan file system I / O akan dijalankan dalam user mode sementara inter-process communication (IPC) dan server panggilan akan disimpan dalam mode supervisor. Ini merupakan pilihan terbaik dari kedua dunia yang berbeda, tetapi kernel ini akan memerlukan lebih banyak pekerjaan dari produsen hardware karena semua tanggung jawab driver diserahkan kepada mereka. Hal ini juga dapat memiliki beberapa masalah antrian yang melekat dengan microkernels.


Pendekatan kernel hibrida menggabungkan kecepatan dan desain sederhana sebuah kernelmonolitik dengan modularitas dan keselamatan pelaksanaan sebuah mikrokernel.

Kelebihan

  • Kapasitas hardisk yang sedang
  • Kapasitas memori yang sedang
  • Pengembang dapat memilih dan memilih apa yang berjalan dalam user mode dan apa yang berjalan dalam mode supervisor.
  • Lebih fleksibel dibandingkan model lain 
Kekurangan
  • Bisa menderita proses antrian yang sama seperti mikrokernel
  • Device driver harus dikelola oleh pengguna (biasanya)


Linux kernel 3.0.0 booting

Arsitektur Kernel Linux
Karena kernel Linux adalah Monolithic kernel, itu artinya ia memiliki kapasitas hardisk dan memory yang terbesar dan kompleksitas yang paling tinggi bila dibandingkan atas jenis kernel lain. Ini adalah fitur desain yang dibuat setelah mendapatkan perdebatan yang ketat di awal penciptaan dari Linux dan itupun masih membawa beberapa kelemahan bawaan dari Monolithic kernel.

Satu hal dari para pengembang kernel Linux lakukan untuk memperbaiki kekurangan ini adalah dengan membuat modul kernel yang dapat dimuat dan dibongkar pada saat linux itu sedang berjalan, yang berarti Anda dapat menambahkan atau menghapus fitur kernel Anda saat itu juga. Bayangkan jika Anda bisa meng-upgrade ke Windows service packtanpa pernah perlu untuk rebootnya seperti halnya pada Microsoft Windows komputer Anda.

Bagaimana jika Microsoft Windows memiliki semua driver yang tersedia dan sudah terinstall? dan yang Anda perlukan hanyalah mengaktifkan driver yang Anda butuhkan. Itulah esensial dari modul kernel yang bekerja di Linux. Modul kernel, juga dikenal sebagai loadable kernel module (LKM), sangat penting untuk menjaga fungsi kernel dengan semua perangkat keras Anda tanpa memakan semua memori yang tersedia Anda.


Sejarah
Pada April 1991, Linus Torvalds, seorang mahasiswa berusia 21 tahun dari Universitas Helsinski, Finlandia mulai memikirkan sesuatu ide sederhana untuk suatu Sistem Operasi. Ia memulai dengan task switcher dalam Bahasa Rakitan x86 pada Intel 80386 dan sebuah driver Terminal.

Pada September 1991, Linux versi 0.01 telah dirilis di server FTP ftp.funet.fi milik Finnish University and Research Network (FUNET). Rilis pertama tersebut memiliki 10,239 baris kode. Pada Oktober 1991, Linux versi 0.02 dirilis.

Pada Desember 1991, Linux 0.11 dirilis, versi ini adalah versi pertama yang di host oleh Linus Torvalds sendiri. Linuz 0.11 dapat di kompilasi oleh komputer yang menjalankan Linux 0.11. Saat ia merilis versi 0.12 di bulan Februari 1992, Torvalds mengadopsi GNU General Public License (GPL), dan berhenti menggunakan lisensi yang ia buat sendiri, yang tidak boleh didistribusikan secara komersil.

Newsgroup dengan nama alt.os.linux juga dibuat, dan pada 19 Januari 1992, post pertama pada alt.os.linux dibuat. Pada 31 Maret 1992, alt.os.linux berubah menjadi comp.os.linux.

X Window System juga segera di port ke Linux. Pada Maret 1992, Linux versi 0.95 adalah versi pertama yang bisa menjalankan X. Lompatan versi yang jauh ini (dari 0.1x ke 0.9x) karena Torvalds merasa fitur-fiturnya sudah lumayan lengkap dan ia menganggap sudah layak untuk langsung ke versi 1.0. Namun, ternyata langkah ini terlalu berlebihan, karena dari tahun 1993 sampai awal 1994, muncul 15 versi perkembangan Linux 0.99.

Pada 14 Maret 1994, Linux 1.0.0 dirilis, dengan 176,250 baris kode yang merupakan tonggak sejarah Linux. Versi ini adalah kulminasi dari tiga tahun perkembangan yang cepat dari kernel Linux. Fitur baru terbesar yang disediakan adalah jaringan. Versi 1.0.0 mampu mendukung protokol standar jaringan TCP/IP. Kernel 1.0.0 juga memiliki sistem berkas yang lebih baik tanpa batasan-batasan sistem berkas Minix. Sejumlah dukungan perangkat keras ekstra juga dimasukkan ke dalam rilis ini. Dukungan perangkat keras telah berkembang termasuk diantaranya floppy-disk, CD-ROM, sound card, berbagai mouse, dan keyboard internasional. Dukungan juga diberikan terhadap modul kernel yang loadable dan unloadablesecara dinamis.

Pada Maret 1995, Linux 1.2.0 dirilis (310,950 baris kode).Kernel ini mendukung variasi perangkat keras yang lebih luas. Pengembang telah memperbaharui networking stack untuk menyediakan support bagi protokol IPX, dan membuat implementasi IP lebih lengkap dengan memberikan fungsi accounting dan firewalling. Kernel 1.2 ini merupakan kernel Linux terakhir yang PC-only. Konsentrasi lebih diberikan pada dukungan perangkat keras dan memperbanyak implementasi lengkap pada fungsi-fungsi yang ada.

Versi 2 Linux, dirilis pada 9 Juni 1996, dan diikuti oleh perubahan versi besar dibawah versi kepala 2:
  • 25 Januari 1999 - Linux 2.2.0 dirilis (1,800,847 baris kode).
  • 18 Desember 1999 - patch IBM mainframe untuk versi 2.2.13 diterbitkan, yang memperbolehkan Linux dijalankan di mesin bisnis.
  • 4 Januari 2001 - Linux 2.4.0 dirilis (3,377,902 baris kode).
  • 17 Desember 2003 - Linux 2.6.0 dirilis (5,929,913 baris kode).Hal-hal yang berubah dari versi 2.6 ini ialah: Subitem M/K yang dipercanggih, Kernel yang pre-emptif, Penjadwalan Proses yang dipercanggih, Threading yang dipercanggih, Implementasi ALSA (Advanced Linux Sound Architecture) dalam kernel, dan Dukungan sistem berkas seperti: ext2, ext3, reiserfs, adfs, amiga ffs, apple macintosh hfs, cramfs, jfs, iso9660, minix, msdos, bfs, free vxfs, os/2 hpfs, qnx4fs, romfs, sysvfs, udf, ufs, vfat, xfs, BeOS befs (ro), ntfs (ro), efs (ro).

Mulai 2004, proses rilis dirubah dan kernel baru mulai dirilis rutin setiap 2-3 bulan, dengan nomor 2.60, 2.6.1, sampai 2.6.39.

Pada 21 Juli 2011 Linus Torvalds mengumumkan rilis Linux 3.0. Lompatan versi ini bukan karena perubahan teknologi besar-besaran dibandingkan dengan Linux 2.6.39; tetapi menandakan ulang tahun ke 20 kernel linux. Proses waktu rilis tetap sama.

Per tahun 2012, Linux 3.2 telah memiliki 14,998,651 baris kode.


Situs resmi : http://www.kernel.org/



Sumber Referensi : 
http://sekolahteknik.blogspot.com/2011/12/apa-itu-linux-kernel-dan-apa.html
http://id.wikipedia.org/wiki/Linux_(kernel)
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch09s02.html



1 komentar:

Posting Komentar