Oleh Larry “Dirt Road” Kollar, LG#077. Bahasa Indonesia oleh Triyan W. Nugroho.

Pada hari ini dimana distribusi datang dalam enam CD, adalah hal yang bagus untuk mengingat bahwa Linux yang memiliki fungsionalitas tinggi dapat masuk ke dalam satu Zip cartridge — atau bahkan dalam beberapa floppy.Untuk membuktikan utilitas dari sebuah tiny Linux, saya membuat sebuah sistem dua disket pada komputer 486 dan menggunakannya untuk menulis artikel ini.

Pengantar

Ini semua dimulai ketika saya diberi satu pasang PC dan satu monitor. Komputer yang lebih besar, sebuah Aptiva, menggunakan CPU P133, 2GB harddisk, sebuah drive CD-ROM, dan tanpa RAM. Komputer kedua adalah HP Vectra486/33N dengan 170MB harddisk, Windows 3.1, dan 8MB RAM (tanpa CD). Kedua sistem mempunyai mouse, tetapi tanpa keyboard. Kunjungan ke Wal-Mart dan $10(US) kemudian, saya mendapatkan PS/2-compatible keyboard. Karena kedua komputer menggunakan 72-pin SIMM, hal pertama yang saya lakukan adalah menukar RAM ke mesin Aptiva dan melihat apakah ada sesuatu yang berguna pada harddisk yang besar.

Saya belajar sesuatu yang berguna. Saya belajar apa yang dicekik oleh Windows 98 pada RAM yang tidak mencukupi.

Saya tidak memiliki RAM lainnya, jadi saya kembali meletakkan RAM tersebut ke dalam mesin Vectra dan mencari CD RedHat 4.0 yang saya miliki… ups, mereka adalah CD dan Vectra tidak memiliki CD (dan tidak ada slot pada casingnya untuk memasang CD). Tak pelak lagi, saya membutuhkan strategi lain.

Mencari Floppy yang Hebat

Linux Daily News adalah satu yang selalu saya kunjungi di Web. Jika LWN tidak memiliki apa yang anda butuhkan, mereka pasti memiliki link. Saya menuju ke halaman Distribusi dan mulai menggulung daftar distribusi yang berbasis floppy.

Pikiran pertama saya adalah distribusi rescue dalam satu disket, yang merupakan favorit setiap orang, tomsrtbt. Saya memiliki sebuah laptop Windows di tempat kerja, yang kedua setelah Mac G3, tetapi itulah yang menyebabkannya berguna. Sayangnya, tomsrtbt menggunakan beberapa cara untuk mengepak 1,7MB kedalam floppy 1,44MB, dan baru-baru ini laptop tersebut di-”up”grade ke Windows 2000. W2K tidak mengijinkan cara tersebut, dan saya tidak memiliki akses yang mudah ke sistem Windows yang lain.

Kembali ke daftar di atas. Ketika mengaduk-aduk beberapa sumber yang lain, saya menemukan bahwa BasicLinux bukanlah benar-benar sebuah distribusi yang berbasis CD (seperti yang disebutkan oleh halaman Distribusi LWN). BasicLinux tersedia dalam satu file ZIP, dengan total sebesar 2MB, tetapi setelah diunpack bisa masuk dengan mudah ke dalam dua buah floppy dan anda tidak perlu untuk menuliskan sebuah image (ia menggunakan LOADLIN.EXE untuk mulai dari DOS). BasicLinux menggunakan Slackware 3.5 sebagai basisnya, dan menggunakan kernel versi 2.0.34 dan libc5. Ia juga mengalokasikan hanya 4MB untuk RAMdisk, sehingga Vectra bisa merasakan pertama kali selera free software.

Up and Away

Meskipun terdapat berbagai perbedaan pada tahun software, disk format, dan tujuan pembuatannya, distribusi yang berbasis floppy memiliki urutan startup yang hampir sama:

  1. Inisialisasi, bisa saat startup (LILO) atau setelah memuat dari DOS (LOADLIN).
  2. Loader akan mengurai kernel dan menjalankannya.
  3. Kernel akan membut sebuah RAMdisk untuk digunakan oleh ‘userland’.
  4. Loader akan mengurai ‘userland’ dan memuatnya ke dalam RAMdisk.
  5. Proses booting terjadi secara normal, dengan RAMdisk dimount sebagai root.

Sebuah disk image yang berisi ‘userland’ (isi dari filesystem) biasanya bisa masuk ke dalam satu buah disket floppy 1,44MB dan akan meluas menjadi sekitar 3MB. Berjalan dari RAMdisk, bahkan sebuah 486/386 terasa demikian cepat.

Tradeoffs

Menjejalkan sebuah Linux minimal kedalam dua floppy mengingatkan pada observasi abadi Heinlein “TANSTAAFL’ (There Ain’t No Such Thing As A Free Lunch). Walaupun dimungkinkan untuk memasukkan beberapa utilitas dasar dan bahkan X11, anda tidak akan menemukan KDE, Gnome, atau Mozilla. Penggila Emacs hanya bisa melupakannya.

Bahkan perintah-perintah dasar dan berbagai utliltas, segala sesuatu yang anda ingin dapatkan dari semua sistem operasi yang namanya berakhir dengan huruf ‘X’, adalah versi yang disederhanakan. Sebenarnya, kebanyakan dari mereka hanyalah simbolic links kepada sebuah program yang dinamakan BusyBox. Lineo mengembangkan kit yang cerdas ini untuk sistem embedded Linux, tetapi ia juga dapat dimanfaatkan pada beberapa distribusi mikro dan rescue. Ia mengepak 54 perintah utama ke dalam sebuah binary dengan ukuran hanya sekitar 110K. Buatlah sebuah link (menggunakan ln -s) dengan nama cp, dan ketika anda mengetikkan perintah tersebut, BusyBox akan bereaksi seperti perintah cp. Ketika anda menjalankannya sebagai mv, ia akan memindah atau mengganti nama file. Option –help menyediakan penjelasan singkat dari perintah tersebut, mengurangi kebutuhan akan halaman manual. Tanpa BusyBox, saya berani mengatakan bahwa distribusi yang berbasis floppy akan meminta kompromi yang lebih.

Bekerja dengan BasicLinux

BasicLinux adalah sistem networking yang ringkas namun kompeten. Disamping hal-hal yang penting (lewat BusyBox), ia menyediakan konektivitas jaringan menggunakan Ethernet maupun dialup, dan dapat menarik pekerjaan firewall dengan menggunakan ipfwadm. Utilitas seperti fetchmail dan links (bukan lynx, yang memusingkan saya) menyediakan konektivitas web dan mail. Untuk membuat user Linux merasa senyaman mungkin, ia menyediakan shell bash yang familier. Inittab defaultnya menyediakan tiga konsol login, lebih dari cukup bagi saya (saya terkadang menggunakan dua konsol dalam satu waktu, satu untuk saya sendiri dan satu untuk root).

Tidak seperti beberapa distribusi lain, BasicLinux memberikan dua buah editor teks, e3 yang kecil dan pico yang populer. Dengan memanfaatkan ruang yang tersisa pada boot image, dan paket Slackware yang begitu bersejarah, saya menggantikan keduanya dengan joe. Joe adalah editor yang sedikit lebih besar daripada pico namun ia bisa mengemulasikan pico, WordStar, dan Emacs (tetapi tanpa segala fungsionalitas Emacs yang berlebihan). Hasilnya adalah image terkompresi yang lebih besar, namun masih bisa masuk ke dalam sebuah floppy.

Mengedit Image

File readme.txt yang disertakan dalam BasicLinux begitu singkat, namun sudah cukup detail bagi setiap orang yang familier dengan konsol untuk mengkustomasi sistem atau membuat floppy image yang bootable.

Pada saat saya menulis bagian ini, saya memiliki file BasicLinux pada drive C: di 486 jika menggunakan MS-DOS. Mengkustomasi image adalah sangat mudah:

  1. Gunakan gunzip untuk mengurai image.
  2. Mount image pada sebuah loopback device.
  3. Buatlah perubahan yang anda inginkan.
  4. Unmount image.
  5. Gzip image tersebut.

Saya telah menulis sebuah halaman yang terpisah yang menjelaskan mengenai loopback device.

Memindahkan ke dalam Harddisk

Ini tidak terlalu sukar, asal anda bersedia untuk menghapus semua isi harddisk. Vectra memiliki Windows 3.1 dan beberapa aplikasi, tidak ada yang berguna untuk disimpan.

Sebelum melangkah lebih jauh, saya melakukan penelitian kecil-kecilan dan melakukan back up direktori MS-DOS ke dalam sebuah floppy (menggunakan sebuah zip compressor yang sudah ada di dalam komputer). Dengan sebuah harddisk 160MB dan 8MB RAM, saya pikir akan mendapatkan ruang yang cukup untuk membangun sebuah sistem yang cakap tanpa takut harddisk nanti akan kelebihan muatan.

Sebuah pencarian pada Google untuk program pengatur partisi membawa saya kepada FIPS (First non-destructive Interactive Partiton Splitting program) yang gratis. Mengikuti instruksi yang diberikan, saya meletakkan FIPS pada sebuah boot floppy dan menggunakannya untuk menyusutkan partisi C:. Saya ingin mengecilkannya sampai 10MB, namun FIPS (entah apa alasannya) tidak dapat bekerja di bawah 16MB. Setelah menghapus segala sesuatu milik Windows 3.1 dan melakukan defragment pada harddisk, saya mendapatkan lebih kecil dari 5MB partisi C:, sehingga saya tidak begitu yakin apa yang telah terjadi.

Sekarang saya memulai lagi Linux dan menggunakan utilitas fdisk yang ada di dalam distribusi BasicLinux untuk membuat partisi swap sebesar 32MB, dan memberikan sisanya kepada root. Menjalankan mkswap, mke2fs, dan e2fsck untuk mempersiapkan partisi yang baru agar dapat digunakan. Akhirnya, saya meng-unpack file instl2hd.zip milik BasicLinux dan mengikuti instruksi yang ada di dalamnya untuk memuat image RAMdisk (dan beberapa ekstra lainnya) ke dalam harddisk. Sampai disini, adalah hal yang mudah untuk mengedit /etc/fstab untuk menunjuk partisi root dan swap yang baru. Sekali lagi melakukan reboot, dan saya sudah menjalankan Linux dari harddisk. Hidup begitu menyenangkan. Saya kemudian menyalin artikel ke partisi Linux dan melanjutkan menulis.

Tertangkap Basah di Net

Dengan sistem yang berbasis konsol yang menggunakan kurang dari 5MB RAM, dan meninggalkan 3MB ruang kosong pada RAM, saya mengatur penglihatan saya sedikit lebih tinggi. Secara singkat, saya ingin menambahkan:

  • groff (the GNU troff formatter)
  • vim (text editor kelas satu)
  • rogue (membunuh beberapa monster, merusakkan mental block)
  • X11 (menampilkan dokumen draft)
  • gcc (setidaknya untuk sementara, untuk mengcompile groff dan rogure)

Untungnya, Vectra memiliki sebuah kartu jaringan SMB-Ultra. Tidak perlu waktu lama untuk menemukan module yang tepat, dan dokumentasi BasicLinux menyuruh saya untuk memuat module 8390 dahulu. Karena Mac G3 milik saya berjalan pada sebuah firewall NAT (ipchains) di bawah Linux untuk berbagi dialup, menambahkan Vectra ke dalam jaringan hanya semudah membawanya ke dalam ruangan dengan LAN dan menancapkan kabel. Setelah beberapa kali membaca halaman manual dari route, akhirnya saya mengetahui mantera apa yang dibutuhkan agar si Skeeter (begitu saya memanggil Vectra) bisa masuk ke LAN melewati gateway G3 dan ke dunia luar.

Mendownload paket X11 mengingatkan saya bahwa ada link jaringan yang lebih lambat daripada dialup yang saya gunakan. Ini adalah satu dari beberapa waktu dimana saya merasa senang untuk tidak memiliki broadband; saya akan merasa dicurangi. Tetapi akhirnya, saya mendapatkan mereka semua di dalam harddisk, lalu segera mengkonfigurasi X11. Mengaduk-aduk Internet untuk mencari bantuan, akhirnya saya mengetahui bahwa utilitas SuperProbe bisa memberitahu on-board video apa yang digunakan oleh Vectra, dan bahwa monitor yang saya gunakan hanya 640×480. Pada malam yang kedua, saya mendapatkan GUI berjalan dan memilih icewm yang direkomendasikan, sebagai window manager. Pager icewm dan ukurannya yang kecil membuat layar yang kaku tersebut menjadi lumayan, jika tidak disebut cocok. Tetapi sejujurnya, 35 baris window rxvt mengalahkan 25 baris screen konsol untuk menulis, jadi secara umum saya merasa puas.

Sisanya

Dengan dapat berjalannya jaringan dan GUI, sekarang waktunya untuk mengakhiri pembangunan ini. Pada poin ini, keseluruhan sistem memiliki berat dibawah 21MB pada spasi harddisk (yang tersedia sebesar 113MB). Menambahkan paket compiler menjadikan ruang yang terpakai meningkat sampai 35MB.

Menambahkan paket yang akan dicompile groff dan gawk, ditambah dengan aplikasi yang sudah tercompile, menjadikan ruang yang terpakai sebesar 60MB. Setelah menginstal program dan menghapus direktori yang digunakan, saya merasa puas dengan 57MB ruang terpakai.

Karena saya telah melakukan sharing printer melewati LAN dengan lpr sebelumnya, tidak membutuhkan waktu lama untuk melakukan beberapa test dokumen groff dan mencetaknya pada laser printer USB milik G3. Pada poin ini, Skeeter mengerjakan segala yang saya rencanakan. Saya ingin menggunakan monitor yang lebih besar (setidaknya 800×600), dan mungkin mengcompile Chimera 1.x sebagai web browser grafis, tapi itu bukanlah kebutuhan yang mendesak.

Menemukan Tempatnya Sendiri

Disamping digunakan untuk menulis artikel seperti saat ini, Skeeter dapat terhubung ke MUDs untuk rekreasi (bayangkan tiga orang berbagi dialup, karena dua orang menggunakan telnet dan yang ketiga hanya membaca email dengan menggunakan browser, tidak ada yang komplain mengenai menjadi lambatnya koneksi). Rogue memikat anak saya dan temannya — temannya kagum bagaimana bisa sebuah game tanpa grafik bisa begitu menyenangkan!

Skeeter juga menjadi begitu berguna sebagai semacam remote floppy drive. iMac (sekarang menggunakan MacOS X) tidak memiliki floppy, dan drive milik G3 sudah tidak nyaman digunakan. Jadi jika kita ingin membaca atau menulis ke sebuah floppy, kita memanggilnya lewat Skeeter. Skeeter mungkin menjadi sebuah print server di masa mendatang.

Akhirnya, saya menganggap eksperimen ini sukses. Sebuah investasi sebesar $10 ditambah dengan sedikit keringat memberikan komputer yang berguna dan beberapa keahlian baru.