Unix, GNU, Linux, dan Distribusi Linux

501

(Tulisan pekan M11 mata kuliah Jejaring Sosial dan Konten Kreatif, Universitas Gunadarma.)

Unix

Unix adalah sebuah sistem operasi yang dikembangkan oleh AT&T Bell Labs. Proyek ini dimulai pada musim panas tahun 1969, diketuai oleh Ken Thompson dan Dennis Ritchie. Versi pertama Unix dirilis pada Maret 1971, disusul versi kedua setahun kemudian.

Pernah dengar istilah Unix timestamp? Itu merupakan jumlah detik yang berlalu sejak 1 Januari 1970 pukul 00:00. Di sistem operasi GNU/Linux semacam Ubuntu atau bahkan di MacOS, kita bisa melihat nilai ini dengan perintah date +%s:

unix timestamp

Ken Thompson dan Dennis Ritchie-lah yang menciptakan B, bahasa pemrograman yang didukung di Unix versi awal. Pada tahun 1972, Ritchie menulis ulang dan memperbaiki bahasa B, menjadi bahasa pemrograman C. Sebagian besar komponen Unix ditulis dalam bahasa C.

(Bahasa B dikembangkan berdasarkan bahasa yang sudah ada sebelumnya, yaitu BCPL, kemungkinan ini alasan mengapa namanya "B".)

BSD

Selama satu dasawarsa sejak tahun 1970, AT&T membagikan Unix dengan beberapa lembaga pendidikan dan organisasi komersial, sehingga menyebabkan lahirnya banyak versi Unix. Yang paling menonjol di antaranya adalah versi pendidikan yang dibangun oleh Computer Systems Research Group dari University of California, Berkeley (UCB). Versi ini dikenal luas sebagai Berkeley Software Distribution (BSD).

Unix versi BSD dan Unix versi AT&T (bernama System V (baca: system five)) kemudian bersaing untuk menjadi Unix versi standar, versi yang diakui. System V menang, tapi BSD tidak kalah tanpa meninggalkan jejak; FreeBSD, NetBSD, dan OpenBSD terlahir darinya. Unix versi 10 dari Bell Labs dirilis pada tahun 1989. Versi terakhir dari BSD dirilis pada tahun 1995.

(Lucunya, BSD lebih populer di lembaga pendidikan dan pemerintahan.)

Berbagai sistem operasi buatan Apple, termasuk MacOS dan iOS, adalah sistem operasi Unix-like, dibuktikan dengan MacOS yang memiliki Single UNIX Specification. Adapun MacOS (dan OS dari Apple lainnya) bersifat kode sumber tertutup dan komersial.

Jadi sampai di sini, kita mengerti dua versi sistem operasi legendaris Unix: BSD dan System V.

GNU

GNU adalah singkatan dari GNU's Not Unix!

Proyek GNU dicetuskan oleh Richard Stallman pada September 1983, tak lepas dari pengaruh Unix yang sedang berkembang di masa itu; tujuan Stallman adalah membuat sistem operasi mirip Unix yang bebas: orang memiliki kebebasan untuk menyalin, mengembangkan, memodifikasi, dan mendistribusikan perangkat lunak, serta redistribusinya tidak dibatasi. (Ingat: kode sumber Unix bersifat tertutup).

Dua tahun kemudian, di tahun 1985, Stallman membentuk Free Software Foundation (FSF), sebuah organisasi nirlaba yang ingin mempromosikan kebebasan dalam pengembangan perangkat lunak.

gnu symbol

Proyek GNU telah menciptakan banyak produk penting seperti GNU Compiler Collection (gcc), GNU Debugger, GNU Emacs text editor (Emacs), GNU build automator (make), dan yang paling banyak digunakan saat ini: GNU General Public License (GPL).

Proyek GNU juga telah meraih banyak pencapaian besar, menciptakan banyak alat (tools) yang mirip dengan apa yang ada di Unix. Namun, GNU masih kekurangan komponen penting, bagian terakhir untuk membuatnya menjadi sistem operasi yang lengkap, yaitu Kernel, bagian yang menangani kontrol dan komunikasi dengan perangkat keras (CPU, RAM, dan lain-lain)... untuk saat itu.

Linux

simbol Linux

Pada tanggal 25 Agustus 1991, seorang mahasiswa di Finlandia bernama Linus Torvalds memperkenalkan produk yang ia buat, yang kemudian menjadi Kernel Linux. Inilah yang ditulis Linus di newsgroup di Usenet:

I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since April, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months […] Yes — it’s free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have. […] It’s mostly in C, but most people wouldn’t call what I write C. It uses every conceivable feature of the 386 I could find, as it was also a project to teach me about the 386. As already mentioned, it uses a MMU, for both paging (not to disk yet) and segmentation. It’s the segmentation that makes it REALLY 386 dependent (every task has a 64Mb segment for code & data — max 64 tasks in 4Gb. Anybody who needs more than 64Mb/task — tough cookies). […] Some of my “C”-files (specifically mm.c) are almost as much assembler as C. […] Unlike minix, I also happen to LIKE interrupts, so interrupts are handled without trying to hide the reason behind them.

Hasil karyanya itu mendapat dukungan dari banyak pihak.

Kombinasi kernel Linux dan perangkat lunak GNU menciptakan sistem operasi pertama yang sepenuhnya gratis. Nama lengkapnya adalah GNU/Linux.

Dengan kata lain: kernel Linux + berbagai perangkat lunak GNU = GNU/Linux.

Paham??

Anyway, orang terbiasa menyebut OS itu hanya dengan sebutan "Linux", misalnya saya sendiri. Linux hanyalah kernelnya saja. Hal ini sempat menuai kontroversi karena ini merendahkan peran GNU.

Dan tambahan lagi, GNU/Linux tidak menggunakan komponen dari Unix / BSD. Semua dibuat dari nol... agar menyerupai Unix. Yap, itulah inti semua perjuangan ini: membuat kopian sebuah sistem operasi dan menjadikannya gratis.

Distribusi (Distro) Linux

Seperti kita ketahui, Linux hanyalah kernel, dan GNU menyediakan alat / tools yang diperlukan untuk menggunakan kernel itu. Kita dapat dengan bebas menentukan konfigurasi Kernel dan bagaimana cara menginstal serta menggunakan perangkat lunak di GNU/Linux.

Beberapa organisasi dan perusahaan melakukannya dengan cara menggabungkan Kernel Linux dengan utilitas atau manajer paket untuk membuat distribusi sistem operasi yang lengkap. Inilah yang disebut dengan Distribusi Linux, atau Distro.

Sebuah distro linux bisa dibangun di atas distro lainnya, dengan atau tanpa perubahan (alias cuma reskin doang...). Salah dua distro tertua adalah Debian dan Slackware (1993). Ada juga distro-distro asing semacam elementary OS dan Pop!_OS.

Berikut secuil daftar distro:

  • Debian
    • Ubuntu
      • Linux Mint
      • elementary OS
      • Pop!_OS
  • Fedora
    • Red Hat Enterprise Linux (RHEL)
      • CentOS
      • Oracle Linux
  • openSUSE
  • Arch Linux
    • Mandriva
  • Gentoo
  • Slackware

Ada yang familiar dengan distro di atas?

my Pop_OS

Tangkap layar Pop!_OS, sebuah distro Ubuntu

Bagaimana dengan Android? Android adalah sistem operasi mobile yang dibangun di menggunakan kernel Linux yang dimodifikasi. Jadi bisa dibilang Android adalah Linux,.. tapi ada tapinya. Dalam hal ini, istilah "Linux" jadi agak abu-abu. Silakan baca artikel yang membahas apakah Android itu distro Linux atau bukan di sini.

Lain-lain

Versi Kernel Linux

Per tulisan ini dibuat (Desember 2021), versi kernel Linux terbaru adalah 5.15.

Sistem Operasi Unix-like

Saat menyebutkan macOS di atas, saya juga menyebutkan istilah "Single UNIX Specification (SUS)". Sebuah sistem operasi disebut Unix-like jika memiliki SUS, misalnya macOS. (Perhatikan, UNIX di SUS ditulis dengan huruf kapital semua).

GNU/Linux dan distro-distronya bukan Unix-like.

diagram Unix

Diagram garis waktu perkembangan Unix dan sistem operasi yang berkaitan dengan Unix

Bagaimana dengan Microsoft Windows?

Well, sejarah sistem operasi Windows berawal dari 86-DOS, yang kemudian diubah namanya menjadi MS-DOS. Sistem operasi Windows dibangun di atas MS-DOS ini, dimulai dari Windows 1.0. Adapun Windows 1.0x telah memiliki graphical user interface (GUI). Ujung tombak pengembangan Windows 1.0 adalah Bill Gates.

Pada tahun 1993, MS merilis Windows NT, yang bertujuan melengkapi jajaran sistem operasi Windows lainnya yang berbasis MS-DOS. Windows NT ini adalah sistem operasi Windows pertama yang sepenuhnya mendukung alamat memori 32 bit (sebelumnya hybrid 16 dan 32 bit). Selain itu, Windows NT memiliki fitur-fitur baru yang lebih canggih, misalnya NTFS, serta GUI yang lebih sedap. NT sendiri adalah singkatan dari "New Technology", namun istilah ini sudah tidak digunakan.

Pada akhirnya keluarga Windows NT inilah yang paling populer dan aktif berkembang. (Windows 95, 98, dan ME bukanlah bagian dari keluarga Windows NT).

Windows NT versi terbaru adalah versi 10, termasuk di dalamnya adalah Windows 10 dan 11.

Referensi
  • Itchishiki Satoshi. Unix & Linux. The Origin and The Difference di Medium
  • Wikipedia dan sumber lainnya