Unix ( IPA : [ ˈ j u ː n ɪ k s ] [1] [2] ) er en familie af bærbare , multi- tasking og multi-bruger operativsystemer, der er baseret på ideer fra den originale AT&T Unix projekt udviklet i 1970'erne i Bell Labs af Ken Thompson , Dennis Ritchie og andre.
Operativsystemer i Unix-familien er kendetegnet ved et modulært design, hvor hver opgave udføres af et separat hjælpeprogram , interaktion udføres gennem et enkelt filsystem , og en kommandoskal bruges til at arbejde med hjælpeprogrammer .
Idéerne bag Unix havde en enorm indflydelse på udviklingen af computeroperativsystemer. Unix-systemer er nu anerkendt som et af de mest historisk vigtige operativsystemer.
Det første Unix-system blev udviklet hos AT&T 's Bell Labs- afdeling . Siden da er der blevet skabt en lang række forskellige Unix-systemer. Kun de operativsystemer, der er certificeret i henhold til Single UNIX-specifikationen [3] er juridisk berettiget til at blive kaldt "UNIX" . Resten kaldes, selvom de bruger lignende koncepter og teknologier, Unix-lignende operativsystemer ( engelsk Unix-like ).
Den største forskel mellem Unix-lignende systemer og andre operativsystemer er, at de i sagens natur er multi-user multi-tasking-systemer. I Unix kan mange mennesker arbejde på én gang, hver på deres egen terminal , mens hver af dem kan udføre mange forskellige computerprocesser, der vil bruge ressourcerne på denne særlige computer.
Den anden kolossale fortjeneste ved Unix er dens multiplatform-natur. Kernen i systemet er designet på en sådan måde, at det nemt kan tilpasses til næsten enhver mikroprocessor.
Unix har andre karakteristiske egenskaber:
Siden 1980'erne er Unix-systemer primært blevet distribueret blandt servere . Siden 2010'erne er systemer baseret på kernen af Unix-lignende systemer blevet udbredt som indlejrede systemer til forskellig hardware, herunder smartphones . Unix-systemer dominerer også supercomputere , især Linux er installeret på 100% af TOP500 supercomputere.
Blandt systemer til arbejdsstationer og hjemmebrug rangerer Unix og Unix-lignende operativsystemer på andenpladsen ( macOS ), tredje ( Linux ) [4] og mange efterfølgende steder i popularitet efter Microsoft Windows .
I 1957 begyndte arbejdet hos Bell Labs på at skabe et operativsystem til internt brug. Under ledelse af Viktor Vysotsky blev BESYS -systemet skabt . Han tog efterfølgende ansvaret for Multics -projektet og blev senere chef for informationsafdelingen hos Bell Labs.
I 1964 dukkede tredje generations computere op, som BESYS's muligheder ikke længere var egnede til. Vysotsky og hans kolleger besluttede ikke at udvikle deres eget nye operativsystem, men at slutte sig til Multics, et fælles projekt mellem General Electric og MIT . Telekommunikationsgiganten AT&T , som inkluderede Bell Labs, gav projektet betydelig støtte, men trak sig tilbage i 1969 , fordi projektet ikke medførte økonomiske fordele.
Unix blev oprindeligt udviklet til PDP-7 minicomputere baseret på ideer fra Multics i slutningen af 1960'erne af Bell Labs, med store bidrag fra Ken Thompson , med betydelig input fra Dennis Ritchie og Douglas McIlroy . Da systemet var single-tasking [5] , fik systemet i 1970 navnet Unics - Uniplexed Information and Computing Service [6] i modsætning til multitasking Multics - Multiplexed Information and Computer Services [7] . Den endelige stavemåde, "Unix", tilskrives Brian Kernighan [8] [9] .
Den første version blev kaldt "første udgave" ( Edition 1 ) og var den første officielle version; fra det, tæller alle implementeringer af Unix systemtiden fra 1. januar 1970 . De første versioner af Unix blev skrevet i assemblersprog og havde ikke en indbygget sprogkompiler på højt niveau . Omkring 1969 udviklede og implementerede Ken Thompson med bistand fra Dennis Ritchie Bee -sproget , som var en forenklet (til implementering på minicomputere) version af BCPL -sproget udviklet i 1966 . Bi var ligesom BCPL et fortolket sprog. I 1972 udkom anden udgave af Unix, omskrevet på B-sproget. Mellem 1969 og 1973 blev der udviklet et kompileret sprog baseret på B , kaldet C.
I 1973 udkom den tredje udgave af Unix med en indbygget C-compiler. Den 15. oktober samme år udkom fjerde udgave, med systemkernen omskrevet i C (i Multics-systemets ånd, også skrevet på højniveausproget PL / 1 ), og i 1975 - femte udgave, fuldstændig omskrevet i C.
Siden 1974 er Unix blevet udbredt blandt universiteter og akademiske institutioner. Siden 1975 begyndte nye versioner udviklet uden for Bell Labs at dukke op, og systemets popularitet voksede. Også i 1975 udgav Bell Labs den sjette udgave , berømt for sin vidt cirkulerede kommentarer af John Lyons .
I 1978 blev systemet installeret på mere end 600 maskiner, primært på universiteter [10] . Den syvende udgave var den sidste forenede version af Unix. Det var i den, at Bourne-skallen , tæt på den moderne kommandolinjefortolker , dukkede op .
I begyndelsen af 1980'erne indså AT&T, som ejede Bell Labs, værdien af Unix og begyndte at bygge en kommerciel version af operativsystemet. Denne version, som kom til salg i 1982 , blev kaldt UNIX System III og var baseret på den syvende version af systemet.
Virksomheden var imidlertid ikke i stand til direkte at begynde at udvikle Unix som et kommercielt produkt på grund af et forbud fra den amerikanske regering i 1956 . Justitsministeriet tvang AT&T til at underskrive en aftale, der forbød virksomheden at deltage i aktiviteter, der ikke var relateret til telefon- og telegrafnetværk og -udstyr. For stadig at være i stand til at bringe Unix til rang af kommercielle produkter, donerede virksomheden kildekoden til operativsystemet til nogle højere uddannelsesinstitutioner og licenserede koden under meget liberale vilkår. I december 1973 modtog Berkeley University [11] en af de første kildekoder .
Siden 1978 begynder BSD Unix , skabt ved University of Berkeley , sin historie . Dens første version var baseret på den sjette udgave. I 1979 blev en ny version udgivet, kaldet 3BSD, baseret på den syvende udgave. BSD understøttede nyttige funktioner såsom virtuel hukommelse og on-demand sideerstatning. Forfatteren af BSD var Bill Joy .
En vigtig årsag til opdelingen i Unix var implementeringen i 1980 af TCP/IP-protokolstakken . Før dette var maskine-til-maskine kommunikation i Unix i sin vorden - den mest betydningsfulde kommunikationsmetode var UUCP (et middel til at kopiere filer fra et Unix-system til et andet, som oprindeligt arbejdede over telefonnetværk ved hjælp af modemer ).
To netværksapplikationsprogrammeringsgrænseflader er blevet foreslået: Berkley -sockets og TLI -transportlaggrænsefladen ( Transport Layer Interface ) .
Berkley sockets-grænsefladen blev udviklet ved University of Berkeley og brugte TCP/IP -protokolstakken udviklet der. TLI blev skabt af AT&T i henhold til transportlagsdefinitionen af OSI-modellen og dukkede først op i System V version 3. Selvom denne version indeholdt TLI og streams, implementerede den ikke oprindeligt TCP/IP eller andre netværksprotokoller, men sådanne implementeringer blev leveret af tredjeparter..
Implementeringen af TCP/IP blev officielt og definitivt inkluderet i basisdistributionen af System V version 4. Dette sammen med andre overvejelser (for det meste markedsføring) forårsagede den endelige afgrænsning mellem de to grene af Unix - BSD (University of Berkeley) og System V (kommerciel version fra AT&T). Efterfølgende udviklede mange virksomheder, der har licenseret System V fra AT&T, deres egne kommercielle varianter af Unix, såsom AIX , CLIX , HP-UX , IRIX , Solaris .
I midten af 1983 blev BSD version 4.2 frigivet, der understøttede Ethernet- og Arpanet-netværk . Systemet er blevet meget populært. Mellem 1983 og 1990 blev mange nye funktioner føjet til BSD, såsom en kerne- debugger , NFS -netværksfilsystemet , det virtuelle VFS -filsystem og stærkt forbedrede filnetværksmuligheder.
I mellemtiden udgav AT&T nye versioner af sit system, kaldet System V. I 1983 blev version 1 (SVR1 - System V Release 1) frigivet, som omfattede vi fuldskærmsteksteditoren , forbandelsesbiblioteket , I/O buffering og inode caching . Version 2 (SVR2), udgivet i 1984 , implementerede eksklusiv filadgang (fillåsning), adgang til sider efter behov (efterspørgselssøgning), kopi -på-skriv. Version 3 blev udgivet i 1987 og omfattede blandt andet TLI, samt fjernfilsystemets understøttelse af RFS . Version 4 (SVR4), udviklet i samarbejde med Sun og udgivet den 18. oktober 1988 , understøttede mange BSD-funktioner, inklusive TCP/IP, sockets og den nye csh - shell . Derudover var der mange andre tilføjelser, såsom symbolske links , ksh - skallen , NFS -netværksfilsystem (lånt fra SunOS ) osv.
Moderne implementeringer af Unix er generelt ikke rene V- eller BSD-systemer. De implementerer funktioner fra både System V og BSD.
I 1983 annoncerede Richard Stallman oprettelsen af GNU Project , et forsøg på at skabe et gratis Unix-lignende operativsystem fra bunden, uden at bruge den originale kildekode . Meget af softwaren udviklet af dette projekt – såsom GNU-værktøjskæden , Glibc ( C - standardbiblioteket ) og Coreutils – spiller en nøglerolle i andre gratis operativsystemer. Arbejdet med at skabe en erstatning for Unix -kernen , der er nødvendig for fuldt ud at udføre GNU's opgaver, forløb ekstremt langsomt. På nuværende tidspunkt er GNU Hurd , et forsøg på at skabe en moderne kerne baseret på Mach - mikrokernearkitekturen , stadig langt fra færdig.
I 1991 , da Linus Torvalds udgav Linux-kernen og hentede bidragydere, var det oplagte valg at bruge værktøjerne udviklet af GNU-projektet. GNU -operativsystemet og Linux-kernen udgør tilsammen operativsystemet kendt som GNU/Linux . Distributioner af systemet (såsom Red Hat og Debian ), som inkluderer kernen, GNU-værktøjer og yderligere software, er blevet populære hos både hobbyfolk og virksomheder .
I begyndelsen af 1992 blev 386/BSD , baseret på Networking Release 2 , frigivet . UNIX Systems Laboratories anlagde en retssag mod BSDI og derefter mod University of Berkeley for at tillade distribution af Unix-filer i kilde- og binære formater for stort set ingenting, hvilket underminerede USL selv.
I hele 1992 bragte USL ikke nogen væsentlig succes i retssager, men et modkrav fra University of California dukkede op . I begyndelsen af 1993 havde 386/BSD-distributionen skiftet navn til NetBSD . I december 1993 dukkede en anden distribution op - FreeBSD , rettet mod almindelige brugere. Efter Novells overtagelse af USL begyndte forhandlingerne i sommeren 1993 for at afgøre status for BSD-koderne. I januar 1994 blev CSRG og Novell enige om at fjerne tre filer fra 18000 Networking Release 2, nogle af filerne der skulle redigeres, og til omkring 70 filer skulle universitetet tilføje USL copyright-oplysninger.
I juni 1994 blev en "ren" udgivelse af 4.4BSD-Lite frigivet . Fra dette tidspunkt skulle BSDI-, NetBSD- og FreeBSD-grupperne re-synkronisere deres versioner af systemer med et "rent" 4.4BSD-Lite-system. Således skulle al udvikling foretaget i de tre år siden indgivelsen af USL-søgsmålet gennemgås for krænkelse af ophavsretten og brugen af tredjepartskode. Omskriv vigtige dele af kernen og driftsmiljøet. Meget senere blev OpenBSD , TrustedBSD og DragonFlyBSD adskilt i uafhængige projekter .
I 1997 ledte Apple efter et grundlag for sit nye styresystem, og valgte NEXTSTEP , et gratis kerneoperativsystem udviklet af NeXT .
I 2000 Apple Inc. frigiver det open source POSIX -kompatible Darwin -operativsystem . Den kombinerer kode skrevet af Apple selv med kode fra NeXTSTEP , FreeBSD og andre open source-projekter. Darwin er et sæt kernekomponenter, der bruges i Mac OS X og Apple iOS . Den er kompatibel med Single UNIX Specification Version 3 (SUSv3) og POSIX applikationer og hjælpeprogrammer.
Den 14. juni 2005 blev kildekoden til Solaris -operativsystemet åbnet . Dette projekt, såvel som det operativsystem, der blev oprettet på grundlag af det, blev kaldt OpenSolaris . Den 17. juni, tre dage efter koden blev åbnet, blev SchilliX- distributionen oprettet . I maj 2008 dukkede den første officielle distribution af OpenSolaris 2008.05 op. Der er mere end ti distributioner baseret på OpenSolaris, hvoraf de mest berømte er BeleniX og Nexenta OS .
I øjeblikket overtager GNU/Linux og medlemmer af BSD-familien hurtigt markedet fra kommercielle Unix-systemer og infiltrerer samtidig både slutbruger-desktops og mobile og indlejrede systemer.
Siden opdelingen af AT&T har Unix- varemærket og rettighederne til den originale kildekode skiftet ejer flere gange, især har de tilhørt Novell i lang tid .
I 1993 overførte Novell rettighederne til varemærket og til at certificere software, der er i overensstemmelse med dette mærke til X/Open -konsortiet , som derefter fusionerede med Open Software Foundation for at danne The Open Group . Det samler førende computervirksomheder og statslige organisationer, herunder IBM , Hewlett-Packard , Sun , NASA og mange andre. Konsortiet udvikler åbne operativsystemstandarder, hvoraf den vigtigste er Single UNIX Specification , tidligere kendt som POSIX . Ifølge The Open Group er det kun systemer, der er certificeret til Single UNIX-specifikationen, der kan bære navnet UNIX.
I 1995 solgte Novell rettighederne til eksisterende licenser og videreudvikling af System V til Santa Cruz Operation . I 2000 solgte Santa Cruz Operation sin Unix-forretning til Caldera , som derefter blev omdøbt til SCO Group . Selvom dette navn ligner SCO-akronymet, der bruges af Santa Cruz Operation, er de to forskellige virksomheder.
SCO-gruppen hævdede, at den også havde rettighederne til Unix-kildekoden og lancerede en kampagne mod forskellige brugere og leverandører af Unix-lignende systemer for royalties. Novell hævder dog, at rettighederne til kildekoden ikke blev overført til Santa Cruz Operationen og dermed ikke overgik til SCO Group, men forbliver hos Novell, hvilket rettens dom bekræftede. På trods af dette omstødte US Tenth Circuit Court of Appeals i august 2009 den tidligere afgørelse og beordrede en yderligere undersøgelse for at fastslå den retmæssige ejer af ophavsretten til operativsystemets kildekode [12] . I juni 2010 satte retten en stopper for dette spørgsmål og bekræftede en anden dom afsagt tidligere (i april 2010) til fordel for Novell og nægtede at overveje yderligere klager fra SCO Group [13] .
Unix-systemer er af stor historisk betydning, fordi de har udbredt nogle af nutidens populære operativsystem- og softwarekoncepter og -tilgange . Også under udviklingen af Unix-systemer blev C -sproget skabt .
Ligesom Multics blev Unix skrevet i et sprog på højt niveau frem for assembly (som var dominerende på det tidspunkt).
Den indeholdt en væsentligt forenklet, sammenlignet med dens forgængers operativsystemer, filmodel . Filsystemet omfattede både tjenester og enheder (såsom printere , terminaler og harddiske ) og gav en overfladisk ensartet grænseflade til dem, men yderligere mekanismer til at arbejde med enheder (såsom IOCTL og adgangsbits) passede ikke ind i den simple " byte stream” model .
Unix populariserede Multics' idé om et hierarkisk filsystem med vilkårlig indlejringsdybde. Andre operativsystemer (inklusive DOS) på den tid tillod diskplads at blive opdelt i mapper eller sektioner, men antallet af indlejringsniveauer var fast, og ofte var der kun ét indlejringsniveau. Senere alle større proprietære operativsystemer[ klarer ] har fået muligheden for at skabe rekursive undermapper, også lånt fra Multics.
Det faktum, at kommandofortolkeren kun er blevet et af brugerprogrammerne , og separate programmer fungerer som ekstra kommandoer, er en anden nyskabelse af Multics. populariseret af Unix. Unix-skalsproget bruges af brugeren både til interaktivt arbejde og til at skrive scripts , det vil sige, at der ikke er noget separat jobbeskrivelsessprog, som for eksempel i IBM JCL -systemet . Da styresystemets shell og kommandoer er almindelige programmer, kan brugeren vælge dem efter deres præferencer eller endda skrive deres egen shell. Endelig kan nye kommandoer tilføjes til systemet uden at genkompilere kernen . Den nye måde at skabe kæder af programmer, der behandler data sekventielt, foreslået på Unix-kommandolinjen, fremmede brugen af parallel databehandling.
De væsentlige funktioner i Unix var dets fulde fokus på tekst I/O og antagelsen om, at størrelsen af et maskinord var et multiplum af otte bit. I starten havde Unix ikke engang binære editorer - systemet var fuldstændigt konfigureret ved hjælp af tekstkommandoer. Den største og mindste enhed af I/O var tekstbyten , som fuldstændig adskilte Unix I/O fra den rekordorienterede I/O i andre operativsystemer. Fokus på at bruge tekst til at repræsentere alt, hvad der er muligt, har gjort de såkaldte pipelines nyttige . 8-bit tekstbyte-orienteringen gjorde Unix mere skalerbar og bærbar end andre operativsystemer. Med tiden har tekst-apps vundet dagen[ klargør ] og på andre områder, for eksempel på niveau med netværksprotokoller såsom Telnet , FTP , SMTP , HTTP og andre.
Unix bidrog til den udbredte brug af regulære udtryk , som først blev implementeret i ed -teksteditoren til Unix. Funktionerne til Unix-programmer blev grundlaget for Standard Operating System Interfaces ( POSIX ).
Udbredt i systemprogrammering har C -sproget , der oprindeligt blev skabt til udviklingen af Unix, overgået Unix i popularitet. C-sproget var det første "tolerante" sprog, der ikke forsøgte at påtvinge programmøren en programmeringsstil. C var det første sprog på højt niveau, der gav adgang til alle funktionerne i processoren, såsom referencer , tabeller, bitskift , trin og lignende. På den anden side førte C-sprogets frihed til bufferoverløbsfejl i standard C-biblioteksfunktioner som gets og scanf . Mange berygtede sårbarheder resulterede, såsom den, der blev udnyttet i den berømte Morris-orm .
De tidlige udviklere af Unix bidrog til introduktionen af principperne for modulær programmering og genbrug i ingeniørpraksis.
Unix muliggjorde brugen af TCP/IP-protokoller på relativt billige computere, hvilket førte til internettets hurtige vækst . Dette bidrog igen til den hurtige opdagelse af flere store sårbarheder i Unix-sikkerhed, arkitektur og systemværktøjer.
Med tiden udviklede førende Unix-udviklere kulturelle normer for softwareudvikling, der blev lige så vigtige som Unix selv. ( mere... )
Nogle af de bedst kendte eksempler på Unix-lignende systemer er macOS , Solaris , BSD og NeXTSTEP .
Funktioner i Unix, der adskiller denne familie fra andre systemer:
Det store antal forskellige varianter af Unix-systemet har ført til behovet for at standardisere dets funktioner for at gøre applikationer nemmere at portere og spare brugeren for at skulle lære detaljerne i hver variant af Unix.
Til dette formål blev brugergruppen /usr/group oprettet tilbage i 1980 . De første standarder blev udviklet i 1984-1985.
En af de tidligste standarder var System V Interface Definition (SVID), udgivet af UNIX System Laboratories (USL) på samme tid som UNIX System V Release 4. Dette dokument blev dog ikke officielt.
Sammen med UNIX System V- versionerne var der Unix BSD -retningen . For at sikre kompatibilitet mellem System V og BSD blev der oprettet POSIX ( portable operativsystem interface til Unix ) arbejdsgrupper . Der er mange POSIX-standarder, men den mest kendte er POSIX 1003.1-1988, som definerer Application Programming Interface (API). Det bruges ikke kun i Unix, men også i andre operativsystemer. ( mere ... ) I 1990 blev det vedtaget af IEEE som IEEE 1003.1-1990 og senere som ISO/IEC 9945.
I øjeblikket[ afklare ] de vigtigste er følgende standarder ( mere... ):
Alle POSIX-standarder er konsolideret i IEEE 1003-dokumentet.
I begyndelsen af 1990'erne foreslog The Open Group en anden POSIX-lignende standard, Common API Specification eller Spec 1170. Standarden vandt mere popularitet end POSIX, fordi den var tilgængelig gratis, mens IEEE krævede et stort gebyr for adgang til din standard.
I 1998 begyndte arbejdet med at forene disse standarder. Som følge heraf er disse standarder nu næsten identiske. Den fælles standard hedder Single UNIX Specification Version 3 og er tilgængelig gratis på internettet [14] .
Af kompatibilitetsformål har flere Unix-systemskabere foreslået at bruge ELF , SVR4- systemformatet til binære filer og objektfiler . Helt enkelt format sikrer, at binære filer matcher inden for den samme computerarkitektur.
Mappestrukturen for nogle systemer, især GNU/Linux , er defineret i Filesystem Hierarchy Standard . Men på mange måder er denne type standard kontroversiel, og selv inden for GNU/Linux-fællesskabet er den langt fra universel. .
Blandt standard Unix-kommandoer [15] :
60 kommandoer fra sektion 1 i den første version af Unix:
Unix og Unix-lignende operativsystemer | |
---|---|
Operativsystemer |
|
Kompatibilitetslag |
|
Kategori Wikimedia Commons Wikibooks Wikiquote |
af operativsystemer | Aspekter|||||
---|---|---|---|---|---|
| |||||
Typer |
| ||||
Nucleus |
| ||||
Procesledelse _ |
| ||||
Hukommelseshåndtering og adressering | |||||
Indlæsnings- og initialiseringsværktøjer | |||||
skal | |||||
Andet | |||||
Kategori Wikimedia Commons Wikibooks Wiktionary |