Направо към съдържанието

BSD

от Уикипедия, свободната енциклопедия

BSD (на английски: Berkeley Software Distribution) понякога също наречена Berkeley Unix е вторият важен клон на UNIX, разпространяван от Калифорнийски университет, Бъркли в началото на 1970-те години.

Има много вариации на BSD, най-популярния от които е FreeBSD.

FreeBSD е свободна, UNIX компютърна операционна система с отворен код. Базирана е на AT&T версията на UNIX, Berkeley Software Distribution (BSD), 386BSD и 4.4BSD. Системата работи на следните процесорни архитектури: Intel x86, PC-съвместими платформи (включително Microsoft Xbox), DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NEC PC-98, ARM и MIPS.

FreeBSD бива разработвана като цялостна операционна система. Това означава, че ядрото и базовите потребителски инструменти (например обвивката) се разработват от една общност. Това е една от основните разлики с GNU/Linux системите, където ядрото и всеки един инструмент се разработват отделно и накрая се пакетират заедно, като продуктът се нарича GNU/Linux дистрибуция.

FreeBSD е изключително стабилна и надеждна операционна система и е използвана от много хора като сървърно решение в различни среди, система за работни станции и крайни потребители.

Unix подобни производни на BSD операционни системи:

Началото на историята

[редактиране | редактиране на кода]

Кен Томпсън и Денис Ричи представят първите идеи за Unix на симпозиума „Принципи на операционните системи“, който се провежда в университета Пърдю през ноември 1973. Професор Боб Фабри (Bob Fabry) от Калифорнийския университет в Бъркли присъства на представянето и е заинтригуван от идеята, с която смята да експериментира в Бъркли.

По това време в Бъркли разполагат единствено с големи мейнфрейм машини, така че първата работа е да се вземат PDP-11/45, които са подходящи за текущата по това време версия на UNIXVersion 4. Факултетът по информатика и факултетът по математика успяват с общи усилия да закупят едно PDP-11/45. През януари 1974 г. пристига лентата с Version 4 и Unix е инсталиран от студента Кейт Стандифорд (Keith Standiford).

Кен Томсън не присъства по време на инсталирането на UNIX в Бъркли (по това време предимно той лично инсталира UNIX), но се налага неговата намеса, защото системата не се държи както трябва. Томпсън моли Стандифорд да включи телефона си към 300-бодовия модем, с който разполагат в Бъркли, и започва да разследва причините от Ню Джърси.

Повечето от проблемите биват причинени от дисковия контролер. PDP-то, което е купено за Бъркли, е едно от първите, които имат закачени два диска на един дисков контролер. Отдалеченото разследване на проблемите от Томпсън е първият пример на зародилото се ползотворно сътрудничество между Бъркли и Bell Labs. Това допринася впоследствие за бързото подобряване на наличния в Бъркли софтуер.

Въпреки че Unix скоро след усилията започва да работи стабилно, между коалицията от факултите по информатика, математика и статистика избухва спор. Първият проблем е в това, че математиците и статистиците искат да използват RSTS системата на DEC, а програмистите – UNIX. След усилен дебат се стига до следния компромис: по осем часа ще върви Unix следван от шестнайсет часа за RSTS. Въпреки странната схема студентите, които имат курсове по операционни системи, предпочитат да използват Unix, за да вършат своите проекти.

Професор Юджийн Уонг (Eugene Wong) и Майкъл Стоунбрейкър (Michael Stonebraker) прехвърлят своята система за управление на бази данни (СУБД) INGRES да работи под Unix. Скоро е установено, че машинното време, по време на което върви UNIX, е малко и то е увеличено. През 1974 г. Бъркли купува PDP 11/40, вървящо с новопоявилата се Version 5. Първата дистрибуция на INGRES, работеща на UNIX, се появява през есента на 1974 г., като по този начин проектът INGRES става първият софтуерен продукт, разпространяван от факултета по информатика в Бъркли.

Дори след прехвърлянето на INGRES проекта от PDP 11/45 на новата PDP 11/40 не е решен проблемът с недостига на часове за студентите. За да се реши проблемът, през юни 1974 г. Майкъл Стоунбрейкър и Боб Фарби решават да вземат две PDP 11/45. През 1975 парите за двете машини са отпуснати, но по същото време DEC анонсира PDP 11/70. Парите за купуване на двете PDP 11/45 са използвани за закупуването на едно PDP 11/70, което пристига през есента на 1975 г. Едновременно с пристигането на PDP 11/70, Кен Томпсън решава да си вземе отпуск и да посети Бъркли като гостуващ професор. Томпсън заедно с Джеф Скрайбмън (Jeff Schriebman) и Боб Кридъл (Bob Kridle) слагат най-новата версия на UNIXVersion 6 – на новото PDP 11/70.

По това време двама неизвестни дотогава студенти Бил Джой (Bill Joy) и Чък Хейки (Chuck Haley) се заинтересуват от новата система. В началото те започват да работят върху Pascal, който Томпсън префасонира, докато работи в стаята с PDP 11/70. Скоро възможностите на Pascal са разширени, интерпретаторът е подобрен и по този начин Pascal става предпочитаният от студентите език.

С напускането на Кен Томпсън през лятото на 1976, Джой и Хейли започнали да разучават самото UNIX ядро. Под ръководството на Скрайбман те инсталират първите „50 подобрения“, които пристигат от Bell Labs. С по-обстойното запознава на изходния код започват да се раждат и идеите за някои подобрения.

Първите дистрибуции

[редактиране | редактиране на кода]

В началото на 1977, Джой слага началото на първата Berkeley Software Distribution (BSD). Тази дистрибуция включва Pascal, доста остаряла версия на изходните кодове на Pascal, както и редактора ex. През следващата година Джой разпространява близо 30 безплатни копия на дистрибуцията.

С пристигането на ADM-3a терминали, Джой най-накрая има възможност да напише своя редактор vi – един от първите, които позволяват редактиране „директно на екрана“. Поради това че смяната на старата техника с нова не е мигновена, а е продължителен процес, Джой се сблъсква с различни видове терминали. Накрая решава да напише малък интерпретатор за пречертаване на екрана, известен като termcap.

В средата на 1978 г. става ясно, че софтуерната дистрибуция се нуждае от обновяване. Резултатът от това обновяване е „Втора софтуерна дистрибуция от Бъркли“, или съкратено 2BSD. В новата дистрибуция влизат подобрен Pascal, редакторът vi и termcap за различни терминали. Отново Бил Джой собственоръчно сглобява дистрибуцията, отговаря на телефонните обаждания и систематизира коментарите за системата. През следващата година близо 75 ленти биват разпратени. Въпреки че Джой се прехвърля да работи върху други проекти, 2BSD дистрибуцията продължава да печели популярност. Окончателната версия 2.11BSD върви на стотици PDP-11 в различни краища на света.

В началото на 1978 г. професор Ричард Фейтман (Richard Fateman) започва да търси машина с по-голямо адресно пространство, за да може да продължи своята работа по Macsyma (започната на PDP-10). Новообявената VAX-11/780 отговаря на изискванията и може да се вмести в бюджета. В началото на VAX върви операционната система на DECVMS, но факултетът е привикнал към работата с Unix средата. Така че скоро след пристигането на VAX-а Фейтман исталира копие на 32/V – версия на Unix за VAX, написана от Джон Реизър и Том Лондън от Bell Labs.

Въпреки че 32/V е версия на Version 7 на Unix за VAX, тя не се възползвала от предимствата на VAX хардуера.

Проблемът е липса на система за управление на виртуалната памет в Unix. За да се справи с проблема, Фейтман моли професор Доменико Ферари да разучи дали неговата група може да напише такава система за Unix. През януари 1979 г. системата е написана, повечето от бъговете са отстранени и 32/V е запратена в историята.

Скоро Джой започва да пренаписва 2BSD софтуера за VAX. Питър Кеслер (Peter Kessler) пренаписва Pascal, а Джой пренаписва редакторите ex и vi, Си-обвивката (csh) плюс множество малки програмки от 2BSD дистрибуцията. През 1979 г. работата е завършена. Новата дистрибуция има система за управление на виртуалната памет, стандартните 32/V програмки и допълнения от 2BSD. През декември 1979 г. Джой разпраща първите (почти) сто копия от 3BSD, първата дистрибуция за VAX от Бъркли.

След 32/V, Bell Labs променя групата, която се занимава с Unix, и се набляга на комерсиалната част. През този период AT&T пускат System III и по-късно System V. С комерсиализацията на Unix изследователите в Bell Labs вече не могат да допринасят в развитието на Unix. Организацията по изследванията върху Unix е поета от Бъркли.

Междувременно в агенцията по изследвания за отбраната Defense Advanced Research Projects Agency (DARPA) вървят дискусии, които ще повлияят в цялостното развитие на работата в Бъркли. Един от ранните успехи на DARPA е да свържат в национална мрежа компютрите от всички главни изследователски центрове. При това много от компютърните системи са морално остарели и трябва да бъдат заменени с нови. Най-тежката част от една такава замяна е пренаписването на изследователския софтуер за новите машини. Освен това пренаписаният софтуер не може да бъде обменян заради разнообразието от хардуер и операционни системи.

Избирането на един хардуерен производител е неудобно, защото различните изследователски групи се нуждаят от разнообразен хардуер и не искат да разчитат само на един производител. Така се стига до решението за унифициране на софтуера. След доста дискусии DARPA стига до решението, че най-доброто решение е Unix, заради неговата доказана преносимост на различен хардуер.

През есента на 1979 г. Боб Фарби предлага на DARPA да използва специална подобрена версия на 3BSD, която да бъде разработена в Бъркли. Благодарение на увеличаването на добрата репутацията на 3BSD, Боб Фарби подписва 18-месечен договор с DARPA, който започва през април 1980 г. В съответствие с някои от клаузите на договора е създадена група, която е кръстена Computer Systems Research Group (CSRG). Фарби започва усилено да търси водач на проекта. В този момент Джой трябва да защити доктурантура. Фарби смята, че трябва да остави Джой на спокойствие. Но Джой има други планове – предлага на Фарби да оглави проекта по разработването на Unix и след много кратък размисъл кандидатурата му е одобрена.

Проектът бързо набира скорост. Тонг изготвя диструбуция, която е способна да се справя с по-голям обем инструкции от предишните дистрибуции на Джой. Фарби успява да координира с Боб Гъфи (Bob Guffy) от AT&T и юристите на Бъркли да пуснат дистрибуция на Unix при условия, удовлетворяващи всички. Джой включва job control модула на Джим Клуп и прибавя възможности за автоматично рестартиране и поддръжка на последната VAX машина – VAX-11/750. През октомври 1980 г. подобрената дистрибуция, която включва компилатор за Pascal, Lisp системата на Франц Лисп, и подобрена система за обслужване на пощата е пусната като 4BSD. По време на нейния деветмесечен живот, близо 150 копия са разпространени. Копието се лицензира за институция (фирма), а не за машина, и това води до 500 машини, използващи дистрибуцията.

Заедно с разпространението на дистрибуцията на Berkeley Unix се появяват и критици. Дейвид Каштан (David Kashtan) от изследователския институт на Станфорд описва резултатите от тестовете си на VMS и Berkeley Unix. Тези тестове разкриват сериозни проблеми с Unix системите за VAX. Отлагайки бъдещите си задачи, Джой методично започва да настройва ядрото. След няколко седмици публикува опровержение, което доказва, че тестовете на Каштан могат да дадат също толкова добри резултати на Unix, колкото и на VMS.

Вместо да продължи разпространението на 4BSD, подобрената система заедно с добавения към нея код за автоматична конфигурация на Робърт Елц (Robert Elz) е пусната като 4.1BSD през юни 1981 г. По време на двугодишното ѝ съществуване около 400 копия са разпространени. Намерението е било да се нарече 5BSD, но са получени възражения от AT&T за възможно объркване на клиените с комерсиалната дистрибуция на UnixSystem V. Поради тази причина колективът от Бъркли се съгласява да промени схемата за именоване, като се променя само цифрата след запетаята, а основното име остане 4BSD.

С пускането на 4.1BSD повечето от съмненията относно бързодействието на системата затихват. DARPA остава доволна от резултите дотогава, и подписва нов двугодишен договор, който осигурява на Бъркли пет пъти по-голяма субсидия. Половината от парите получава Unix проектът, останалата част е за изследователската дейност във факултета по информатика.

Новите цели са съобразени с нуждите на DARPA. В частност новата система трябва да включва по-бърза файлова система, която би повишила производителността до нивото на съществуващите дискови технологии, да поддържа процеси с многогигабайтово адресно пространство, да осигури гъвкави средства за комуникация между процесите, които да позволят на изследователите да работят с помощта на разпределени системи, и те биха включили мрежова поддръжка, така че машините, на които се използва, лесно да бъдат част от ARPAnet.

За да подпомага създаването на системата, Дуейн Адамс (Duane Adams), координаторът от Бъркли за DARPA, формира група, известна като „steering committee“, за да подпомогне и насочи процеса на разработка и да осигури нуждите на разработчиците. Този комитет се събира два пъти годишно между април 1981 и юни 1983 г. Комитетът включва Боб Фарби, Бил Джой и Сам Лефлър от Бъркли, Алан Немет (Alan Nemeth) и Роб Гуруиц (Rob Gurwitz) от Болт, Беранек, и Нюман, Денис Ричи от Бел, Кейт Ланц от Станфорд, Рик Рашид, Бел Халстед от MIT, Дуейн Адамс и Боб Бейкър от DARPA и Джери Попек от UCLA. От 1984 г. тези срещи са заменени със събрания, които включват много повече хора.

Когато Роб Гуруиц е готов с една от първите си версии на TCP/IP протокола, Джой го интегрира в системата. По това време става ясно, че новата система ще трябва да осигурява поддръжка на повече протоколи от стандартите за DARPA. За това те преработват вътрешната структура на софтуера, като изчистват интерфейса, така че да позволява едновременното ползване на повече от един мрежов протокол.

След тази преработка и с вграден TCP/IP протокол, с прототип на IPC средствата, няколко прости приложения са създадени, за да осигурят достъп до отдалечени компютри. Тези програми (rcp, rsh, rlogin, и rwho) са създадени като временни средства, които трябвало да бъдат заменени с по-съвършени средства (от тук идва и представката „r“ – replace, заменям). Тази система, наречена 4.1a, е пусната само за локално ползване, без намерение да бъде широко разпространявана. Но чрез нелегални копия системата се разпространила масово. Това издание е остаряло много преди своето завършване. Но отзивите за него осигуряват важна информация, за издаването на „4.2BSD System Manual“. В него се набелязвали бъдещите нововъведения и промените, които трябвало да бъдат направени.

Едновременно с разработката на 4.1a е завършена и новата файлова система, и от юни 1982 тя е напълно интегрирана в ядрото на 4.1a. На тази нова система е дадено името 4.1b. Тя е пусната само на няколко компютъра, за да бъде тествана, поради нуждата всички файлове да бъдат преобразувани от 4.1a към 4.1b. След като файловата система доказва своята стабилност, Лефлър продължава с разработката като добавя нови системни функции за работа с файловата система. През това време Джой работи над преработката на средствата за комуникация между процесите.

През пролетта на 1982 г., Джой обявява присъединяването си към Sun Microsystems. През лятото той разделял времето си между Sun и Бъркли, където довършва поправките си на средствата за комуникация между процесите и реорганизира ядрото на Unix, така че да се избегнат хардуерните зависимости. Със заминаването на Джой, Лефлър поема отговорността за завършването на проекта. Определен е краен срок – пролетта на 1983. Като следствие на ограничението във времето са дадени приоритети. Подобренията на виртуалната памет и на най-сложните части на дизайна за комуникация между процесите са оставени (а впоследствие и изоставени) за сметка на междинно издание, което има за цел да задържи групата от разработчици. Това издание, наречено 4.1c, е пуснато през април 1983 г. То е използвано от много производители на хардуер, за да подготвят машините си за предстоящата 4.2 версия.

През юни 1983 г. Боб Фарби предава административния контрол върху CSRG на професор Доменико Ферари и Сюзан Греам. Лефлър продължава с разработването на файловата система, въвежда мрежова поддръжка и преработва входно/изходната система, за да улесни процеса по инсталация, добавя механизма за раздаване на квоти от Робърт Елз, обновявява документацията и отстранява грешките от 4.1с. През август 1983 г. новата версия е пусната като 4.2BSD.

Когато Лефлър напуска Бъркли след завършването на 4.2, той е заменен от Майк Керълс (Mike Karels). Неговият опит с 2.9BSD PDP-11 софтуерната дистрибуция го прави идеален за новата му работа.

Популярността на 4.2BSD е изключителна. За 18 месеца повече от 1000 лиценза са дадени. Плюс това още копия са разпространени и сред ползвателите на предишните дистрибуции. Повечето Unix разпространители предпочитат 4.2 версията пред System V на AT&T. Причината е, че System V не притежава нито мрежови възможности, нито файловата система на Бъркли. 4.2BSD задържа позициите на пазара си само за няколко години, докато нововъведенията са вградени и в System V. Това става практика и бъдещите подобрения на BSD продължават да бъдат вграждани в System V.