Linux merupakan Sistem operasi yang mempunyai pengembang tingkat atas di dunia. Namun, di Indonesia masih sedikit yang menggunakannya, hanya beberapa orang saja yang mengembangkan sistem operasi ini. Mungkin mereka melihat perkembangan dan sejarah Linux yang tidak masuk akal dalam membentuk sebuah sistem operasi.
Linux dibangun seperti sebuah proyek yang berkesan hanya untuk mengumbar hobi semata bagi para programmer – programmer dunia yang saling bahu-membahu membangun proyek ini. Dimana para pengembang hampir semuanya tidak dibayar, hingga kadang dipertanyakan masalah siapa yang bertanggung jawab kala terdapat permasalahan pada sistem operasi ini. Memang pada dasarnya tidak ada jaminan yang bisa memastikan itu.
Namun keranguan itu telah dibuktikan dari belasan tahun lahirnya Linux. Dimana untuk sekarang kita sudah dapat menemukan Linux telah semakin popular dikalangan alat–alat teknologi, kalangan administrator server, kalangan pendidikan, perkantoran dan lain sebagainya. dimana sebagian besar mereka selalu mendukung proyek Linux untuk terus berjalan dan terus mengusahakan untuk kesempurnaan Linux di bidang sistem operasi lainnya hingga dapat bersaing di mata dunia.
Dari segi pengguna, Linux telah dapat dikatakan sebuah sistem operasi yang mempunyai mobilitas yang tinggi dan dapat dijadikan sebagai sebuah sistem operasi yang berpotensi untuk masa depan.
Untuk mendapatkan Linux seseorang biasa mendapatkan Linux tanpa bayar (gratis) lisensinya kepada siapapun di internet, sehingga membuat sistem operasi ini semakin cepat berkembang karena Sisitem Operasi ini berdiri dan tegak oleh komunitas Linux yang tersebar didunia. Sehingga kadang jawaban dari komunitas akan lebih cepat membahas masalah yang terjadi dibandingkan menunggu suatu perusahaan untuk menjawab permasalahan tersebut.
MENGAPA LINUX?
Kadang memang kita sering bertanya “mengapa harus Linux?” untuk itu kami mencoba menerangkan dari sejarahnya, lisensi, distibusi, dan lain sebagainya yang semoga membuat pembaca mengerti mengapa kami mememilih Sistem Operasi Linux.
SEJARAH

Pada tahun 1991 Linus Benedict Tovalds dari Finlandia di Helsinki mulai mengembangkan sistem operasi yang mulanya hanya sekedar emulasi terminal yang saat itu ia butuhkan untuk mengakses server UNIX disebuah Universitas tempat ia kuliah. Tovalds menulis program pendekatan yang berorientasi pada hardware dan independen terhadap sistem operasi yang ada karena ia ingin menggunakan PC yang telah tertanam prosesor intel tipe 80386 secara optimal (keluarga x86 sampai saat ini telah menjadi standar). Sebagai rujukan Torvalds menggunakan Sistem Minix dan compilerGNU-C-Compiler(GCC).
Seperti ditulis dalam bukunya (bersama David Diamond, 2001), Torvalds kemudian menyadari bahwa apa yang dibuatnya itu ternyata merupakan basis sebuah sistem operasi. Pada hari bersejarah 25 Augustus 1991 ia kemudian memnulis email ke milis pengguna Minix: comp.os.minix yang isinya kami kutip sebagai sebuah proklamasi lahirnya Linux:
„Hello everybody out there using minix -
I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them 
Linus (torvalds@kruuna.helsinki.fi)
PS. Yes – it’s free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have
.“
Pesan dari Linus ini mendapat respon dan tanggapan yang sangat luas biasa hingga membuat para programmer dunia berbondong – bondong ikut dalam pengembangan Sistem operasi tersebut yang semakin hari semakin mempunyai ranting tersendiri dikalangan Sistem operasi yang ada didunia. Dukungan dari vendor – vendor besar semakin hari pun semakin banyak hingga membuat semakin mantapnya kedudukan Linux, dan banyak yang migrasi besar – besaran yang dilakukan oleh beberapa Negara maju dunia untuk menggunakan system operasi ini.
Tujuhbelas tahun lampau tanggal 17 September 1991 kode sumber Linux versi 0.01 untuk pertama kalinya tersedia di server FTP di Helsinki untuk dicoba dan dikembangkan lebih lanjut oleh komunitas pengembang yang ingin mengembangkannya secara sukarela. Versi Kernel Linux yang berlaku pada hari ini (2008) telah mencapai versi 2.6.17.13 dan versi 2.4.33.3.
TUX (Tovalds UniX)

SISTEM OPERASI LINUX
Tux adalah penguin yang menjadi maskot Sistem operasi Linux. Tux juga termasuk karya seniman Larry Ewing yang ia buat pada tahun 1996. Dimana pada saat itu para pengembang Linux merasa bahwa perlunya membuat sebuah logo untuk Sistem operasi ini, dan nama Tux terpilih atas usulan James Hughes. Dimana kabar angin mengatakan bahwa, sejarah pinguin menjadi maskot Linux ini adalah berdasarkan pengalaman linus tovalds yang saat berkunjung ke suatu kebun binatang. Ia tanpa sengaja digigit oleh penguin dan sempat menderita demam sampai berhari-hari.
Nah dari situlah Linus berharap bahwa pemakai Linux nantinya yang menggunakan Sistem operasi ini akan demam dengan Sistem operasi ini sama seperti yang Ia alami sewaktu di kebun binatang tersebut (saran: berdasarkan cerita diatas maka bagi pembaca harap berhati-hati dalam menggunakan Sistem operasi ini karena telah banyak terbukti para Linuxer mengalami hal tersebut).
LISENSI LINUX
Kernel Linux terdistribusi dibawah Lisensi Publik Umum GNU (GPL), dimana peraturannya disusun oleh Free Software Foundation. Linux bukanlah perangkat lunak domain publik (public domain): 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.
DISTIBUSI LINUX
Distribusi adalah kumpulan dari kernel Linux beserta system dasar Linux, program instalasi, dan tool – tool lain yang bermanfaaat sesuai dengan tujuan pembuatan distro tersebut. Kernel merupakan pondasi dari sebuah system operasi, dan linus adalah orang yang telah membuat pondasi itu sehingga ia biasa dikatakan sebagai sebagai pembuat Linux. Lalu bagaimana dengan Debian, Fedora, blankon, ubuntu, slackware dan lainnya? Itu semua adala distribusi dari Linux dan semua distribusi Linux menggunakan kernel yang dibuat oleh Linus.
SISTEM OPERASI LINUX
Beberapa distro yang sudah terkenal dimata dunia, termasuk Indonesia yaitu:
- RedHat, distribusi yang paling populer, minimal di Indonesia. RedHat merupakan distribusi pertama yang instalasi dan pengoperasiannya mudah.
- Debian, distribusi yang mengutamakan kestabilan dan kehandalan, meskipun mengorbankan aspek kemudahan dan kemutakhiran program. Debian menggunakan .deb dalam paket instalasi programnya.
- Slackware, merupakan distribusi yang pernah merajai di dunia Linux. Hampir semua dokumentasi Linux disusun berdasarkan Slackware. Dua hal penting dari Slackware adalah bahwa semua isinya (kernel, library atau pun aplikasinya) adalah yang sudah teruji. Sehingga mungkin agak tua tapi yang pasti stabil. Yang kedua karena dia menganjurkan untuk menginstall dari source sehingga setiap program yang kita install teroptimasi dengan sistem kita. Ini alasannya dia tidak mau untuk menggunakan binary RPM dan sampai Slackware 4.0, ia tetapi menggunakan libc5 bukan glibc2 seperti yang lain.
- SuSE, distribusi yang sangat terkenal dengan YaST (Yet another Setup Tools) untuk mengkonfigurasi sistem. SuSE merupakan distribusi pertama dimana instalasinya dapat menggunakan bahasa Indonesia.
- Mandrake, merupakan varian distro RedHat yang dioptimasi untuk pentium. Kalau komputer kita menggunakan pentium ke atas, umumnya Linux bisa jalan lebih cepat dengan Mandrake.
- WinLinux, distro yang dirancang untuk diinstall di atas partisi DOS (WIndows). Jadi untuk menjalankannya bisa di-klik dari Windows. WinLinux dibuat seakan-akan merupakan suatu program aplikasi under Windows.
2.5 KELEBIHAN LINUX
Di sini akan dijelaskan beberapa kelebihan dari sistem operasi Linux dibandingkan dengan dengan sistem operasi yang lain. Dan berikut ini adalah beberapa fakta dari hal-hal yang menguntungkan dengan menggunakan program dan file-file Linux:
-
Pada dasarnya semua data tersimpan di dalam hard disk walau ada beberapa kondisi dimana data tersimpan di disket. Linux memberikan beberapa proses spesial dimana terminal, printer dan device hardware lainnya dapat diakses seperti kita mengakses file yang tersimpan dalam harddisk atau disket.
-
Ketika program dijalankan, program tersebut dijalankan dari harddisk ke dalam RAM dan setelah dijalankan akan dinamakan sebagai proses.
-
Linux menyediakan servis untuk membuat, memodifikasi program, proses dan file.
-
Linux mendukung struktur file yang bersifat hirarki.
-
Linux adalah salah satu sistem operasi yang termasuk ke dalam kelas sistem operasi yang dapat melakukan multitasking. Multitasking sendiri adalah keadaan dimana suatu sistem operasi dapat melakukan banyak kerjaan pada saat yang bersamaan.
-
Selain multitasking, Linux juga dapat mendukung multiuser. Yaitu sistem operasi yang pada saat bersamaan dapat digunakan oleh lebih dari satu user yang masuk ke dalam sistem. Bahkan untuk Linux juga mendukung untuk multiconsole dimana pada saat bersamaan di depan komputer langsung tanpa harus melalui jaringan dan memungkinkan lebih dari satu user masuk ke dakam sistem.
PERBEDAAN YANG MENDASAR LINUX DENGAN SISTEM OPERASI LAINYA
Hal yang mendasar membedakan Linux terhadap sistem operasi lainnya adalah harga, yaitu harga. Linux ini lebih murah dan dapat diperbanyak serta didistribusikan kembali tanpa harus membayar kepada siapapun (free). Tetapi ada hal lain yang lebih utama selain pertimbangan harga yaitu mengenai source codenya yang tersedia bagi semua orang sehingga setiap orang dapat terlibat langsung dalam pengembangannya.
Kebebasan ini telah memungkinkan para vendor perangkat keras membuat driver untuk device tertentu tanpa harus mendapatkan lisensi source code yang mahal atau menandatangani Non Disclosure Agreement (NDA). Dan itu juga telah menyediakan kemungkinan bagi setiap orang untuk melihat ke dalam suatu sistem operasi yang nyata dan berkualitas komersial hingga kadang membuat kekhawatiran para pembuat Sistem operasi yang komersil.
Karena Linux itu tersedia secara bebas di internet, berbagai vendor telah membuat suatu paket distrbusi Linux. Paket ini termasuk lingkungan Linux lengkap, penagkat lunak untuk instalasi dan mungkin termasuk Perangkat lunak khusus dan dukungan khusus.
Linux disusun berdasarkan standar sistem operasi POSIX yang sebenarnya diturunkan berdasarkan fungsi kerja UNIX. Sedangkan UNIX kompatibel dengan Linux pada level system call, ini berarti sebagian besar program yang ditulis untuk UNIX atau Linux dapat direkompilasi dan dijalankan pada sistem lain dengan perubahan yang minimal. Secara umum dapat dikatakan Linux berjalan lebih cepat dibanding UNIX lain pada hardware yang sama. Dan lagi UNIX memiliki kelemahan yaitu tidak bersifat free. MS-DOS memiliki kemiripan dengan Linux yaitu file sistem yang bersifat hirarkis. Tetapi MS-DOS hanya dapat dijalankan pada prosesor x86 dan tidak mendukung multi user dan multi tasking, serta tidak bersifat free. Juga MSDOS tidak memiliki dukungan yang baik agar dapat berinteroperasi dengan sistem operasi lainya, termasuk tidak tersedianya perangkat lunak network, program pengembang dan program utilitas yang ada dalam Linux.
MS Windows menawarkan kemampuan grafis yang ada pada Linux termasuk kemampuan networking tetapi tetap memiliki kekurangan yang ada pada MS-DOS. Windows NT yang juga tersedia untuk Digital Alpha selain prosesor x86. Namun Windows NT ini masih juga memiliki beberapa kekurangan yang telah ada pada MS-DOS.Waktu untuk menemukan suatu bug dalam suatu system operasi ini tak sebanding dengan harga yang harus dibayar.
Sistem operasi Apple untuk Macintosh hanya dapat berjalan di sistem Mac. Juga memiliki kekurangan dari sisi ketersediaan perangkat bantu pengembang (development tool) dan juga kurang dapat secara mudah untuk berintoperasi dengan sistem operasi lainnya. Apple juga telah memungkinkan Linux dapat dijalankan pada PowerMac.
SISTEM OPERASI LINUX
KERNEL
Sebagaimana kita ketahui kernel adalah bagian inti dari sebuah Sistem operasi yang terdiri dari device driver, data table, dan aplikasi penghubung dengan hardware. 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. Tetapi, kernel tersebut sudah mengimplementasi proses UNIX secara tepat.
Tanggal 14 Maret, 1994, versi yang merupakan tonggak sejarah Linux yaitu versi 1.0 keluar. Rilis ini adalah kulminasi dari tiga tahun perkembangan yang cepat dari kernel Linux. Fitur baru terbesar yang disediakan adalah jaringan: 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(optic maupun ps2), dan keyboard internasional.
Dukungan buat modul kernel yang dynamically loadable dan unloadable juga diberikan. Satu tahun setelah dirilis versi 1.0, kernel 1.2 keluar. Kernel versi 1.2 mendukung variasi perangkat keras yang lebih luas. Pengembang telah memperbaharui networking stack untuk menyediakan support bagi protokol IPX, dan membuat implementasi IP lebih komplit dengan memberikan fungsi accounting dan firewalling. Kernel 1.2 juga merupakan kernel Linux terakhir yang PC-only.
Konsentrasi lebih diberikan pada dukungan perangkat keras dan memperbanyak implementasi lengkap pada fungsi-fungsi yang ada. Akhirnya pada bulan Juni 1996, Linux 2.0 dirilis. Versi 2.0 memiliki dua kemampuan baru yang penting, yaitu: dukungan terhadap multiple architectures dan multiprocessor architectures. Kode untuk manajemen memori telah diperbaiki sehingga performa sistem berkas dan memori virtual meningkat. Untuk pertama kalinya, file system caching dikembangkan ke networked file systems, writable memory mapped regions juga sudah didukung.
Kernel 2.0 sudah memberikan performa TCP/IP yang lebih baik, ditambah dengan sejumlah protokol jaringan baru. Kemampuan untuk mema kai 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.
Saat kernel melakukan sebuah proses, data-data proses tersebut disimpan secara terus-menerus dan berkelanjutan dalam bentuk file-file. Untuk melihat data-data kernel tersebut, maka file-file yang dimaksud harus di cek setiap saat karena datanya yang dinamis. Cara termudah yang dapat dilakukan antara lain dengan menggunakan perintah cat.
Syntax :
cat <file_system_yang_di_maksud>
File-file ini tersimpan dalam direktori-direktori yang disimpan terstruktur dalam direktori /proc.
Berikut ini gambaran sekilas mengenai struktur direktori di Linux
- Kernel Linux tergolong jenis kernel monolithic. Sebuah program yang berukuran besar, dan kompleks, dirancang secara logis dari komponen-komponen yang berbeda. Hal ini sangat umum; karena sebagain besar varian Unix menganut sistem kernel monolithic, kecuali March 3.0 Carnegie-Mellon.
- Kernel Unix versi lama di-compile dan di-link secara statik. Sebagian besar kernel modern bisa me-load dan unload sebagian kode kernelnya (yang biasa disebut dengan module) secara dinamik, contoh kasus load/unload module ini terjadi pada device driver/driver perangkat keras). Fasilitas module ini digunakan dengan sangat baik oleh Linux, dengan me-load dan unload module kernel tersebut di semua sesi aktivitas komputasi sedang berjalan. Diantara semua varian Unix yang bersifat komersial, hanya kernel SVR4.2 yang mempunyai fitur ini.
- Kernel threading. Beberapa kernel Unix modern, seperti Solaris 2.x dan SVR4.2/MP, tersusun sebagai suatu kumpulan kernel thread. Suatu kernel thread merupakan suatu execution context yang bisa dengan mandiri (independently) dijadwalkan; berlaku baik pada suatu user program, atau menjalankan beberapa fungsi kernel. Context switch di antara sejumlah kernel thread menggunakan sumber daya yang lebih sedikit dibandingkan antar sejumlah proses, karena biasanya beroperasi pada address space yang sama. Linux menggunakan fungsionalitas kernel thread ini sangat terbatas hanya pada beberapa fungsi kernel secara periodik; kernel thread Linux tidak dirancang untuk mengeksekusi user program, karena tidak memberikan abstraksi dasar execution context. (Hal ini akan dibahas pada bagian selanjutnya.)
- Mendukung multithreaded application. Sebagian besar sistem operasi modern mempunyai dukungan terhadap aplikasi-aplikasi yang mempunyai fitur multithreading (multithreaded aplication), inilah, program-program (user programs) yang dirancang dengan baik untuk memiliki alur-alur eksekusi yang relatif mandiri (independently) dengan membagi sejumlah besar bagian struktur data aplikasi. Sebuah multithreaded aplication dapat tersusun dari sejumlah lightweight processes (LWP), atau proses-proses yang dapat beroperasi pada address space, RAM, file-file digunakan (opened files) yang sama, dan beberapa sumber daya lain. Linux merancang versi sendiri fitur lightweight processes ini, dan pasti akan berbeda dengan jenis yang digunakan oleh sistem lain seperti SVR4 dan Solaris. Apabila semua varian Unix komersial menggunakan LWP berbasiskan pada kernel thread, Linux memanfaatkannya dengan metoed basic execution context dan mengaturnya lewat system call non-standard clone ( ).
- Linux termasuk jenis kernel nonpreemptive. Hal ini berarti Linux tidak bisa secara langsung melakukan interleave alur eksekusi yang sedang berada pada privileged mode. Beberapa bagian kode program pada kernel memberikan gambaran bagaimana Linux dapat menjalankan dan memodifikasi struktur-struktur data tanpa diganggu (interrupted) dan lahirnya thread-thread baru yang dapat mengubah struktur-struktur data tersebut. Biasanya, kernel yang bersifat preemptive secara penuh akan berhubungan dengan sebuah sistem operasi real-time. Pada saat ini, diantara sistem Unix general-purpose yang ada, hanya Solaris 2.x dan March 3.0 yang termasuk kernel preemptive secara penuh. Pada lain pihak, SVR4.2/MP memperkenalkan beberapa hal solusi preemptive yang membatasi kapabilitas fitur preemptive.
- Mendukung sistem multiprocessor. Beberapa kernel varian Unix memanfaatkan keunggulan sistem multiprocessor. Linux 2.2 telah menyediakan hasil pengembangan dari symmetric multiprocessing (SMP), artinya bahwa tidak hanya sistem bisa menggunakan sejumlah prosesor, tapi juga prosesor dapat mengeksekusi task manapun; tidak ada diskriminasi di antara prosesor-prosesor yang ada. Walaupun begitu, Linux 2.2 tidak bisa mengotimalkan fasilitas SMP ini. Beberapa fungsi-fungsi kernel yang bisa dieksekusi secara konkuren—seperti filesystem handling dan networking—sekarang hanya bisa dieksekusi secara sekuensial.
- Filesystem. Filesystem standard Linux memiliki kekurangan (saat tulisan ini dibuat) pada fitur journaling. Akan tetapi, filesystem lain yang dinilai lebih baik tersedia untuk Linux, dan walaupun tidak source code tidak tersedia pada kernel Linux; diantaranya adalah: Journaling Filesystem (JFS) AIX IBM, dan XFS filesystem Silicon Graphic. Hal yang luar biasa terhadap teknologi object-oriented virtual filesystem (terinspirasi oleh Solaris dan SVR4), filesystem di luar Linux dapat dengan di-porting dengan mudah ke sistem Linux.
- STREAMS. Linux tidak memanfaatkan fitur STREAMS I/O (diadaptasi oleh SVR4) ini ke dalam sistemnya, walaupun saat ini sebagian besar kernel varian Unix mengikutkan ke dalam kernelnya dan menjadikannya sebagai interface yang paling sering digunakan untuk menulis (membuat) driver perangkat keras, dan protokol-protokol jaringan komputer
3.2 SISTEM LIBRARIES
Perpustakaan sistem menyediakan banyak tipe fungsi. Pada level yang paling mudah, mereka membolehkan aplikasi melakukan permintaan pada servis sistem kernel. Membuat sebuah panggilan sistem (system calls) melibatkan transfer kontrol dari mode user yang tidak penting ke mode kernel yang penting; detil dari transfer ini berbeda pada masing-masing arsitektur. Perpustakaan bertugas untuk mengumpulkan argumen system-call dan, jika perlu, mengatur argumen tersebut dalam bentuk khusus yang diperlukan untuk melakukan system call.
Perpustakaan juga dapat menyediakan versi lebih kompleks dari system call dasar. Contohnya, fungsi buffered file-handling dari bahasa C semuanya diimplementasi dalam perpustakaan sistem, yang berakibat kontrol yang lebih baik terhadap file I/O daripada yang disediakan oleh system call kernel dasar. Perpustakaan 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 perpustakaan sistem.
SISTEM UTILITIES
Sistem Linux mengandung banyak program-program user-mode: utilitas sistem dan utilitas user. 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 user 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 d aftar 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
toolset standar yang diharapkan oleh user pada sistem UNIX mana saja; walau pun tidak melakukan fungsi sistem operasi apa pun, utilitas tetap merupakan bagian penting dari sistem Linux dasar.
STRUKTUR DIREKTORI
Salah satu hal berbeda di Linux (dan varian *nix lainnya) adalah struktur drektori. Konsep penamaan drive seperti di DOS maupun Windows sangat berbeda tak seperti di Linux. Untuk direktori di Linux dapat kami jelaskan sebagai berikut:
/
Forward slash atau biasa di sebut slash (garis miring), adalah merupakan root directory. Directory ini merupakan struktur tertinggi dari sistem anda. Semua yang ada dibawahnya berakar ke directory ini. Sebagai contoh ketika anda melihat penulisan “/bin”, maka ini berarti “mulai dari / kemudian masuk ke directory bin”.
/root
Directory ini adalah directory untuk user yang memiliki hak akses paling tinggi di sistem Linux, yaitu root. Seperti Windows user tertinggi adalah administrator. User root bisa melakukan apapun di sistem, termasuk menghapus file atau directory milik user manapun, sangat penting untuk mengetahui fungsi dari root untuk di Sistem operasi Linux.
/bin
Adalah utility standard Linux (program standard) seperti “ls”, “vi”, “more” dan sebagainya. Biasanya directory ini sudah dimasukan kedalam PATH system sehingga bisa dieksekusi dari directory manapun.
/etc
Directory ini berisi file konfigurasi sistem. contoh, jika anda menginstall mysql dan anda ingin melakukan perubahan konfigurasi pada file httpd.conf, file ini akan anda temukan di directory ini.
/dev
Ini merupakan device directory. Di sistem Linux semuanya dianggap sebagai file. Sebagai contoh, jika anda memiliki sebuah webcam dan sistem Linux anda telah mengenalinya, maka biasanya webcam anda akan ‘ditempel’ di /dev/video0 (jika hanya ada satu video device). Linux mengijinkan anda berkomunikasi secara langsung dengan peripheral anda melalui file device.
/home
Adalah tempat data anda disimpan oleh sistem. Disini pula sistem akan menyimpan konfigurasi spesifik untuk setiap user (seperti setting desktop, wallpaper, dsb.). Jika anda membuat user “agus”, maka data dan konfigurasi sistem anda akan disimpan pada directory “/home/agus”. Setiap user akan memiliki satu directory sendiri di dalam “/home” kecuali user “root” dan user system (user yang digunakan oleh sistem untuk menjalankan proses tertentu).
/tmp
Didalam directory ini terdapat file atau directory lain yang bersifat sementara, misalnya ketika anda menjalankan sebuah program, program akan membuat file-file yang diperlukan untuk menjalankan program tersebut yang kemudian dihapus setelah program ditutup. Kebanyakan sistem Linux akan secara otomatis mengosongkan isi directory ini secara berkala. Sehingga, hindari untuk menyimpan file penting di directory ini.
/usr
Disini akan anda temukan utility (program-program) tambahan pada sistem Linux anda. Di dalam “/usr” juga akan anda temukan struktur yang mirip dengan di “/” (root) seperti “/usr/bin”, “/usr/share”, dsb. “/usr” biasanya digunakan untuk meletakan program atau resource lain seperti library, icon, dsb. yang dibagi dengan user lain.
/lib
Directory ini adalah tempat dimana biasanya sistem meletakkan file library, codec, dsb. yang diperlukan oleh suatu program atau compiler. Mirip dengan penempatan file Dynamic Link Library (DLL) pada directory “System32″ di Windows.
/opt
Directory ini merupakan opsional. Biasanya sangat berguna jika kita ingin meletakan program yang tidak memerlukan dependency dengan sistem kita. Misalnya jika anda mendownload eclipse, anda dapat meletakkan seluruh filenya pada directory ini karena eclipse tidak membutuhkan library lain untuk menjalankan programnya.
/media
Sebagian distro Linux menggunakan directory ini untuk mounting removable drive. Directory lainnya yang biasa digunakan untuk mounting drive adalah “/mnt”.
SINKRONISASI LINUX
Cara penjadualan kernel pada operasinya secara mendasar berbeda dengan cara penjadualan suatu proses. Terdapat dua cara agar sebuah permintaan akan eksekusi kernel-mode dapat terjadi. Sebuah program yang berjalan dapat meminta service sistem operasi, dari system call atau pun secara implisit (untuk contoh:ketika page fault terjadi). Sebagai alternatif, device driver dapat mengirim interupsi perangkat keras yang menyebabkan CPU memulai eksekusi kernel-define handler untuk suatu interupsi.
Problem untuk kernel muncul karena berbagai task smungkin mencoba untuk mengakses struktur data internal yang sama. Jika hanya satu kernel task ditengah pengaksesan struktur data ketika interupsi service routine dieksekusi, maka service routine tidak dapat mengakses atau merubah data yang sama tanpa resiko mendapatkan data yang rusak.
Fakta ini berkaitan dengan ide dari critical section (baca sinkronisasi proses).
Sehagai hasilnya, sinkronisasi kernel melibatkan lebih banyak dari hanya penjadualan proses saja. sebuah framework dibutuhkan untuk memperbolehkan kernel’s critical sections berjalan tanpa diinterupsi oleh critical section yang lain. Solusi pertama yang diberikan oleh Linux adalah membuat normal kernel code nonpreemptible.
Ketika sebuah timer interrupt diterima oleh kernel, membuat penjadualan proses, kemungkinan besar akan menunda eksekusi proses yang sedang berjalan pada saat itu dan melanjutkan menjalankan proses yang lain. Biar bagaimana pun, ketika timer interrupt diterima ketika sebuah proses mengeksekusi kernel-system service routine, penjadualan ulang tidak dilakukan secara mendadak; cukup, kernel need_resched flag terset untuk memberitahu kernel untuk menjalankan penjadualan kembali setelah system call selesai dan control dikembalikan ke user mode. Sepotong kernel code mulai dijalankan, akan terjamin bahwa itu adalah satu-satunya kernel code yang dijalankan sampai salah satu dari aksi dibawah ini muncul:
• interupsi
• page fault
• kernel code memanggil fungsi penjadualan sendiri
Interupsi adalah suatu masalah bila mengandung critical section-nya sendiri. Timer interrupt tidak secara langsung menyebabkan terjadinya penjadualan ulang suatu proses; hanya meminta suatu jadual untuk dilakukan kemudian, jadi kedatangan suatu interupsi tidak mempengaruhi urutan eksekusi dari noninterrupt kernel code. Sekali interrupt service selesai, eksekusi akan menjadi lebih simpel untuk kembali ke kernel code yang sedang dijalankan ketika interupsi mengambil alih.
Page faults adalah suatu masalah yang potensial; jika sebuah kernel routine mencoba untuk membaca atau menulis ke user memo ry, akan menyebabkan terjadinya page fault yang membutuhkan I/O diskuntuk selesai, dan proses yang berjalan akan di tunda sampai I/O selesai. Pada kasus yang hampir sama, jika system call service routine memanggil penjadualan ketika sedang berada di mode kernel, mungkin secara eksplisit dengan membuat direct call pada code penjadualan atau secara implisit dengan memanggil sebuah fungsi untuk menunggu I/O selesai, setelah itu proses akan menunggu dan penjadualan ulang akan muncul. Ketika proses jalan kembali, proses tersebut akan melanjutkan untuk mengeksekusi dengan mode kernel, melanjutkan intruksi setelah call (pemanggilan) ke penjadualan.
Kernel code dapat terus berasumsi bahwa ia tidak akan diganggu (pre-empted) oleh proses lainnya dan tidak ada tindakan khusus dilakukan untuk melindungi critical section. Yang diperlukan adalah critical section tidak mengandung referensi ke user memory atau menunggu I/O selesai.
Teknik kedua yang di pakai Linux untuk critical section yang muncul pada saat interrupt service routines. Alat dasarnya adalah perangkat keras interrupt-control pada processor. Dengan meniadakan interupsi pada saat critical section, maka kernel menjamin bahwa ia dapat melakukan proses tanpa resiko terjadinya ketidak-cocokan akses dari struktur data yang di share. Untuk meniadakan interupsi terdapat sebuah pinalti. Pada arsitektur perangkat keras kebanyakan, pengadaan dan peniadaan suatu interupsi adalah sesuatu yang mahal.
Pada prakteknya, saat interupsi ditiadakan, semua I/O ditunda, dan device yang menunggu untuk dilayani akan menunggu sampai interupsi diadakan kembali, sehingga kinerja meningkat.
Kernel Linux menggunakan synchronization architecture yang mengizinkan critical section yang panjang dijalankan untuk seluruh durasinya tanpa mendapatkan peniadaan interupsi. Kemampuan secara spesial berguna pada networking code: Sebuah interupsi pada network device driver dapat memberikan sinyal kedatangan dari keseluruhan paket network, dimana akan menghasilkan code yang baik dieksekusi untuk disassemble, route, dan forward paket ditengah interrupt service routine. Linux mengimplementasikan arsitektur ini dengan memisahkan interrupt service routine menjadi dua seksi: the top half dan the bottom half .
The top half adalah interupsi yang normal, dan berjalan dengan rekursive interupt ditiadakan (interupsi dengan prioritas yang lebih tinggi dapat menginterupsi routine, tetapi interupsi dengan prioritas yang sama atau lebih rendah ditiadakan).
The bottom half service routine berjalan dengan semua interupsi diadakan, oleh miniatur penjadualan yang menjamin bahwa bottom halves tidak akan menginterupsi dirinya sendiri. The bottom half scheduler dilakukan secara otomatis pada saat interupt service routine ada.
Bagian terpenting sistem operasi adalah kernel, Kernel adalah program inti yang mengatur komponen penting computer (processor dan memori sebagai contoh); serta beberapa device driver yang mengatur sistem perangkat keras yang lain (kartu jaringan, kartu suara dll).
- Kernel menyediakan tool dimana semua layanan sistem komputer disediakan.
- Kernel mencegah proses aplikasi mengakses mengakses perangkat keras secara langsung, memaksa proses menggunakan tool yang disediakan.
- Kernel memberi proteksi kepada pemakai dari gangguan pemakai lain
Tool Kernel digunakan melalui panggilan sistem (system call). Program system menggunakan tool kernel untuk implementasi beragam layanan. Program sistem dan semua program lain berjalan diatas kernel. Program pemakai berjalan di mode berbeda dengan kernel, disebut mode pemakai.
Kernel berisi beberapa bagian penting, yaitu:
SISTEM OPERASI LINUX
MANAJEMEN MEMORI
Organisasi dan manajemen memori sangat mempengaruhi kinerja komputer. Manajemen memori melakukan tugas penting dan kompleks berkaitan dengan:
Ruang alamat dapat lebih besar dibanding memori fisik yang tersedia
Tiap proses di sistem mempunyai ruang alamat maya tersendiri. Ruang-ruang alamat maya itu sepenuhnya terpisah. Proses yang berjalan di satu aplikasi tidak dapat mengganggu proses lainnya.
Dilakukan pemetaan antara memori maya ke memori fisik yang tersedia.
Memori maya bersama ini untuk menghemat ruang memori, seperti pustaka dinamis bagi beberapa proses.
Karena memori fisik lebih sedikit dibanding memori maya, maka sistem hanya memuatkan page-page maya yang saat itu sedang digunakan proses. Linux memuatkan page maya begitu diperlukan. Teknik ini disebut dengan demand paging. Saat pemroses berusaha mengakses alamat maya yang tidak di memori fisik, pemroses tidak dapat menemukan isian di tabel page maya. Pemroses menerbitkan page fault.
Jika terdapat proses lain yang dapat dijalankan, maka sistem operasi memilih proses lain untuk dijalankan. Proses dimulai kembali di instruksi dimana page fault terjadi. Pemroses dapat memetakan memori maya ke memori fisik saat dilakukan pengaksesan memori maya, sehingga proses terus berjalan. Jika tidak terdapat memori bebas, sistem operasi harus membuat ruang bagi page yang akan dimasukkan dengan membuang page lain dari memori.
-
- Jika page telah dimodifikasi (dirty-page), sistem operasi harus menjaga isi page. Ketika dipindahkan dari memori, disimpan di ruang khusus (swap space).
- Jika page yang dibuang berupa page belum ditulisi maka page tidak perlu dituliskan ke disk.
MANAJEMEN PROSES
Proses adalah program tunggal yang berjalan pada alamat virtual, berarti setiap hal yang berjalan dibawah Linux adalah proses. Proses ini berjalan melalui perintah-perintah yang ada dalam shell. Satu baris perintah dalam shell terkadang mampu mempengaruhi lebih dari satu proses, khususnya jika terdapat perintah pipe. Contoh:
Nroff -man ps.1 | grep kill | more
Perintah ini melakukan tiga proses, satu proses untuk setiap perintahnya. Tipe-tipe proses dalam Linux. Ada beberapa tipe proses dalam Linux . Setiap proses mempunyai kekhususan dan atribut tersendiri yaitu:
diluar (foreground) ataupun hanya didalam (background).
background.
Cara termudah untuk mengetahui proses apa yang sedang berjalan pada sistem adalah
menggunakan perintah ps (process status). Perintah ps mempunyai beberapa option dan argumen, tersedia untuk seluruh user dan root, walau tentu hasilnya akan berbeda tergantung login anda. Jika anda login sebagai user biasa (bukan root), jika perintah ps ditulis akan tampak hasil seperti:
$ ps
PID TTY STAT TIME COMMAND
41 v01 S 0:00 -bash
134 v01 R 0:00 ps
Hasil dari perintah ps selalu disusun dalam bentuk kolom. Kolom pertama berlabel PID(Process Identification Number); adalah penomoran dari Linux untuk menandai sebuah proses, dimulai dari nol dan bertambah satu untuk tiap proses hingga nomor tertinggi. Jika Linux mencapai nomor tertinggi, penomoran akan dimulai lagi dari nomor terendah dengan melewati nomor yang sedang digunakan proses yang aktif. Biasanya nomor terendah digunakan oleh proses kernel dan daemon yang dimulai saat booting hingga Linux berjalan. Untuk memanipulasi proses kita dapat menggunakan PID. Kolom TTY menunjukkan terminal yang digunakan saat proses dimulai. Kolom STAT menunjukkan kondisi terkini dari proses, entri yang paling banyak terdapat adalah S untuk sleeping dan R untuk running. Kolom TIME menunjukkan CPU time yang digunakan oleh proses. Kolom NAME menunjukkan nama proses yang berjalan, biasanya adalah nama perintah yang dimasukkan. Beberapa perintah digunakan untuk memulai perintah yang lain, proses ini dikenal dengan child process. Terdapat banyak versi perintah ps tergantung versi Linux yang digunakan. Kebanyakan admin (jika login sebagai root) menggunakan perintah ps dibawah ini untuk menampilkan keseluruhan informasi sistem:
ps -ef
ps –le
Proses yang terkunci dalam terminal dan tidak dapat melakukan apa pun disebut hang. Terkadang adapula sebuah proses yang berahir tidak sempurna. Hal ini disebut runaway process. Untuk mengatasi hal ini dan mengembalikan sistem ke keadaan normal digunakan perintah kill. Untuk menggunakan perintah ini kita harus mengakses console lain, jika terminal benar-benar terkunci kita harus login kembali. Sebagai seorang user biasa hanya dapat mengkill proses user itu sendiri dan tak dapat mempengaruhi user lain dalam sistem. Sebagai root anda mempunyai kuasa penuh menggunakan perintah kill. Diperlukan PID untuk mengetahui proses yang berjalan sehingga dapat mengkillnya.
- Text, telah mendukung Unicode standrt versi 3.0, itu 16-bit dan dapat digunakan dalam text. Dalam arti kata semua karakter disimpan dan diambil sesuai aslinya, diimport dan diexport sebagai plain text Mendukung perubahan warna text seperti pada PC. Gambar dapat diletakkan disamping text dengan pengaturan transparency dan background scrolling. Dua level undo/redo yang dapat disimpan. Mendukung perubahan size, shape, color dan blink rate kursor.
- Internationalization, Mendukung Chinese dan Japanese karakter untuk text input menggunakan handwriting recognition atau keyboard. Perubahan antara unicode dan karakter set lain melalui mekanisme plug-in, karakter yang diimplementasikan diantaranya: UTF-7, UTF- 8, modified UTF-7, modified UTF-8, 7 bit SMS (atau 7-bit GSM), Code Page 1252, dan ISO 8859-1. Nama file VFAT filename mendukung 8.3 name format.
- Uicon, inti Komponen GUI Symbian OS termasuk didalamnya dialog framework,
concrete control, GUI environment, perubahan look and feel. GUI ini fungsi-fungsinya diberikan oleh EIKON dalam versi 5 Symbian OS.
SINYAL
Sinyal merupakan salah satu metode KAP tertua sistem Unix. Sinyal digunakan untuk memberitahukan kejadian yang asinkronus pada satu atau lebih proses. misalnya sinyal yang dihasilkan oleh keyboard saat ditekan oleh pemakai. Sinyal juga dapat dihasilkan oleh kondisi yang menyatakan error, misalnya saat suatu proses mencoba mengakses lokasi yang tidak pernah ada di dalam memori utama. Sinyal pun digunakan oleh shells untuk memberitahu perintah kontrol kerja kepada proses child.
PIPA
Semua shells Linux yang biasa, membolehkan redirection. Sebagai contoh
$ ls | pr | lpr
memipakan output dari perintah ls, yang melist file yang ada di dalam direktori, sampai standar input dari perintah pr yang mempaginasi file tersebut. Pada akhirnya standard output dari perintah pr dipipakan ke standar input dari perintah lpr yang mencetak hasil-hasilnya ke printer default. Pipa-pipa berikutnya adalah unidirectional byte streams yang menghubungkan standard output dari suatu proses ke standar input dari proses lainnya. Proses tidak peduli t erhadap redirection ini dan berperilaku seolah-olah ia berjalan normal saja. Adalah shell yang membangun pipa-pipa yang bersifat sementara ini di antara dua proses tersebut. Pipa di Linux diamakan FIFO
SISTEM OPERASI LINUX
KONSEP PAKET SOFWARE
Pengaturan sorware di sebagian besar distribusi Linux, sangat berbeda dengan Sistem operasi lainya. Sebagian besar distribusi Linux menggunakan package management ketika mengatur software.
Package management adalah koleksi tool, yang digunakan untuk otomatisasi proses instalasi, upgrade, konfigurasi dan menghapus paket software. umum di gunakan pada system UNIX-like, terutama di Linux.
Terdapat banyak package management di Linux antara lain:
-
RPM (RPM package manager) yang dikembangkan oleh redhat. Saat ini, banyak digunakan oleh distribusi popular seperti : RedHat, Fedora, Centos, SUSE, dan lain-lain. Kelebihannya memiliki berbagai tool high level untuk memudahkan pencarian paket, instalasi dan pemecah masalah menggunakan Yum, YaST
-
DPKG, dikembangkan oleh Debian digunakan berbagai distibusi yang biasanya kebanyakan turunan dari Debian. Package ini merupakan pertama yang dikenal memiliki tool untuk pemecah masalah dengan dependenci APT
-
TGZ, digunanakan oleh distribusi Slackware dan turunannya. Tool yang mempermudah penginstalannya adalah slaptget.
-
portege/Emerege, digunakan oleh distribusi Gentoo dan diinpersi oleh BSD port system. Menggunakan script yang disebut ebuild dalam penginstalan programnya.
APLIKASI-APLIKASI LINUX
Aplikasi-aplikasi Linux tak kalah banyak dengan aplikasi yang ada di Sistem operasi desktop PC lainnya dimana aplikasi-aplikasi itu akan kami tulis berdasarkan yang pernah kami baca, kami dengar dan yang kami ketahui sebagai berikut:
APLIKASI PERKANTORAN
Dengan Linux kita telah dapat membuat document teks, spread sheet, mengolah gambar, membaca dan membuat gambar dokumen elektronik dengan format PDF, serta file Archive dan file management. Toolnya anda dapat menggunakan tool-tool sebagai berikut:
-
OpenOffice org
Open office.org terdiri dari beberapa tool yaitu:
-
OpenOffice.org writer, dapat digunakan seperti kita menggunakan word writer dan memiliki beberapa tampilan tambahan yang memungkinkan anda untuk memformat, mendesain dan mencetak dokumen.
-
OpenOffice.org Calc, digunakan untuk spreadsheet untuk membuat dokumen, membuat chat bisnis dan memanipulasi data.
-
OpenOffice.org Impress, digunakan untuk graphical yang membantu pengguna mambuat presentasi yang meyakinkan.
-
OpenOffice.org Draw, jika penbgguna ingin membuat grafik dokumen dan presentasi bias dilakukan dengan hanya menggunakan mouse.
-
DIA, adalah aplikasi yang disertakan pada distribusi Madriva 2006 yang digunakan untuk menggambar bermacam-macam diagram yang berbeda. Aplikasi ini didesain semirip mungkin dengan Visio pada Sistem operasi Windows.
-
Ark, digunakan untuk menyimpan sekumpulan file dengan sebuah file agar terasa lebih mudah untuk dibawa, ditata dan diolah
-
Kwrite, digunakan untuk membuat, mengedit dan membaca file-file teks dan apliksi ini hamper sama dengan teks editor lainya.
-
Vi, adalah aplikasi sederhana yang ada disebagian besar distribusi Linux yang biasa digunakan hamper sama dengan aplikasi-aplikasi teks editor yang ada di Sistem operasi lainnya cuman Vi biasanya digunakan dengan modus teks(terminal,console atau pun shell).
-
XPDF, digunakan untuk membaca file-file punliksi desktop seperti OpenOffice.org.
-
KADDRESSBOOK(KDE Adressbook Aplication), digunakan untuk menyimpan dan membuat daftar alamat dan nomor telpon secara elektronik dengan mudah.
APLIKASI DEVELOPMENT
Merupakan sebagai berbagai compailer, interpreter, pustaka, IDE dan utility
untuk pengembang pemograman. Dalam Linuk ada bermacam-macam aplikasi yaitu:
-
GCC, digunakan untuk compailer bahasa pemograman C
-
Vim dan Anjunta, digunakan untuk Editor bahasa C
-
Gdb, digunakan untuk debugger bahasa pemograman C
-
Make, tool kompilasi bahasa C
-
Manapages-dev, manual untukl system call dan library call
-
Autoconf, tool untuk otomatisasi pembuatan script configure
-
Automake, tool untuk membuat make file
-
Libtool, tool bantu untuk library
-
Flex, lexical analyzer generator
-
Bison, parser generator
-
Gilbc-doc, tool dokumumentasi pustaka pemograman C
-
PHP, digunakan untuk membangun Website
-
PHYTON, digunakan sebagai aplikasi pemograman bahasa PHYTON
- QT dsigunakan mirip dengan visual C++ dalam Sistem operasi Windows
APLIKASI SERVER
Aplikasi-aplikasi server di Linux antara lain:
-
Bind (Berkeley Internet Name domain ), digunakan untuk keperluan DSN server. Dan merupakan menjadi default aplikasi server dalam beberapa distribusi Linux.
-
Postfix sebagai server Email di Linux
-
Apache HTTP digunakan untuk server web, dan merupakan default aplikasi web disemua distribusi Linux.
-
Samba, merupakan aplikasi yang memungkinkan computer dengan Sistem operasi Linux untuk berbagi file dan direktori dengan computer yang berbasis Sistem operasi lainya.
-
Shorewall untuk mengkonfigurasi netfilter (iptables) yang dapat berfungsi untul gateway dan fire wall.
-
Webmin aplikasi berbasi web untuk membuat aplikasi berbasis web.
-
POP/IMAP server aplikasi yang memungkinkan user-user mendownload imail mereka.
-
Drakconf, untuk konfigurasi gateway ataupun firewall di Linux
-
Drakgw, untuk gateway dan internet Connection sharing
-
Drakfirewall, untuk mengatur firewall Linux
I/O DI LINUX
Kernel Linux mengatur device fisik di sistem. Salah satu fitur yang mendasar adalah kernel mengabstraksi penanganan device. Semua device hardware terlihat seperti berkas pada umumnya: mereka dapat dibuka, ditutup, dibaca, dan ditulis menggunakan calls sistem yang sama dan standar untuk memanipulasi berkas. Setiap device di system direpresentasikan oleh sebuah file khusus device, contohnya disk IDE yang pertama di system direpresentasikan dengan /dev/hda.
Devices blok (disk) dan karakter dibuat dengan perintah mknod dan untuk menjelaskan device tersebut digunakan nomor devices besar dan kecil. Devices jaringan juga direpresentasikan dengan berkas khusus device, tapi berkas ini dibuat oleh Linux setelah Linux menemukan dan menginisialisasi pengontrol-pengontrol jaringan di sistem. Semua device yang dikontrol oleh driver device yang sama memiliki nomor device besar yang umum. Nomor devices kecil digunakan untuk membedakan antara device-device yang berbeda dan pengontrol-pengontrol mereka, contohnya setiap partisi di disk IDE utama punya sebuah nomor device kecil yang berbeda.
Jadi, dev/hda2, yang merupakan partisi kedua dari disk IDE utama, punya nomor besar 3 dan nomor kecil yaitu 2. Linux memetakan berkas khusus device yang diteruskan ke system call (katakanlah melakukan mount ke sistem berkas device blok) pada driver si device dengan menggunakan nomor device besar dan sejumlah tabel sistem, contohnya tabel device karakter, chrdevs.
KEAMANAN DI LINUX
Bicara tentang kemanan memang terasa complex. Dalam tulisan ini kami hanya membahas keamanan yang bersifat pada pengguna sehari – hari ada 3 yaitu:
-
keamanan BIOS
-
keamanan Boot loader
-
keamanan Root
KEAMANAN BIOS
BIOS adalah tingkatan terendah dari perangkat lunak yang mengkonfigurasi atau memanipulasi perangkat keras . BIOS adalah singkatan dari Basic Input Output System.
LILO dan berbagai metode boot Linux lainnya mengakses BIOS untuk menentukan cara untuk memboot mesin Linux. Perangkat keras lain yang dijalankan dengan Linux memiliki perangkat lunak yang mirip (Open Firmware di Mac dan new Suns, Sun boot PROM, dll).
KEAMANAN BOOT LOADER
boot loader Linux memiliki seperangkat kata kunci boot. Sebagai contoh, LILO memiliki kata kunci dan beberapa seting tertutup. LILO akan meminta masukan berupa kata kunci dari pengguna, sementara seting tertutup meminta kata kunci boot-time jika menambahkan option (misalnya single) di prompt LILO.
Kata kunci tersebut akan memperlambat gerakan beberapa hacker. Jika menerapkan keamanan dalam boot-loader, diasrankan untuk mengatur BIOS sehingga komputer tidak bisa diboot dari disket, dan berikan kata kunci pada BIOS.
Jangan lupa juga untuk menset atribut berkas /etc/lilo.conf menjadi 600 (rw- — — ), yang artinya berkas tersebut hanya bisa dibaca dan ditulis oleh root. Jika tidak, orang lain akan dapat mengetahui kata kunci.
KEAMANAN ROOT
Account root memiliki akses paling tinggi di Linux, jadi dengan menggunakan root seseorang akan dapat berbuat apa saja pada sistem operasi Linux. dan sebaliknya dengan membuat beberapa user dan mengatur masing-masing hak user maka root akan aman selama password root tidak diketahui siapapun selain yang menginstal sistem operasi tersebut.
SISTEM OPERASI LINUX
DAFTAR PUSTAKA