# BSD

BSD (Berkeley Software Distribution) era un sistema operatiu derivat de Unix que va ser distribuït des de 1977 fins al 1995. Fou desenvolupat originalment a la Universitat de Califòrnia, Berkeley. BSD també es refereix al tipus de llicència que es fa servir per distribuir aquest codi.
Actualment, hi ha diverses distribucions derivades a partir de BSD. Cada un d'aquests projectes està mantingut per una comunitat de programadors i usuaris, i no manté ja cap vincle amb la Universitat de Califòrnia. Els més importants són,
* FreeBSD, el més conegut i utilitzat, sobretot en servidors.
* NetBSD, que es pot utilitzar en un gran nombre d'ordinadors diferents.
* OpenBSD, que té l'objectiu d'esdevenir tan segur com sigui possible.
Aquest programari es distribueix lliurement, d'acord amb la llicència BSD. Aquesta llicència permet utilitzar i distribuir el codi dels programes gairebé sense limitacions, excepte el reconeixement dels autors. El codi es pot modificar, distribuir gratuïtament o vendre, i fins i tot es poden crear versions privatives del codi (és a dir, es permet distribuir programes executables sense el codi). Altres programes no relacionats amb el projecte BSD també utilitzen aquesta llicència o d'altres de semblants. Aquests, al seu torn, han estat utilitzats per sistemes operatius propietaris, inclosos els macOS i iOS d'Apple, que se'n van derivar, i Microsoft Windows, que feia servir (almenys) part del seu codi TCP/IP, que era legal. El codi de FreeBSD també es va utilitzar per crear el sistema operatiu per a la PlayStation 4 i Nintendo Switch.
bsdgames són una col·lecció de jocs basats en text dels sistemes BSD, o d'altres sistemes Unix.

## Història

Les primeres distribucions de Unix dels laboratoris Bell als anys 70 incloïen el codi font del sistema operatiu, permetent als desenvolupadors de les universitats modificar i estendre Unix.
El primer sistema Unix de Berkeley va ser el PDP-11, que va ser instal·lat el 1974, i va ser utilitzat des de llavors pel departament de ciència computacional per a les seves investigacions. Altres universitats van començar a interessar-se en el programari de Berkeley, i per això el 1977 Bill Joy, llavors un estudiant de grau a Berkeley, va gravar i va enviar cintes del primer Berkeley Software Distribution (BSD). 1BSD era un complement de la versió 6 de Unix en comptes d'un sistema operatiu complet per dret propi. Se'n van vendre unes trenta còpies.
La segona distribució de programari de Berkeley (2BSD), llançada el maig de 1979, va incloure versions actualitzades del programari 1BSD, així com dos nous programes de Joy que persisteixen en els sistemes Unix fins a l'actualitat: l'editor de text vi (una versió visual de ex) i el C shell. Bill Joy va vendre unes 75 còpies de 2BSD.
Es va instal·lar un ordinador VAX a Berkeley el 1978, però la portació de l'Unix a l'arquitectura VAX, UNIX/32V, no va aprofitar les capacitats de memòria virtual del VAX. El nucli de 32V va ser reescrit sobre manera per incloure la implementació de memòria virtual de l'estudiant graduat de Berkeley Özalp Babaoğlu i un sistema operatiu complet que inclou el nou nucli, ports de les utilitats 2BSD per a VAX i les utilitats de 32V es van llançar com a 3BSD a finals de 1979. 3BSD també es deia alternativament Virtual VAX/UNIX o VMUNIX (per a Memòria Virtual Unix), i les imatges del kernel BSD normalment es deien /vmunix fins a 4.4BSD.
Després del llançament de 4.3BSD al juny de 1986, es va determinar que BSD s'allunyaria de l'antiga plataforma VAX. La plataforma Power 6/32 (amb nom en codi "Tahoe") desenvolupada per Computer Consoles Inc. semblava prometedora en aquest moment, però va ser abandonada pels seus desenvolupadors poc després. Tot i això, l'adaptació 4.3BSD-Tahoe (juny de 1988) va resultar valuosa, ja que va conduir a una separació del codi dependent i independent de la màquina en BSD, cosa que milloraria la portabilitat futura del sistema.
A més de la portabilitat, el CSRG va treballar en una implementació de la pila de protocols de xarxa OSI, millores al sistema de memòria virtual del nucli i (amb Van Jacobson del LBL) nous algorismes TCP/IP per adaptar-se al creixement d'Internet.
Fins aleshores, totes les versions de BSD utilitzaven codi Unix propietari d'AT&T i, per tant, estaven subjectes a una llicència de programari d'AT&T. Les llicències de codi font s'havien tornat molt costoses i diverses parts externes havien expressat interès en una versió separada del codi de xarxa, que s'havia desenvolupat completament fora d'AT&T i no estaria subjecte al requisit de llicència. Això va portar a la Networking Release 1 (Net/1), que es va posar a disposició dels qui no tenien llicència del codi d'AT&T i era lliurement redistribuïble segons els termes de la llicència BSD. Va ser llançat el juny de 1989.

### Relació amb Research Unix

A partir de la 8a Edició de Unix, les versions de Research Unix a Bell Labs tenien una estreta relació amb BSD. Això va començar quan es va utilitzar 4.1cBSD per a VAX com a base per a la Version 8 Unix. Això va continuar en versions posteriors, com la Version 9 Unix, que va incorporar codi font i millores de 4.3BSD.
El resultat va ser que aquestes últimes versions de Research Unix estaven més a prop de BSD que de System V. En una publicació de Usenet de 2000, Dennis Ritchie va descriure aquesta relació entre BSD i Research Unix
| « | Research Unix 8th Edition va començar des de (crec) BSD 4.1c, però amb enormes quantitats extretes i reemplaçades pel nostre propi material. Això va continuar amb el 9 i el 10. El conjunt d'ordres d'usuari ordinari era, suposo, una mica més amb gust de BSD que SysVish, però era força eclèctic. | » |

### Relació amb UNIX System V

Eric S. Raymond resumeix la relació de llarga duració entre System V i BSD, afirmant: "La divisió era aproximadament entre els de pèl llarg i els de pèl curt; els programadors i els tècnics tendien a alinear-se amb Berkeley i BSD, els tipus més orientats als negocis amb AT&T i System V."
El 1989, David A. Curry va escriure sobre les diferències entre BSD i System V. Va caracteritzar System V com sovint considerat com el "Unix estàndard". Tot i això, va descriure BSD com a més popular entre els centres informàtics universitaris i governamentals, a causa de les seves funcions i rendiment avançats:
| « | La majoria dels centres informàtics universitaris i governamentals que utilitzen UNIX utilitzen Berkeley UNIX, en lloc de System V. Això és degut a diverses raons, però potser les dues més significatives són que Berkeley UNIX proporciona capacitats de xarxa que fins fa poc (Versió 3.0) no estaven disponibles a System V, i que Berkeley UNIX és molt més adequat per a un entorn de recerca, que requereix un sistema de fitxers més ràpid, millor maneig de memòria virtual i una major varietat de llenguatges de programació. | » |
| — Eric S. Raymond |||

## Tecnologia
### Sockets de Berkeley

L'Unix de Berkeley va ser el primer Unix a incloure biblioteques compatibles amb l'arquitectura d'Internet Protocol: Berkeley sockets. Una implementació d'Unix del predecessor d'IP, el NCP d'ARPAnet, amb clients FTP i Telnet va ser produït a la Universitat d'Illinois el 1975, i estava disponible a Berkeley. Tot i això, l'escassetat de memòria al PDP-11 va forçar un disseny complicat i problemes de rendiment.
En integrar sockets amb els descriptors de fitxers del sistema operatiu Unix, es va tornar gairebé tan fàcil llegir i escriure dades a través d'una xarxa com accedir a un disc. El laboratori d'AT&T finalment va llançar la seva pròpia biblioteca STREAMS, que va incorporar gran part de la mateixa funcionalitat a una pila de programari amb una arquitectura diferent, però l'àmplia distribució de la biblioteca de sockets existent va reduir l'impacte de la nova API. Les primeres versions de BSD es van usar per formar SunOS de Sun Microsystems, fundant la primera onada d'estacions de treball Unix populars.

### Compatibilitat binària

Alguns sistemes operatius BSD poden executar programari nadiu de diversos altres sistemes operatius a la mateixa arquitectura informàtica, utilitzant una capa de compatibilitat binària. Això és molt més simple i ràpid que emular; per exemple, permet que les aplicacions dissenyades per a Linux s'executin efectivament a tota velocitat. Això fa que els BSD no només siguin adequats per a entorns de servidor, sinó també per a estacions de treball, atesa la creixent disponibilitat de programari comercial o de codi tancat només per a Linux. Això també permet als administradors migrar aplicacions comercials heretades, que només poden haver admès variants comercials d'Unix, a un sistema operatiu més modern, conservant la funcionalitat d'aquestes aplicacions fins que puguin ser reemplaçades per una millor alternativa.

### Estàndards

Les variants actuals del sistema operatiu BSD són compatibles amb molts dels estàndards de IEEE, ANSI, ISO i POSIX, mantenint la major part del comportament tradicional de BSD. Igual que UNIX System V, el kernel BSD és monolític, la qual cosa significa que els controladors de dispositius al kernel s'executen en mode privilegiat, com a part del nucli del sistema operatiu.

## Descendents de BSD

Diversos sistemes operatius es basen en BSD, inclosos FreeBSD, OpenBSD, NetBSD, MidnightBSD, MirOS BSD, GhostBSD, Darwin i DragonFly BSD . Tant NetBSD com FreeBSD es van crear el 1993. Inicialment es van derivar de 386BSD (també conegut com a Jolix) i van fusionar el codi font 4.4BSD-Lite el 1994. OpenBSD es va bifurcar de NetBSD el 1995 i DragonFly BSD es va bifurcar de FreeBSD el 2003. BSD també es va usar com a base per a diverses versions propietàries d'Unix, com Sun OS de Sun, DYNIX de Sequent, NeXTSTEP de NeXT, Ultrix de DEC i OSF/1 AXP (ara Tru64 UNIX). NeXTSTEP després es va convertir en la base per a macOS d'Apple Inc..

## Referències

* ↑ «Apple Kernel Programming Guide: BSD Overview». [Consulta: 27 març 2021].
* ↑ «Actually, Windows DOES use some BSD code». Arxivat de l'original el 2018-03-25. [Consulta: 24 març 2018].
* ↑ «Open Source Software used in PlayStation 4». Arxivat de l'original el 2017-12-12. [Consulta: 3 octubre 2019].
* ↑ «任天堂製品に関連するオープンソースソフトウェアのソースコード配布ページ｜サポート情報｜Nintendo». Arxivat de l'original el 2020-07-26. [Consulta: 26 juliol 2020].
* ↑ Cao. «Nintendo Switch runs FreeBSD» (en anglès americà), 08-03-2017. Arxivat de l'original el 2020-07-26. [Consulta: 26 juliol 2020].
* ↑ «http://wiki.linuxquestions.org/wiki/BSD_games». [Consulta: 30 setembre 2018].
* ↑ Debian -- bsdgames
* ↑ Salus (1994), p. 142
* 1 2 Salus, Peter H. «Chapter 7. BSD and the CSRG». A: The Daemon, the Gnu and the Penguin. Groklaw, 2005 [Consulta: 6 setembre 2017].
* ↑ Toomey, Warren. «Details of the PUPS archives». tuhs.org. The Unix Heritage Society. Arxivat de l'original el 9 juliol 2006. [Consulta: 6 octubre 2010].
* ↑ M.K. McKusick, M.J. Karels, Keith Sklower, Kevin Fall, Marc Teitelbaum and Keith Bostic (1989). Current Research by The Computer Systems Research Group of Berkeley. Proc. European Unix Users Group.
* ↑ Dennis Ritchie. «alt.folklore.computers: BSD (Dennis Ritchie)», 26-10-2000. Arxivat de l'original el 2014-07-14. [Consulta: 3 juliol 2014].
* ↑ Raymond, Eric S. The Art of Unix Programming. 2003. p. 38
* ↑ Curry, David. Using C on the UNIX System: A Guide to System Programming. 1989. pp. 2–3
* ↑ Chesson, G. L. «The network Unix system». ACM SIGOPS Operating Systems Review, 9, 5, 1976, pàg. 60–66. DOI: 10.1145/1067629.806522.
* ↑ Quarterman, John S.; Silberschatz, Abraham; Peterson, James L. «4.2BSD and 4.3BSD as examples of the Unix system». Computing Surveys, 17, 4, 01-12-1985, pàg. 379–418.

## Bibliografia

* Samuel J. Leffler, Marshall K. McKusick, Michael J. Karels, John S. Quarterman, The Design and Implementation of the 4.3BSD UNIX Operating System (Addison Wesley, November, 1989; ISBN 978-0-201-06196-3)
* Marshall K. McKusick, Keith Bostic, Michael J. Karels, John S. Quartermain, The Design and Implementation of the 4.4BSD Operating System (Addison Wesley, 1996; ISBN 978-0-201-54979-9)
* Marshall K. McKusick, George V. Neville-Neil, The Design and Implementation of the FreeBSD Operating System (Addison Wesley, August 2, 2004; ISBN 978-0-201-70245-3)

## Enllaços externs

Viccionari
* Projecte FreeBSD (anglès)