Mulai Dari Menghidupkan Komputer Hingga ke Bash Prompt

Greg O’Keefe, gcokeefe@postoffice.utas.edu.au

v0.9a, November 2000

Diterjemahkan oleh :

Ardiansyah

Open Source Research Group Universitas Ahmad Dahlan

[ardining2007@yahoo.com, https://4rd1.wordpress.com


Dokumen ini menjelaskan secara ringkas proses apa saja yang terjadi dalam sistem operasi Linux, mulai dari ketika Anda menghidupkan komputer, hingga waktu Anda log in dan menemukan bash prompt. Dengan memahami dokumen ini setidaknya akan dapat membantu Anda dalam memecahkan masalah atau untuk mengkonfigurasi sistem Linux Anda.


1. Pengenalan

2. Perangkat Keras

3. Lilo

4. Kernel Linux

5. The GNU C Library

6. Init

7. The Filesystem

8. Kernel Daemons

9. System Logger

10. Getty dan Login

11. Bash

12. Commands

13. Kesimpulan

14. Administratif


1. Pengenalan

Sebetulnya saya cukup frustasi setelah mengetahui bahwa banyak sekali proses-proses di sistem operasi Linux yang berjalan, yang sama sekali tidak saya tidak mengerti artinya. Jika Anda juga mengalami hal yang sama dengan saya, dan Anda benar-benar ingin memahami sistem Linux Anda lebih jauh daripada hanya bisa sekedar menggunakannya, dokumen ini akan menjadi bahan yang sangat tepat untuk dipelajari.

Saya mengasumsikan bahwa Anda saat ini menggunakan komputer dengan sistem operasi Linux di dalamnya dan mengerti sedikit tentang dasar-dasar mengenai Unix dan perangkat keras PC. Jika tidak, saya menyarankan Anda mulai mempelajari dokumen dasar-dasar pengetahuaan tersebut yang dibuat oleh Eric S. Raymond di The Unix and Internet Fundamentals HOWTO. Dokumen tersebut singkat, jelas dan melingkupi dasar pengetahuan yang dibutuhkan.

Bahasan utama dalam dokumen ini adalah bagaimana memahami Linux bekerja mulai dari pertama kali komputer dihidupkan. Selain itu dokumen ini juga mencoba untuk memberikan bahasan yang lebih komprehensif sebagai sumber pembelajaran. Saya telah menyertakan latihan-latihan dalam setiap bab. Jika Anda benar-benar mengerjakan seluruh latihan tersebut, Anda akan banyak mendapatkan pelajaran berarharga dari sana, ketimbang hanya sekedar membaca dokumen ini.

Saya berharap nantinya ada dari beberapa pembaca sekalian yang dapat melakukan latihan, inovasi dan pembelajaran di bidang Linux lebih dari apa yang telah saya lakukan, terutama bagi yang membangun sistem Linux dari source code. Giambattista Vico, seorang filosof Italia (1668-1744) pernah mengatakan “verum ipsum factum”, yang artinya “pemahaman didapat dengan cara melakukan”. Terima kasih untuk Alex (lihat bagian Ucapan Terim Kasih) untuk kutipan tadi.

Jika Anda ingin “membuat sistem Linux sendiri”, saya sarankan Anda juga membaca dokumen Linux From Scratch HOWTO (LFS) yang dibuat oleh Gerard Beekman. LFS menjelaskan secara detail mengenai instruksi-instruksi untuk membangun sistem Linux yang dapat digunakan mulai dari source code. Dalam situs LFS juga terdapat milis bagi orang-orang yang membangun sistem Linux dengan cara yang berbeda-beda berdasarkan LFS.

Paket-paket yang ada, ditampilkan sesuai urutannya agar dapat muncul pada waktu sistem melakukan proses startup. Ini berarti, jika Anda menginstal paket-paket tersebut sesuai dengan urutannya, maka Anda dapat me-reboot setiap sesudah instalasi, dan Anda dapat melihat sistem menampilkan bash prompt kapan saja.

Saya merekomendasikan kepada Anda untuk terlebih dahulu membaca bagian utama di setiap bab, lewatkan bagian latihan dan referensi. Kemudian putuskan sejauh mana pemahaman Anda terhadap sistem yang akan dikembangkan, dan sebesar apa usaha yang Anda siapkan untuk menyelesaikannya. Kemudian mulai dari awal lagi, kerjakan latihan dan mulai membaca kelanjutannya.


2. Perangkat Keras

Pada waktu Anda menghidupkan komputer, komputer tersebut langsung memeriksa seluruh perangkat di dalamnya untuk menjamin bahwa seluruh perangkat tersebut berfungsi sebagaimana mestinya. Kejadian ini dinamakan “Power on self test”. Kemudian sebuah program yang dinamakan bootstrap loader, diletakkan dalam ROM BIOS, untuk menemukan boot sector. Boot sector adalah sector pertama dalam sebuah disk yang memiliki sebuah program kecil di dalamnya yang dapat me-load sebuah sistem operasi. Boot sector ditandai dengan sebuah angka “ajaib” yaitu 0xAA55 = 43603 pada byte 0x1FE = 510. Angka tersebut merupakan dua angka berukuran byte terakhir di sector tersebut. Inilah cara bagaimana perangkat keras dapat memberitahukan apakah sector tersebut merupakan boot sector atau bukan.

Bootstrap loader memiliki daftar tempat untuk dapat mencari boot sector. Kalau pada komputer lama saya bootstrap loader pertama-tama mencari primary floppy drive, lalu primary hard drive. Pada komputer jaman sekarang dapat juga mencari boot sector pada CD-ROM. Jika bootstrap loader menemukan boot sector, maka langsung memuatnya (load) ke dalam memory dan melewati program yang digunakan untuk memuat sistem operasi. Pada sistem Linux, biasanya program ini akan menjadi tahap pertama pada boot loader LILO. Terdapat banyak cara yang berbeda-beda dalam proses boot di sistem komputer kita. Untuk informasi lebih detail bisa Anda lihat pada bagian berjudul LILO User’s Guide pada dokumen ini.

2.1 Konfigurasi

Mesin komputer menyimpan informasi mengenai dirinya dalam tempat yang dinamakan CMOS yang terdapat dalam mesin itu juga. Sistem BIOS yang terdapat dalam mesin itu berisi sebuah program yang dapat kita gunakan untuk memodifikasi setting mesin tersebut. Periksalah pesan-pesan yang ditampilkan di layar monitor Anda ketika pertama kali komputer dihidupkan untuk melihat bagaimana caranya mengaksesnya. Kalau dalam mesin komputer saya, Anda cukup menekan tombol DELETE pada keyboard sebelum mesin komputer memuat sistem operasinya.

2.2 Latihan-Latihan

Salah satu cara baik untuk dilakukan dalam mempelajari mengenai perangkat keras komputer (PC) adalah dengan cara membangun sebuah mesin komputer dengan perangkat-perangkat bekas (second hand). Belilah paling tidak mesin dengan prosesor minimal berkecepatan 386 sehingga Anda dapat dengan mudah menjalankan Linux di dalamnya. Harga perangkat tersebut sangat murah. Carilah ke toko-toko komputer atau rekan Anda yang tidak menggunakan komputer jenis itu lagi.

Sekarang coba lakukan download lalu kompilasi-lah dan buat sebuah boot disk dari Unios. Boot disk ini hanya akan menampilkan program bertulisan “Hello World!”, yang hanya terdiri dari 100 baris kode bahasa assembler. Program tersebut akan lebih baik jadinya bila dikonversi dalam format yang dapat dikompilasi dengan GNU Assembler.

Terdapat instruksi-instruksi yang dibutuhkan untuk “rolling your own” sistem operasi di Roll Your Own jika Anda merasa ingin tantangan lebih jauh.

Bukalah boot disk image Unios dengan program hex editor. Image ini memiliki panjang 512 byte, atau setara dengan satu sector. Temukanlah angka “ajaib” 0xAA55. Lakukan hal yang sama pada boot sector dari bootable floppy disk atau pada komputer Anda sendiri. Anda dapat menggunakan perintah dd untuk menyalin image tersebut ke dalam file: dd if=/dev/fd0 of=boot.sector. Perhatikan dengan sangat hati-hati dan lakukan dengan cara yang benar dalam menuliskan if (input file) dan of (output file).

Periksalah source code untuk mengetahui boot loader LILO.

2.3 Informasi Tambahan

  • The Unix and Internet Fundamentals HOWTO oleh Eric S. Raymond, khususnya bab 3, What happens when you switch on a computer?

  • Bagian pertama dari The LILO User’s Guide memberikan penjelasan yang sangat bagus mengenai partisi disk dan booting pada PC. Lihat bab LILO.

  • The NEW Peter Norton Programmer’s Guide to the IBM PC & PS/2, oleh Peter Norton dan Richard Wilton, Microsoft Press 1988 Sudah ada buku terbaru dari Norton yang sepertinya bagus untuk dibaca

  • Salah satu buku mengenai bagaimana meng-upgrade PC.


3. Lilo

Ketika komputer memuat sebuah boot sector dalam sistem Linux yang normal, apa yang dimuat komputer tersebut sebenarnya bagian dari lilo, yang sering dinamakan “first stage boot loader”. Lilo hanyalah sebuah program mini yang hanya bekerja dan aktif untuk memuat dan menjalankan “second stage boot loader”.

Tahap kedua dalam proses loading adalah menampilkan Anda sebuah prompt (jika sudah terinstal sebelumnya) dan memuat sistem operasi yang sudah Anda pilih.

Ketika sistem operasi Anda hidup dan berjalan, lalu Anda menjalankan lilo, sebenarnya yang Anda janlankan adalah “map installer” yang membaca berkas konfigurasi /etc/lilo.conf lalu menuliskan boot loader, dan informasi mengenai sistem operasi yang dapat dimuat ke dalam hard disk.

Sebenarnya terdapat banyak cara yang berbeda-beda untuk men-setting sistem Anda dalam proses booting. Apa yang telah saya jelaskan hanyalah kebanyakan cara yang normal, paling tidak untuk yang sistem operasi utamanya adalah Linux. Dokumen berjudul The Lilo User’s Guide menjelaskan beberapa contoh tentang konsep booting. Perbanyak membacanya dan cobalah untuk mempraktekkannya.

3.1 Konfigurasi

Berkas konfigurasi terdapat dalam /etc/lilo.conf. Terdapat manual page untuk lilo.conf yaitu dengan mengetikkan perintah man lilo.conf pada shell untuk melihat manualnya. Hal utama dalam lilo.conf adalah satu entri untuk tiap hal yang di-set up untuk booting. Untuk entri Linux, lilo.conf memasukkan di mana letak kernel, dan partisi disk apa yang akan di-mount sebagai root filesystem. Untuk sistem operasi lain, bagian informasi utamanya adalah partisi mana yang digunakan untuk proses boot.

3.2 Latihan-Latihan

BAHAYA: berhati-hatilah dengan latihan-latihan ini. Sangat mudah untuk melakukan kesalahan dan menghilangkan master boot record sehingga membuat sistem Anda tidak dapat digunakan. Pastikan Anda telah memiliki rescue disk yang dapat digunakan, dan tahu cara bagaimana menggunakannya untuk mengatasi masalah tersebut. Lihat link di bagian bawah tentang tomsrtbt, yaitu rescue disk yang saya gunakan dan rekomendasikan kepada Anda.

Set up-lah lilo pada sebuah disket. Tidak masalah jika tidak ada yang lainnya dari kernel pada floppy – Anda akan melihat pesan “kernal panic” ketika kernel siap untuk memuat init, paling tidak Anda akan tahu bahwa lilo di dalamnya bekerja.

Jika Anda mau, Anda dapat menekan sembarang tombol keyboard dan dapat melihat sejauh mana sistem dalam floppy Anda dapat bekerja. Hal ini kemungkinan merupakan cara belajar Linux terbaik kedua yang dapat dilakukan. Lihat pada URL di bawah ini tentang Bootdisk HOWTO dan msrtbt.

Gunakan lilo untuk mem-boot unios. Sebagai tambahan tantangan dalam latihan Anda, lihatlah bila Anda dapat melakukannya dalam sebuah disket.

Buatlah sebuah boot-loop. Dapatkan lilo dalam master boot record untuk mem-boot lilo dalam satu dari boot sector partisi utama, dan pastikan bahwa boot lilo terdapat dalam master boot record… atau mungkin gunakan saja master boot record dan keempat partisi utama untuk membuat point loop kelima. Selamat mencoba!

3.3 Informasi Tambahan

  • The lilo man page.

  • Paket Lilo (lilo), terdiri dari “LILO User’s Guide” lilo-u-21.ps.gz (atau versi terbaru). Anda mungkin sudah memiliki dokumen ini. Periksa di /usr/doc/lilo. Bentuk postscript lebih baik digunakan daripada bentuk plain text.

  • tomsrtbt merupakan disket Linux paling enak digunakan.

  • The Bootdisk HOWTO

4. Kernel Linux

Kernel dapat dikatakan memiliki tugas yang sangat banyak. Kalau saya sendiri menganggap bahwa kernel membuat seluruh perangkat keras dapat bekerja sesuai dengan apa yang program-program inginkan dengan sesuai, efektif dan efesien.

Prosesor hanya dapat mengeksekusi satu instruksi pada satu waktu, sedangkan sistem Linux harus menjalankan banyak instruksi secara bersamaan dan simultan. Agar dapat menjalankan seluruh instruksi itu, maka kernel bekerja dengan cara berpindah (switching) dari satu tugas ke tugas lainnya dengan sangat cepat. Hal ini merupakan pemanfaatan prosesor dengan sangat baik yaitu dengan cara merekam jejak dari proses mana yang siap untuk dijalankan, dan proses mana yang sedang menunggu sesuatu agar bisa dijalankan, misalnya sebuah record dari berkas hard disk, atau menunggu input dari keyboard. Tugas kernel semacam ini dinamakan penjadwalan (scheduling).

Jika ada program yang tidak melakukan aktivitas apa-apa, maka proses tersebut tidak perlu berada di dalam RAM (Random Access Memory). Bahkan, jika sebuah program yang melakukan sebuah aktivitas, bisa saja ada sebagian proses di dalamnya yang tidak melakukan apa-apa. Ruang alamat (address space) dari tiap-tiap proses tersebut dibagi ke dalam apa yang dinamakan pages. Kernel bertugas untuk merekam jejak dari pages mana dari proses-proses apa yang sangat sering digunakan. Pages yang tidak digunakan terlalu sering dapat dipindahkan ke partisi swap. Ketika pages ini diperlukan kembali, maka pages lain yang tidak digunakan dapat dimunculkan (page out) kembali untuk membuka jalan bagi pages ini agar bisa bekerja. Inilah yang menjadai salah satu bagian dalam manajemen memori virtual.

Bila Anda pernah melakukan kompilasi terhadap Kernel Anda sendiri, Anda akan mendapatkan sangat-sanbat banyak opsi/pilihan bagi perangkat-perangkat yang spesifik. Kernel terdiri dari banyak sekali kode spesifik yang digunakan untuk berhubungan dengan berbagai macam perangkat keras, dan kemudian menampilkannya (perangkat keras) semua dengan bentuk yang seragam agar mudah dipasangkan dan digunakan dengan program-program aplikasi.

Kernel juga mengatur dan menangani tentang filesystem, interprocess communication, dan banyak hal yang berkaitan dengan jaringan (networking).

Sekali kernel di-load, pertama kali yang kernel lakukan adalah mencari program init untuk dijalankan olehnya.

4.1 Konfigurasi

Kebanyakan konfigurasi kernel dilakukan ketika pertama kali kita membangunnya yaitu dengan menggunakan perintah make menuconfig, atau make xconfig dalam direktori /usr/src/linux (atau di direktori lain dalam sumber kernel Linux Anda). Anda dapat me-reset standar (default) video mode, root filesystem, swap device dan ukuran disk RAM dengan menggunakan perintah rdev. Parameter-parameter ini dan parameter lainnya dapat melalui kernel dari lilo. Anda tinggal memberkan paramater lilo untuk melewati/melalui kernel atau juga dalam lilo.conf, atau pada lilo prompt. Sebagai contoh jika Anda hendak menggunakan hda3 sebagai root file system dan bukan hda2, Anda cukup menuliskan

LILO: linux root=/dev/hda3

Jika Anda membangun sistem Linux berasal dari source code, Anda cukup melakukan cara sederhana dengan menciptakan kernel “monolitik”. Cara ini dilakukan tanpa menggunakan modul-modul. Selain itu Anda juga tidak harus menyalin modul-modul kernel ke sistem tujuan.

Catatan: Berkas System.map digunakan oleh kernel logger untuk menentukan nama-nama modul untuk menghasilkan pesan-pesan/informasi yang dibutuhkan. Program untuk menjalankan perintah top juga menggunakan pesan/informasi ini. Pada waktu Anda menyalin kernel tersebut ke sistem tujuan, jangan lupa untuk menyalin System.map juga.

4.2 Latihan-Latihan

Coba perhatikan: /dev/hda3 adalah tipe berkas khusus yang digunakan untuk mendeskripsikan partisi sebuah hard disk. Tetapi tipe ini juga berada pada file system seperti halnya seluruh file lain. Kernel ingin tahu partisi mana yang akan di-mount sebagai root filesystem – karena partisi tersebut belum memiliki file system sebelumnya. Jadi bagaimana partisi tersebut dapat membaca /dev/hda3 untuk menemukan partisi yang akan di-mount?

Apabila Anda belum siap untuk itu: bangunlah kernel Anda sendiri. Baca seluruh bantuan informasi untuk setiap opsi/pilihan yang diberikan.

Lihatlah alangkah kecilnya kernel yang dibuat yang masih bekerja. Banyak sekali pelajaran yang dapat Anda petik dengan hampir tanpa kesalahan yang terjadi!

Baca juga “The Linux Kernel (URL di bawah ini), lalu temukanlah potongan source code yang membahas masalah di atas. Dokumen yang Anda baca ini dilakukan dengan merujuk pada kernal versi 2.0.33 yang saat ini mungkin sudah sangat ketinggalan jaman. Mungkin akan lebih mudah diikuti bila Anda men-download versi “ketinggalan jaman” tersebut dan membaca source yang ada di sana. Adalah sesuatu hal yang sangat mengagumkan untuk bisa menemukan beberapa potongan kode program bahasa C yang membahas tentang “process” dan “page”.

Oprek-lah! Mungkin saja Anda dapat menemukan beberapa informasi penting lainnya atau apa pun yang membuat pengetahuan Anda tentang kernel bertambah.

4.3 Informasi Tambahan


5. The GNU C Library

Proses selanjutnya yang terjadi dalam komputer Anda ketika dihidupkan adalah me-load init dan menjalankannya. Bagaimanapun, init, seperti halnya hampir kebanyakan program lainnya, menggunakan fungsi-fungsi dari library.

Anda barangkali pernah melihat sebuah contoh program dalam bahasa C sepert ini :

        main() {
                printf("Hello World!\n");
        }

Potongan program di atas tidak mendefinisikan fungsi printf terlebih dahulu, jadi dari mana fungsi tersebut muncul? Fungsi tersebut muncul dari library standar bahasa C yang dalam sistem GNU/Linux ada pada glibc. Jika Anda mengkompilasi potongan program tersebut menggunakan Visual C++, maka program tersebut dapat digunakan dengan fungsi standar yang sama pada lingkungan Microsoft. Terdapat amat sangat banyak fungsi-fungsi standar yang ada, misalnya fungsi untuk matematika, string, date/times memory allocation, dan lain sebagainya. Semua yang di dalam sistem Unix (termasuk Linux) juga ditulis menggunakan bahasa C, sehingga hampir semuanya menggunakan fungsi-fungsi ini.

Jika Anda lihat di direktori /lib pada sistem Linux Anda, Anda akan melihat banyak sekali berkas-berkas yang diberi nama libsomething.so atau libsomething.a, dan lain-lain. Berkas tersebut merupakan library dari fungsi-fungsi yang telah disebutkan sebelumnya. Glibc hanyalah salah satu bentuk penerapan fungsi-fungsi tersebut.

Terdapat dua cara bagaimana program-program dapat menggunakan fungsi-fungsi library tersebut. Jika Anda secara statis me-link sebuah program, fungsi library ini akan disalin ke dalam berkas executable yang dapat dibuat. Inilah manfaat dari library libsomething.a. Jika Anda me-link sebuah program dengan cara dinamis (dan ini adalah cara yang default), maka ketika program sedang berjalan dan memerlukan kode library, maka program tersebut akan memanggil berkas libsomething.so.

Perintah ldd akan menjadi teman setia Anda pada waktu Anda bekerja dengan berbagai macam library yang diperlukan oleh program khusus/tertentu. Sebagai contoh, berikut ini adalah library yang digunakan oleh bash:

        [greg@Curry power2bash]$ ldd /bin/bash
                libtermcap.so.2 => /lib/libtermcap.so.2 (0x40019000)
                libc.so.6 => /lib/libc.so.6 (0x4001d000)
                /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

5.1 Konfigurasi

Beberapa fungsi-fungsi dalam library kadang bergantung pada di mana Anda berada. Sebagai contoh, di Australia kami menulis tanggal dalam format dd/mm/yy, tetapi di Amerika ditulis dalam format mm/dd/yy. Ada sebuah program dalam distribusi glibc yang disebut localedef yang memungkinkan Anda untuk men-setting format tersebut.

5.2 Latihan-Latihan

Gunakan ldd untuk mengetahui library apa yang digunakan oleh aplikasi-aplikasi yang sering Anda gunakan.

Gunakan ldd untuk mengetahui library apa yang digunakan oleh init.

Buatlah sebuah library kecil untuk percobaan dengan satu atau dua fungsi di dalamnya. Gunakanlah program yang dinamakan ar untuk membuat library tersebut, manual page untuk ar mungkin bisa membantu untuk mulai memahami bagaimana hal di atas dapat bekerja. Tulislah, compile dan link-kan sebuah program yang dapat menggunakan library yang telah Anda buat tadi. Selamat mencoba…!

Make a toy library, with just one or two functions in it. The program ar is used to create them, the man page for ar might be a good place to start investigating how this is done. Write, compile and link a program that uses this library.

5.3 Informasi Tambahan


6. Init

Saya hanya akan membahas mengenai tipe init pada System V yang digunakan pada hampir kebanyakan sistem Linux. Sebenarnya terdapat berbagai alternatif. Pada kenyataannya, Anda dapat meletakkan sembarang program yang Anda sukai pada direktori /sbin/init, dan kernel akan menjalankan program tresebut ketika selesai di-load.

Pekerjaan tersebut merupakan tugas init untuk memastikan bahwa seluruhnya dapat berjalan sebagaimana mestinya. Init memeriksa file system untuk memastikannya OK dan kemudian me-mount-nya. Init menyalakan “daemons” untuk mencatat (log) system messages, melakukan networking, melayani halaman web, “mendengar” pekerjaan mouse dan lain sebagainya. Init juga menyalakan proses getty yang menampilkan login prompt pada terminal virtual Anda.

Terdapat penjelasan yang cukup rumit mengenai perpindahan “run-levels”, namun tenang saja saya akan berusaha mungkin untuk mengabaikannya, dan hanya akan membahas tentang menyalakan sistem.

Init membaca berkas pada /etc/inittab yang di dalamnya terdapat berbagai hal yang harus dilakukan. Biasanya, pertama kali yang harus dilakukan oleh init adalah menjalankan sebuah script inisialisasi. Program yang mengeksekusi (atau menerjemahkan) script ini adalah bash, yang juga program yang sama Anda gunakan di command prompt. Pada sistem Linux Debian, script inisialisasinya adalah /etc/init.d/rcS, pada RedHat /etc/rc.d/rc.sysinit. Di sanalah sejumlah filesystem diperiksa dan di-mount, menyetel clock, mengaktifkan swap space, memperoleh hostname, dan lain sebagainya.

Sesudah itu, script berikutnya dipanggil untuk membawa kita pada default run-level. Ini hanyalah sekumpulan subsistem untuk start up. Terdapat beberapa kumpulan direktori /etc/rc.d/rc0.d, /etc/rc.d/rc1.d, …, /etc/rc.d/rc6.d pada RedHat, atau /etc/rc0.d, /etc/rc1.d,…, /etc/rc6.d dalam Debian yang berhubungan dengan run-level. Apabila kita ingin masuk ke runlevel 3 pada sistem Debian, maka script akan menjalankan seluruh script dalam /etc/rc3.d yang dimulai dengan karakter ‘S’ (untuk memulai). Script ini benar-benar hanya sekedar link menuju script pada direktori lain yang biasanya dinamakan init.d.

Jadi, script untuk memanggil run-level kita dilakukan oleh init, dan init juga mencari di dalam direktori untuk menemukan script yang dimulai dengan karakter ‘S’. Misalnya bisa jadi init pertama kali menemukan S10syslog. Angka pada S10syslog menunjukkan run-level script yang merupakan urutan dalam menjalankannya. Sehingga dalam kasus ini, S10syslog mendapat giliran pertama kali untuk dijalankan, karena ternyata setelah dicari tidak ada script yang memiliki angka dengan awalan S00S09. Namun perlu diingat, S10syslog hanyalah sebuah link ke /etc/init.d/syslog yang berfungsi sebagai script untuk memulai dan mengakhiri system logger. Dikarenakan sistem dimulai dengan awalan ‘S’, maka run-level script mengerti untuk segera mengeksekusi script syslog dengan paramater “start”. Terdapat hubungan antara yang berawalan dengan ‘K’ (untuk mengentikan), yang berguna untuk menjelaskan apa yang harus di-shut down dan urutan yang mana ketika meninggalkan run-level.

Untuk mengubah start up pada subsistem yang default, Anda harus menyetel link-link ini dalam direktori rcN.d, dimana N adalah default runlevel yang disetel dalam inittab.

Hal terakhir yang penting mengenai apa yang dilakukan oleh init adalah menghidupkan getty. Terdapat “respawned” yang berarti apabila getty berhenti, init akan langsung menhidupkannya lagi. Kebanyakan distribusi Linux disertai dengan enam terminal virtual. Anda bisa saja menghapus beberapa terminal tersebut untuk menghemat memori, atau sebaliknya yaitu menambahkan beberapa terminal. Anda bisa saja menjalankan getty untuk text terminal atau dial in modem. Dalam kasus ini Anda harus mengedit berkas inittab.

6.1 Konfigurasi

/etc/inittab adalah berkas pada level tertinggi untuk init.

Direktori-direktori pada rcN.d, dimana N = 0, 1, …, 6 menunjukkan subsistem apa yang akan dimulai/dinyalakan.

Di suatu tempat dalam sebuah script telah di-invoked oleh init, karena itu akan digunakan perintah mount -a. Ini berarti bahwa me-mount seluruh file system yang seharusnya di-mount. Berkas /etc/fstab akan menentukan file system apa saja yang akan di-mount. Apabila Anda ingin mengubah apa saja yang telah di-mount, di mana, kapan sistem Anda dinyalakan, berkas inilah yang harus Anda edit. Terdapat man page untuk fstab.

6.2 Latihan-Latihan

Temukanlah direktori rcN.d untuk mengetahui default run-level pada sistem Anda dan gunakan perintah ls -l untuk melihat berkas-berkas apa yang memiliki link ke mana saja.

Ubahlah angka yang dimiliki oleh getty yang berjalan pada sistem Anda.

Pindahkanlah sejumlah subsistem yang tidak Anda butuhkan dari default run-level.

Lihatlah semudah apa Anda dapat masuk ketika sistem dinyalakan.

Buatlah sebuah disket dengan lilo di dalamnya, sebuah kernel dengan cara statis di-link ke program “hello world” yang bisa dipanggil /sbin/init dan perhatikanlah apakah hasil boot up nanti bisa menampilkan kata Hello.

Perhatikan dengan seksama ketika sistem Anda dinyalakan, dan buatlah catatan mengenai apa yang terjadi ketika proses tersebut berlangsung. Atau Anda bisa juga mencetak bagian yang berisi log di /var/log/messages pada waktu start up tadi. Lalu nyalakanlah dengan perintah inittab, telusuri seluruh script dan lihatlah kode-kode tersebut telah melakukan apa saja. Anda juga dapat meletakan pesan-pesan tambahan pada start up, seperti script di bawah ini

        echo "Hello, I am rc.sysinit"

Penjelasan singkat di atas merupakan ajang latihan yang sangat baik juga untuk mempelajari sedikit tentang script Bash shell, ada juga beberapa script yang tampak cukup rumit. Selamat mencoba script Bash shell.

6.3 Informasi Tambahan


7. The Filesystem

Pada bab ini, saya akan menggunakan kata “filesystem” pada dua cara yang berbeda. Ada filesystem pada partisi disk dan perangkat lain, dan ada juga filesystem sebagaimana halnya ditampilkan kepada Anda ketika menjalankan sistem Linux. Di Linux, Anda me-mount disk filesystem ke dalam filesystem sistem.

Pada bab sebelumnya saya telah menyebutkan bahwa script init akan memeriksa dan me-mount filesystem. Perintah yang digunakan untuk menlankan fungsi ini adalah fsck dan mount secara berturut-turut.

Hard disk hanyalah sebuah tempat besar yang dapat Anda tulisi berkali-kali dan dikosongkan sewaktu-waktu. Filesystem akan membuat beberapa struktur di dalamnya, dan membuatnya terlihat seperti file di dalam direktori di dalam direktori… Masing-masing file direpresentasikan oleh sebuah inode, yang menunjukkan siapa yang memiliki file tersebut ketika pertama kali dibuat dan dimana kita dapat menemukan isinya. Direktori juga direpresentasikan oleh inode, namun khusus direktori kita dapat menemukan keberadaan letak inode sebuah file di dalam direktori. Apabila sistem ingin membaca /home/greg/bigboobs.jpeg, terlebih dahulu sistem harus menemukan inode di direktori root yaitu / dalam apa yang dinamakan “superblock”, lalu mencari inode untuk direktori home yang ada di dalam /, kemudian mencari inode untuk direktori greg dalam direktori /home, kemudian inode bigboobs.jpeg yang akan memberitahukan disk block mana yang akan dibaca.

Jika kita bermaksud menambahkan beberapa data untuk menyelesaikan sebuah file, hal tersebut bisa saja terjadi bahwa data yang telah ditulis sebelum inode telah diperbaharui untuk menunjukkan block baru yang telah menjadi miliki sebuah file, atau sebaliknya. Jika terjadi suatu keadaan komputernya mati mendadak pada saat itu, maka filesystem akan mengalami kerusakan. Pada kondisi inilah fsck berfungsi untuk mendeteksi dan memperbaiki kerusakan tersebut.

Perintah mount membawa sebuah filesystem ke dalam perangkat, dan menambahkannya ke dalam hirarki yang dapat dilihat ketika menggunakan sistem Linux Anda tersebut. Biasanya, kernel me-mount file system root-nya sendiri dengan modus read-only. Perintah mount juga digunakan untuk me-remount modus read-write-nya sendiri setelah fsck memeriksa dan menyimpulkan bahwa semuanya sudah ok.

Linux juga mendukung beberapa jenis filesystem lain seperti: msdos, vfat, minix, dan lain sebagainya. Secara detail dan spesifik mengenai jenis filesystem tersebut telah diabstraksikan oleh yang dinamakan virtual file system (VFS). Tentu saja saya tidak akan membahas masalah ini lebih jauh. Sudah ada pembahasan dan diskusi mengenai hal tersebut pada dokumen berjudul The Linux Kernel.

Perbedaan yang sangat jauh mengenai jenis filesystem yang telah di-mount pada direktori /proc. Direktori ini benar-benar merupakan representasi dari berbagai hal di dalam kernel. Terdapat beberapa direktori di sana untuk setiap proses yang sedang berjalan di sistem, dengan memiliki nomor proses sebagai nama direktorinya. Ada juga file seperti interrupts, dan meminfo yang akan menginformasikan kepada Anda tentang bagaimana perangat keras itu digunakan. Anda dapat belajar banyak dengan mengeksplorasi /proc.

7.1 Konfigurasi

Terdapat beberapa parameter untuk perintah mke2fs yang berfungsi untuk membuat filesystem ext2. Parameter tersebut mengendalikan ukuran block, penomoran inode dan lain sebagainya. Periksalah man page mke2fs.

Segala sesuatu yang telah di-mount di filesystem Anda dikendalikan oleh file /etc/fstab, yang juga memiliki man page-nya.

7.2 Latihan-Latihan

Buatlah sebuah filesystem mini, dan coba lihat dengan menggunakan program hex viewer. Identifikasikanlah inode-nya, superblock, dan isi file-nya.

Saya yakin pasti ada tool yang dapat Anda gunakan untuk melihat filesystem dalam bentuk grafis. Temukan dan cobalah tool tersebut, serta harap kirimkan saya email dan alamat URL-nya berikut hasil review yang Anda lakukan!

Coba periksa kode filesystem ext2 di dalam kernel.

7.3 Informasi Tambahan

  • Bab 9 di buku LDP “The Linux Kernel” merupakan penjelasan yang sangat baik mengenai filesystems. Anda dapat temukan di mirror LDP Australia.

  • Perintah mount merupakan bagian dari paket util-linux, ada sebuah link yang membahas mengenai hal tersebut di dokumen berjudul Building a Minimal Linux System from Source Code

  • man pages tentang mount, fstab, fsck, mke2fs dan proc

  • File Documentation/proc.txt dalam source code Linux menjelaskan tentang filesystem /proc.

  • EXT2 File System Utilities ext2fsprogs home page ext2fsprogs di mirror Australia. Ada juga dokumen mengenai Ext2fs di sana.

  • Unix File System Standard Merupakan link ke Unix File System Standard. Dokumen ini menjelaskan apa yang seharusnya terjadi dalam file system Unix, dan mengapa hal tersebut bisa terjadi. Di dalamnya juga memiliki kebutuhan minimum mengenai isi dari /bin, /sbin dan lain sebagainya. Dokumen ini merupakan referensi yang bagus bila tujuan Anda adalah untuk membuat sistem lengkap dengan spesifikasi minumum.


8. Kernel Daemons

Jika Anda menulis perintah ps aux, maka akan tampil di layar seperti berikut:

USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
root         1  0.1  8.0  1284   536   ? S    07:37   0:04 init [2] 
root         2  0.0  0.0     0     0   ? SW   07:37   0:00 (kflushd)
root         3  0.0  0.0     0     0   ? SW   07:37   0:00 (kupdate)
root         4  0.0  0.0     0     0   ? SW   07:37   0:00 (kpiod)
root         5  0.0  0.0     0     0   ? SW   07:37   0:00 (kswapd)
root        52  0.0 10.7  1552   716   ? S    07:38   0:01 syslogd -m 0 
root        54  0.0  7.1  1276   480   ? S    07:38   0:00 klogd 
root        56  0.3 17.3  2232  1156   1 S    07:38   0:13 -bash 
root        57  0.0  7.1  1272   480   2 S    07:38   0:01 /sbin/agetty 38400 tt
root        64  0.1  7.2  1272   484  S1 S    08:16   0:01 /sbin/agetty -L ttyS1
root        70  0.0 10.6  1472   708   1 R   Sep 11   0:01 ps aux 

Tampilan di atas adalah proses-proses yang sedang berjalan dalam sistem. Informasi tersebut muncul dari filesystem /proc yang telah saya sebutkan pada bab sebelumnya. Perhatikanlah, init adalah proses yang memiliki ID proses nomor satu. Proses 2,3,4 dan 5 secara berturut-turut adalah kflushd, kupdate, kpiod, dan kswapd. Perhatikanlah, ada beberapa hal yang kelihatan aneh: catatlah bahwa dari kedua kolom yaitu virtual storage size (SIZE) dan Real Storage Size (RSS), masing-masing memiliki nilai nol. Yang menjadi pertanyaannya, bagaimana mungkin ada proses yang tidak menggunakan memori?

Proses inilah yang dinamakan kernel daemon. Kebanyakan kernel sebenarnya tidak memperlihatkan prosesnya dalam daftar, Anda hanya dapat menyusun memori mana yang telah digunakan dengan mengurangi memori yang masih tersedia dengan jumlah yang terdapat pada sistem Anda. Kernel daemon mulai menyala setelah init, jadi kernel daemon memperoleh nomor proses persis sama seperti proses-proses lain mendapatkannya. Namun, kode dan data dari kernel daemon menetap pada salah satu bagian kernel di dalam memori.

Terdapat tanda kurung di beberapa entri pada kolom COMMAND karena filesystem /proc tidak berisi informasi baris perintah untuk proses-proses tersebut.

Jadi sebenarnya apa fungsi kernel daemon? Sebenarnya versi sebelumnya dari dokumen ini telah menuliskan permintaan bantuan, dikarenakan saya tidak terlalu banyak mengetahui mengenai kernel daemon. Selanjutnya di dokumen tersebut telah dilakukan penambalan (patched) bersamaan dengan berbagai macam jawaban atas permintaan saya tersebut, yang oleh karena itu pada kesempatan ini saya sangat berterima kasih. Sebagai petunjuk lebih lanjut, rerensi dan koreksi amat sangat saya harapkan!

Input dan output dilakukan dengan menggunakan buffer di dalam memori. Hal ini menyebabkan segala sesuatunya berjalan lebih cepat. Apa-apa yang telah ditulis oleh program dapat disimpan di dalam memori, dalam sebuah buffer, lalu ditulis ke disk yang memiliki tempat lebih besar dan efisien. Daemon-daemon seperti kflushd dan kupdate bertugas untuk menangani pekerjaan berikut : kupdate bekerja secara periodik (tiap lima detik?) untuk memeriksa apakah terdapat buffer yang jelek. Jika ada, maka kupdate memanggil kflushd untuk membersihkan bagian yang jelek tersebut ke disk.

Kadangkala proses-proses tidak melakukan kegiatan apa pun, dan jika ada salah satu yang berjalan/bekerja seringkali tidak memerlukan seluruh kode dan data yang mereka miliki di dalam memori. Ini berarti kita bisa membuat penggunaan memori dengan lebih baik, dengan menggeser bagian-bagian yang tidak penting dari proses yang sedang berjalan ke parsisi swap pada hard disk. Bila suatu saat diperlukan untuk memindahkan data-data tersebut ke dalam atau ke luar memori, maka semuanya dilakukan oleh kpiod dan kswapd. Setiap detiknya, kswapd selalu “bangkit” untuk memeriksa situasi memori, dan jika ada sesuatu pada disk yang dibutuhkan dalam memori, atau terdapat kondisi memori bebas yang tidak cukup, maka kpiod akan segera dipanggil untuk menangani masalah tersebut.

Bisa juga suatu saat daemon kapmd akan berjalan pada sistem apabila Anda telah mengkonfigurasi manajemen power secara otomatis ke dalam kernel.

8.1 Konfigurasi

Program update memberi Anda kesempatan untuk mengkonfigurasi kflushd dan kswapd. Coba ketik perintah update -h untuk memperoleh beberapa informasi.

Swap space dinyalakan oleh swapon dan dimatikan oleh swapoff. Script ini (/etc/rc.sysinit atau /etc/rc.d/rc.sysinit) biasanya memanggil swapon pada waktu sistem aktif. Saya tekankan di sini bahwa swapoff merupakan salah satu cara yang sangat baik untuk menghemat power pada laptop Anda.

8.2 Latihan-Latihan

Coba ketik perintah update -d, perhatikanlah pada baris terakhir yaitu tentang “treshold for buffer fratricide”. Terdapat sebuah konsep yang sangat menggugah, coba eksplorasi lebih dalam!

Ubahlah direktori /proc/sys/vm dan coba gunakan perintah cat pada file-file yang ada di dalamnya. Lihatlah, apa yang Anda bisa lakukan.

8.3 Informasi Tambahan

The Linux Documentation Project’s “The Linux Kernel” (lihat bagian The Linux Kernel)

Source code kernel Linux jika Anda cukup berani! Kode kswapd terdapat dalam linux/mm/vmscan.c, sedangkan kflushd dan kupdate berada pada linux/fs/buffer.c.


9. System Logger

Init bertugas mengaktifkan daemon untuk syslogd dan klogd. Daemon tersebut akan menulis pesan pada catatan berupa log. Pesan-pesan dari kernel ditangani oleh klogd, sementara itu syslogd menangani catatan pesan dari proses-proses lain. Log utamanya adalah /var/log/messages. Tempat log tersebut sangat baik digunakan untuk melihat kalau ada sistem Anda yang bekerja tidak beres. Bila Anda cukup jeli, seringkali terdapat banyak penjelasan berharga di sana

9.1 Konfigurasi

Berkas /etc/syslog.conf memperlihatkan kepada user yang masuk di mana letak pesan-pesan tersebut berada. Pesan-pesan tersebut ditunjukkan berdasarkan asalnya service yang digunakan tersebut, dan apa tingkat prioritasnya. Berkas konfigurasi ini terdiri dari baris-baris yang menunjukkan pesan dari service x dengan prioritas y yang menuju ke x, dimana z adalah sebuah berkas, tty, printer, remote host atau berkas lainnya.

Catatan: Agar bisa muncul, maka syslog membutuhkan /etc/services. Berkas services tersebut akan mengalokasikan port. Saya tidak begitu yakin apakah syslog tersebut membutuhkan alokasi port sehingga syslog dapat melakukan remote logging, ataukah bahkan local logging dilakukan melalui sebuah port, ataukah sekedar menggunakan /etc/services saja untuk mengkonversi nama service yang Anda tuliskan berupa /etc/syslog.conf ke dalam angka-angka port.

9.2 Latihan-Latihan

Coba perhatikan log sistem Anda. Carilah pesan yang kira-kira tidak Anda mengerti maksud/artinya, dan temukan arti/maksudnya.

Kirim seluruh log pesan pada sistem Anda ke tty.

Have a look at your system log. Find a message you don’t understand, and find out what it means.

9.3 Informasi Tambahan

Mirror sysklogd di Australia


10. Getty dan Login

Getty adalah program yang dapat membantu Anda untuk log ke serluruh perangkat serial seperti virtual terminal, terxt terminal, atau modem. Getty akan menampilkan login prompt. Pada waktu Anda memasukkan username, getty langsung memanggil fungsi login untuk meminta Anda mengisikan password, kemudian memeriksa keabsahannya lalu memberi Anda sebuah shell.

Terdapat banyak sekali getty yang bisa kita gunakan. Bebeapa disto Linux termasuk RedHat menggunakan program mini yaitu mingetty yang hanya dapat berjalan pada virtual terminal.

Program login merupakan salah satu bagian dari paket util-linux, yang juga berisi sebuah program getty yang dinamakan agetty yang berfungsi sangat baik. Paket ini juga terdiri dari mkswap, fdisk, passwd, kill, setterm, mount, swapon, rdev, renice, more dan masih banyak lagi.

10.1 Konfigurasi

Pesan yang muncul di bagian atas layar Anda bersamaan dengan login prompt Anda berasal dari /etc/issue. Getty biasanya dinyalakan dalam /etc/inittab. Pemeriksaan login user ada dalam /etc/passwd, dan jika Anda memiliki shadow password, dapat dilihat di /etc/shadow.

10.2 Latihan-Latihan

Coba ketik secara manual /etc/passwd. Password dapat saja dibuat kosong/NULL, lalu ubahlah dengan program passwd pada waktu Anda log on. Lihatlah man page untuk berkas ini, coba gunakan perintah man 5 passwd untuk melihat man page berkas tersebut.


11. Bash

Bila Anda login dengan memasukkan username dan password yang benar, selanjutnya fungsi login akan memeriksa /etc/passwd untuk menentukan shell mana yang akan Anda gunakan. Dalam kebanyakan sistem Linux, biasanya akan diberikan bash shell. Bash bertugas untuk mengerjakan setiap perintah yang Anda berikan. Bash merupakan antarmuka user yang bekerja secara simultan, dan juga berperan sebagai interpreter bagi bahasa pemrograman.

Sebagai antarmuka user, bash akan membaca dan mengerjakan perintah yang Anda berikan, dan juga mengeksekusi perintah tersebut bila termasuk perintah “internal” misalnya cd, atau mencari dan mengeksekusi program yang diberikan oleh perintah “eksternal” seperti halnya cp atau startx. Bash juga dapat mengerjakan beberapa pekerjaan seperti menyimpan perintah-perintah yang sudah diberkan dalam suatu history, dan melengkapi/menyempurnakan penamaan berkas.

Kita pasti sudah melihat apa yang dilakukan bash pada waktu melaksanakan fungsinya sebagai interpreter bahasa pemrograman. Scriptscript yang dijalankan oleh init untuk menyalakan sistem biasanya menggunakan shell script, dan shell script inilah yang dieksekusi oleh bash. Dengan memiliki bahasa pemrograman yang sesuai/cocok dengan tersedianya utilitas-utilitas sistem berbasiskan baris perintah yang ada, menjadikannya kombinasi yang sangat kuat, dengan catatan Anda paham dengan apa yang Anda lakukan dan bisa menggunakannya. Sebagai contohnya, suatu waktu saya ingin menggunakan seluruh bagian “patches”, ke direktori dimana source code berada. Saya berhasil melakukan hal di bawah ini dengan hanya memberikan satu baris kode saja:

for f in /home/greg/sh-utils-1.16*.patch; do patch -p0 < $f; done;

Perintah tersebut akan mencari seluruh berkas di dalam direktori home yang memiliki nama yang berawalan sh-utils-1.16 dan berakhiran dengan ekstensi .patch. Berkas-berkas tersebut kemudian diproses satu per satu secara bergiliran, lalu diberikan variabel f di dalamnya lalu kemudian mengeksekusi perintah yang terdapat di antara baris do dan done. Pada percobaan yang saya lakukan, terdapat 11 (sebelas) berkas patch.

11.1 Konfigurasi

Berkas /etc/profile mengendalikan hampir keseluruhan sistem di lingkungan bash. Setiap apa yang telah Anda lakukan di sana akan memberi pengaruh/efek pada siapa saja yang menggunakan bash di sistem Anda tersebut. Berkas tersebut akan melakukan berbagai hal seperti menambahkan direktori pada path, atau menyetel variabel direktori untuk mail.

Lingkup penggunaan keyboard secara default sering membuat kita jadi penasaran untuk melakukan sesuatu. Sesungguhnya fungsi readline-lah yang menangani hal tersebut. Readline merupakan paket terpisah yang berfungsi menangani antarmuka untuk baris perintah, menyediakan history dan penyempurnaan nama berkas (filename), seperti halnya juga fungsi tingkat lanjut untuk melakukan editing baris. Semuanya itu dikumpulkan ke dalam bash. Secara default, readline dikonfigurasikan dengan menggunakan berkas .inputrc yang terletak pada direktori home. Sebagai contoh dalam RedHat 6, inputrc disetel pada /etc/inputrc dalam /etc/profile. Ini berarti bahwa tombol backspace, delete, home dan end dapat berjalan dengan mulus waktu digunakan oleh siapa saja.

Setelah bash membaca keseluruhan berkas konfigurasi, berkas lantas mencari berkas konfigurasi personal milik Anda. Berkas memeriksanya pada direktori home untuk menemukan .bash_profile, .bash_login dan .profile. Berkas nantinya akan menjalankan salah satu dari berkas tersebut untuk yang pertama kali ditemukannya. Hal tersebut dapat Anda lakukan bila Anda bermaksud ingin mengubah kebiasaan dari cara penggunaan bash yang selama ini Anda lakukan, tanpa harus mengubah cara kebiasaan bash tersebut bagi user lain. Contohnya, banyak sekali aplikasi yang menggunakan variabel-variabel untuk mengendalikan bagaimana cara kerja mereka. Saya memiliki program editor vi, tapi saya dapat juga menggunakan vi di dalam program MC (Midnight Commander), sebuah program untuk pengelolaan berkas (file manager) berbasis console yang seringkali saya gunakan daripada program editor itu sendiri.

11.2 Latihan-Latihan

Sebenarnya dasar-dasar menggunakan bash sangat mudah untuk dipelajari. Tetapi saya harap Anda jangan puas begitu saja; banyak sekali yang dapat Anda pelajari lebih dalam. Cobalah untuk mencari berbagai cara lain yang lebih baik dari apa yang sering/biasa Anda lakukan selama ini.

Bacalah shell script, cari dan pahamilah beberapa bagian yang tidak Anda mengerti.

11.3 Informasi Tambahan

  • Ada pembahasan lebih komprehensif berjudul “Bash Reference Manual”, namun lumayan cukup berat untuk dipelajari.

  • Ada juga buku mengenai bash terbitan O’Rielly, namun saya tidak menjamin bagus atau tidak buku tersebut.

  • Saya tidak terlalu tahu tutorial terkini mengenai bash, jika ada di antara Anda yang mengetahuinya harap email URL-nya ke saya ya.

  • source code, lihat Building a Minimal Linux System from Source Code.

12. Commands

Mungkin kita sudah seringkali menggunakan perintah cp. Perintah-perintah yang sering kita gunakan tersebut sebenarnya hanyalah program kecil seperti misalnya perintah cd, semuanya itu telah dirakit ke dalam shell.

Perintah-perintah tersebut ada bersama paket-paket, dan kebanyakan dari mereka berasal dari organisasi Free Software Foundation (GNU). Daripada saya tuliskan daftarnya yang amat panjang di sini, lebih baik Anda kunjungi langsung dokumen Linux From Scratch HOWTO. Di sana memiliki daftar lengkap paket-paket terbaru yang biasanya digunakan dalam sistem Linux beserta instruksi-instruksi untuk merakitnya.


13. Kesimpulan

Satu hal mengenai Linux yang sangat berkesan menurut saya adalah bahwa Anda dapat masuk ke dalam sistem dan benar-benar dapat mengetahui bagaimana sistem tersebut bisa bekerja. Saya harap Anda dapat menikmati dalam mempelajari dan memahami sistem tersebut sebagaimana saya juga menikmatinya. Harapan saya juga agar dokumen sederhana ini dapat membantu Anda dalam mempelajari dan memahaminya.


14. Administratif

14.1 Hak Cipta

Hak cipta dokumen ini tahun 1999, 2000 oleh Greg O’Keefe. Anda diperbolehkan untuk menggunakan, memperbanyak, menyebarkan atau memodifikasinya, tanpa dikenakan biaya, dan di bawah perjanjian GNU General Public Licence. Jangan lupa menyertakan nama saya (referensikan) jika Anda menggunakan seluruh atau sebagian dokumen ini.

14.2 Homepage

Versi terakhir dokumen ini dapat dilihat di From Powerup To Bash Prompt yang juga diterbitkan bersama dengan dokumen berjudul “Building a Minimal Linux System from Source Code”.

Terdapat juga terjemahan dokumen ini dalam bahasa Perancis, untuk itu saya ucapkan terima kasih pada Dominique van den Broeck. Terjemahan bahasa Jepang oleh Yuji Senda akan segera selesai sebentar lagi,

14.3 Saran dan Masukan

Saya sangat mengharapkan adanya komentar, kritik dan masukan dari Anda semua. Jangan sungkan-sungkan untuk menyampaikannya ke email saya gcokeefe@postoffice.utas.edu.au

14.4 Ucapan Terima Kasih

Nama-nama produk yang disebutkan dalam dokumen ini merupakan merk dagang dari para pemegang resmi produk tersebut, dan dengan ini saya sangat mengucapkan terima kasih.

Beberapa orang yang pada kesempatan ini ingin saya haturkan terima kasih, karena dengan bantuan mereka lah dokumen ini dapat terwujud.

Michael Emery
Atas jasanya mengingatkan saya mengenai Unios.
Tim Little
Atas petunjuknya yang sangat baik tentang /etc/passwd
sPaKr on #linux in efnet
Yang menjelaskan kepada saya bahwa syslogd membutuhkan /etc/services, dan juga memperkenalkan saya istilah “rolling your own” untuk menjabarkan bagaimana caranya merakit sistem Linux dari source code.
Alex Aitkin
Yang mengenalkan saya pada sang filosof Vico dan kata mutiaranya “verum ipsum factum” (memahami dengan melakukan)
Dennis Scott
Yang membetulkan perhitungan aritmatika heksadesimal saya
jdd
Yang telah menunjukkan beberapa kesalahan tulisan.
David Leadbeater
Yang telah berkontribusi dengan “banyak cerita” mengenai kernel daemon.
Dominique van den Broeck
Yang telah menterjemahkan dokumen ini ke bahasa Perancis
Matthieu Peeters
Yang telah memberikan banyak informasi bagus mengenai kernel deamon
John Fremlin
Yang telah memberikan banyak informasi bagus mengenai kernel deamon
Yuji Senda
Atas terjemahannya dalam bahasa Jepang
Antonius de Rozari
Atas kontribusinya memberikan assembler GNU versi untuk UNIOS
Botp Peña
Untuk linkroll your own os”.

14.5 Catatan Perubahan-Perubahan

0.9 -> 0.9a (November 2000)

  • Menambahkan link untuk “roll your own os” pada bab Perangkat Keras.

0.8 -> 0.9 (November 2000)

  • Memasukkan dan menggabungkan beberapa informasi yang berasal dari Matthieu Peeters dan John Fremlin mengenai kernel deamons dan /proc filesystem.

0.7 -> 0.8 (September 2000)

  • Memindahkan instruksi-instruksi mengenai bagaimana cara merakit sebuah sistem Linux, lalu menempatkan bahasan tersebut pada dokumen tersendiri. Menyesuaikan beberapa link yang sesuai.

  • Mengubah homepage learning@TasLUG menjadi my own webspace.

  • Sama sekali gagal untuk memasukkan bahan-bahan yang sangat bagus dari berbagai orang yang telah telah berkontribusi. Kapan-kapan ya😦

0.6 -> 0.7

  • Penekanan lebih jauh pada penjelasan, sedikit penjelasan tentang bagaimana merakit sistem, memotong bebeapa bagian yang menjelaskan caranya merakit sistem Linux, pembaca yang lebih serius ingin mempejarinya dapat langsung membaca dokumen karangan Gerard Beekman berjudul Linux From Scratch.

  • Menambahkan beberapa penjelasan yang diberikan oleh David Leadbeater

  • Membetulkan beberapa alamat URL, menambahkan link pengunduhan (download) di learning.taslug.org.au/resources

  • Mencoba dan membetulkan URL

  • Menambahkan tulisan dan merapikannya

0.5 -> 0.6

  • Menambahkan catatan perubahan

  • Menambahkan beberapa hal yang harus dilakukan berikutnya

14.6 Yang Harus Dilakukan Berikutnya

  • Penjelasan modul-modul kernel, depmod, modprobe, insmod dan segala sesuatu yang berhubungan dengannya (saya akan mencari tahu tentang itu semua).

  • Menyebutkan /proc filesystem, bahasan ini bisa jadi dibuat untuk bahan latihan

  • Mengkonversi dokumen ke dalam bentuk docbook sgml.

  • Menambahkan beberapa latihan-latihan, kemungkinan ditambahkan pada seluruh bab dengan bobot latihan yang diperluas, misalnya dengan membuat sebuah sistem minimal yang dibuat file per file dari instalasi distro.

  • Menambahkan “oprekan” fungsi makefile pada pembentukan instruksi di bash.


Pos ini dipublikasikan di Education, Linux, Open Source, Sistem Operasi. Tandai permalink.

4 Balasan ke Mulai Dari Menghidupkan Komputer Hingga ke Bash Prompt

  1. irfan f berkata:

    Ayo milis kslonline@yahoogroups.com kita aktifkan lagi, soalnya aku lihat isinya banyak iklan-iklan ga jelas hehe. Oya pak untuk pengembangan / remaster ubuntu nya sudah 80%. Trims.

  2. nrkhlsmjd berkata:

    wah….wah….
    artikelnya mantab banget….
    maknyusss….

    thank’s bgt…

  3. Ardiansyah berkata:

    #irfan. Iya nih siapa admin milisnya ya? Coba kiga format ulang tuh milis.
    # nrkhlsmjd. Trims, saya lagi usahakan untuk sediakan format PDF nya. Supaya bisa mudah di-download.

  4. Ping balik: Berkas Amburadul « Another side about me

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s