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.
Semenjak CSRG tidak lagi aktif, beberapa turunan 4.4BSD muncul, dan beberapa diantaranya menjadi produk komersial.
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.
FreeBSD
FreeBSD 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 www.yahoo.com dan 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.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.
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.psPackage 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 <naddy@openbsd.org>
# 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 <bsd.port.mk>
proses build dan installasi sebuah port biasanya adalah:
# cd /usr/ports/shell/bash2 # make install cleanPerintah tersebut akan melakukan proses:
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.