Co to jest FreeBSD oraz Historia systemu BSD
(*)
Rozwój
Oryginalny Unix, czyli dzieło Kena Thompsona i Dennisa
Ritchiego, był własnością firmy Bell (która zatrudniała
autorów systemu) i używany jedynie w tej firmie. Z powodów
prawnych firma AT&T (część Bell) nie mogła sprzedawać
systemu, mogła go natomiast odstępować. Uniwersytet
Kalifornijski w Berkeley stał się jedym z pierwszych
właścicieli licencji na kod źródłowy Unix'a. W latach
1974-1977 uczelnia instalowała na swoich komputerach kolejne
jego wersje. Rozwijany przez studentów system w roku 1977
nazwano BSD - Berkeley Software Distribution. W skład
pierwszego wydania wchodziły m.in. edytor ex (autorstwa
Billa Joya i Chucka Haleya) i kompilator Pascala. W wydaniu
drugim (1978) pojawił się, wśród innych zmian, edytor
vi.
W
1979 roku zespół rozwijający BSD nawiązał współpracę z DARPA
(Defense Advanced Research Projects Agency). Jej celem miało
być stworzenie systemu operacyjnego zdolnego pracować na
licznych platformach sprzętowych używanych przez agencję.
Powołana do tego zadania Grupa Badań nad Systemami
Operacyjnymi (Computer Systems Research Group) podjęła się
przystosowania 3BSD do potrzeb DARPA. W efekcie powstało
czwarte wydanie BSD (1980), a niedługo potem 4.1 (1981),
ulepszone pod kątem wydajności. Przedłużony kontrakt z DARPA
zakładał opracowanie lepszego systemu plików, włączenia
obsługi sieci ARPAnet i
poprawienia komunikacji międzyprocesowej, ważnej dla środowisk
wieloużytkownikowych. Dalekowzrocznie Bill Joy i Rob Gurwitz
implementujący obsługę sieci poszli dalej, włączając do
systemu nie tylko obsługę TCP/IP (RFC 791,
RFC
793), ale i umożliwiając mu pracę z innymi protokołami
sieciowymi (4.1aBSD). Równolegle Marshall Kirk McKusick
wprowadził do BSD nowy system plików, Fast File System
(4.1bBSD). Edycja 4.2BSD udostępniona została w roku 1983
zyskując ogromną popularność.
Wersja 4.3BSD ujrzała światło dzienne w 1986 roku,
zawierając poprawki względem poprzedniego wydania, głównie
podnoszące wydajność systemu. Przy okazji 4.3BSD pojawił się
problem implementacji TCP/IP - DARPA zleciła przeprowadzenie
niezależnych testów mających porównać jej prototypową i
zakładaną wersję implementacji z tą użytą przez Berkeley.
Implementacja BSD okazała się być bezbłędna, w przeciwieństwie
do konkurenta.
W
ciągu rozrostu wszystkich "gałęzi rodowych" Unixa, firma
AT&T podnosiła stopniowo ceny licencji na swój kod.
Sytuacja zespołu BSD stawała się coraz trudniejsza, z tej to
przyczyny, iż konkurencyjne wersje Unixa choć niejednokrotnie
słabsze, były z założenia przedsięwzięciami komercyjnymi,
zabezpieczającymi swoje interesy. BSD, mając korzenie w
środowisku akademickim, oddawało do dyspozycji nie tylko
produkt, ale i jego dokumentację wraz z pełnym kodem
źródłowym. Dlatego innym producentom Unixów łatwo było
odzyskać straconych na rzecz BSD klientów, po prostu
wchłaniając do swoich systemów rozwiązania z Berkeley (nie
oznacza to, że takie hybrydy były lepsze, ale po prostu firmom
łatwiej jest zaadaptować nową, poprawioną wersję systemu, niż
przestawiać się na zupełnie inny).
W
1989 roku udostępniono Networking Release 1, czyli kod
obsługi sieci BSD nie zawierający fragmentów objętych licencją
AT&T. Zespół BSD stworzył własną licencję, która pozwalała
każdemu, kto zakupił źródła (w cenie 1000$), dowolnie je
modyfikować i odsprzedawać bez ograniczeń (w tym nie nakładała
obowiązku publikowania źródeł powstałego na tej bazie
oprogramowania), zobowiązując wszakże do umieszczania przy
każdym ewentualnym produkcie noty "To oprogramowanie zawiera
kod opracowany na Uniwersytecie Kalifornijskim w Berkeley"
(szczegóły dot. licencji - niżej). Wiele instytucji
zdecydowało się wesprzeć przedsięwzięcie i wykupiło kopię
systemu.
Popularność 4.3BSD Net/1 przyczyniła się do
przeprowadzenia pracochłonnej, ale potencjalnie owocnej
operacji: przepisania całości kodu BSD na nowo, wraz z
usunięciem fragmentów objętych licencją AT&T. To
nietrywialne zadanie obejmowało rewizję jądra systemu,
bibliotek C i dziesiątków (a raczej setek) programów
użytkowych. Praca została wykonana siłami ochotników i trwała
ponad - jak wspomina McKusick - półtora roku. Tak opracowany
system (jakkolwiek wciąż zawierający w kluczowych, dotyczących
jądra bibliotekach, kod AT&T) wydano na tych samych
zasadach licencyjnych jako Networking Release 2 w roku
1991.
Po wymianie pozostałych po AT&T elementach systemu
i przeniesieniu na platformę i386 przedstawiono go raz
jeszcze, jako 386/BSD. Bill Jolitz udostępnił przygotowany
przez siebie system w sieci: każdy zainteresowany mógł pobrać
kopię via ftp. Z tego wydania początek biorą rodziny NetBSD i
FreeBSD (o których niżej). Osobno powołano też Berkeley
Software Design, Inc. (BSDI), która to firma miała zająć
się rozpowszechnianiem komercyjnego wariantu BSD. Firma
AT&T zgłosiła jednak szereg zastrzeżeń co do praw
autorskich, dotyczących kodu systemu oraz samej nazwy "Unix".
Spór trafił do sądu, jednak został rozstrzygnięty ugodowo:
AT&T wycofała swoje pretensje, a z BSD usunięto sporne
elementy. Nową edycję nazwano 4.4BSD-Lite i
upubliczniono w 1994 roku. "Pełne" 4.4BSD wymaga zakupu
licencji od Unix System Laboratories (części AT&T). USL
zobowiązało się nie zgłaszać obiekcji co do systemów opartych
na 4.4BSD-Lite, dlatego działające już projekty rozwijające
Net/1, Net/2 i 386/BSD (NetBSD i FreeBSD) przeniosły swój
dorobek na fundament tego właśnie wydania.
Po wydaniu 4.4BSD-Lite Release 2 CSRG
rozwiązano. Po prawie 20. latach dowodzenia statkiem BSD
stwierdziliśmy, że nadszedł moment by przekazać stery w inne
ręce - pisze McKusick [patrz: bibliografia] -
ręce ludzi ze świeżymi pomysłami i bezgranicznym
entuzjazmem. Wydawać się może, że najlepiej byłoby gdyby
istniało centrum koordynujące rozwój systemu, jednak koncepcja
dopuszczająca wielość grup badaczy o różnych celach, zapewnia
wielość wpróbowywanych nastawień.
Do ważniejszych zmian i nowości wprowadzonych do BSD
należy zaliczyć:
- edytory ex oraz vi, ulubione przez
miliony użytkowników na świecie,
- powłoka C,
- pamięć wirtualna,
- protokół TCP/IP, którego implementację w BSD
uznaje się za wzorcową,
- system plików ffs (Fast File
System),
- gniazda (man -k socket)
NetBSD, FreeBSD, OpenBSD, XMach, Darwin
Na bazie systemu 386/BSD rozpoczęły działalność
projekty NetBSD i FreeBSD (1993). Grupa użytkowników, która
podjęła się przeniesienia systemu na inne platformy (Atari,
Amiga) ochrzuciła swój projekt "NetBSD". Ci zaś, którzy
skupili się na optymalizacji BSD dla platformy i386 nazwali
swoje dzieło "FreeBSD". Odłączając się od projektu NetBSD Theo
de Raadt rozpoczał rozwój nowej gałęzi: OpenBSD (1996). Rozwój
tego systemu miał skupiać wysiłki na bezpieczeństwie (myśl
przewodnia twórców OpenBSD brzmi: "domyślnie
bezpieczny"). Gdy Novell, przejmując AT&T, zażegnał
spór z Berkeley, wszyscy rozwijający wydania Net/1, Net/2 i
386/BSD zmuszeni zostali do przesiadki na
4.4BSD-Lite.
W
oparciu o nowy fundament powstały NetBSD 1.0 (X.1994), FreeBSD
2.0 (I.1995). Wraz z postępem prac i wydaniem 4.4BSD-Lite2
ukazały się BSD/OS 3.0 (II.1997), NetBSD 1.3 (I.1998), OpenBSD
2.3 (V.1998) i FreeBSD 3.0 (X.1998). Firma Apple upubliczniła
w tym roku system MacOs X/Darwin, w znacznej mierze oparty o
FreeBSD (wersja 1.4.1 działa na platformach Mac oraz i386,
przy czym ta druga wersja studzi entuzjazm minimalnym zestawem
wspieranego sprzętu). Oprócz tego trwają prace nad
XMachOS.
Prowadzący projekt NetBSD deklarują
(www.netbsd.org):
- zrzeszać szerokie grono ludzi w dziele współtworzenia
darmowego systemu operacyjnego wzorowanego na
UNIX'ie,
- zapewniać systemowi NetBSD najwyższą przenośność
między platformami sprzętowymi,
- co za tym idzie, zapewniać możliwość działania w
najróżniejszych środowiskach programistycznych i
sieciowych,
- zachowywać elegancję i solidność systemu (nawet
kosztem opóźnień we wdrażaniu nowych rozwiązań),
- utrzymywać jądro systemu i podstawowe elementy
(basesystem) w postaci podlegającej licencji BSD po
to, żeby komercyjne produkty rozwijane na bazie NetBSD nie
musiały ujawniać zastosowanych rozwiązań,
- udostępniać pełne źródła systemu (dokonując
regularnych przeglądów i usuwając lub wymieniając pakiety, w
których znaleziono błędy),
- dbać o bezpieczeństwo systemu w rzeczywistości, a nie
w mediach (NetBSD wg statystyk jest jednym z
najbezpieczniejszych systemów).
FreeBSD Handbook wymienia cele projektu:
- dostarczać oprogramowanie do wszelakich celów bez
zobowiązań,
- zapewniać wszechstronność FreeBSD,
- z włączanego oprogramowania preferować raczej to na
licencji BSD, niż *GPL.
Projekt OpenBSD jako główne cele stawia sobie (za
www.openbsd.org):
- zapewniać stały wgląd w źródła systemu,
- korzystać z możliwie najlepiej opracowanych
źródeł,
- dbać o bezpieczeństwo swojego produktu,
- integrować w nim oprogramowanie
kryptograficzne,
- dbać o zgodność ze standartami ANSI i POSIX, częściowo
X/Open,
- wspierać obsługę możliwie jak największej liczby
sprzętu,
- rozwiązywać problemy niezależnie od poglądów,
zważając jedynie na kwestie techniczne,
- nie odkładać poważnych problemów,
- do przeniesionego oprogramowania wprowadzać minimum
zmian, informować o nich,
- starać się wydawać nowe wersje systemu raz na sześć
miesięcy.
Twórcami XMach kieruje chęć:
- stworzenia systemu zbudowanego na podstawie
4.4BSD,
- ...możliwie najmniejszego (mikrojądro),
- bezpiecznego i przenośnego,
- powściągliwego w rozmiarach źródeł.
W
chwili obecnej najnowsze wydania systemów *BSD* oznaczone są:
BSD/OS 4.2 (listopad 2000), NetBSD 1.5.2 (z sierpnia 2001),
FreeBSD 4.4RELEASE (z września 2001; nie biorąc pod uwagę
eksperymentalnego FreeBSD 5.0), OpenBSD 3.0 (z grudnia 2001),
XMach 0.1-CURRENT, Darwin 1.4.1. Autor tego tekstu nie
bierze odpowiedzialności za upływ czasu i nie będzie
aktualizował w tym tekście odpowiednich
oznaczeń.
Licencja
Licencja BSD jest na tyle krótka, że można przytoczyć
ją w całości w jej oryginalnym brzmieniu:
The BSD License
The following is a BSD license template. To generate
your own license, change the values of OWNER, ORGANIZATION and
YEAR from their original values as given here, and substitute
your own.
Note: The advertising clause in the license appearing
on BSD Unix files was officially rescinded by the Director of
the Office of Technology Licensing of the University of
California on July 22 1999. He states that clause 3 is "hereby
deleted in its entirety."
Note the new BSD license is thus equivalent to the MIT
License, except for the no-endorsement final
clause.
= Regents of the University of California
= University of California, Berkeley =
1998
In the original BSD license, the first occurrence of
the phrase "COPYRIGHT HOLDERS AND CONTRIBUTORS" in the
disclaimer read "REGENTS AND CONTRIBUTORS".
Here is the license template:
Copyright (c) , All rights
reserved.
Redistribution and use in source and binary forms,
with or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the
above copyright notice, this list of conditions and the
following disclaimer. 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. Neither the name of
the nor the names of its contributors may be
used to endorse or promote products derived from this software
without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
AND CONTRIBUTORS "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 REGENTS OR
CONTRIBUTORS 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.
Demon
Sympatyczna maskotka BSD, mimo "piekielnego" wyglądu
nie jest diabłem, lecz demonem. Rożnica w
znaczeniu jest zasadnicza: gr. diabolos, oznacza "coś, co
dzieli, zwodzi", gdy gr. daimonion to "głos wewnętrzny, duch
opiekuńczy" (patrz np. "Obrona Sokratesa", Platon). W systemie
Unix mianem demonów określa się programy rezydentne (stąd
często pojawia się na końcu ich nazw litera "d", np. sshd,
secure shell daemon).
Oryginalny rysunek "demona" pochodzi od McKusicka.
Łatwy do rozpoznania znak zdobył dużą popularność i doczekał
się licznych, mniej lub bardziej udanych naśladownictw i
adaptacji.
Bibliografia:
- http://www.oreilly.com/catalog/opensources/book/kirkmck.html
- współtwórca BSD, Marshall Kirk McKusick opisuje historię
systemu.
- ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree
- "drzewo genealogiczne" systemów BSD, chronologia,
literatura.
- http://www.levenez.com/unix/history.html
- historia Unix'a.
- http://www.daemonnews.org/200104/bsd_family.html
- artykuł o "rodzinie" FreeBSD, OpenBSD, NetBSD.
- http://www.unix-systems.org/what_is_unix/history_timeline.html
- jeszcze jedna chronologia.
- www.bsdi.com, www.netbsd.org, www.freebsd.org,
www.openbsd.org,
www.darwin.org,
www.xmach.org -
witryny projektów.
(*)Autorem tego artykułu jest Tomasz Marciniak
oryginalny text znajduje sie pod adresem: http://bsd.amu.edu.pl/wyklady/historia.html