Di Indonesia para pemakai komputer lebih mengenal sistem operasi
alternatif Linux ketimbang varian Unix BSD (FreeBSD, NetBSD, dan
OpenBSD). Tulisan ini akan memaparkan sejarah Unix BSD dan beberapa
aspek non teknis dari varian Unix BSD.
Sejarah
Perjalanan
panjang Varian Unix BSD dimulai pada tahun 1973, dimana pada waktu itu
Prof Bob Fabry dari Universitas California Berkeley menyatakan minat
untuk mendapatkan sistem operasi Unix kepada Ken Thompson dan Dennis
Ritchie pada kegiatan ”Symposium on Operating Systems Principles” di
Universitas Purdue. Prof Bob Fabry bermaksud mendapatkan Unix untuk
eksperimen pada sebuah mainframe milik Universitas Berkeley. Pada tahun
1974 sebuah tape yang berisi Unix versi 4 datang ke Berkeley dan
di-install-kan oleh mahasiswa pasca sarjana Keith Standiford pada
komputer PDP-11/45.
Meskipun komputer PDP-11/45 pada saat itu diklaim
komputer yang cukup mudah untuk menginstall Unix, namun pada
kenyataannya berbagai macam masalah dihadapi oleh Keith Standiford dalam
menjalankan Unix pada PDP-11/45, karena itu Ken Thompson di Bell Labs
AT&T New Jersey melakukan remote debugging pada mesin PDP-11/45
milik Universitas Berkeley di California, karena Universitas Berkeley
hanya memiliki 300-baud acoustic-coupled modem, maka Ken Thompson
melakukan panggilan terlebih dahulu kepada Keith Standiford diruangan
komputer PDP-11/45 tersebut untuk selanjutnya meminta Keith Standiford
memasukkan sambungan telepon tersebut ke modem. Dengan demikian Ken
Thompson dari New Jersey di pantai timur Amerika Serikat dapat melakukan
remote debugging ke Universitas California Berkeley di pantai barat
Amerika Serikat.
Masalah yang lain muncul yaitu karena status
komputer PDP-11 adalah milik bersama Departemen Matematika dan
Statistika juga, departemen tersebut ingin menjalakan RSTS dari DEC,
sedangkan Departemen Ilmu Komputer ingin menjalan Unix. Akhirnya kata
sepakat dicapai dengan menjalankan masing-masing sistem secara
bergantian.
Pada tahun 1975, Departemen Ilmu Komputer Universitas
California Berkeley membeli komputer baru sebuah DEC 11/70. Pada tahun
yang sama Ken Thompson menjadi Profesor Tamu pada almamaternya yaitu
Universitas California Berkeley, Ken Thompson datang dengan membawa
sistem operasi Unix versi 6. Dua orang mahasiswa pasca sarjana yaitu
Bill Joy dan Chuck Haley membantu Ken Thompson untuk meng-hacked Unix
versi 6 tsb pada komputer DEC 11/70. 1
Artikel Populer IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pada
akhir musim panas 1976, Ken Thompson kembali ke Bell Labs New Jersey,
seiring dengan kepergian Ken Thompson, Bill Joy dan Chuck Haley mulai
mengoprek kernel sistem operasi Unix versi 6 tersebut, berbekal dengan
pengalaman satu tahun terakhir mengoprek Unix bersama Ken Thompson
sebelumnya.
Akhirnya pada awal tahun 1977, Bill Joy mengeluarkan
”Berkeley Software Distribution”, pada distribusi pertama mencakup pula
compiler Pascal dan editor Ex. Pada tahun 1978 Bill Joy memutuskan
software yang ada pada distribusi harus diperbaharui seiring dengan
banyaknya feedback dari komunitas, hasilnya pada tahun 1978 tersebut
keluar ”Second Berkeley Software Distribution” atau disingkat 2BSD,
termasuk didalamnya compiler Pascal, editor vi dan termcap.
Pada
tahun 1978, Departemen Ilmu Komputer Universitas Berkeley, membeli
sebuah komputer VAX-11/780 dari DEC, meskipun komputer tersebut sudah
memiliki sistem operasi sendiri yang dikenal dengan nama VMS, namun
Departemen Ilmu Komputer menginginkan Unix 32/v (Seventh Edition) dapat
berjalan diatas komputer VAX-11/780 tersebut. Lagi-lagi Bill Joy diminta
membantu melakukan porting Unix 32/V tersebut untuk mesin VAX-11/780,
pada awal Januari 1979, akhirnya Unix 32/V (Seventh Edition) dapat
berjalan dengan mulus pada komputer VAX tersebut, pada saat itu juga
Bill Joy, memutuskan untuk melakukan porting 2BSD untuk komputer VAX
dengan pertimbangan komputer VAX tersebut jauh lebih canggih
(berarsitektur 32 bit) daripada PDP-11 yang hanya 16 bit. Pada bulan
Januari 1979 distribusi lengkap telah diselesaikan hasilnya 3BSD sebagai
distribusi sistem VAX pertama dari Berkeley.
Pada musim gugur 1979,
Prof Bob Fabry, merepson keinginan DARPA (Defense Advanced Research
Projects Agency ) untuk memperbaiki 3BSD untuk kepentingan komunitas
DARPA, dimana pada waktu itu untuk keperluan mengkoneksikan semua
komputer pada pusat-pusat riset. Untuk lebih memantapkan pekerjaan dari
DARPA tersebut, Prof Bob Fabry, membentuk CSRG (Computer System Research
Group).
Pada Oktober 1980 lahir 4BSD, selama 9 bulan kedepan sejak
kelahirannya sebanyak 150 kopi telah dikirimkan. Lisensi dibuat
berdasarkan institusi bukan per komputer. Karena sudah tersebar luas
4BSD banyak menuai kritik terutama masalah kinerja yang dinilai masih
lamban daripada VMS. Untuk itu pada Juni 1981, 4.1BSD lahir dengan
berbagai macam perbaikan. Pada awalnya distribusi tersebut akan diberi
nama 5BSD, namun pihak AT&T keberatan karena akan membingungkan
pelanggan, karena pada saat itu terdapat juga sistem operasi Unix system
V, untuk itu Berkeley mengalah dan memberi nama distribusi tersebut
4.1BSD. DARPA cukup puas dengan hasil yang diperoleh dan berminat untuk
memperpanjang kontrak dengan CSRG. DARPA berharap hasil kerja berikutnya
adalah: fast file system untuk mendukup teknologi disk yang ada pada
saat itu, fasilitas komunikasi interproses agar para peneliti DARPA
dapat bekerja dalam lingkungan distributed computing, dan fasilitas
networking yang terintegrasi sehingga dapat berpartisipasi dalam
ARPAnet. Sebagai pendahuluan release pada April 1982, dikeluarkan
4.1aBSD untuk keperluan lokal saja (Berkeley dan DARPA), pada saat itu
banyak kritik dan saran perbaikan untuk 4.1aBSD, untuk itu pada Juni
1982 dikeluarkan 4.1bBSD. Release 4.1b BSD ini cukup stabil dan baik
maka pada April 1983 dikeluarkan 4.1c BSD. Dengan sedikit perbaikan pada
4.1c BSD, pada Agustus 2003 dikeluarkan 4.2BSD. 4.2BSD pada saat itu
sangat populer, lebih dari 1000 institusi mempunyai lisensi 4.2BSD
tersebut, para vendor pun pada saat itu lebih suka menawarkan 4.2BSD
ketimbang Unix system V karena 4.2BSD mempunyai fasilitas Networking dan
Fast File System.
Dengan berbagai macam kritik dan feedback, maka
pada tengah 1986 di-release 4.3BSD, selanjutnya pada Juni 1988
di-release 4.3BSD Tahoe dan pada Juni 1990 di-release 4.3BSD Reno.
Selain release tsb ada pula release networking yaitu: 4.3BSD Net1 pada
Maret 1989 dan 4.3BSD Net2 pada Juni 1991. Release ini tidak tidak
memiliki source code yang bersifat proprietary sehingga dapat secara
bebas didistribusikan dalam bentuk source code maupun binary.
Release
terakhir dari CSRG adalah 4.4BSD, pada saat yang bersamaan juga CSRG
me-release 4.4BSD-Lite yang berisi source code non-proprietary dan users
tidak perlu memiliki lisensi Unix, namun 4.4BSD-Lite ini mendapat aksi
legal dari USL (Unix System Laboratories) yang mengklaim 4.4BSD-Lite
mengandung source code asli Unix dari AT&T, hal ini berlanjut hingga
ke pengadilan. Setelah 1 tahun proses pengadilan berlangsung akhirnya
USL dan BSD mencapai kata sepakat (damai), sisa uang yang ada pada CSRG
dipakai untuk me-release 4.4BSD-Lite release 2 pada Juni 1995.
Varian BSD
Asal
muasal varian BSD berasal dari hasil kerja keras Bill Jolitz yang
memporting 4.3BSD Net2 kedalam arsitektur 386, hasilnya disebut 386/BSD.
Sebagian orang-orang yang menggunakan 386/BSD kemudian membentuk grup
yang dikenal dengan nama NetBSD karena Bill Jolitz pada saat itu sudah
sangat sibuk dengan pekerjaan utamanya, sehingga tidak sempat untuk
melakukan perbaikan terhadap 386/BSD. Grup NetBSD ini yang kemudian
memelihara dan memperbaiki 386/BSD. Kelompok NetBSD ini memilih tujuan
untuk mendukung sebanyak mungkin platform/arsitektur. Kelompok FreeBSD
terbentuk beberapa bulan setelah NetBSD terbentuk dengan tujuan
mendukung arsitektur PC i386 saja pada awalnya. Kelompok OpenBSD
terbentuk belakangan ini berpisah dari kelompok NetBSD, dengan fokus
pada aspek keamanan.
Secara umum ada dua turunan dari 4.4BSD ini yaitu:
1. Komersial
2. Bebas (menggunakan lisensi BSD)
Yang termasuk kedalam varian BSD komersial adalah:
1. BSD/OS (http://www.bsdi.com)
BSD/OS dipasarkan oleh BSD, Inc.
2. DarwinOS (http://developer.apple.com/darwin/)
Darwin
merupakan bagian penting dari sistem operasi MacOS X. Darwin
menggabungkan beberapa teknologi dari Mach dengan sistem operasi 4.4BSD.
Yang termasuk kedalam varian BSD bebas (menggunakan lisensi BSD)
1. NetBSD (http://www.netbsd.org)
NetBSD
fokus pada penyediaan sistem operasi NetBSD pada berbagai macam
arsitektur komputer, saat ini sudah mendukung lebih dari 40 arsitektur,
mulai dari 64 bit Alpha Server dan desktop system hingga handheld dan
embeded system.
2. FreeBSD (http://www.freebsd.org)
FreeBSD
fokus pada optimalisasi PC i386 dan Alpha, sekarang ini juga sudah
mendukung IA-64, PC-98, dan UltraSparc. FreeBSD dikenal dengan fitur
networking yang cukup handal sehingga digunakan pada web server yahoo (http://www.yahoo.com) dan pada ftp server CDROM,Inc (ftp://ftp.cdrom.com)
3. OpenBSD (http://www.openbsd.org)
OpenBSD
fokus pada aspek keamanan (security) dan kriptografi (cryptography).
OpenBSD merupakan proyek yang terpisah dari NetBSD pada tengah 1995.
Model Pengembangan
Pada
varian BSD (NetBSD, FreeBSD, dan OpenBSD) model pengembangan sistem
operasi tersebut terbuka namun mempunyai hirarki tertentu yaitu:
1.
Contributor, adalah developer yang menulis code, patch, atau dokumentasi
namun tidak memiliki hak untuk menulis atau membuat sebuah file dalam
source tree. Jika pekerjaan yang mereka lakukan ingin dimasukkan, maka
harus diperiksa terlebih dahulu oleh seorang commiter atau dengan
persetujuan beberapa orang commiter.
2. Commiter adalah developer
yang memiliki hak menulis dan mengakses source tree, dalam lingkup CVS,
memiliki hak commit. Secara tipikal, seorang commiter bekerja hanya pada
bagian-bagian terpilih dari keseluruhan project.
3. Core Team,
membimbing secara keseluruhan arah dan tujuan proyek, dan membuat
keputusan akhir dalam kasus perselisihpahaman antar developer mengenai
source code atau hal-hal lainnya. (OpenBSD tidak mempunyai core team
secara formal, namun Theo de Raadt betugas sebagai pemimpin proyek.).
Setiap
orang dapat menjadi contributor, dengan mengirimkan patch, atau
membenarkan kesalahan-penulisan dalam sebuah halaman manual. Orang-orang
yang mengkontribusikan banyak hal, atau berkompeten dalam sebuah area
proyek akan dipromosikan menjadi commiter, hal ini ditujukan untuk
menjaga commiter yang lain memeriksa terlalu banyak hal pada waktu yang
sama.
Software-Software di BSD
Sebagai implementasi kelengkapan
sebuah distribusi, terdapat sebuah aturan dalam memfasilitasi installasi
sebuah software kedalam distribusi BSD. BSD memiliki ports dan packages
yang diperkenalkan pertama kali di FreeBSD, yang kemudian diadaptasi
oleh NetBSD dan OpenBSD. (NetBSD mencoba menghindari kerancuan istilah
"port" karena dalam system NetBSD, porting adalah pekerjaan membuat atau
memodifikasi system terhadap suatu arsitektur atau platform tertentu,
NetBSD menyebutnya sebagai "packages" dan "pre-compiled packages").
Sebuah
package adalah software yang telah dicompile dan siap dijalankan,
kira-kira sepadan dengan package yang digunakan oleh distribusi Linux
(sebagai contoh RPM). Secara teknis, package tersebut dibundel manjadi
sebuah kompresi tarball (.tgz), yang menyertakan file-file yang akan
diinstall, ditambah dengan beberapa informasi penting lainnya berkenaan
dengan software yang diinstall tersebut.Sebagai contoh packages FreeBSD
unzip-5.50.tgz berisi:
+CONTENTS
+COMMENT
+DESC
+MTREE_DIRS
man/man1/funzip.1.gz
man/man1/unzip.1.gz
man/man1/unzipsfx.1.gz
man/man1/zipgrep.1.gz
man/man1/zipinfo.1.gz
bin/unzip
bin/funzip
bin/unzipsfx
bin/zipgrep
share/doc/unzip/README
share/doc/unzip/WHERE
Package
diinstall kedalam ${PREFIX} yang sudah terkonfigurasikan, dan secara
default adalah /usr/local,/usr/X11R6, atau pada system NetBSD /usr/pkg.
Installasi didaftarkan pada sebuah direktori database
/var/db/pkg/nama_packages. Pengaturan packages dilakukan dengan berbagai
tools pkg_*, seperti pkg_add (1), pkg_delete(1), dan pkg_info(1).
Sebuah
port adalah kerangka kerja untuk menginstall software. Secara
fungsional, sebuah port sama dengan SPRM, namun bagaimanapun, port tidak
menyertakan source tarball dari software.
Biasanya kumpulan port
disimpan pada direktory /usr/port/kategori, atau pada NetBSD disimpan
pada /usr/pkgsrc. Sebuah port terdiri dari sebuah directory tree dengan
beberapa file.
BSD tidak membuat sebuah tool seperti rpm(1) untuk
membangun sebuah port, melainkan dengan sebuah infrastuktur berbasis
make(1). Sebuah Makefile adalah kunci utama sebuah port, ada sangat
banyak variable dalam sebuah makefile yang memungkinkan melakukan
tindakan build dengan lebih cermat dan pada umumnya terdapat 2000 sampai
3000 baris dalam sebuah makefile, oleh karena itu dalam lingkungan BSD,
makefile tersebut disertakan dalam file bsd.port.mk, sedangkan Makefile
yang ada pada port hanya berisi variable yang ingin disertakan menjadi
sebuah package. Contoh Makefile pada /usr/ports/net/tcpillust milik
FreeBSD:
# New ports collection makefile for: tcpillust
# Date created: 14 April 2000
# Whom: nishida@csl.sony.co.jp
#
# $FreeBSD: ports/net/tcpillust/Makefile,v 1.4 2003/02/21 13:15:03 knu Exp $
#
PORTNAME= tcpillust
PORTVERSION= 1.0a
CATEGORIES= net tk82 tcl82
MASTER_SITES= ftp://ftp.csl.sony.co.jp/CSL/nishida/
MAINTAINER= nishida@csl.sony.co.jp
COMMENT= A graphical TCP connection analysis tool
LIB_DEPENDS= tk82.1:${PORTSDIR}/x11-toolkits/tk82 ¥
tcl82.1:${PORTSDIR}/lang/tcl82
USE_IMAKE= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS=
USE_MOTIF= yes
MAN1= tcpillust.1
DOCS= README
SAMPLES= tcpclient.log tcpserver.log
post-install:
.if !defined(NOPORTDOCS)
${MKDIR} ${PREFIX}/share/doc/tcpillust
for i in $(DOCS); do ¥
${INSTALL_DATA} ${WRKSRC}/$$i ${PREFIX}/share/doc/tcpillust; ¥
done
${MKDIR} ${PREFIX}/share/doc/tcpillust/sample
for i in $(SAMPLES); do ¥
${INSTALL_DATA} ${WRKSRC}/sample/$$i ${PREFIX}/share/doc/tcpillust/sample; ¥
done
.endif
.include
proses build dan installasi sebuah port biasanya adalah:
# cd /usr/ports/net/tcpillust
# make install clean
Perintah tersebut akan melakukan proses:
•
Memeriksa apakah distribusi source berupa tarball tersedia dalam
system, dan jika tidak diketemukan akan mengambil dari Internet.
• Memeriksa checksum file source tersebut.
• Mengekstrak source kedalam sebuah direktory kerja.
• Melakukan patch jika tersedia.
•
Memeriksa dependencies software yang bersangkutan, bila dependencies
sudah terinstall maka akan melanjutkan proses installasi bila tidak maka
akan melakukan installasi terhadap software dependencies tersebut.
• Melakukan patch yang dibutuhkan untuk mengadaptasikan software ke BSD
• Menjalankan proses configure.
• Meng-compile program.
• Menginstall program.
• Membersihkan direktory kerja.
System Administrasi
Seperti
operating system lainnya, BSD memiliki gaya/style tersendiri. BSD tidak
menyediakan sebuah tool administrasi seperti SMIT pada AIX, SAM pada
HP-UX, atau YaST pada SuSE. Konfigurasi dari system ditanggani dengan
mengedit file teks dalam direktori /etc, dan ada banyak konfigurasi pada
saat startup dikumpulkan pada sebuah file /etc/rc.conf seperti:
• console: font, keymap, screensaver
• network: interface, firewall, NAT
• daemon: sendmail, lpd, ntp
Walaupun
BSD system menyertakan sebuah kernel default, namun sangat disarankan
untuk membuat sebuah custom kernel dengan tujuan membuat perampingan
pada system, menggunakan hanya driver yang benar-benar dibutuhkan,
mempercepat waktu loading, dan menghemat memory. Berikut adalah cara
untuk membuat kernel custom:
• membuat atau mengedit konfigurasi
kernel berdasarkan kernel GENERIC di /sys/arch/`arch`/conf/NAMA_KERNEL
(FreeBSD: /sys/`arch`/conf)
• jalankan config(8) dan make(1).
BSD
menyediakan sebuah cara professional untuk melakukan report dan melacak
permasalahan yang ada, serta mengumpulkan feedback dari pengguna. Dengan
menggunakan send-pr(1) (OpenBSD: sendbug) yang akan memberikan
penjelasan detail permasalahan yang dihadapi, dan mengisi formulir yang
dapat dikirimkan via e-mail pada GNATS bug tracking system,
mengumpulkannya dalam sebuah database, dan kemudian akan ada developer
yang menangani masalah yang dihadapi.
File System
BSD memiliki
format partisi tersendiri, dan BSD tidak menggunakan partisi
IBM/Microsoft, sehingga harddisk harus diset dengan format BSD. FreeBSD
menyebut bagian ini dengan "slice", dan dalam slice tersebut partisi BSD
dibuat. Secara umum, a adalah partisi boot, b adalah partisi swap, dan c
adalah partisi bayangan yang memuat sebuah bagian dari disk.
BSD
memilih partisi asli untuk disk adalah FFS (Berkeley Fast File System)
sedangkan on-disk data layout didefinisikan oleh UFS. FFS diperkenalkan
sebagai implementasi modern UNIX file system, yang lebih memberikan
banyak pilihan dimana setting sebuah file dapat dihapus, tidak dapat
diedit, dan lain-lain.
Lain-Lain
Dalam banyak FAQ (frequently
asked questions) terdapat pertanyaan yang sering diutarakan yaitu,
dimana dokumentasi mengenai BSD dapat ditemukan. Pertanyaan ini sangat
mudah ditemukan jawabannya dan berikut menjawab pertanyaan tersebut:
• BSD menyertakan halaman-halaman manual dalam setiap distribusinya.
• Setiap distribusi BSD mempunyai sebuah FAQ atau beberapa, dalam website resminya.
•
FreeBSD documentation project telah menghasilkan FreeBSD Handbook,
sebuah tutorial dan referensi yang juga dapat diterapkan pada NetBSD dan
OpenBSD.
• Sebuah tulisan. The Design and Implementation of the
4.4BSD Operating System, karangan Marshall Kirk McKusick, dapat
dijadikan patokan untuk melakukan pengembangan atau pemahaman mengenai
system BSD secara lebih lanjut.
• Sebuah tulisan lain mengenai BSD, The Complete FreeBSD, karangan Greg Lehey, juga mengangkat masalah serupa.
• Search engine juga dapat membantu mencari jawaban setiap pertanyaan yang berkaitan dengan BSD.
• Arsip mailing-list yang berkaitan dengan distribusi BSD secara lebih spesifik yang dapat dicari pada website resminya.
Perbedaan BSD (FreeBSD) dengan Linux
Perbedaan antara FreeBSD dengan Linux lebih kepada aspek filosofi daripada konsep.
FreeBSD turunan langsung dari UNIX, meskipun sekarang sudah tidak mengandung source code AT&T
Linux adalah clone dan tidak pernah mengandung source code AT&T
FreeBSD
adalah sistem operasi yang komplit/lengkap, dipelihara oleh sebuah
kelompok developers yang tersentralisasi dibawah Concurent Versions
System (CVS) yang memelihara secara lengkap sejarah pengembangan. Hanya
ada satu distribusi FreeBSD
Linux adalah kernel yang secara personal
dipelihara oleh Linus Torvalds dan beberapa kawan dekat Linus. Program
yang non-kernel disupply bersama Linux adalah bagian dari distribusi,
dimana distribusi itu sendiri ada beberapa macam. Tiap distribusi sering
kali tidak kompatibel.
Gaya pengembangan FreeBSD menekankan pada akuntanbilitas dan dokumentasi pada perubahan
Kernel
Linux dipelihara oleh beberapa orang yang tetap mengikuti tiap
perubahan. Patches yang ada adalah bersifat unofficial dan banyak
tersebar di internet oleh komunitas.
Kernel yang disediakan oleh FreeBSD pada tiap release dideskripsikan dengan jelas.
Distribusi linux kadang menyediakan kernel yang berbeda. Dan perbedaan tersebut sering tidak terdokumentasi dengan baik.
Sebagai hasil pengembangan yang tersentralisasi, FreeBSD bersifat Straightforward dan mudah di install
Installasi Linux bergantung pada distribusi yang digunakan.
FreeBSD relatif tidak dikenal karena sebelumnya memang sempat terrestriksi oleh kasus hukum dengan source code UNIX AT&T
Linux tidak mempunyai kasus hukum sehingga mejadi satu-satunya clone UNIX yang bebas/free
Sebagai hasil kurang dikenalnya FreeBSD, maka relatif sedikit dukungan software komersial yang dapat berjalan diatas FreeBSD
Semakin banyak dukungan software komersial untuk Linux
Sebagai hasil sedikitnya pengguna, FreeBSD mempunyai dukungan yang sedikit terhadap driver hardware daripada Linux
Besarnya komunitas Linux, membuat dukungan hardware dari vendor juga semakin banyak
Sebagai
hasil sedikitnya aplikasi komersial dan driver untuk FreeBSD, maka
FreeBSD dapat menjalankan program yang ada pada Linux baik komersial
maupun non komersial
Linux tidak perlu menjalankan program yang ada pada FreeBSD
Lisensi FreeBSD adalah lisensi BSD
0 comments:
Post a Comment