Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial APA SIH SEBENARNYA... Lebih Mendalam Tentang DEVFS? Apa Sih Sebenarnya... DEVFS? Biagio Lucini akan menjelaskan devfs, yang merupakan alternatif untuk mengatur entri- entri di /dev yang ditawarkan seri kernel 2.4.

Sekali lagi suatu yang gak jelas. Apa pembuatan sebuah entri spesial di dalam saya untuk berubah? sih devfs? direktori /dev. Device-device ini umumnya Benar, Anda bisa, devfs saat ini merupakan Devfs merupakan sebuah alternatif untuk terdiri dari dua tipe: block (buffered) dan optional. Tetapi, devfs juga merupakan menangani entri-entri di direktori /dev. character (bukan buffered). Setiap entri implementasi bersih dari fi losofi “semua dikarakteristikan dengan sebuah nomor ma- hal adalah fi le” yang bisa berguna sebelum Apa sih sebenarnya entri-entri tersebut? yor dan minor. Nomor mayor diidentifi kasi- memaksa untuk masuk ke keseharian hidup Seperti yang Anda ketahui, dalam Unix kan sebagai tipe dari device yang terhubung, kita. dan turunan-turunannya, salah satu ide fi sik atau logical. Nomor minor merupakan utamanya adalah “semua hal adalah fi le”, label pengenalan yang membuat asosiasi an- Sejauh ini Anda meluangkan waktu un- termasuk peripheral dan komponen-kom- tara sebuah driver kernel dan sebuah device tuk memperkenalkan devfs, tetapi Anda ponen hardware yang tersambung pada lebih fl eksibel, dan berarti bergantung pada belum menjelaskan apa sih devfs ini. sistem. Entri-entri dalam /dev merupakan device yang memang benar-benar meru- Mengutip pengembang devfs Richard fi le-fi le spesial, terutama digunakan oleh pakan tujuannya. Contohnya, harddisk IDE Gooch, “devfs merupakan sebuah alter- OS () untuk berinteraksi master terkoneksi ke bus primary yang ber- natif untuk karakter dan block device spe- dengan hardware Anda (atau device-device korespondensi dengan sebuah block device sial “yang sebenarnya” pada root sistem fi le logical) dalam cara yang sama seperti setiap dengan nomor mayor 3 dan nomor minor Anda. Driver-driver device kernel dapat komponen tunggal yaitu sebuah fi le. 0 yang diletakkan di /dev dan dinamai de- mendaftarkan device berdasarkan nama ngan hda, partisi pertama dari harddisk bukannya nomor mayor dan minor. De- Tunggu dulu... bagaimana bisa mouse tersebut berkorespondensi dengan block vice-device ini akan muncul secara otomatis saya dijadikan seperti file teks? device dengan nomor mayor 3 dan nomor dalam devfs...” Pertanyaan bagus, coba kita jelaskan dengan minor 1 (hda1) dan seterusnya. Nomor Biasanya sebuah driver device kernel sebuah perbandingan. Anda dapat melihat minor 64 khusus untuk disk slave, dengan mendaftarkan sebuah device bersama de- isi fi le dengan perintah cat. Contohnya partisi-partisinya diidentifi kasikan dengan ngan sistem yang lain melalui panggilan- # cat < myfile.txt nomor minor dari 65 hingga 127. Pada ka- panggilan pada fungsi register_chardev() sus lain nomor minor mengidentifi kasikan atau register_blkdev(). Dengan devfs, kedua akan memperlihatkan isi dari fi le myfi le.txt. device fi sik/logical dari tipe yang diberikan, fungsi ini digantikan dengan devfs_regis- Sekarang sebagai root, coba jalankan misalnya port-port serial UART berkores- ter(), yang menerima sebagai argumen path # cat /dev/mouse pondensi ke karakter device /dev/ttyS[0- penuh dari device seperti seharusnya device 191], memiliki nomor mayor 4 dan nomor tersebut muncul di direktori /dev. Hal ini dan coba Anda gerakan mouse. Anda akan minor berkisar dari 64 hingga 255. Ketika memberikan fl eksibilitas dan mengizinkan diperlihatkan simbol-simbol yang diperlu- sebuah fi le spesial di dalam /dev diakses, struktur /dev yang bersih secara hirarki. kan oleh OS untuk mengartikan gerakan- driver yang digunakan diidentifi kasi dengan Node yang dibutuhkan dibuat di /dev dalam gerakan Anda menjadi perubahan posisi pasangan nomor mayor/minor. sub-lokasi yang diminta. Sementara node dari kursor (tekan [Ctrl]+[C] jika Anda ini mungkin melalui nomor mayor dan mi- i ngin kembali ke semula). Saya mengerti bahwa tidak ada masalah nor devfs_register() untuk kompatibilitas dengan sistem tersebut untuk saat ini, dengan pendekatan yang standar, hal ini Bagaimana bisa harddisk saya diasosiasi- demikian sepertinya juga pada saat men- tidak lagi diperlukan – sekarang device- kan ke sebuah file? datang. Jadi saya bisa tetap bertahan devide diasosiasikan dengan driver-driver Cara mengasosiasikan device fi sik atau de- dengan implementasi yang standar yang mendaftarkan device-device tersebut vice logical ke sebuah fi le adalah melalui hingga adanya kejadian yang memaksa berdasarkan nama, bukannya nomor may-

www.infolinux.web.id INFOLINUX 02/2005 45 APA SIH SEBENARNYA... Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial Lebih Mendalam Tentang DEVFS?

or dan minor. Ketika device tersebut tidak untuk menghilangkan dukungan terhadap Dengan berani saya menerima tantan- dibutuhkan, secepatnya akan memanggil sistem fi le /dev/pts untuk PTY-PTY Unix98, gannya. Adakah masalah lain yang perlu fungsi devfs_unregister() untuk menghapus karena mungkin tidak dapat berjalan de- saya ketahui sebelum mulai? entri yang berkorespondensi dengan /dev. ngan baik dan lagipula devfs menawarkan Hanya satu. Kelihatannya metode auten- fungsionalitas yang sama. Jika Anda meng- tifi kasi PAM tidak berjalan dengan benar. Tunggu dulu, kita mundur sebentar. Jika hilangkan dukungannya ini, jangan lupa Untuk mengatasinya, Anda sebaiknya tam- saya memutuskan untuk kembali meng- untuk memberi komentar entri yang ber- bahkan baris-baris gunakan pendekatan tradisional, apa korespondensi dalam /etc/fstab sebelum vc/1 yang akan saya temukan dalam direktori melakukan reboot. Kemudian, kompilasi vc/2 /dev? ulang dan instalasi kernel dan modul-mo- vc/3 Tenang, dari sini devfs masih sangat aman. dul. Jangan sampai Anda lupakan modul- vc/4 Devfs merupakan sistem fi le yang dimount modul, karena jika tidak yang diinginkan vc/5 pada direktori /dev (atau sebenarnya di ma- tidak akan berjalan sesuai harapan. vc/6 na saja Anda inginkan, walaupun demikian vc/7 direktori /dev yang selalu dicari oleh banyak Dan sekarang bisakah saya melakukan program). Seketika Anda memutuskan un- reboot dan menikmati devfs yang baru? pada fi le /etc/securetty Anda. Jangan kha- tuk tidak me-mount, Anda akan mendapat- Hati-hati, sekali lagi kernel bukan meru- watir dengan keamanan; dengan penam- kan direktori /dev lama kembali seperti pakan akhir dari cerita (bahkan sebenarnya, bahan ini, sistem Anda seaman seperti semula, tanpa modifi kasi sama sekali. kompilasi ulang kernel merupakan langkah sistem sebelumnya. yang paling mudah). Tentu saja kernel yang Kedengarannya pintar. Tetapi apakah sesuai masih diperlukan, untuk memastikan Coba kita mulai kalau begitu! Apa yang keuntungannya hanya keindahan dan kernel dapat melakukan boot dengan benar harus saya lakukan? optimisasi ruang harddisk? dengan /dev bergaya lama, dengan tambah- Pertama, dapatkan devfs dari http://www. Tidak. Pertama, devfs dapat dengan mudah kan pada loader boot Anda opsi atn.csiro.au/~rgooch/, kompilasi dan mengimplementasi struktur logical lebih devfs=nomount lakukan instalasi. Catat bahwa instalasi dari direktori /dev secara on-the-fl y, melalui tersebut menggunakan fi le konfi gurasi de- panggilan ke devfs_register(). Kemudian, Apa lagi yang diperlukan? fault. Kedua adalah melakukan hacking banyak waktu yang dapat dihemat ketika Yang terpenting beberapa perbaikan pada sedikit pada skrip sistem inisialisasi. Apa menjalankan program-program spekulatif skrip-skrip inisialisasi (yang membutuh- yang di hack dalam skrip tergantung pada yang men-scan /dev untuk menebak hard- kan lebih dari sekedar pengetahuan dasar distro yang Anda gunakan, sebagian pada ware yang terpasang. Dan terakhir, devfs programming bash) dan konfi gurasi sebuah penyesuaian standar. Pada sistem SysV, menyediakan sebuah koneksi lebih cepat di- daemon, devfs, yang menjaga kompatibili- yaitu pada /etc/rc.d/rc/system, pada sistem antara node Virtual dan driver tas dengan skema penamaan lama. bergaya-BSD biasanya /etc/rc. Pada bagian device yang berkorespondensi. awal skrip, tulis Wah, mulai menjadi lebih sulit nih... /sbin/devfsd /dev Apa saja kebutuhan sistem untuk men- Kelihatannya sih begitu, dan bahkan ada jalankan devfs? beberapa kemungkinan bahwa Anda akan Sangat penting untuk menjalankan skrip Walaupun masih dianggap sebagai eksperi- berakhir dengan sistem yang tidak dapat tersebut dari awal-awal sekali, sejak devfs mental, devfs sudah ada dalam kode kernel melakukan boot jika terjadi sesuatu yang memberikan entri-entri dalam /dev untuk sejak versi 2.3.46. Setiap kernel 2.4 seharus- salah. Seperti biasa, lebih baik jika mem- device-device bergaya tua yang mungkin nya tidak bermasalah, walaupun biasanya persiapkan kemungkinan tersebut sebelum dibutuhkan oleh beberapa proses yang di- versi yang terbaru dipastikan bahwa bug- terlambat. Pertama-tama, saya mereko- panggil oleh skrip sistem inisialisasi. bug mungkin sudah diperbaiki. Perhatikan mendasikan Anda melakukan eksperimen juga paket-paket yang lain, pastikan Anda pada sistem tes. Dan belajar begaimana Itu saja yang perlu saya lakukan? Bisa sedikitnya sudah memiliki glibc, util-linux memperbaiki sistem yang rusak (jika An- saja jadi lebih buruk... 2.10.h dan Xfree86 4.x. Semua distro mo- da tidak mengetahuinya). Terakhir, ingat Ini tidak terlalu buruk, tetapi kita belum se- dern telah memiliki persiapan tesebut. bahwa merupakan hal yang bijaksana un- lesai. Setelah melakukan modifi kasi, jangan tuk melakukan backup dan melakukan log berharap sistem Anda berjalan sempurna, Kemudian saya harus mengkompilasi pada setiap modifi kasi pada skrip inisiali- karena setiap sistem memiliki hardware ulang kernel, saya kira begitu. sasi, sehingga jika dibutuhkan, skrip yang sendiri dan mungkin beberapa entri dalam Benar. Opsi-opsi yang relevan adalah asli dapat dikembalikan. Tetapi jangan direktori /dev lama. Namun dengan sedikit CONFIG_EXPERIMENTAL=Y, CON- dikembalikan sebelum Anda benar-benar usaha Anda dapat memperbaiki kondisi pre- FIG_DEVFS_FS=Y, dan CONFIG_DEVFS_ tahu apa yang harus dilakukan agar devfs devfs. Selain itu, kita baru menggunakan MOUNT=Y. Dan juga direkomendasikan berhasil! fungsionalitas standar sejauh ini, bukan?

46 INFOLINUX 02/2005 www.infolinux.web.id Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial APA SIH SEBENARNYA... Lebih Mendalam Tentang DEVFS?

Kalau begitu, saya rasa, sekarang Teknik di atas dapat digunakan jika Hal tersebut akan menyalin semua de- saatnya untuk mengedit file konfigurasi distro yang Anda gunakan mengharapkan vice baru ke direktori /dev-state (yang devfs. link seperti /dev/mouse, /dev/modem, /dev/ seharusnya sudah ada sebelumnya) dan Benar. File ini biasanya berada di /etc dan cdrom dan lain-lain. menghapus semuanya dari direktori yang bernama devfsd.conf. Dalam fi le ini An- sama ketika mereka dihapus. Sekarang, da dapat mengkonfi gurasi beberapa aksi Apa lagi yang dapat saya lakukan pada bagian paling awal dari skrip inisiali- daemon. Pada dasarnya, devfsd mencari dengan devfsd? sasi sistem Anda yang telah dimodifi kasi kejadian-kejadian yang diasosiasikan ke Devfsd sangat powerfull dan versatile. Devfsd tambahkan baris device-device spesial (direkam oleh devfs dapat membuat nama bergaya lama, nama cp -af /dev-state/* /dev > /dev/ dalam fi le /dev/.devfsd) dan setiap waktu bergaya baru dan symbolic link, mengubah null 2>&1 kejadian yang mirip dengan beberapa entri perizinan standar, melakukan loding mo- di dalam fi le konfi gurasi maka devfs akan dul-modul yang diperlukan (melalui fi le / sehingga pada setiap kali Anda melakukan mengambil aksi yang berkorespondensi etc/modules.devfs) dan menjalankan fungsi- reboot, semua device yang Anda perlukan dengannya. fungsi built-in dan bahkan mengkostumasi akan ada dengan cepat dalam direktori / skrip. Devfsd juga memungkinkan penggu- dev. Jika Anda tidak mengetahui bagaimana Apa saja struktur dari sebuah entri dalam naan regular expression untuk menunjuk membuat device, tetapi pada sistem lama devfsd.conf? device – contohnya, sebuah entri dalam Anda, Anda telah menyediakan device-de- Setiap entri berstruktur seperti: kolom kedua seperti vc/.* berarti tindakan vice tersebut, maka Anda tinggal menyalin- EVENT DEVNAME ACTION par1 par2 yang berkorespondensi harus diambil untuk nya dalam /dev-state ketika Anda mengak- semua device dalam /dev/vc. Sebagai con- ses ke direktori /dev yang lama, dan dengan dimana EVENT mengidentifi kasikan ke- toh trivial, kemampuan untuk menjalankan hasil dari baris perintah di atas, maka de- jadian tertentu (entri-entri yang dapat skrip dapat dieksploitasi hingga memiliki vice-device tersebut akan tersedia juga ke- diterima adalah REGISTER, UNREGISTER, icon pada memunculkan dan menghilang- tika Anda menggunakan devfs. LOOKUP, CLOSE, CHANGE, CREATE, kan desktop ketika Anda melakukan plug DELETE), DEVNAME merupakan nama dan unplug beberapa device USB. Dan jika saya menginginkan direktori device yang berasosiasi dengan kejadian (ini /dev saya yang lama tetap tersedia? dapat juga berupa regular expression) dan Apakah semua driver device telah di- Anda masih dapat melakukan mount ter- ACTION adalah tindakan yang diambil. port-kan ke skema devfs yang baru? hadapnya, tetapi hal ini harus dilakukan Yang membutuhkan parameter masukan. Belum, tetapi hampir semua yang funda- sebelum devfs dimount. Pertama, boot mental sudah. Sebuah daftar dari semua dengan opsi devfs=nomount (tambahkan Bisakah Anda memberikan sebuah device yang di-port-kan ada dalam fi le - baris contoh? me dalam direktori Documentation/fi lesys- append=” devfs=nomount” Misalkan scanner USB Anda dalam skema tem/devfs/ dari tree kernel source. nama lama diakses dari /dev/usbscanner. pada fi le /etc/lilo.conf Anda untuk mem- Dalam skema baru menjadi /dev/usb/scan- Oke, misalkan saya memerlukan bebe- buatnya permanen dan jalankan /sbin/lilo ner. Beberapa aplikasi mungkin masih rapa driver device yang masih belum -v). Kemudian, sediakan bahwa Anda ingin mencari dari /dev/usbscanner, jadi Anda di-port-kan. Apa yang sebaiknya saya melakukan mount /dev yang lama dalam / mungkin membutuhkan sebuah symbolic lakukan? dev-state, skrip inisialisasi sistem Anda ha- link. Devfs dapat menangani pembuatan Anda sebaiknya membuat nama device yang rus diawali dengan baris-baris symbolic link. Baris yang sesuai adalah sesuai dengan mknod (saya rasa kali ini mount --bind /dev /dev-state REGISTER usb/scanner CFUNCTION MAKEDEV tidak dapat membantu). mount -t devfs none /dev GLOBAL symlink $devname devfsd /dev usbscanner Misalkan saya tahu bagaimana cara UNREGISTER usb/scanner CFUNCTION melakukan hal tersebut, bagaimana Hmm, mungkin ada cara yang mudah GLOBAL unlink usbscanner membuatnya menjadi permanen? untuk membuat semuanya bekerja: sebut Sebuah cara yang cepat dan “kotor” bisa saja, seseorang telah melakukannya untuk Praktisnya, kita memberitahukan devfs dengan memasukkan perintah mknod yang Anda. Apakah ada distro yang menawarkan bahwa setiap driver mendaftarkan device sesuai pada skrip inisialisasi. Ada cara lebih devfs secara default? /dev/usb/scanner kita ingin sebuah sym- elegan, dan melalui devfsd. Tambahkan pa- Diantara distro-distro populer, setahu bolic link /dev/usbscanner yang menunjuk da fi le-fi le konfi gurasi baris-baris berikut: saya hanya satu yang dilengkapi dengan ke device tersebut. Modifi kasi terhadap /etc/ CREATE .* COPY $devpath / dukungan devfs yaitu Mandrake. Dan devfsd.conf akan berpengaruh setelah dae- dev-state/$devname yang distro lainnya kurang dikenal yang monnya direstart dengan perintah DELETE .* CFUNCTION GLOBAL menawarkan devfs adalah Gentoo (http:// # killall -HUP devfsd unlink /dev-state/$devname www.gentoo.org). (LXF25)

www.infolinux.web.id INFOLINUX 02/2005 47