Линукс и Јуникс, сличности и разлике

Завирите у сличности и разлике између два оперативна система с лепим делом заједничког наслеђа и бројним истим циљевима

Извор за илустрацију: Difference Between Unix vs. Linux

Ако сте програмер у двадесетим или тридесетим годинама живота, одрасли сте у свету у коме доминира Линукс. Он је значајан играч у дата центрима већ деценијама, али мада је тешко наћи тачачан извештај о учешћу оперативних система на тржишту, учешће Линукса у дата центрима би могло да износи чак 70%, а различите верзије Виндоуса – остатак. Програмери који користе било који већи “клауд” могу да очекују да је систем на ком ради платформа Линукс. Доказа да је Линукс свуда је све више када се има у виду чињеница да су Андроид уређаји и уграђени (embedded) системи засновани на Линуксу у паметним телефонима, телевизорима, аутомобилима и многим другим уређајима.

Али и тако, већина програмера, чак и они који су одрасли у току ове “револуције Линукса” достојне поштовања су бар чули за Јуникс. Звучи слично као Линукс, и вероватно сте чули подједнаку употребу ових израза. Или сте можда чули да је Линукс “јуниксолики” оперативни систем.

Па, шта је Јуникс? Карикатуре говоре о чаробњачким дугим седим брадама које седе иза шљаштећег зеленог екрана, које пишу Ц код и шел скрипте, чији је покретач старомодна филтер-кафа. Али Јуникс има много богатију историју од забрађених Ц програмера из седамдесетих година. Док чланци који говоре о детаљима из историје Јуникса и поређења Јуникса и Линукса, овај чланак говори о позадини и списку главних разлика између ова два комплементарна света.

 

Почеци Јуникса

Историја Јуникса почиње у АТ&Т-овим “Беловим лабораторијама “касних шездесетих година са малим тимом програмера који су хтели да напишу вишепроцесни, вишекориснички оперативни систем за ПДП-7. Два најистакнутија члана овог тима у истраживачком центру Бел Лабса били су Кен Томпсон и Денис Ричи. Док је већина концепата Јуникса била изведена из његовог претходника Мултикса, одлука Јуниксовог тима да поново напише овај мали оперативни систем у програмском језику Ц је оно што је одвојило Јуникс од осталих. У то време, оперативни системи су ретко били, ако и уопште, портабилни. Уместо тога, по природи њиховог дизајна и по изворном коду у језицима ниског нивоа, оперативни системи су били чврсто везани за хардверску платформу за коју су били намењени. Преписивањем Јуникса у Ц, Јуникс је постало могуће пребацити на разне архитектуре хардвера.

Поред ове портабилности која је Униксу дозволила да се брзо рашири и изван “Бел лабса “и за друге истраживачке, академске, чак и комерцијалне сврхе, неколико кључних дизајнерских начела је привукло кориснике и програмере. Прво, филозофија Јуникса Кена Томпсона постала је моћан модел модуларног дизајна софтвера и рачунарства. Филозофија Јуникса препоручивала је употребу малих програма направљених са једноставном сврхом у комбинацији зарад обављања задатка. Како је Јуникс био дизајниран око датотека и пајпова, овај модел преусмеравања (пајповања) улаза и излаза различитих програма у линеаран скуп операција је и данас у употреби. Заправо, данашње клауд функције-као-сервис (functions-as-a-service, FaaS), тј. модел “рачунарство без сервера” дугује доста овом наслеђу филозофије Јуникса.

 

Брз раст и конкуренција

Касних седамдесетих и осамдесетих, Јуникс је постао корен породичног стабла које се проширило на истраживања, универзитете и растући бизнис развоја комерцијалног Јуникса. Јуникс није био софтвер отвореног кода, а за изворни код Јуникса се могла добити лиценца преко уговора са његовим власником АТ&Т-ом. Прва лиценца за коју се зна да је продата је продата Универзитету у Илиноису 1975. године.

Јуникс се брзо ширио по академском свету, чији је значајан центар активности био Беркли, где је Кен Томпсон био седамдесетих на празничном одсуству (sabbatical). Кроз сву ту активност око Јуникса у Берклију, родила се нова верзија Јуникса, БСД (Berkeley Software Distribution). На почетку, БСД није био алтернатива за АТ&Т-јев Јуникс, већ додатак који је имао додатан софтвер и могућности. Кад је стигао 2БСД (the Second Berkeley Software Distribution) 1979, Бил Џиј, студент са Берклија, додао је сада познате програме као што су vi и C shell (/bin/csh).

Као додатак БСД-у, који је постао једна од најпознатијих грана породице Јуникса, комерцијалне понуде Јуникса су експлодирале осамдесетих и деведесетих производима као што су HP-UX, IBM AIX, Sun Solaris, Sequent и Xenix. Како су гране расле, почели су “ратови Јуникса”, и заједница се усредсредила на стандардизацију. Стандард POSIX је настао 1988, као и остали наставци који су настали преко “Отворене групе” (The Open Group) деведесетих година.

У ово време АТ&Т и “Сан” су објавили System V Release 4 (SVR4), који је био прихваћен од стране многих комерцијаних произвођача. Са друге стране, породица БСД оперативних система је расла годинама, што је довело до различитости отвореног кода које су објављене под данас познатом БСД лиценцом. Ово укључује FreeBSD, OpenBSD и NetBSD, од којих сваки циља мало другачије тржиште индустрије Јуникса за сервере. Ове варијанте Јуникса се и даље налазе у употреби, иако им је удео на тржишту опао на једноцифрене бројеве (или мање). БСД је можда најчешће инсталирани модерни Јуникс систем данас. Такође, сваки новији Епл Мек може да се сматра за БСД, јер OS X (сада macOS) је настао од БСД-а.

Иако историја Јуникса и његових универзитетских и комерцијалних варијанти може да заузме још доста страница, зарад средишње теме нашег чланка, хајде да наставимо успоном Линукса.

 

Упознајте Линукс

Оно што данас називамо оперативним системом Линукс заправо је спој два покушаја из раних деведестих. Ричард Столмен је хтео да направи истински слободну алтернативу отвореног кода за власнички Јуникс. Радио је на алатима и програмима под именом ГНУ, рекурзивној скраћеници “ГНУ није (Ј)Уникс!”. Иако је постојао и пројекат развоја кернела, развој је тешко ишао, а без кернела, сан о слободном оперативном систему отвореног кода није могао да буде остварен. Рад Линуса Торвалдса, прављење доброг кернела који је назвао линукс, је оно што је читав оперативни систем оживело. С обзиром да је Линус користио више ГНУ-ових алатки (на пример GNU Compiler Collection, или GCC, програмски преводилац за програмски језик Ц), спој ГНУ-ових алата и линукс кернела је био савршен.

Линукс дистрибуције су настале од делова ГНУ-а, линукс кернела, МИТ-овог X-Windows графичког окружења и осталих компоненти БСД-а које је било могуће употребити под БСД-овом лиценцом отвореног кода. Рана популарност дистрибуција попут Слаквера и након тога “Ред хета” дала је “просечном кориснику рачунара” из деведесетих приступ опреративном систему Линукс и, са њиме, многим пропријетарним могућностима Јуникса и алатки коришћених за посао или академски живот.

Због става слободног и отвореног кода свих компоненти Линукса, свако је могао да направи Линукс дистрибуцију уз мало труда, и убрзо је број дистрибуција порастао на стотине. “Дистровоч” данас наводи да постоји 312 Линукс дистрибуција. Наравно, већина програмера користи Линукс или преко клауд провајдера или преко познатих бесплатних дистрибуција – Федоре, Убунтуа, Дебијана, Арча, Џентуа и њихових, безбројних, варијанти. Комерцијалне понуде Линукса, које пружају подршку поврх слободних компоненти отвореног кода, постале су уносне јер су многе велике фирме, укључујући ИБМ, прешле с власничког Јуникса на софтверска решења заснована на Линуксу. “Ред хет” је изградио модел комерцијалне подршке око РХЕЛ-а (Red Hat Enterprise Linux), а исто је урадила и немачка фирма СУСЕ са СЛЕС-ом (SUSE Linux Enterprise Server).

 

Поређење 

Рекосмо нешто о историји Јуникса и успону Линукса и основама алтернативе Јуниксу коју су развили ГНУ и Задужбина за слободан софтвер. Хајде да сад погледамо разлике између ова два оперативна система који деле велики део заједничког наслеђа и циљева.

Из перспективе корисничког искуства, нема много разлика! Линукс је највише пажње привукао због подршке за разне архитектуре хардвера (укључујући и модерне личне рачунаре) и због могућности да се користе алати са којима су корисници и систем администратори Јуникса упознати.

Због стандарда POSIX, софтвер који је био написан за Јуникс је било могуће компајлирати за Линукс уз нешто улагања труда у портовање. Шел скрипте су могле да се користе без измена на Линуксу у већини случајева. Док су неке наредбе примале опције са командне линије мало другачије, већина је радила на Јуниксу и Линуксу потпуно исто.

Гледајући са стране, можемо рећи да се популарност МекОС хардвера и оперативног система као платформе за развој највише може приписати сличности тог оперативног система са БСД-ом и Линуксом. Већина алата и скрипти намењих Линуксу би лако могли да раде и у терминалу МекОС-а. Већина програма отвореног кода који су доступни на Линуксу могу се преузети преко алата као што је Homebrew.

Остале разлике између Линукса и Јуникса се углавном односе на модел лиценцирања: отворени код и власнички, лиценцирани софтвер. Такође, недостатак заједничког кернела код Јуникс дистрибуција има утицаја на произвођаче софтвера и хардвера. За Линукс, произвођач може да напише управљачки програм за одређени део и да очекује да ће радити на већини дистрибуција. Због комерцијалних и универзитетских грана Јуникса, произвођач би можда морао да пише различите управљачке програме (драјвере) за различита издања Јуникса и да има одређене проблеме са лиценцирањем или приступом СДК-у (SDK, Sotfware Developmet Kit, пакет за развој програма за одређену платформу), или приступом управљачким програмима у бинарном облику на различитим варијантама Јуникса.

Како су обе заједнице сазреле у прошлој деценији, многе предности Линуска су прихваћене и у свету Јуникса. Многе ГНУ-ове алатке су учињене доступним као додаци за Јуникс системе за које су програмери хтели ГНУ-ове програме који нису део Јуникса. На пример, Ај-Би-Ем-ов AIX је нудио AIX Toolbox за Линукс апликације са стотинама ГНУ-ових пакета софтвера (Bash, GCC, OpenLDAP…) који су могли да се додају инсталацији AIX-а да би прелазак са Линукса и Јуникса на AIX био лакши.

Власнички Јуникс је и даље жив и здрав и, како више великих произвођача обећавају подршку и за наредну деценију може се рећи да ће Јуникс бити ту још дуго. Такође, БСД грана Јуникса је отвореног кода, а NetBSD, OpenBSD и FreeBSD имају јаку корисничку базу и заједнице окупљене око слободног софтвера које нису толико видљиве или активне попут линуксашких, али имају свој удео на тржишту сервера, са бројевима доста већим од власничких Јуникса у областима као што су веб сервери.

Линукс је показао значајну предност у односу на власнички Јуникс у доступности на великом броју хардверских платформи и уређаја. Распбери пај, познат међу хобистима и ентузијастима, ради на Линуксу и отворио је врата целом спектру IoT уређаја који покрећу Линукс. Већ смо поменули Андроид уређаје, кола (са Automotive Grade Linux-ом) и паметне телевизоре, где Линукс има највећи удео на тржишту. Сваки боговетни клауд провајдер на планети нуди виртуелне сервере са Линуксом, а многи од данашњих клауд-нејтив стекова (cloud-native stacks) су засновани на Линуксу, без обзира да ли говоримо о контејнерима попут Кубернета или многих других тзв. серверлес (serverless) платформи чија популарност расте.

Један од најбољих показатеља раста који је Линукс остварио је прелазак који је направио “Мајкрософт” у претходним годинама. Да сте програмерима пре десет годинарекли како ће Виндоус да “покреће Линукс” 2016. године, већина би се зацерекала. Али постојање и популарност Виндоусовог подсистема за Линукс (Windows Subsystem for Linux, WSL), као и неке скоро најављене могућности попут порта Докера за Виндоус, укључујући и подршку за LCOW (Linux containers on Windows), су докази утицаја које је Линукс давао, и који ће сигурно наставити да пружа, широм света софтвера.

 

Аутор: Фил Естис

Извор: Опенсорс

Превод: Борисав Живановић