Historia BSD
Data: 14-09-2003 o godz. 20:11:55
Temat: Konfiguracje usług w systemie FreeBSD


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.

[Powered by NetBSD!]

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).
[Powered by FreeBSD!]

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.
[Powered by OpenBSD!]

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

[Demon.jpg]

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:

  1. http://www.oreilly.com/catalog/opensources/book/kirkmck.html - współtwórca BSD, Marshall Kirk McKusick opisuje historię systemu.
  2. ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree - "drzewo genealogiczne" systemów BSD, chronologia, literatura.
  3. http://www.levenez.com/unix/history.html - historia Unix'a.
  4. http://www.daemonnews.org/200104/bsd_family.html - artykuł o "rodzinie" FreeBSD, OpenBSD, NetBSD.
  5. http://www.unix-systems.org/what_is_unix/history_timeline.html - jeszcze jedna chronologia.
  6. 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






Artykuł jest z FreeBSD na www.malisz.eu.org
http://www.malisz.eu.org/

Adres tego artykułu to:
http://www.malisz.eu.org/1_Historia_BSD.htm