Para pembaca yang terhormat, pada tulisan kali ini saya akan membahas cara kerja sistem operasi Linux dalam menangani memori. Untuk itu, kita akan melihat langsung ke dalam kode sumber Linux itu sendiri. Kode sumber yang digunakan adalah versi 2.6.29, diambil langsung dari Kernel.Org.

PERINGATAN: Mungkin ada beberapa salah persepsi dalam tulisan ini. Sebagian besar merupakan kesalahan penulis sendiri. Jangan menggunakan tulisan ini untuk tugas akhir, dsb. (Usaha sendiri, ‘napa! tongue)

Berkas yang Berkaitan dengan Pengelolaan Memori

Seluruh kode yang langsung menangani memori terletak pada folder linux-2.6.29/mm/:
linux-2.6.29/mm/allocpercpu.c
Fungsi yang berkaitan dengan alokasi data per-cpu.
Fungsi-fungsi ini untuk menangani memori pada sistem multiprosesor; terutama pada sistem di mana CPU bisa ditambahkan (dan dilepas) saat sistem operasi sedang berjalan.
Jaman sekarang, bahkan CPU pun hot-pluggable seperti flash disk…
linux-2.6.29/mm/backing-dev.c
State dan informasi tingkat rendah pada suatu device.
State dan informasi ini akan digunakan oleh kode-kode yang terletak pada tingkat yang lebih tinggi.
linux-2.6.29/mm/bootmem.c
bootmem; Fungsi untuk mengalokasikan dan mengatur memori fisik saat booting.
linux-2.6.29/mm/bounce.c
Bounce Buffer untuk menangani block device, terutama pada sistem tanpa Memory Management Unit.
linux-2.6.29/mm/dmapool.c
Pengalokasian DMA Pool; yaitu bagian memori yang bisa diakses langsung (“DMA”winking oleh device.
Pada Linux, DMA Pool merupakan kumpulan page di memori yang dibagi menjadi blok-blok sesuai kebutuhan device.
linux-2.6.29/mm/fadvise.c
<FIXME>
linux-2.6.29/mm/failslab.c
Bagian dari fault injection capabilities infrastructure.
Umumnya untuk mensimulasikan suatu fault (=kegagalan), yang mana untuk menguji kemampuan suatu modul menangani fault.
Lebih lanjut di linux-2.6.29/Documentation/fault-injection/fault-injection.txt
Kode pada berkas ini untuk fault pada alokasi memori di tingkat kernel (kmalloc(), dsb…winking
linux-2.6.29/mm/filemap.c
linux-2.6.29/mm/filemap_xip.c
Pengelolaan Memory Mapping (“mmap”winking untuk filesystem pada umumnya.
Alias Virtual Memory. (Pada Linux, umumnya menggunakan partisi swap, bukan file)
linux-2.6.29/mm/fremap.c
Fungsi untuk mengisi pagetable dan pemetaan memori acak (non-linear) secara langsung.
linux-2.6.29/mm/highmem.c
Penanganan High Memory, atau memori yang letaknya di atas 4GB.
Pada prosesor x86, dapat menangani sampai 64GB RAM. (mau dong…winking
linux-2.6.29/mm/hugetlb.c
Menangani hugetlb.
linux-2.6.29/mm/internal.h
Definisi internal, bagian kode yang hanya boleh digunakan oleh Memory Management.
linux-2.6.29/mm/maccess.c
Untuk mengakses memori internal kernel tanpa mengakibatkan fault.
Umumnya memori kernel tidak bisa diakses.
linux-2.6.29/mm/madvise.c
Untuk memberitahu kernel tentang cara penggunaan suatu wilayah memori yang akan dialokasikan, sehingga dapat dioptimalkan; fungsi ini dipanggil oleh aplikasi.
linux-2.6.29/mm/memcontrol.c
Memory Controller
linux-2.6.29/mm/memory.c
Fungsi-fungsi utama Memory Management
linux-2.6.29/mm/memory_hotplug.c
Fungsi-fungsi yang berkaitan dengan penambahan dan pengurangan memori saat sistem operasi sudah berjalan. Betul-betul kayak flash disk…
linux-2.6.29/mm/mempolicy.c
Pengaturan kebijakan NUMA untuk memori. Shared memory pada komputer multi-processor.
linux-2.6.29/mm/mempool.c
Fungsi untuk menggunakan pool memori penyangga.
Pool ini berguna untuk menghindari terkuncinya sistem saat Memory Management sedang sangat sibuk.
linux-2.6.29/mm/migration.c
Fungsi untuk migrasi page pada saat memori dilepas atau dipasang, terkait dengan hotpluggable memory (lihat memory_hotplug.c)
linux-2.6.29/mm/mincore.c
Fungsi ini untuk mengetahui bagian mana dari sebuah file yang berada di memori (di “cache”winking, dan dapat dibaca tanpa harus mengakses disk.
linux-2.6.29/mm/mlock.c
Fungsi untuk mengunci suatu page di memori. Page yang sudah dikunci tidak akan ditulis ke virtual memory (lihat mmap.c)
linux-2.6.29/mm/mm_init.c
Fungsi yang berkaitan dengan verifikasi dan debug memori saat inisialisasi

linux-2.6.29/mm/mmap.c
Map dan un-map suatu file ke memori. Pada dasarnya, file itu di-load seluruhnya ke memori demi akses yang lebih cepat. Ketika terjadi perubahan pada file, hanya bagian yang berubah yang disimpan ke disk.
linux-2.6.29/mm/mmu_notifier.c
Kerjasama kernel dengan Memory Management Unit, bagian dari perangkat keras.
linux-2.6.29/mm/mmzone.c
Penanganan pgdat dan zone <FIXME>
linux-2.6.29/mm/mprotect.c
Untuk melindungi suatu page dari penulisan, terutama penulisan yang tidakdikehendaki.
linux-2.6.29/mm/mremap.c
Lihat mmap.c
linux-2.6.29/mm/msync.c
Untuk sinkronisasi sebuah file dengan memory map. Lihat mmap.c
linux-2.6.29/mm/nommu.c
Kode untuk emulasi MMU pada CPU yang tanpa MMU (dan oleh karena itu, tanpa Virtual Memory)
linux-2.6.29/mm/oom_kill.c
Fungsi untuk membunuh suatu proses ketika sistem betul-betul kehabisan memori.
Pembunuhannya harus mengikuti beberapa kaidah:
1. Hasil kerja yang terbuang harus sesedikit mungkin;
2. Memori yang direbut kembali besar ukurannya;
3. Tidak membunuh proses yang hanya makan sedikit memori
4. Banyaknya proses yang terbunuh sesedikit mungkin (idealnya 1)
5. Bunuh proses yang memang dikehendaki kematiannya oleh user
linux-2.6.29/mm/page_writeback.c
Fungsi untuk menuliskan balik dirty page, pada tingkat address_space
linux-2.6.29/mm/page_alloc.c
Menangani daftar page bebas
linux-2.6.29/mm/page_cgroup.c
<FIXME>
linux-2.6.29/mm/page_io.c
Menangani swapping
linux-2.6.29/mm/page_isolate.c
Mengisolasi suatu page. Page yang sudah diisolasi tidak bisa dialokasikan kembali (=dipetieskan).
linux-2.6.29/mm/pagewalk.c
Untuk menangani banyak page sekaligus pada suatu tabel.
linux-2.6.29/mm/pdflush.c
Kernel thread untuk menangani penulisan data yang masih mengambang di memori ke filesystem (“flush”winking.
Misalnya, untuk Safely Remove Hardware, semua data di flash disk harus sudah ditulis.
linux-2.6.29/mm/prio_tree.c
Penentuan prioritas suatu VMA dengan menggunakan Radix Tree (variasi Binary Tree).
linux-2.6.29/mm/quicklist.c
Daftar page dengan state terdefinisi ketika alloc() dan free().
Bagian dari algoritma pengalokasian memori.
linux-2.6.29/mm/readahead.c
Untuk meng-cache suatu file dari disk ke memori.
linux-2.6.29/mm/rmap.c
Pemetaan balik, dari memori fisik ke memori virtual.
linux-2.6.29/mm/shmem.c
linux-2.6.29/mm/shmem_acl.c
Resizable virtual memory for Linux, konsepnya sama dengan yang di Win****.
Karena Resizable, ukuran virtual memory ini bisa ditambah atau dikurangi sesuai kebutuhan.
linux-2.6.29/mm/slab.c
Alokasi memori untuk internal kernel, yang berisi objek-objek dalam kernel.
linux-2.6.29/mm/slob.c
Heap allocator
linux-2.6.29/mm/slub.c
Lihat slab.c
linux-2.6.29/mm/sparse.c
linux-2.6.29/mm/sparse-vmemmap.c
sparse memory mapping <FIXME>
linux-2.6.29/mm/swap.c
Nilai default untuk operasi pada Virtual Memory Linux.
Untuk men-tune nilai-nilai ini, lihat Documentation/sysctl/vm.txt
linux-2.6.29/mm/swap_state.c
linux-2.6.29/mm/swapfile.c
Penanganan swap file pada Linux. Lihat juga shmem.c
linux-2.6.29/mm/thrashing.c
Mencegah terjadinya thrashing.
linux-2.6.29/mm/truncate.c
Membinasakan suatu page dalam memori dari address_space (=menghapus page)
linux-2.6.29/mm/util.c
Kumpulan fungsi yang berguna untuk menangani memori secara umum.
linux-2.6.29/mm/vmalloc.c
linux-2.6.29/mm/vmscan.c
linux-2.6.29/mm/vmstat.c
Fungsi-fungsi virtual untuk penanganan memori.
“Virtual” karena paradigma pemrograman Linux yang membedakan konsep dan implementasi.
Tujuannya supaya strategi yang sama dapat digunakan di segala tempat, termasuk hardware yang tidak lazim.

Teknik Pengelolaan Memori

Linux menggunakan Memory Management Unit (MMU) yang disediakan oleh perangkat keras. Pada sistem yang tidak memiliki MMU, digunakan emulasi. (Jaman sekarang, komputer apa yang tidak punya MMU?)

Secara algoritmik, penanganan memori di Linux sesuai dengan strategi yang dibahas di sini.

Analisis Lebih Lanjut

<bersambung ke tulisan selanjutnya>

Intermezzo

<UNFINISHED ARTICLE>
… yah beginilah kalau hanya dikerjakan sendiri.

Untuk men-download kode sumber kernel pada artikel ini, saya harus pergi ke warnet di kampus sebelah. Bukan gedung sebelah, bukan fakultas sebelah: kampus sebelah. Dulunya kampus itu IKIP. Saya tidak bisa mendownload bahan-bahan yang penting di warnet fakultas saya sendiri karena selain aksesnya pelan, ngopi data yang sudah saya download ke usb saya (dengan jatah akses saya sendiri!) diharuskan membayar. Sungguh menjengkelkan– ok, (ketiadaan) uang itu sumber masalah saya nomor 1, tapi bukan itu masalahnya di sini. Hemat saya, itu bukan hal yang etis dilakukan oleh sebuah warnet di sebuah institusi pendidikan yang sudah dan akan terus diuji oleh jaman.

Saya tak ingin bicara tentang “korupsi bandwidth” yang banyak dilakukan oleh administrator jaringan di UGM. Terakhir kali saya bicara dengan orang dalam PPTIK (dari Teknik Elektro), backbone UGM sudah melebihi 1MBps. Itu 5-6 tahun lalu, untuk jaman sekarang saya tidak tahu berapa bandwidth yang tak bisa saya nikmati padahal menjadi hak saya.

Regulator Gas dan Cara Pemasarannya

10 March 2009 (Tuesday)

(insert pic of explosion here)

Para pembaca yang terhormat, hari ini penulis mengalami suatu hal yang amat dalam hikmahnya. Jadi pada dasarnya begini. Hari ini, ada dua orang salesman dari perusahaan penjualan regulator tabung gas datang. Mereka bilang kalau regulator di rumah mutunya di bawah standar. Kenapa? Karena regulator di rumah tidak mampu menangani tekanan dalam tabung gas. Di bagian keluaran tabung gas tertulis “375″, sedangkan regulator mereka mengklaim dapat menangani sampai “888″ (penulis tidak paham apa arti angka-angka itu. Rasanya itu bukan atmosfer…winking

Yang SANGAT MENARIK ialah, dua orang itu salesman dari perusahaan yang dulu juga menjual regulator yang sekarang terpasang di rumah. dan keluarga penulis membeli barang yang “tidak mampu menangani tekanan dalam tabung gas” itu seharga 300ribu rupiah. Dan mereka, dengan yakinnya mengatakan, “kami bisa membantu, karena regulator bapak nya ini juga dari kantor kami, regulator 888 dari kami hanya seharga 165ribu rupiah”. Penulis mbatin, “EDAN! vulgar tenan le ngadol barang, opo ora isin ngakoni nek produk e sing mbiyen elek.” [*1]

Dengan sedikit kemampuan deduksi yang penulis miliki, penulis bisa melihat sebuah siasat pemasaran regulator gas– which not-so-surprisingly, isn’t very different from how Microsoft sell their products. Jadi pertama-tama jual alat sampah dahulu. Setelah beberapa waktu (dan konsumen kena getahnya), baru mereka berlagak jadi juru selamat dengan menghadirkan alat yang benar dan baik. Dan untuk lebih meyakinkan konsumen, alat “baru” itu dibandrol lebih murah daripada produk mereka yang lama.

Yang bikin penulis marah (sampai mencak mencak di blog yang sedang anda baca ini) ialah, mereka ini sudah bermain-main dengan nyawa manusia. Sejak awal mereka sudah tahu bahwa alatnya di bawah standar dan bisa membahayakan masyarakat, tapi tetap saja mereka jual dengan niat meraup keuntungan dari kurangnya informasi yang beredar di masyarakat plus ketakutan masyarakat terhadap bahaya malfungsi kompor gas. Orang-orang seperti itu –FUD exploiters– yang merupakan musuhnya gerakan Open Source.

Gambar regulator (yang masih terpasang di kompor gas di rumah penulis) terlampir. Doakan saja penulis tidak jadi korban ledakan kompor gas, karena penulis tidak akan buang uang ke dalam skema pemasaran macam ini. Wallahu ‘alam bissawab, laa haula wa laa quwwata illa billah.

Image Hosting by Picoodle.com

Tabung gas (regulator terpasang)

Image Hosting by Picoodle.com
Tekanan(?) tabung gas pada sambungan ke selang: (375)

Image Hosting by Picoodle.com

Regulator yang katanya “hanya 125″

[*1] Terjemahan Bahasa Indonesia: “GILA! cara mereka jual barang betul-betul vulgar, apa tidak malu mengakui kalau barangnya yang dahulu jelek.

Pengelolaan Media Simpan

7 March 2009 (Saturday)

Ada berbagai taktik yang diterapkan oleh para pembuat sistem operasi untuk mengoptimalkan kemampuan media simpan. Di antara siasat tersebut, ada sebuah paradigma yang menarik: bahwa pengelolaan media simpan tidak jauh berbeda dengan pengelolaan proses yang dijalankan oleh sistem operasi. Paradigma ini merupakan salah satu hal yang sangat mendasar pada sistem operasi Plan 9 from Bell Labs. Karena dirasa berguna, paradigma “media simpan = proses” hampir selalu dipakai dalam sistem operasi berbasis UNIX (/proc “filesystem” pada Linux, misalnya). Kalau Windows nggak tahu saya, lha wong ide-idenya Micro$oft selalu radikal. C:\>

Dalam artikel kali ini, penulis hendak membahas… isi harddisk penulis sendiri.

Besar Storage:

- Internal: 40gb (IDE, magnetik, Maxtor)

– Drive C:\ (NTFS, Sistem Operasi) : 9.7gb total, kosong 2.1gb

– Drive D:\ (NTFS, Data Pengguna) : 18.7gb total, kosong 1.0gb

– Drive L:\ (ext3, Linux) : 8.7gb, kosong 2.3gb (di-mount di windows dengan ext2ifs)

- External: 7gb (USB, solid-state, Kingston “Raja Batu”winking (FAT32) : 7.4gb, kosong 1.2gb

File:

- Drive C:\ (NTFS) : 44.671 file dalam 6.212 folder

- Drive D:\ (NTFS) : 19.102 file dalam 1.880 (mungkin mengandung najis)

- Drive L:\ (ext3) : 897 file dalam 143 folder (dalam proses penggantian ke Ubuntu 8.10)

- External (FAT32) : 45 file dalam 10 folder

Duplikasi:

– tidak ada, karena strategi backup (selengkapnya di bawah ini).

Strategi Backup:

– menggunakan DVD, dengan cara menuliskan imagefile semua data di folder pengguna, lalu imagefile tersebut dibakar ke DVD. backup dilaksanakan setiap awal bulan (sebelum tanggal 5). Backup dilaksanakan “as-is”, pengguna harus mengelola data sendiri.

Strategi Penamaan File:

– diserahkan kepada masing-masing pengguna, setiap pengguna diharuskan menyimpan ke folder yang sudah dialokasikan per-pengguna. Penggunaan spasi dan karakter Asia diperbolehkan, tapi pengguna tidak disarankan menggunakan karakter Eropa tambahan (misalnya ä), karena menyebabkan error pada partisi Linux.

Upaya Efisiensi:

– Jangan sering-sering ngopi pilem (especially the najis variety) dari komputer orang lain. Selain itu, untuk mencegah masuknya virus pada komputer telah terpasang antivirus, yang diperbaharui berkala.

SSD, Media Simpan Masa Depan

27 February 2009 (Friday)

mBak Dewi senyum-senyum sendiri di depan komputer. tiba-tiba si Toni, adiknya tersayang, menimpali dari belakang.
“hayo mBak Dewi lagi ngapain.”
“ah nggak, ini loh mBak lagi liat video yang dikirim mBak Sinta sama mas Jon pas honeymoon kemaren”
“oh, jadi isinya…”
“bukan pas bikin anaknya, dudut.”
si Toni ketawa sendiri. dia teringat masa-masa awal dia masih membawa sekotak disket ke warnet. Jaman sekarang juga dia masih ke warnet (kadang-kadang), tapi yang dibawa adalah harddisk portabel yang kemampuan menampung datanya melebihi total harddisk penulis.

Dewasa ini, kemampuan penyimpanan data pada komputer telah jauh melampaui bayangan para ilmuwan 20 tahun yang lalu. Di awal tahun 90an, memori komputer yang besarnya masih dalam hitungan megabyte harganya juga megarupiah (atau bahkan megadollar!) dan harddisk yang besarnya hanya 20mB (!) dikira orang akan berguna seumur hidup. Perkembangan komputer sangat, sangat cepat dan media simpan juga tidak lepas dari penerapan teknologi-teknologi komputasi paling terbaru.

Dalam artikel ini penulis hendak membahas SSD, atau Solid State Drive. Dikutip dari Wikipedia, SSD adalah media simpan yang menggunakan memori solid-state untuk menyimpan data tetap. “Solid-state” sendiri adalah (lagi-lagi dikutip dari Wikipedia) komponen, sistem, atau alat elektronik yang seluruhnya berdasarkan semikonduktor, misalnya transistor, chip mikroprosesor, atau memori gelembung. Solid-state merupakan hal yang biasa dalam elektronika dewasa ini, tapi menjadi tidak biasa ketika diterapkan pada harddisk yang umumnya berbasis motor penggerak + piringan magnetik.

Jadi pada intinya: SSD adalah RAM komputer, tapi datanya menetap.
Contoh SSD: USB Drive, dan “harddisk” laptop terutama pada laptop generasi terbaru (2009 ke atas).

SSD memiliki beberapa kelebihan dibanding harddisk cakram, misalnya:
- dalam SSD tidak ada bagian bergerak semisal motor, cakram atau kepala baca, jadi tidak ada suara dan tidak ada resiko kegagalan bagian bergerak.
- pendeknya jangka waktu antara “mulai dinyalakan” sampai “dapat digunakan”, karena SSD tidak perlu men-starter motor yang menggerakkan kepala baca.
- selain lebih cepat membaca data, juga kecepatan baca data lebih stabil. tidak perlu menyesuaikan posisi kepala baca untuk data yang bagian-bagiannya terpencar-pencar di seluruh media.
- bandel: jauh lebih tahan bekerja dalam kondisi-kondisi ekstrem semisal suhu tinggi, getaran, goncangan, bahkan benturan (dalam batasan tertentu).
- ukurannya lebih kecil daripada harddisk.
- dan lain-lain.

kekurangannya juga ada:
- MAHAL: ketika tulisan ini dinaikkan ke web (Februari 2009), perbandingan gigabyte-per-rupiah untuk SSD masih rendah dibandingkan harddisk.
- kurangnya kapasitas: harddisk sudah melewati angka 1 Terabyte, sedangkan SSD sebesar itu belum ada di pasaran untuk saat ini.
- terbatasnya daur bacatulis: sel penyimpanan data dalam sebuah SSD bisa aus kalau terus menerus dipakai, walaupun jarak antara mulai digunakan sampai aus umumnya sangat panjang.
- dan lain-lain.

SSD mulai lazim dipakai pada laptop, misalnya pada proyek “One Laptop Per Child” yang ditujukan untuk pendidikan anak-anak di negara berkembang. Penerapan SSD pada laptop OLPC sangat tepat, karena umumnya anak-anak yang akan menggunakan laptop OLPC hidup di wilayah yang keadaannya lebih sulit dibanding negara-negara maju.

Laptop EEE (yang bentuknya seperti laptop mainan itu) juga menggunakan SSD, untuk mengurangi ruangan yang dipakai.

Penulis sendiri yakin bahwa dalam beberapa tahun ke depan, semua media simpan akan berupa SSD. Ini terutama karena pengalaman penulis sendiri yang sering mengalami kegagalan cakram harddisk, yang berakibat “bad sector” ;-D. (Harddisk 640gb tewas mengenaskan karena kegagalan motor yang mengakibatkan cakram tergores oleh kepala baca, lol)

Beragam Sistem Operasi

20 February 2009 (Friday)

Jari-jemari tangan mBak Dewi tampak sibuk menari-nari di atas keyboard laptop. Wajahnya tampak serius, tatapan matanya tak lepas dari layar LCD. Sesekali dia berhenti, memeriksa ulang hasil ketikannya. Sepertinya dia sedang mengerjakan suatu paper yang ditugaskan oleh pak dosen tercinta dan harus dikumpulkan sore ini. Tiba-tiba dia berhenti mendadak, dan berseru,

“Asem, laptop ku hang lagi !!!”

Layar laptop tampak biru tua dengan tulisan-tulisan putih yang tidak bisa dipahami umat manusia.

Image Hosting by Picoodle.com

Apa gerangan yang terjadi? Sepertinya laptop mBak Dewi menjadi korban kegagalan sistem operasi, dalam hal ini termasuk keluarga sistem operasi Windows(tm) dari Microsoft(tm). Tapi apa sebetulnya “sistem operasi”?

Sistem operasi adalah sebuah program yang berjalan di tingkat paling bawah sebuah komputer, dan langsung berurusan dengan perangkat-perangkat keras komputer tersebut. Program-program lain harus melalui sistem operasi untuk bisa mempergunakan kemampuan perangkat keras. Contohnya, ketika tombol “Cetak” di Microsoft Word(tm) ditekan, Word(tm) mengirim data cetakan ke ke sebuah “pool” atau kolam data, yang lalu dialirkan sistem operasi Windows(tm) XP(tm) ke printer.

Dewasa ini, hampir semua komputer memiliki sistem operasi yang dapat diganti-ganti. Ketika Windows(tm) terasa tidak cocok (di kantong atau di nurani), orang bisa menggunakan Linux, dan sebaliknya. Bahkan kenyataannya, di dunia ini ada banyak sistem operasi selain Windows dan Linux, lengkap dengan kelebihan dan kekurangannya masing-masing.

Berikut ini beberapa sistem operasi yang sudah terkenal karena satu dan lain hal.

Microsoft Windows(tm):

Sistem operasi dari Microsoft yang banyak digunakan oleh umat manusia. Terkenal karena mudah dipakai dan mudah dipasang, bahkan oleh orang yang tak terlatih sekalipun. Di lain pihak, banyak dikeluhkan karena harganya yang tidak murah (untuk kantong mahasiswa Indonesia), plus sulit disesuaikan untuk kebutuhan pengguna. Contohnya, komponen tatapmuka grafis harus diinstal sekalipun komputer hanya akan digunakan untuk server.

Windows sendiri sebetulnya ada dua jenis, tipe Windows95 dan Windows NT. tipe Windows95 sudah tidak lazim ditemui jaman sekarang kecuali di komputer-komputer jaman perjuangan era pra 2000 yang menjalankan Win95, Win98, atau WinME. tipe ini mengutamakan kemudahan pemrograman dan kehematan sumber daya, sehingga tidak ada manajemen pengguna dan semua program dapat dengan mudah mengakses wilayah program lain, bahkan mengakses hardware tanpa malu-malu– ini biasanya penyebab “hang” di komputer, seperti yang dialami laptop mBak Dewi di atas.

tipe Windows NT sedikit lebih baik, di mana ada manajemen pengguna yang ketat dan setiap program, kecuali yang memiliki ijin administrator, dibatasi pada wilayahnya sendiri. yang termasuk tipe Windows NT adalah WinNT, Windows XP, Windows 2000, dan Windows Vista. “hang” biasanya terjadi karena driver pada sistem operasi yang tidak didesain dengan baik.

Apple Macintosh(tm):

Sistem operasi dari perusahaan Apple, yang terkenal karena konsistensinya baik dalam hal paradigma pemrograman maupun sistem tatap muka. Pada jaman dahulu kala sistem operasi ini hanya dapat dijalankan pada komputer yang diproduksi oleh Apple sendiri, yaitu komputer-komputer G1/G2/G3 yang prosesornya berbeda dengan komputer kebanyakan, yang berbasis Intel. Dewasa ini Apple sudah mulai memproduksi komputer-komputer berbasis prosesor Intel, dan Mac mulai bersaing dengan Windows dan sebangsanya.

Sistem operasi Macintosh kurang begitu dikenal di Indonesia, karena komputer produksi Apple pada umumnya lebih mahal daripada yang berbasis Intel ketika dibandingkan kemampuannya. Penulis sendiri baru sekali mencicipi Mac, di laptop seorang kawan yang dikaruniai kelebihan finansial oleh Tuhan YME.

Kelebihan sistem operasi Mac ialah (relatif) bebas virus komputer dan basis pengguna yang fanatik.

Linux:

Ini adalah sebuah sistem operasi berbasis UNIX (lihat entri setelah ini), dikembangkan oleh para pecinta komputer di internet. Muncul pada jaman perjuangan tahun 1994, dewasa ini Linux telah berevolusi menjadi sebuah sistem operasi serba bisa yang menyaingi Windows dalam pelbagai hal, mulai dari desktop sampai server.

Linux sendiri bisa mencapai tingkat sedemikian rupa karena paradigma pemrogramannya yang “Free Software”, yang berarti perangkat lunak bebas (bukan gratis!). Pada dasarnya, paradigma ini memastikan bahwa tidak ada perusahaan yang bisa mematenkan Linux dan lalu memonopoli sistem operasi ini. Organisasi yang berada di balik paradigma ini terutama GNU (singkatan dari GNU’s Not Unix), dan pengembangan Linux banyak bernaung di bawahnya. Atau lebih tepatnya, para pecinta komputer mengembangkan Linux sekehendak mereka masing-masing, dan tugas GNU adalah memastikan (secara hukum) bahwa peningkatan mutu Linux tidak hanya dinikmati oleh segelintir orang yang mengaku memiliki hak paten atas peningkatan tersebut. Selengkapnya lihat di sini.

Karena paradigma ini, di dunia ini ada begitu banyak “Linux”. Yang lebih tepat ialah, ada banyak macam Linux, seperti ada banyak macam mie. Ada mi ayam, mi goreng jakarta, magelangan, dan sebagainya. Pelbagai macam Linux itu disesuaikan dengan kebutuhan pengguna, dan para pengguna silahkan bingung memilih mana yang paling cocok.

Kelebihan Linux ialah aman dari virus, mudah disesuaikan dengan kebutuhan pengguna, plus bebas bas bas bas… Penulis menyarankan Ubuntu bagi saudara-saudara yang ingin mencoba Linux. Mengenai pentingnya kebebasan berkomputer, akan penulis bahas di lain kesempatan.

Unix-like:

Jaman sekarang, komputer umumnya berbentuk PC alias Personal Computer yang bisa ditaruh di atas meja. Tapi jaman dahulu komputer besarnya bisa melebihi kulkas atau mesin cuci atau bahkan mobil pickup, dan harus dibagi-bagi untuk banyak pengguna karena mahalnya harga satu unit komputer. Paradigma pemrograman jaman dahulu ialah sebuah sistem operasi multipengguna, yang menerapkan batas-batas yang jelas antara pengguna satu dengan pengguna lainnya untuk menghindari monopoli sumber daya sistem. Bayangkan saja kalau seorang pengguna membanjiri harddisk dengan multimedia semisal Naruto atau Heroes, yang lain bisa tidak kebagian.

Dari paradigma ini lahirlah sebuah sistem operasi bernama UNIX. Sebetulnya ini lebih tepat disebut “konsep”, karena tidak jelasnya pelbagai macam hal tentang UNIX itu sendiri akibat tarik-ulur kepentingan antar vendor komputer pada masa itu. Bahkan, tarik-ulur ini yang menyebabkan lahirnya pelbagai macam sistem operasi yang meniru UNIX untuk menghindari jerat hukum, yang lalu dikenal dengan “Unix-like OSes”. Beberapa konsep UNIX yang paling lazim diterapkan ialah multipengguna, perijinan file (boleh buka? boleh tulis? boleh jalankan?), dan sistem komunikasi antar proses.

Linux sendiri pada dasarnya adalah sebuah sistem operasi Unix-like. Unix-like lain yang terkenal antara lain FreeBSD dan OpenBSD, yang paradigma kebebasannya serupa tapi tak sama dengan Linux. Mac sendiri juga sedikit banyak merupakan Unix-like, walaupun tampaknya tidak demikian.