BSD

BSD (Berkeley Software Distribution, též Berkeley Unix) byla verze operačního systému Unix distribuovaná Kalifornskou univerzitou v Berkeley v letech 1977 až 1995. Zkratka je součástí jmen následníků této distribuce jako 386BSD, FreeBSD, NetBSD, OpenBSD a DragonFly BSD.

Společnost AT&T, v jejíž laboratořích byl Unix vyvinut, umožnila univerzitám ho poměrně výhodně získat; systém se tak rozšířil. BSD verze implementovala mnoho rozšíření různých částí systému. Mezi příznivci původního Unixu a BSD rozšíření byly později vedeny dlouhé spory (tzv. Unixové války).

Na počátku 90. let byl vývoj ukončen a dosažené výsledky byly uvolněny pod liberální BSD licencí. Proti této verzi, 4.4BSD byly následně vzneseny právní námitky, sporné části byly odstraněny a vydána verze 4.4BSD-lite. Na ní jsou založeny mnohé další odvozené systémy.

Historie

Počátky na PDP-11 
První distribuce Unixu z Bellových laboratoří ze 70. let obsahovaly zdrojový kód operačního systému s licencí povolující výzkumníkům z univerzit kód modifikovat a šířit. V Berkeley byl první Unixový systém instalován roku 1974 na počítači PDP-11 a oddělení počítačových věd jej poté využívalo pro rozsáhlý výzkum.

Ostatní univerzity se začaly zajímat o software z Berkeley, a tak roku 1977 Bill Joy, tehdy promovaný student z Berkeley, sestavil a rozeslal pásky první Berkeley Software Distribution (1BSD). Spíše než o kompletní samostatný operační systém šlo jenom o doplněk k šesté edici Unixu, jehož hlavními komponenty byly kompilátor programovacího jazyka Pascal a Joyův řádkový editor ex.

Druhá Berkeley Software Distribution (2BSD) vydaná roku 1978 obsahovala aktualizované verze programového vybavení z 1BSD a dva Joyovy nové programy, které jsou součástí Unixových systémů dodnes: editor vi (vizuální verze editoru ex) a C shell.

Pozdější vydání 2BSD obsahovaly porty změn do vydání na VAXu založených vydání BSD zpět na architekturu PDP-11. 2.9BSD z roku 1983 obsahovalo kód ze 4.1cBSD a bylo prvním vydáním, které bylo kompletním operačním systémem (modifikovanou verzí 7 Unixu) spíše než sadou aplikací a patchů. Poslední vydání 2.11BSD bylo poprvé vydáno roku 1992 s pokračujícími aktualizacemi od dobrovolníků do roku 2003.

Verze pro architekturu VAX 
Roku 1978 byl v Berkeley instalován počítač VAX, ale port Unixu na architekturu VAX jménem UNIX/32V nevyužíval schopností práce s virtuální pamětí VAXu. Kernel 32V byl studenty z Berkeley z velké části přepsán za účelem přidání lepší implementace virtuální paměti a na konci roku 1979 byl vydán kompletní operační systém včetně nového kernelu, portů utilit z 2BSD na VAX a utilit z 32V označovaný jako 3BSD. 3BSD byl rovněž alternativně nazýván jako Virtual VAX/UNIX, nebo VMUNIX (zkratka z Virtual Memory Unix) a obrazy BSD kernelu byly normálně nazývány /vmunix až do verze 4.4BSD.

Úspěch 3BSD byl hlavní faktor, který stál za rozhodnutím americké DARPA (Defense Advanced Research Projects Agency) sponzorovat výzkumnou skupinu počítačových systémů (Computer Systems Research Group, CSRG) z Berkeley, která měla vyvinout standardní unixovou platformu pro další výzkum DARPA v projektu VLSI. Výzkumná skupina počítačových systémů vydala 4BSD obsahující mnoho zlepšení v porovnání s 3BSD v říjnu roku 1980.

4BSD (listopad 1980) nabízelo množství rozšíření nad 386BSD, z nichž za zmínku stojí kontrola procesů v dříve vydaném csh, delivermail (předchůdce sendmailu), „spolehlivé“ signály a programátorská knihovna Curses.

4.1BSD (červen 1981) bylo odpovědí na kritiku výkonu BSD při porovnání s výkonem dominantního operačního systému na architektuře VAX zvamým VMS. Kernel 4.1BSD byl Billem Joyem systematicky vyladěn, dokud se výkonnostně nevyrovnal VMS v několika benchmarcích. (Vydání by mělo být nazýváno 5BSD, ale jméno bylo změněno pro zabránění zmatení s UNIXem System V společnosti AT&T. Jedna raná nikdy nevydaná testovací verze byla ve skutečně nazývána 4.5BSD.)

Vývoj 4.2BSD trval přes dva roky a zahrnoval několik důležitých oprav. Před jeho oficiálním vydáním byly vydány tři meziverze: 4.1a obsahovala modifikovanou verzi předběžné implementace TCP/IP napsané Boltem, Berankem a Newmanem; 4.1b zahrnovalo nový Berkeley Fast File System implementovaný Marshallem Kirkem McKusickem a 4.1c bylo interním vydáním během posledních několika měsíců vývoje 4.2BSD.

Oficiálně bylo 4.2BSD vydáno v srpnu roku 1983. Stojí za zmínku, že se jednalo o první vydání vydané po odchodu Billa Joye roku 1982 za účelem spoluzaložení společnosti Sun Microsystems; Mike Karels a Marshall Kirk McKusick převzali vedoucí postavení v projektu do budoucna. Na lehčí notu také zaznamenalo debut BSD démona – maskota BSD v kresbě McKusicka, která se vyskytla na obalu tištěných manuálů distribuovaných USENIXem.

4.3BSD 
4.3BSD bylo vydáno v červnu roku 1986. Jeho hlavními změnami bylo zlepšení výkonu mnoha nových příspěvků do 4.2BSD, které nebyly natolik silně optimalizovány jako kód 4.1BSD. Před vydáním se implementace TCP/IP použitá v BSD značně odlišovala od oficiální implementace z BBN. Po několika měsících testování DARPA rozhodla, že verze z 4.2BSD je kvalitní a může zůstat v 4.3BSD. (Viz Dějiny internetu.)

Po 4.3BSD bylo rozhodnuto, že by se BSD mohlo přesunout pryč ze stárnoucí platformy VAX. Platforma Power 6/32 (kódové jméno „Tahoe“) vyvinutá Computer Consoles Inc. vypadala v té době velmi slibně, nicméně byla krátce poté opuštěna svými vývojáři. Port 4.3BSD-Tahoe (červen 1988) se však ukázal být hodnotným, neboť vedl k oddělení strojově závislého od strojově nezávislého kódu, což zlepšilo budoucí portabilitu systému.

Až do tohoto bodu všechny verze BSD obsahovaly kód proprietárního AT&T Unixu, a proto vyžadovaly licenci AT&T pro jejich použití. Licence na zdrojové kódy se toho času stávaly velmi drahými a několik třetích stran vyjádřilo zájem o samostatné vydání síťového kódu, který byl vyvinut kompletně mimo AT&T a neměl být důvodem požadavku na licenci. To vedlo k síťovací pásce 1 (Networking Tape 1, Net/1), která byla učiněna dostupnou i těm, kteří neměli licenci ke kódu AT&T a byla šířena za podmínek povolující BSD licence. Byla vydána v červnu 1989.

4.3BSD-Reno vyšlo počátkem roku 1990 – bylo provizorním vydáním během raného vývoje 4.4BSD a jeho použití bylo považováno za „hazard“, proto pojmenování po hazardním centru – městu Reno v Nevadě. Toto vydání se zřetelně posunovalo ke shodě s normou POSIX a podle některých i pryč od filozofie BSD (neboť POSIX je silně založen na System V a Reno byl docela nabobtnalý v porovnání s předchozími vydáními).

Net/2 a problémy s legalitou 
Po vydání Net/1 vývojář BSD Keith Bostic navrhl vydání více neAT&T částí BSD systému pod stejnou licencí jako Net/1. Díky významu tohoto činu odstartoval projekt mající za cíl reimplementovat většinu standardních Unixových utilit bez použití kódu AT&T. Například vi, které bylo založeno na originální unixové verzi editoru ed bylo přepsáno jako nvi (nové vi). Během 18 měsíců byly všechny utility AT&T nahrazeny a bylo zjištěno, že jen několik souborů AT&T zůstalo v kernelu. Tyto soubory byly odstraněny a výsledkem bylo vydání Net/2 v červnu roku 1991, téměř kompletního operačního systému, který byl volně redistribuovatelný.

Net/2 byl základem dvou samostatných portů BSD na architekturu Intel 80386: svobodné 386BSD Williama Jolitze a proprietární BSD/386 (později přejmenované na BSD/OS) společnosti Berkeley Software Design (BSDi). 386BSD samotné žilo pouze krátce, nicméně se stalo původní kódovou základnou projektů FreeBSD a NetBSD, které byly odstartovány krátce poté.

BSDi se brzy dostalo do potíží s laboratořemi Unixových systémů (Unix System Laboratories, USL) AT&T, toho času vlastníky copyrightu k System V a ochranné známky Unix. Právní bitva mezi
USL a BSDi započala roku 1992 a vedla k soudnímu zákazu distribuce Net/2 dokud nebude moci být rozhodnuto tom, zda kódy porušují copyright USL.

Právní bitva zpomalovala vývoj svobodných následníků BSD po téměř dva roky dokud byl jejich status legality otázkou, důsledkem čehož získaly větší podporu systémy založené na Linuxovém kernelu, který nebyl tak legálně nejednoznačný. Linux a 386BSD se začaly vyvíjet zhruba ve stejný čas a Linus Torvalds řekl, že pokud by tu toho času byl svobodný Unixový systém běžící na architektuře 386, pravděpodobně by Linux nevytvořil. Přestože je diskutabilní, jaký přesně efekt by to mělo na softwarovou scénu, existují malé pochyby o tom, že by to mělo tak veliký význam.

4.4BSD a jeho potomci 
Soudní pře byla urovnána v lednu roku 1994 pro Berkeley velmi úspěšně. Z 18000 souborů v distribuci Berkeley musely být jen 3 odstraněny a 70 modifikováno, aby obsahovaly copyright USL. Další podmínkou smíru bylo, že USL nebude vést soudní pře s uživateli kódu vlastněného Berkeley v přicházejícím vydání 4.4BSD.

V červnu roku 1994 bylo vydáno 4.4BSD ve dvou formách: volně šiřitelné 4.4BSD-Lite, které neobsahovalo žádný kód AT&T a 4.4BSD-Encumbered, které bylo stejně jako předcházející vydání dostupné pouze vlastníkům licence od AT&T.

Posledním vydáním z Berkeley bylo 4.4BSD-Lite Release 2 z roku 1995, po kterém byl tým CSRG rozpuštěn a vývoj BSD v Berkeley zastaven. Od té doby je spravováno několik distribucí založených na 4.4BSD (jako například FreeBSD, OpenBSD a NetBSD).

Navíc povolující povaha BSD licence dovolila mnoha jiným operačním systémům, jak svobodným, tak proprietárním, začlenit BSD kód. Například Microsoft Windows používaly kód odvozený z BSD v jejich implementaci TCP/IP a dodávají rekompilované verze síťových nástrojů pro příkazovou řádku z BSD v aktuálních vydáních. Rovněž Darwin, systém, nad kterým je postaven macOS společnosti Apple, je částečně odvozen z FreeBSD 5. Mnoho komerčních unixů, jako například Solaris také obsahují různé části BSD kódu.

Technologie 
BSD bylo průkopníkem mnoha inovací moderního počítání. Berkeley Unix byl prvním Unixem obsahujícím knihovny podporující vrstvy Internet Protokolu: Berkeleyské sokety. Integrací soketů s popisovači souborů unixového operačního systému se stalo téměř stejně tak jednoduchým číst a zapisovat data přes síť jako tomu bylo u přístupu k disku. Laboratoře AT&T nakonec vydaly svou vlastní knihovnu STREAMS, která začlenila mnoho ze stejné funkcionality v softwarovém zásobníku s lepší architekturou, ale široká distribuce existující knihovny dohromady s nešťastným vynecháním ekvivalentu volání select z berkeleyské knihovny redukovala dopad nového API.

Dnes jsou BSD systémy používány jako testovací hřiště pro technologii akademickými organizacemi stejně jako v mnoha komerčních a svobodných produktech a se zvyšující se intenzitou v zapouzdřených (embedded) zařízeních. Celková kvalita jeho zdrojového kódu stejně jako jeho dokumentace (zejména referenční manuálové stránky, společně odkazované jako manové stránky) jej činí velmi vhodným pro mnoho účelů.

Povolující povaha BSD licence umožňuje společnostem distribuovat odvozené produkty jako proprietární software bez nutnosti vyzrazení zdrojového kódu a někdy intelektuálního vlastnictví svým konkurentům. Hledáním řetězců obsahujících „University of California, Berkeley“ v dokumentaci produktů, sekci statických dat binárek a ROMů nebo částí jiných informací o softwarovém produktu mnohdy ukáže, že byl použitý kód z BSD. Tato povolující povaha rovněž činí BSD kód vhodným pro použití v produktech Open Source a licence je kompatibilní s mnoha jinými Open-source licencemi.

Je zajímavým faktem, že BSD systémy mohou spustit mnoho softwaru původně určeného pro několik jiných operačních systémů na stejné architektuře pomocí vrstvy binární kompatibility. Mnohem jednodušší a rychlejší než emulace toto umožňuje například aplikacím určeným pro Linux efektivně běžet plnou rychlostí. Toto činí BSD vhodným nejen pro serverová prostředí, ale i pro pracovní stanice dávajíce zvyšující se dostupnost komerčního či uzavřeného software pouze pro Linux. Toto rovněž umožňuje administrátorům zmigrovat komerční aplikace, které mohou podporovat pouze komerční varianty Unixu, na modernější operační systém se zachováním funkcionality takových aplikací do doby, než budou nahrazeny lepší alternativou.

Aktuální varianty BSD podporují mnoho ze společných standardů IEEE, ANSI, ISO a POSIX při zachování většiny z tradičního chování BSD. Jako AT&T Unix je BSD kernel monolitický, což znamená že ovladače zařízení v kernelu běží v privilegovaném módu jako část jádra operačního systému. Rané verze BSD byly použity ke zformování SunOSu společnosti Sun Microsystems a založily tak první vlnu populárních unixových pracovních stanic.

Potomci BSD 

BSD bylo základem velkého množství operačních systémů. Nejvíce za zmínku zřejmě stojí 3 hlavní Open Source BSD: FreeBSD, OpenBSD a NetBSD – někdy označované jako BSDčka – ze kterých se vyvinulo množství následníků včetně DragonFly BSD, FreeSBIE, MirOS BSD, DesktopBSD a PC-BSD. Jsou zaměřeny na systémy s různými účely a jsou společně používány ve vládních zařízeních, univerzitách a komerční sféře. Na BSD či jeho následnících je založeno několik komerčních operačních systémů včetně Solarisu společnosti Sun a macOS společnosti Apple Computer. Výběr významných verzí Unixu a unixových operačních systémů které vznikly z BSD zahrnuje:

 386BSD, první Open Source systém založený na BSD a předchůdce většiny dnešních BSD systémů
 zaniklý BSD/OS
 FreeBSD – zaměřeno na rychlost a větší podporu neserverového hardware (http://www.freebsd.org/)
 NetBSD – zaměřeno na podporu různých architektur procesorů (http://www.netbsd.org/)
 OpenBSD – zaměřeno na bezpečnost (http://www.openbsd.org/)
 PC-BSD – uživatelská přívětivost, založeno na aktuální verzi FreeBSD (http://www.pcbsd.org/)
 DesktopBSD – distribuce založená na FreeBSD a vhodná pro začínající i pokročilé uživatele (http://www.desktopbsd.net/)
 DragonFly BSD – (http://www.dragonflybsd.org/)
 Juniper Networks JunOS, operační systém pro routery společnosti Juniper
 Nokia IPSO, operační systém pro zařízení pro IP bezpečnost společnosti Nokia
 Solaris (dříve SunOS) společnosti Sun Microsystems, Oracle Corporation (2021)

Reference

Související články 
 UNIX
 UN*X

Externí odkazy 
 
 FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, DesktopBSD a PC-BSD – Populární potomci BSD
 Časová osa BSD
 Historie UNIXu – Historie UNIXu a BSD pomocí diagramů
 Specializované BSD vyhledávání Google 
 BSD certifikační skupina
 DistroWatch – Stránka obsahující statistiky používanosti a odkazy pro mnoho Linuxových a BSD variant

 
Varianty Unixu
Svobodné operační systémy