Personal Mind of ASEP

Sepercik Rasa yang Tercurah

Mengenal Sistem Operasi *BSD

Jim Geovedi, 24 Juni 2002

Ada banyak sekali tulisan-tulisan yang membahas tentang BSD, baik tulisan mengenai sejarah, system administrasi, sampai penggunaan BSD kepada end-user sebagai desktop.

Tulisan ini memperkenalkan BSD sebagai alternatif lain dari Linux untuk memenuhi kebutuhan akan UNIX-like operating system di Indonesia. Dalam tulisan ini pula,? dibahas mengenai beberapa hal yang membedakan antara Linux dan BSD, namun tidak memutuskan mana yang paling baik, karena untuk menentukan mana operating system yang paling baik digunakan adalah Anda sendiri.

Daftar Isi

  1. Sejarah
  2. Distribusi Varian BSD
  3. Model Pengembangan
  4. Integrasi System
  5. Software-software di BSD
  6. System Administrasi
  7. File System
  8. Lain-lain
  9. Kesimpulan

Sejarah

Hampir semua orang telah mendengar Linux saat ini. Namun apa itu BSD? BSD adalah singkatan dari Berkeley Software Distribution. BSD pertama kali dibangun dan dikembangkan oleh Computer System Research Group (CSRG) di University of California at Berkeley (UCB), BSD pertama kali keluar pada akhir 1977 sebagai paket tambahan dan patch dari AT&T UNIX version 6, yang mana waktu itu beroperasi pada mesin PDP-11 minicomputer.

BSD pada akhirnya banyak memberikan kontribusi berharga pada pengembangan UNIX secara umum. Ada banyak fitur yang pertama kali diperkenalkan oleh BSD dan beberapa diadopsi dari AT&T dan vendor-vendor lainnya.

BSD dibuat, dikembangkan, dan digunakan secara BEBAS sebagai perlawanan terhadap lisensi UNIX yang dimiliki oleh AT&T dan oleh karena itu BSD mempunyai lisensi tersendiri yang memungkinkan setiap orang bebas melakukan pengembangan, dan menggunakan source code BSD. Pada tahun 1993, 4.4BSD dirilis sebagai sebuah Operating System yang utuh. Untuk sejarah lengkap BSD di CSRG, mulai sejarah dari jaman kuda, motivasi orang-orang yang pertama kali mengerjakannya, sampai perseteruan lisensi dan hak cipta dengan AT&T, saya mereferensikan Anda untuk membaca tulisan yang dibuat oleh Kirk McKusick, “Twenty Years of Berkeley Unix“.

Saat ini, BSD tersedia secara bebas, dan memiliki fungsi utuh dari UNIX operating system.

Distribusi Varian BSD

Semenjak CSRG tidak lagi aktif, beberapa turunan 4.4BSD muncul, dan beberapa diantaranya menjadi produk komersial.

BSD/OS

Berkeley Software Design, Inc., didirikan oleh beberapa pendiri awal developer CSRG sebagai kelanjutan dari pengembangan BSD dalam sisi komersial. BSD/OS telah mendukung untuk banyak platform, seperti i386 dan sparc, yang biasanya dipasarkan dengan memasukkan beberapa applikasi Internet.

Pada tahun 2000, BSDI bergabung dengan Walnut Creek CDROM, sebuah perusahaan yang secara finansial mendukung juga OS FreeBSD. BSD/OS akan dilanjutkan sebagai sebuah produk yang terpisah, namun seperti yang diharapkan, BSD/OS dan FreeBSd source tree akan digabungkan.

DarwinOSDarwinOS adalah bagian penting open-source operating system baru Apple, Mac OS X. Darwin mengimplementasikan kepribadian 4.4BSD dan userland pada sebuah mikrokernel Mach, dengan FreeBSD sebagai referensi utama. Walaupun ditujukan pada platforn pps Apple, namun system ini juga sedang dikembangkan untuk platform i386.

Varian BSD lainnya yang juga merupakan turunan 4.4BSD, menggunakan lisensi distribusi BSD yang menyediakan source code secara bebas

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

FreeBSDFreeBSD mengoptimalkan penggunaan platform PC. FreeBSD menyediakan kemudahan installasi dan dukungan yang luas terhadap hardware PC. FreeBSD mendukung arsitektur i386 dan alpha, dan pengembangan FreeBSD pada beberapa platform juga telah dilakukan. FreeBSD juga digunakan pada server-server yang memiliki traffic dan kinerja yang cukup tinggi untuk service WWW dan FTP seperti http://www.yahoo.com dan http://ftp.cdrom.com.

NetBSDNetBSD memfokuskan pengembangan pada penyediaan operating system untuk banyak platforms, dari sebuah palmtop sampai server alpha yang besar. NetBSD berjalan pada hampir semua mesin dimana orang menginginkan UNIX sebagai Operating Systemnya.

OpenBSDOpenBSD memfokuskan pengembangan pada security dan cryptography. Proyek pengembangan ini terpisah dari proyek NetBSD pada tahun 1995 sebagai akibat perselisihpahaman antara Theo de Raadt dengan NetBSD core team lainnya. OpenBSD saat ini setidaknya telah mendukung lebih dari 10 platforms, dengan beberapa proses pengembangan lebih terstruktur. Tim OpenBSD juga telah menghasilkan sebuah applikasi OpenSSH, sebuah implementasi untuk memenuhi kebutuhan Secure Shell untuk pekerjaan secara remote.

Lalu, seberapa besar perbedaan FreeBSD, NetBSD, dan OpenBSD? Secara praktis, tidak banyak bedanya. Namun dari ketiganya justru berbeda jauh jika dibandingkan dengan distribusi Linux, yang mungkin bisa dipersempit dari sisi sudut pandang pengguna, dan sysadmin. Dan dari ketiga distribusi BSD tersebut terdapat sharing source code antar proyek dengan memfasilitasi lisensi yang sama.

Model Pengembangan

Sangat kontra dengan beberapa advokasi Linux, pengembangan BSD tidak mengikuti sebuah model katedral (piramid??). Secara hirarki terorganisir namun tidak tertutup. Terdapat tiga tingkatan dalam developer BSD, 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-tulis dalam sebuah halaman manual. Orang-orang yang mengkontribusikan banyak hal, atau berkompeten dalam sebuah area proyek akan dipromosikan menjadi commiter, hal ini ditujukan untuk menjagai commiter yang lain memeriksa terlalu banyak hal pada waktu yang sama.

Integrasi System

Kunci perbedaan antara BSD dan Linux yang dapat disimpulkan adalah integrasi, yang berarti sebuah proses dan hasil dari proses tersebut. Setiap distribusi BSD adalah sebuah proyek tunggal. Sedangkan distribusi Linux dengan kata lain adalah mengkombinasikan beberapa proyek, dan banyak diantaranya tidak spesifik pada proyek Linux itu sendiri. Ada sebuah proyek pembangunan kernel yang dipimpin oleh Linus Torvalds, ada proyek pembangunan dan pengembangan library C, namun ada juga proyek yang tidak berhubungan dengan Linux seperti GNU yang menyediakan berbagai variasi tool, dan lain-lain.Di BSD, para developer adalah sang integrator. Katakanlah seseorang ingin mengubah output, ps -ax, maka dia harus bertanggungjawab untuk menjaga semua script yang bergantung pada format output ps(1) yang akan diadaptasi. Dalam dunia Linux, system integrator yang menggabungkan banyak proyek yang berbeda-beda menjadi sebuah distribusi biasanya bukan developer dari proyek tersebut. Sebagai hasil dari system integrasi BSD sangat kecil, halaman-halaman manual semakin lengkap, program-program beroperasi lebih baik, dan ada banyak perubahaan yang lebih baik pada system.

Seringkali disebutkan perbedaan-perbedaan antara BSD dan Linux adalah hasi dari penyatuan BSD sebagai proyek tunggal. Sebuah base dari system BSD dimasukkan kedalam sebuah CVS tree, sehingga semua perubahan dapat terkontrol secara langsung, dan dari sana, sebuah source tree dapat diambil dan dikompilasikan dengan satu kali proses kerja. Hal ini yang dikenal sebagai proses make world, dari sebuah proses tunggal yang membangun ulang semua system.

Software-software di BSD

Sebagai implementasi kelengkapan sebuah distribusi, terdapat sebuah aturan dalam memfasilitasi installasi sebuah software kedalam distribusi BSD. Banyak software yang secara tipikal berkaitan erat dengan system Linux, namun ternyata tidak spesifik dibuat khusus untuk Linux, dapat dibangun pada system UNIX apapun, termasuk 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 dalam sebuah package OpenBSD bash-2.05a.tgz:

+CONTENTS
+COMMENT
+DESC
+INSTALL
+DEINSTALL
bin/bash
bin/bashbug
man/man1/bash.1
man/man1/bashbug.1
info/bash.info
share/doc/bash/article.ps
share/doc/bash/article.txt
share/doc/bash/bash.html
share/doc/bash/bash.ps
share/doc/bash/bashbug.ps
share/doc/bash/bashref.html
share/doc/bash/bashref.ps
share/doc/bash/builtins.ps

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/package/nama_package. Pengaturan package dilakukan dengan berbagai tools pkg_*, seperti pkg_add (1), pkg_delete(1), dan pkg_info(1).Sebuah port adalah kerangka kerja untuk membuat sebuah package. 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.

# $OpenBSD: Makefile,v 1.24 2002/05/13 13:43:49 naddy Exp $

COMMENT=	"GNU Bourne Again Shell"

DISTNAME=	bash-2.05a
CATEGORIES=	shells
NEED_VERSION=	1.528
HOMEPAGE=	http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html

MAINTAINER=	Christian Weisgerber

# GPL
PERMIT_PACKAGE_CDROM=	Yes
PERMIT_PACKAGE_FTP=	Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP=  	Yes

MASTER_SITES=     	${MASTER_SITE_GNU:=bash/}
DISTFILES=           	${DISTNAME}.tar.gz ${DISTNAME:S/-/-doc-/}.tar.gz

FLAVORS=         	static
FLAVOR?=

SEPARATE_BUILD= 	concurrent

CONFIGURE_STYLE= 	gnu
MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC} ${WRKSRC}/support

.if ${FLAVOR:L} == "static"
CONFIGURE_ARGS= 	--enable-static-link
.endif

post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bash
cd ${WRKDIR}/doc &&
${INSTALL_DATA} article.ps article.txt bash.html bash.ps
bashbug.ps bashref.html bashref.ps builtins.ps
${PREFIX}/share/doc/bash

.include

proses build dan installasi sebuah port biasanya adalah:

# cd /usr/ports/shell/bash2
# 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.
  • 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 seperti Linux, 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), yang mendukung filesystem sampai dengan 16TB, tergantung dengan sejumlah parameter, file dapat menjadi beberapa terabytes. 64-bit file offset, seperti contoh file-file yang lebih besar dari 2GB, dalam platform 32-bit yang didukung 4.4BSD. BSD FFS dan Linux ext2fs pada umumnya serupa, tidak heran mengingat konsep ext2fs didesain dengan ffs sebagai pertimbangan. 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. Beberapa pilihan tersebut juga tersedia pada Linux ext2fs.

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 tahu pada website resminya.

Kesimpulan

BSD adalah implementasi langsung dari sebuah UNIX operating system, dimana mungkin ada banyak perbedaan dengan Linux, namun perlu ditegaskan kembali bahwa perbedaan tersebut justru bukan untuk membandingkan mana yang terbaik atau mana yang terburuk, karena setiap distribusi baik BSD maupun Linux mempunyai tujuannya masing-masing. Tulisan ini juga tidak dimaksudkan untuk membuka holy-war operating system, karena tulisan ini dibuat untuk membahas beberapa perbedaan operating system dengan basis BSD, dan Linux sehingga diharapkan setelah Anda membaca tulisan ini, setidaknya ada pilihan baru yaitu BSD ketika Anda hendak memilih operating system, dan setelah mencoba, Anda sendiri yang akan menentukan operating system mana yang cocok untuk Anda.

January 20, 2006 - Posted by | Uncategorized

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: