Minix adalah suatu sistem operasi yang dikembangkan untuk tujuan pendidikan. Bagi penguna, Minix tampak seperti POSIX-compliant Unix, tetapi sebenarnya di dalamnya dibangun dengan suatu modular modern yaitu micro kernel architecture. Minix bukan hanya suatu mainan, ia merupakan suatu sistem operasi yang bermanfaat.
Sekilas Andrew Tanenbaum
Operating Systems: Design and Implementation and Minix menjadi inspirasi Linus Torvalds’ untuk menciptakan cikal bakal Linux. Di Just For Fun autobiografi, Torvalds menguraikan dirinya dengan ungkapan “buku yang meluncurkan aku ke kemuliaan yang baru”. Tanenbaum meneruskan perjalanan tulis-menulisnya dengan menulis the Amoeba distributed operating system, memaksimalkan manfaat penggunaan dari ide microkernel.
II. PERKEMBANGAN dan DESKRIPSI ARSITEKTUR
Tanenbaum mula-mula mengembangkan MINIX untuk kompatibilitasnya dengan komputer mikro IBM PC/AT dan IBM PC yang tersedia pada saat itu. MINIX 1.5, yang dirilis pada 1991, mampu mendukung sistem MicroChannel IBM PS/2 dan juga ported pada arsitektur SPARC dan Motorola 68000, juga mendukung Atari ST, Commodore Amiga, platform komputer Sun SPARCstation dan Apple Macintosh. Ada pula unofficial ports untuk Intel 386 PC compatibles (di 32-bit protected mode), National Semiconductor NS32532, ARM and INMOS transputer prosesors. Meiko Scientific menggunakan versi awal dari MINIX sebagai basis sistem operasi MeikOS untuk komputer yang berdasar pada transputer Computing Surface parallel computers. Versi MINIX yang bisa berjalan sebagai user process di bawah SunOS juga tersedia.
Tuntutan untuk arsitektur yang berbasis 68k menyusut, meski begitu MINIX 2.0, yang dirilis pada 1997 hanya tersedia untuk arsitektur Solaris-hosted SPARC dan x86. Ini adalah subjek utama dari edisi kedua buku Tanenbaum dengan Albert Woodhull yang diproduksi dalam CD-ROM yang disertai dengan buku. MINIX 2.0 disempurnakan dengan POSIX 1 yang mendukung untuk 386 dan prosesor mode 32-bit yang bakal muncul selanjutnya dan menggantikan protokol Amoeba network yang tercakup di MINIX 1.5 dengan TCP/IP stack. Unofficial port MINIX 2.0.2 untuk 68020 yang berbasis ISICAD Prisma 700 workstation dan Hitachi SH3-based HP Jornada 680/690 PDA juga dikembangkan.
Pada Minix 2.0 bisa digunakan untuk arsitektur yang lain, mencakup Sun SPARC, dan dapat dijalankan dibawah suatu emulator (Bochs, Qemu) atau suatu virtualizer (VMWARE, Virtual PC) pada banyak platform, mencakup Unix, Linux, Microsoft Windows, dan MacIntosh OS.
MINIX 3
MINIX 3 diumumkan di depan umum pada 24 Oktober 2005 oleh Andrew Tanenbaum selama pidatonya pada puncak konferensi ACM Symposium Operating Systems Principles. Walaupun masih bertindak sebagai suatu contoh untuk edisi yang baru tentang buku teks Woodhull’s dan Tanenbaum, Minix 3 dirancang kembali agar “dapat dipakai sebagai sistem yang serius pada resource-limited dan embedded computers dan untuk aplikasi yang menuntut keandalan tinggi”. MINIX 3 sekarang ini hanya mendukung sistem IA-32 architecture PC compatible systems. Minix 3 tersedia dalam suatu format LiveCD yang mengijinkan untuk digunakan pada suatu komputer tanpa menginstalnya di hard drive dan di beberapa versi ia kompatibel dengan sistem emulation/sistem virtualisasi, mencakup Bochs, Qemu, VMware, dan Virtual PC.
MINIX 3 adalah suatu sistem operasi open source baru yang dirancang untuk bisa diandalkan, fleksibel, dan terjamin. Minix 3 sedikit banyak didasarkan pada versi MINIX yang sebelumnya, tetapi pada dasarnya ada banyak perberbedaan. MINIX 1 dan 2 diharapkan seperti peralatan mengajar; sedang MINIX 3 menambahkan gol baru dengan kemampuannya yang dapat dipakai sebagai sebuah sistem yang serius pada resource-limited dan ditempelkan pada komputer dan untuk aplikasi yang menuntut keandalan tinggi.
OS yang baru ini adalah sangat kecil, dengan bagian yang berjalan pada kernel mode di bawah 4000 bentuk dari kode yang bisa dieksekusi. Bagian yang berjalan pada user mode dibagi menjadi modul kecil, yang membatasi dengan baik dari satu sama lain. Sebagai contoh, masing-masing device driver dijalankan sebagai proses user mode yang terpisah sehingga suatu bug dalam suatu driver (betul-betul sumber yang paling besar tentang bug di sistem operasi apapun), tidak bisa membawa keseluruhan OS. Sebenarnya, kebanyakan dari waktu ketika suatu driver menghancurkan dirinya, secara otomatis digantikan tanpa menuntut intervensi pemakai yang manapun, tanpa melakukan booting kembali, dan tanpa mempengaruhi program yang berjalan. Fitur ini, sebagian kecil dari kernel code, dan aspek lain yang sangat ditingkatkan adalah keandalan sistem.
Versi 3.1.2 dirilis 8 Mei 2006 yang berisi X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine, dan lebih dari 400 program dari UNIX utility programs yang lain. Dengan penambahan X11, versi ini menandai transisi meninggalkan text-only system. Corak yang lain dari versi ini, yang akan ditingkatkan pada masa depan, adalah kemampuan dari sistem untuk melawan device driver yang hancur, dan dalam banyak kasus, device driver yang hancur secara otomatis digantikan tanpa mempengaruhi proses running. Dengan cara ini, MINIX mampu melakukan penyembuhan-diri (self healing) dan dapat digunakan di aplikasi yang menuntut keandalan tinggi. MINIX 3 tersedia secara cuma-cuma di www.MINIX3.org.
MINIX 3 pada awalnya ditargetkan untuk area berikut:
o Aplikasi di mana keandalan yang sangat tinggi diperlukan;
o Single-Chip, small-RAM, low power;
o laptop $ 100 untuk anak-anak dunia ketiga;
o Sistem yang ditempelkan (misal pada kamera, perekam DVD, cell phone);
o Aplikasi di mana GPL terlalu membatasi ( MINIX 3 menggunakan lisensi BSD-type);
o Pendidikan ( contoh: kursus sistem operasi pada universitas);
Fitur MINIX 3
- POSIX compliant
- Networking with TCP/IP
- X Window System
- Languages: cc, gcc, g++, perl, python, etc.
- Over 400 UNIX programs
- Many improvements since V2
- Full multiuser and multiprogramming
- Device drivers run as user processes
- High degree of fault tolerance
- Full C source code supplied
Perbedaan antara MINIX 3 dan versi utama MINIX 1 dan 2 adalah dikembangkannya tool untuk membantu masyarakat belajar tentang perancangan sistem operasi. MINIX 3 melakukan hal yang sama, dan menyediakan suatu sistem operasi yang modern dengan banyak tool yang lebih baru seperti X window system and many other UNIX applications.
Minix-Vmd
Minix-vmd adalah sistem operasi open source yang diciptakan dari Minix, dan ditambahkan beberapa fitur tambahan seperti virtual memory dan X Window System support. Minix-Vmd hanya menggabungkan IA-32 dan compatible microprocessor architectures. Ia ditulis oleh banyak pengarang yang juga pengembang Minix, di Vrije Universiteit (VU) Amsterdam yang merupakan singkatan kata dari ” VU Minix Distribution”.
Sistem operasi ini, menurut pengarangnya, tidak dimaksudkan untuk menjadi OS yang digunakan secara umum dan diciptakan untuk memenuhi kebutuhan spesifik yang mereka rasa lebih baik dibanding menjadi OS yang digunakan secara umum seperti Linux. Itu pun tidak untuk tujuan pendidikan seperti orangtuanya, Minix.
Meskipun demikian, OS ini mungkin telah menarik perhatian orang untuk berbagai tujuan yang lain, karena pemakaian sumber dayanya yang kecil dibandingkan dengan OS-OS lain dan faktor-faktor yang lain.
MINIX from Scratch
Minix from Scratch (MFS) adalah suatu komputasi proyek yang mencari dokumen proses pembuatan sistem operasi Minix dari permulaan hingga akhir (“from scratch”), untuk tujuan pendidikan sistem operasi bagi para siswa dan penghobi tentang konsep desain sistem Andrew Tanenbaum yang diterapkan di Minix. MFS diilhami oleh proyek Linux From Scratch dan Minix OS sendiri.
Tim proyek ini terdiri dari Will Senn, Terry Wong, dan Rob Gonzalez; proyek ini bertugas untuk mencari secara aktif pengembang perangkat lunak yang baru.
III. FILE SYSTEM
Sistem File MINIX
Minix ditulis sejak awal mula oleh Andrew S. Tanenbaum pada tahun 1980, yang serupa dengan sistem operasi Unix-like yang source code-nya bisa digunakan secara cuma-cuma dalam bidang pendidikan. Sistem file Minix dirancang untuk penggunaan dengan Minix; yang menyalin struktur dasar dari file sistem Unix tapi dengan menghindari feature-feature kompleks demi kepentingan memelihara kebersihan source code, yang jelas dan sederhana, agar keseluruhan hasil dari Minix mampu menjadi bantuan pengajaran yang bermanfaat.
Ketika Linus Torvalds pertama kali memulai menulis inti sistem operasi Linux-nya (1991), ia sedang bekerja di suatu mesin yang menjalankan Minix, sehingga rilis awalnya mendasarkan pada banyak fungsi di subsistem Minix. Sampai April 1992 saat pengenalan tentang Extended file system, Linux masih mengunakan file sistem Minix. Format tersebut masih digunakan oleh beberapa distribusi Linux untuk bootable disk dan untuk situasi lain di mana suatu file sistem sederhana dan ringkas diperlukan.
Desain dan implementasi
Sebuah file sistem Minix mempunyai enam komponen:
• Boot Block adalah blok berisi boot loader yang berfungsi me-load dan menjalankan sistem operasi pada saat startup sistem yang selalu disimpan di blok pertama.
• Blok yang kedua adalah Superblock yang menyimpan data tentang file sistem, yang mengijinkan sistem operasi untuk menempatkan dan memahami struktur sistem file yang lain. Sebagai contoh, banyaknya inodes dan zone, ukuran dari dua bitmaps dan memulai blok pada suatu area data.
• Inode bitmap adalah suatu peta sederhana dari inodes yang menaksir bagian yang digunakan dan bagian yang bebas dengan menampilkannya sebagai satu (untuk yang digunakan) atau nol (untuk yang free).
• Zone bitmap bekerja dengan cara yang sama seperti inode bitmap, kecuali pada taksiran zone.
• Inodes area. Masing-Masing file atau direktori diwakili dengan suatu inode, yang merekap metadata dengan mencakup type (file, directory, block, char, pipe), id untuk user dan group, tiga timestamps untuk merekam tanggal & waktu dari akses terakhir, modifikasi terakhir dan perubahan status terakhir. Suatu inode juga berisi daftar alamat yang menunjuk zone di area data di mana file atau data direktori benar-benar disimpan.
• Data area adalah komponen yang paling besar dari sistem file, menggunakan mayoritas ruang. Data area adalah di mana file dan data direktori yang nyata disimpan.
[muchad 2006]