1. Pendahuluan
Linux adalah sebuah sistem operasi yang sangat mirip dengan sistem-sistem UNIX, karena memang
tujuan utama rancangan dari proyek Linux adalah UNIX compatible. Sejarah Linux dimulai pada
tahun 1991, ketika mahasiswa Universitas Helsinki, Finlandia bernama Linus Benedict Torvalds
menulis Linux, sebuah kernel untuk prosesor 80386, prosesor 32-bit pertama dalam kumpulan CPU
intel yang cocok untuk PC.
Pada awal perkembangannya, kode sumber (source code) Linux disediakan secara bebas melalui
internet. Hasilnya, pengembangan Linux merupakan kolaborasi para pengguna dari seluruh dunia,
semuanya dilakukan secara eksklusif melalui internet. Bermula dari kernel awal yang hanya
mengimplementasikan subset kecil dari sistem UNIX, kini sistem Linux telah tumbuh sehingga
mampu memasukkan banyak fungsi UNIX.
Kernel Linux berbeda dengan sistem Linux. Kernel Linux merupakan sebuah perangkat lunak
orisinil yang dibuat oleh komunitas Linux, sedangkan sistem Linux, yang dikenal saat ini,
mengandung banyak komponen yang dibuat sendiri atau dipinjam dari proyek pengembangan lain.
Kernel Linux pertama yang dipublikasikan adalah versi 0.01, pada tanggal 14 Maret 1991. Sistem
berkas yang didukung hanya sistem berkas Minix. Kernel pertama dibuat berdasarkan kerangka
Minix (sistem UNIX kecil yang dikembangkan oleh Andy Tanenbaum). Tetapi, kernel tersebut
sudah mengimplementasi proses UNIX secara tepat.
Pada tanggal 14 Maret 1994 dirilis versi 1.0, 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 mampu mendukung protokol standar jaringan TCP/IP.
Kernel 1.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
unloadable secara dinamis.
Satu tahun kemudian dirilis kernel versi 1.2. 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.
Pada bulan Juni 1996, kernel Linux 2.0 dirilis. Versi ini memiliki dua kemampuan baru yang
penting, yaitu dukungan terhadap multiple architecture dan multiprocessor architectures. Kode
untuk manajemen memori telah diperbaiki sehingga kinerja sistem berkas dan memori virtual
meningkat. Untuk pertama kalinya, file system caching dikembangkan ke networked file systems,
juga sudah didukung writable memory mapped regions. Kernel 2.0 sudah memberikan kinerja
TCP/IP yang lebih baik, ditambah dengan sejumlah protokol jaringan baru. Kemampuan untuk
memakai remote netware dan SMB (Microsoft LanManager) network volumes juga telah
ditambahkan pada versi terbaru ini. Tambahan lain adalah dukungan internal kernel threads,
penanganan dependencies antara modul-modul loadable, dan loading otomatis modul berdasarkan
permintaan (on demand). Konfigurasi dinamis dari kernel pada run time telah diperbaiki melalui
konfigurasi interface yang baru dan standar.
Semenjak Desember 2003, telah diluncurkan kernel versi 2.6, yang dewasa ini (2006) telah
mencapai patch versi 2.6.17.11. Hal-hal yang berubah dari versi 2.6 ini ialah:
• Subsitem M/K yang dipercanggih.
• Kernel yang pre-emptif.
93
• Penjadwalan Proses yang dipercanggih.
• Threading yang dipercanggih.
• Implementasi ALSA (Advanced Linux Sound Architecture) dalam kernel.
• 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).
2. Sistem dan Distirbusi GNU/Linux
Dalam banyak hal, kernel Linux merupakan inti dari proyek Linux, tetapi komponen lainlah yang
membentuk secara lengkap sistem operasi Linux. Dimana kernel Linux terdiri dari kode-kode yang
dibuat khusus untuk proyek Linux, kebanyakan perangkat lunak pendukungnya tidak eksklusif
terhadap Linux, melainkan biasa dipakai dalam beberapa sistem operasi yang mirip UNIX.
Contohnya, sistem operasi BSD dari Berkeley, X Window System dari MIT, dan proyek GNU dari
Free Software Foundation.
Pembagian (sharing) alat-alat telah bekerja dalam dua arah. Sistem pustaka utama Linux awalnya
dimulai oleh proyek GNU, tetapi perkembangan pustakanya diperbaiki melalui kerjasama dari
komunitas Linux terutama pada pengalamatan, ketidak- efisienan, dan bugs. Komponen lain seperti
GNU C Compiler, gcc, kualitasnya sudah cukup tinggi untuk dipakai langsung dalam Linux.
Alat-alat administrasi network di bawah Linux berasal dari kode yang dikembangkan untuk 4.3
BSD, tetapi BSD yang lebih baru, salah satunya FreeBSD, sebaliknya meminjam kode dari Linux,
contohnya adalah pustaka matematika Intel floating-point-emulation.
Sistem Linux secara keseluruhan diawasi oleh network tidak ketat yang terdiri dari para
pengembang melalui internet, dengan grup kecil atau individu yang memiliki tanggung-jawab untuk
menjaga integritas dari komponen-komponen khusus. Dokumen 'File System Hierarchy Standard'
juga dijaga oleh komunitas Linux untuk memelihara kompatibilitas ke seluruh komponen sistem
yang berbeda-beda. Aturan ini menentukan rancangan keseluruhan dari sistem berkas Linux yang
standar.
Siapa pun dapat menginstall sistem Linux, ia hanya perlu mengambil revisi terakhir dari komponen
sistem yang diperlukan melalui situs ftp lalu dikompilasi. Pada awal keberadaan Linux, operasi
seperti di atas persis seperti yang dilaksanakan oleh pengguna Linux. Namun, dengan semakin
berkembangnya Linux, berbagai individu dan kelompok berusaha membuat pekerjaan tersebut lebih
mudah dengan cara menyediakan sebuah set bingkisan yang standar dan sudah dikompilasi terlebih
dahulu supaya dapat diinstall secara mudah.
Koleksi atau distribusi ini, tidak hanya terdiri dari sistem Linux dasar tetapi juga mengandung
instalasi sistem ekstra dan utilitas manajemen, bahkan paket yang sudah dikompilasi dan siap
diinstall dari banyak alat UNIX yang biasa, seperti news servers, web browsers, text-processing dan
alat mengedit, termasuk juga games.
Distribusi pertama mengatur paket-paket ini secara sederhana, menyediakan sebuah sarana untuk
memindahkan seluruh file ke tempat yang sesuai. Salah satu kontribusi yang penting dari distribusi
modern adalah manajemen/pengaturan paket-paket yang lebih baik. Distribusi Linux pada saat ini
melibatkan database packet tracking yang memperbolehkan suatu paket agar dapat diinstall,
di-upgrade, atau dihilangkan tanpa susah payah.
Distribusi SLS (Soft Landing System) adalah koleksi pertama dari bingkisan Linux yang dikenal
sebagai distribusi komplit. Walaupun SLS dapat diinstall sebagai entitas tersendiri, dia tidak
memiliki alat-alat manajemen bingkisan yang sekarang diharapkan dari distribusi Linux. Distribusi
Slackware adalah peningkatan yang besar dalam kualitas keseluruhan (walaupun masih memiliki
manajemen bingkisan yang buruk); Slackware masih merupakan salah satu distribusi yang paling
sering diinstall dalam komunitas Linux.
Sejak dirilisnya Slackware, sejumlah besar distribusi komersial dan non-komersial Linux telah
tersedia. Red Hat dan Debian adalah distribusi yang terkenal dari perusahaan pendukung Linux
Sistem dan Distribusi GNU/Linux
94
komersial dan perangkat lunak bebas komunitas Linux. Pendukung Linux komersial lainnya
termasuk distribusi dari Caldera, Craftworks, dan Work-Group Solutions. Contoh distribusi lain
adalah SuSE dan Unifix yang berasal dari Jerman.
3. Lisensi Linux
Kernel Linux terdistribusi di bawah Lisensi Publik Umum GNU (GPL), dimana peraturannya
disusun oleh Free Software Foundation. Linux bukanlah perangkat lunak domain publik: Public
Domain berarti bahwa pengarang telah memberikan copyright terhadap perangkat lunak mereka,
tetapi copyright terhadap kode Linux masih dipegang oleh pengarang-pengarang kode tersebut.
Linux adalah perangkat lunak bebas, namun: bebas dalam arti bahwa siapa saja dapat mengkopi,
modifikasi, memakainya dengan cara apa pun, dan memberikan kopi mereka kepada siapa pun tanpa
larangan atau halangan.
Implikasi utama peraturan lisensi Linux adalah bahwa siapa saja yang menggunakan Linux, atau
membuat modifikasi dari Linux, tidak boleh membuatnya menjadi hak milik sendiri. Jika sebuah
perangkat lunak dirilis berdasarkan lisensi GPL, produk tersebut tidak boleh didistribusi hanya
sebagai produk biner (binary-only). Perangkat lunak yang dirilis atau akan dirilis tersebut harus
disediakan sumber kodenya bersamaan dengan distribusi binernya.
4. Linux Saat Ini
Saat ini, Linux merupakan salah satu sistem operasi yang perkembangannya paling cepat. Kehadiran
sejumlah kelompok pengembang, tersebar di seluruh dunia, yang selalu memperbaiki segala
fiturnya, ikut membantu kemajuan sistem operasi Linux. Bersamaan dengan itu, banyak
pengembang yang sedang bekerja untuk memindahkan berbagai aplikasi ke Linux (dapat berjalan di
Linux).
Masalah utama yang dihadapi Linux dahulu adalah interface yang berupa teks (text based interface).
Ini membuat orang awam tidak tertarik menggunakan Linux karena harus dipelajari terlebih dahulu
untuk dapat dimengerti cara penggunaannya (tidak user-friendly). Tetapi keadaan ini sudah mulai
berubah dengan kehadiran KDE dan GNOME. Keduanya memiliki tampilan desktop yang menarik
sehingga mengubah persepsi dunia tentang Linux.
Linux di negara-negara berkembang mengalami kemajuan yang sangat pesat. Harga perangkat lunak
(misalkan sebuah sistem operasi) bisa mencapai US $100 atau lebih. Di negara yang rata-rata
penghasilan per tahun adalah US $200-300, US $100 sangatlah besar. Dengan adanya Linux, semua
berubah. Karena Linux dapat digunakan pada komputer yang kuno, dia menjadi alternatif cocok
bagi komputer beranggaran kecil. Di negara-negara Asia, Afrika, dan Amerika Latin, Linux adalah
jalan keluar bagi penggemar komputer.
Pemanfaatan Linux juga sudah diterapkan pada supercomputer. Diberikan beberapa contoh:
• The Tetragrid. Sebuah mega computer dari Amerika yang dapat menghitung lebih dari 13
trilyun kalkulasi per detik (13.6 TeraFLOPS – FLoating Operations Per Second). Tetragrid dapat
dimanfaatkan untuk mencari solusi dari masalah matematika kompleks dan simulasi, dari
astronomi dan riset kanker hingga ramalan cuaca.
• Evolocity. Juga dari Amerika, dapat berjalan dengan kecepatan maksimum 9.2 TeraFLOPS,
menjadikannya sebagai salah satu dari lima supercomputer tercepat di dunia.
Jika melihat ke depan, kemungkinan Linux akan menjadi sistem operasi yang paling dominan
bukanlah suatu hal yang mustahil. Karena semua kelebihan yang dimilikinya, setiap hari semakin
banyak orang di dunia yang mulai berpaling ke Linux.
gambar logo linux
Logo Linux adalah sebuah pinguin. Tidak seperti produk komersial sistem operasi lainnya, Linux
tidak memiliki simbol yang terlihat hebat. Melainkan Tux, nama pinguin tersebut, memperlihatkan
sikap santai dari gerakan Linux. Logo yang lucu ini memiliki sejarah yang unik. Awalnya, tidak ada
logo yang dipilih untuk Linux, namun pada waktu Linus (pencetus Linux) berlibur, ia pergi ke
daerah selatan. Disanalah dia bertemu seekor pinguin yang pendek cerita menggigit jarinya.
Kejadian yang lucu ini merupakan awal terpilihnya pinguin sebagai logo Linux.
Tux adalah hasil karya seniman Larry Ewing pada waktu para pengembang merasa bahwa Linux
sudah memerlukan sebuah logo (1996), dan nama yang terpilih adalah dari usulan James Hughes
yaitu "(T)orvalds (U)ni(X) -- TUX!". Lengkaplah sudah logo dari Linux, yaitu seekor pinguin
bernama Tux.
Hingga sekarang logo Linux yaitu Tux sudah terkenal ke berbagai penjuru dunia. Orang lebih
mudah mengenal segala produk yang berbau Linux hanya dengan melihat logo yang unik nan lucu
hasil kerjasama seluruh komunitas Linux di seluruh dunia.
5. Prinsip Rancangan Linux
Dalam rancangan keseluruhan, Linux menyerupai implementasi UNIX nonmicrokernel yang lain. Ia
adalah sistem yang multiuser, multitasking dengan seperangkat lengkap alat-alat yang kompatibel
dengan UNIX. Sistem berkas Linux mengikuti semantik tradisional UNIX, dan model jaringan
standar UNIX diimplementasikan secara keseluruhan. Ciri internal rancangan Linux telah
dipengaruhi oleh sejarah perkembangan sistem operasi ini.
Walaupun Linux dapat berjalan pada berbagai macam platform, pada awalnya dia dikembangkan
secara eksklusif pada arsitektur PC. Sebagian besar dari pengembangan awal tersebut dilakukan
oleh peminat individual, bukan oleh fasilitas riset yang memiliki dana besar, sehingga dari awal
Linux berusaha untuk memasukkan fungsionalitas sebanyak mungkin dengan dana yang sangat
terbatas. Saat ini, Linux dapat berjalan baik pada mesin multiprocessor dengan main memory yang
sangat besar dan ukuran disk space yang juga sangat besar, namun tetap mampu beroperasi dengan
baik dengan jumlah RAM yang lebih kecil dari 4 MB.
Akibat dari semakin berkembangnya teknologi PC, kernel Linux juga semakin lengkap dalam
mengimplementasikan fungsi UNIX. Tujuan utama perancangan Linux adalah cepat dan efisien,
tetapi akhir-akhir ini konsentrasi perkembangan Linux lebih pada tujuan rancangan yang ketiga
yaitu standarisasi. Standar POSIX terdiri dari kumpulan spesifikasi dari beberapa aspek yang
berbeda kelakuan sistem operasi. Ada dokumen POSIX untuk fungsi sistem operasi biasa dan untuk
ekstensi seperti proses untuk thread dan operasi real-time. Linux dirancang agar sesuai dengan
dokumen POSIX yang relevan. Sedikitnya ada dua distribusi Linux yang sudah memperoleh
sertifikasi ofisial POSIX.
Karena Linux memberikan antarmuka standar ke programer dan pengguna, Linux tidak membuat
banyak kejutan kepada siapa pun yang sudah terbiasa dengan UNIX. Namun interface pemrograman
Linux merujuk pada semantik SVR4 UNIX daripada kelakuan BSD. Kumpulan pustaka yang
berbeda tersedia untuk mengimplementasi semantik BSD di tempat dimana kedua kelakuan sangat berbeda.
Ada banyak standar lain di dunia UNIX, tetapi sertifikasi penuh dari Linux terhadap standar lain
UNIX terkadang menjadi lambat karena lebih sering tersedia dengan harga tertentu (tidak secara
bebas), dan ada harga yang harus dibayar jika melibatkan sertifikasi persetujuan atau kecocokan
sebuah sistem operasi terhadap kebanyakan standar. Bagaimana pun juga mendukung aplikasi yang
luas adalah penting untuk suatu sistem operasi, sehingga sehingga standar implementasi merupakan
tujuan utama pengembangan Linux, walaupun implementasinya tidak sah secara formal. Selain
standar POSIX, Linux saat ini mendukung ekstensi thread POSIX dan subset dari ekstensi untuk
kontrol proses real-time POSIX.
Sistem Linux terdiri dari tiga bagian kode penting:
• Kernel. Bertanggung-jawab memelihara semua abstraksi penting dari sistem operasi, termasuk
hal-hal seperti memori virtual dan proses-proses.
• Pustaka sistem. Menentukan kumpulan fungsi standar dimana aplikasi dapat berinteraksi
dengan kernel, dan mengimplementasi hampir semua fungsi sistem operasi yang tidak
memerlukan hak penuh atas kernel.
• Utilitas sistem. Program yang melakukan pekerjaan manajemen secara individual.
->Kernel
Walaupun berbagai sistem operasi modern telah mengadopsi suatu arsitektur message-passing untuk
kernel internal mereka, Linux tetap memakai model historis UNIX: kernel diciptakan sebagai biner
yang tunggal dan monolitis. Alasan utamanya adalah untuk meningkatkan kinerja, karena semua
struktur data dan kode kernel disimpan dalam satu address space, alih konteks tidak diperlukan
ketika sebuah proses memanggil sebuah fungsi sistem operasi atau ketika interupsi perangkat keras
dikirim. Tidak hanya penjadwalan inti dan kode memori virtual yang menempati address space ini,
tetapi juga semua kode kernel, termasuk semua device drivers, sistem berkas, dan kode jaringan,
hadir dalam satu address space yang sama.
Kernel Linux membentuk inti dari sistem operasi Linux. Dia menyediakan semua fungsi yang
diperlukan untuk menjalankan proses, dan menyediakan layanan sistem untuk memberikan
pengaturan dan proteksi akses ke sumber daya perangkat keras. Kernel mengimplementasi semua
fitur yang diperlukan supaya dapat bekerja sebagai sistem operasi. Namun, jika sendiri, sistem
operasi yang disediakan oleh kernel Linux sama sekali tidak mirip dengan sistem UNIX. Dia tidak
memiliki banyak fitur ekstra UNIX, dan fitur yang disediakan tidak selalu dalam format yang
diharapkan oleh aplikasi UNIX. Interface dari sistem operasi yang terlihat oleh aplikasi yang sedang
berjalan tidak ditangani langsung oleh kernel, akan tetapi aplikasi membuat panggilan (calls) ke
perpustakaan sistem, yang kemudian memanggil layanan sistem operasi yang dibutuhkan.
->Pustaka Sistem
Pustaka sistem menyediakan berbagai tipe fungsi. Pada level yang paling sederhana, mereka
membolehkan aplikasi melakukan permintaan pada layanan sistem kernel. Membuat suatu system
call melibatkan transfer kontrol dari mode pengguna yang tidak penting ke mode kernel yang
penting; rincian dari transfer ini berbeda pada masing-masing arsitektur. Pustaka bertugas untuk
mengumpulkan argumen system-call dan, jika perlu, mengatur argumen tersebut dalam bentuk
khusus yang diperlukan untuk melakukan system call.
Pustaka juga dapat menyediakan versi lebih kompleks dari system call dasar. Contohnya, fungsi
buffered file-handling dari bahasa C semuanya diimplementasikan dalam pustaka sistem, yang
memberikan kontrol lebih baik terhadap berkas M/K daripada system call kernel dasar. pustaka juga
menyediakan rutin yang tidak ada hubungan dengan system call, seperti algoritma penyusunan
(sorting), fungsi matematika, dan rutin manipulasi string (string manipulation). Semua fungsi yang
diperlukan untuk mendukung jalannya aplikasi UNIX atau POSIX diimplementasikan dalam
pustaka sistem.
Kernel
97
-> Utilitas Sistem
Sistem Linux mengandung banyak program-program pengguna-mode: utilitas sistem dan utilitas
pengguna. Utilitas sistem termasuk semua program yang diperlukan untuk menginisialisasi sistem,
seperti program untuk konfigurasi alat jaringan (network device) atau untuk load modul kernel.
Program server yang berjalan secara kontinu juga termasuk sebagai utilitas sistem; program
semacam ini mengatur permintaan pengguna login, koneksi jaringan yang masuk, dan antrian
printer.
Tidak semua utilitas standar melakukan fungsi administrasi sistem yang penting. Lingkungan
pengguna UNIX mengandung utilitas standar dalam jumlah besar untuk melakukan pekerjaan
sehari-hari, seperti membuat daftar direktori, memindahkan dan menghapus file, atau menunjukkan
isi dari sebuah file. Utilitas yang lebih kompleks dapat melakukan fungsi text-processing, seperti
menyusun data tekstual atau melakukan pattern searches pada input teks. Jika digabung,
utilitas-utilitas tersebut membentuk kumpulan alat standar yang diharapkan oleh pengguna pada
sistem UNIX mana saja; walaupun tidak melakukan fungsi sistem operasi apa pun, utilitas tetap
merupakan bagian penting dari sistem Linux dasar.
sumber: SistemOperasi4.0.pdf