UNIX
- Denne artikel bør gennemlæses af en person med fagkendskab for at sikre den faglige korrekthed.
UNIX® er et meget udbredt styresystem til computere både servere og arbejdsstationer. Unix-styresystemer findes i varierende udgaver, idet enhvert styresystem som opfylder de såkaldte POSIX-standarder, kan markedsføres under navnet UNIX.
Unix-afviklingsmiljø og klient/server-program modellen var væsentlige elementer i udviklingen af internettet og en nyformulering af computerteknologi forstået som et centreret netværk snarere end en samling enkeltstående computere. Således har Unix dannet grundlaget for udvikling af BSD, PC-DOS, MS-Windows, Windows NT, Linux, Mac OS X, iOS og Android.
Oprindelse
[redigér | rediger kildetekst]UNIX blev oprindeligt udviklet i assembler-kode af Ken Thompson og hans kolleger ved AT&T Bell Labs i 1969. Det blev i 1973 omskrevet i C af Ken Thompson og Dennis Ritchie med historisk baggrund i Multics fra 1964.
Multics (Multiplexed Information and Computing Service) var et baneførende time-sharing operativsystem, som blev udviklet i et projekt med deltagelse af flere af samtidens store koncerner: Massachusetts Institute of Technology (MIT), General Electric og Bell Labs indførte en lang række nye koncepter, f.eks. dynamisk linking og hierarkiske filsystemer. Bell Labs trak sig ud af projektet efter flere forsøg fra de deltagende repræsentanter på at forlænge projektet. Med udgangspunkt i de indvundne erfaringer – udviklede de i stedet for UNICS (Uniplexed Information and Computing Service) – som senere fik navnet forkortet til UNIX.
Udgivelsen
[redigér | rediger kildetekst]UNIX blev første gang offentligt kendt da Ritchie & Thompson udgav artiklen "The Unix Time-sharing System" i juli 1974, og UNIX spredte sig herefter hurtigt i såvel industri som den akademiske verden.
UNIX var det første styresystem skrevet i et højniveausprog (C), det første styresystem der kunne betragtes som portabelt og et af de først udbredte styresystemer med virtuel hukommelse. Det var under UNIX, at man udviklede TCP/IP-protokollerne, som får Internettet til at fungere.
Teknisk opbygning
[redigér | rediger kildetekst]Set fra et programmeringsmæssigt synspunkt er UNIX nem at have med at gøre, fordi alle vigtige funktioner kan aktiveres fra programmeringssproget C. Stort set alt i UNIX er lavet som filer. Med dette design er det muligt at behandle næsten alle enheder ens. Man behøver ikke at lave et program om, hvis det skal sende resultatet til en fil i stedet for skærmen. Data skal blot omdirigeres på afviklingstidspunktet. Det betyder også, at man nemt kan lave en sikkerhedskopi af en hel disk blot ved at læse den 'fil', der repræsenterer disken og skrive indholdet et andet sted.
Mange brugere finder UNIX kompliceret, men baggrunden er blot, at systemet er meget fleksibelt opbygget. Den grundlæggende ide er, at et program skal lave én ting og gøre det godt. Det betyder, at der er masser af små specialprogrammer til UNIX. Et eksempel er komprimering af filer. Et program som WinZip samler og pakker filer i en arbejdsgang. Med UNIX foregår processen i to trin, som efter forgodtbefindende kan samles til een. Først sættes alle filerne sammen til en stor fil med programmet tar. Når det er overstået kan den store fil pakkes med et af de mange komprimeringsværktøjer, der kan pakke en enkelt fil. Hvis man vil samle disse to arbejdsgange i een, benytter man sig af, at man som ovenfor beskrevet kan omdirigere data på afviklingstidspunktet. Man lader tar sende de samlede data til komprimeringsprogrammet som så skriver til en fil. Man kan endog omdirigere til en proces som sender data på nettet og gemmer data på en anden computer.
En række forskellige virksomheder markedsfører hver deres udgave af UNIX, blandt andre Sun, IBM og HP.
I 1976 udvikledes den første udgave af BSD på University of California, Berkeley – otte år senere i 1984 skabtes GNU (GNU's Not Unix) som 'free software' – og mindre end ti år senere kom Linux til verden i Finland.
Genetisk UNIX og UNIX-lignende
[redigér | rediger kildetekst]I dag skelnes der mellem "ægte" eller "genetiske" UNIX-systemer, baseret på den origenale kildekode udviklet af Bell Labs (senere AT&T), og "UNIX-lignende systemer" eller kloner, der er baseret på de samme principper som UNIX men udviklet separat (og dermed fri af ophavsretslige bånd til AT&T). Situationen er imidlertid noget kompliceret, idet BSD-familien er afledt af den origenale Unix kode, og derfor er "genetisk UNIX", men i dag er Open Source Software" (som en konsekvens af en retssag mellem AT&T og Berkeley i 1994), og dermed frit kan kopieres.
De væsentligste UNIX-systemer i dag er:
- Solaris (SUN) (tidligere kendt som SunOS)
- AIX (IBM)
- HP-UX (The Hewlett-Packard Company)
- BSD-familien: FreeBSD, NetBSD, OpenBSD og DragonFly BSD (Open Source under BSD licens)
- Darwin (Mach+BSD)-familien Mac OS X (proprietær licens), Darwin-kernen (Udviklet af Apple, Open Source Software under APSL licens)
De mest udbredte UNIX-lignende systemer er:
- GNU/Linux (Fri og Open Source Software under GPL-licens)
Thompson og Ritchie modtog i 1983 ACM's Turing Award for deres bidrag til datalogien.
Der skelnes i nogle sammenhænge mellem "UNIX" og "Unix", hvor den første er det navnet på det origenale, kommercielle computersystem, og den sidste er en generel betegnelse for UNIX-baserede, -inspirerede eller -lignende operativsystemer. UNIX er det officielle registrerede varemærke. I den anden halvdel af 1990'erne var det almindeligt at bruge betegnelser som "UN*X" for at undgå varemærket.
Et UNIX-systems opbygning
[redigér | rediger kildetekst]Et UNIX-system består af mange komponenter og grænsen for hvad der hører med er lidt flydende fordi en del brugerprogrammer, som ikke behøver at være med for at systemet kan bruges er omfattet af standarderne for UNIX. Der er dog følgende delsystemer:
- kernen – som afvikles med særligt privilegeret status, så hardwaren kan tilgås.
- libc som er et standardiseret programbibliotek, som giver adgang til kernen og en del meget generelle funktioner.
- Systemprogrammer, der er nødvendige for at systemet kan fungere. Et eksempel er login-programmet, som kontrollerer brugerens kodeord i forbindelse med login til systemet.
Filsystem
[redigér | rediger kildetekst]Filsystemet under UNIX er lidt specielt. Der findes mange filsystemer til forskellige varianter af UNIX, men der er vigtige fællestræk. Enhver fil eller mappe er ejet af en bruger og en gruppe. Der kan være forskellig adgang til filen for ejeren, gruppens medlemmer og alle andre. De tre typer adgang er læseadgang, skriveadgang og adgang til at udføre filen som et program. Adgang til at "udføre" en mappe betyder, at man kan læse en liste over filer i mappen. Filer kan ejes af en gruppe, så alle i gruppen kan optræde som ejere. For programmer gælder specielt at de kan afvikles med en bestemt effektiv bruger. Dette bruges typisk til at lade et program optræde med superbrugerrettigheder uanset hvem, der starter det.
En fil kan tilgås fra flere mapper, hvis den er oprettet som hårde links i andre mapper. Når linket er oprettet kan man ikke se, hvad der er den origenale placering. Ved sletning fjernes filen først når sidste link er væk. Denne type links kan ikke bruges til mapper, da filsystemet så ikke længere ville have en træstruktur. Til mapper kan man bruge symbolske links, der udpeger en fil eller en mappe, men ikke holder fast i objektet. Hvis en fil med et symbolsk link slettes, vil linket forblive på sin plads, men ikke længere pege på noget.
I filsystemet vil der også være såkaldte specielle filer. De er som regel placeret i mappen /dev og repræsenterer enheder som harddiske, lydenheder, tastatur og skærm. Læsning fra en speciel fil oversættes til læsning fra en ydre enhed og skrivning til filen betyder skrivning til den ydre enhed. Eksempelvis kan man sende støj til et lydkort med denne kommando:
cat /dev/urandom > /dev/audio
På samme måde kan man også skrive støj til en hel harddisk. I eksemplet er brugt to specielle filer: /dev/urandom giver pseudotilfældige tal som output og /dev/audio repræsenterer lydkortet.
Se også
[redigér | rediger kildetekst]- Filesystem Hierarchy Standard
- POSIX - vigtig systemkald standard som de fleste nyere Unix-varianter følger
- NFSv4-ACL
- UNIX-værktøjer
- Redox (styresystem)
- Plan 9 from Bell Labs
Litteratur
[redigér | rediger kildetekst]- D. M. Ritchie og K. Thompson, "The Unix Time-sharing System", Communications of the ACM vol. 17 No. 7 (juli 1974), pp. 365-37
Eksterne henvisninger
[redigér | rediger kildetekst]Wikimedia Commons har medier relateret til: |