Linux®


Linux startet som et hobby-prosjekt av den finske (daværende, anno 1991) data-studenten Linus Torvalds. Et nyhetsgruppe-innlegg (fra: comp.os.minix) av Torvalds (University of Helsinki), annonserer hobbyprosjektet og ber om innslag fra brukere på Internett:

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID:
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

       Linus (torvalds@fitorvalds@kruuna.helsinki.fi))

PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
Google-groups arkivert nyhetsgruppe-innlegg fra Linus

Torvalds satte altså (alene) i gang med å utvikle et fritt, Unix-lignende operativ-system, ved å bruke de fritt tilgjengelige GNU-verktøyene lansert av Free Software Foundation (som for eksempel “bash”, “binutils”, “gcc”, og så videre) for å lage sin egen monolittiske system-kjerne (engelsk: kernel) i system-implementering språket “C”, med et operativ-system for studenter kalt “Minix” (Unix-lignende mikrokjerne- system ) som utgangspunkt.

Linux ble også utviklet på Minix (systemet det tok utgangspunkt i), kjørende på en 386-basert laptop og kompilert med GCC (GNU Compiler Collection). I starten ble Linux egentlig bare laget som en Minix-klone, og distribuert som et kildekode-arkiv på Internett for tekniske brukere.




Distribusjoner

En «Linux-distribusjon» er en Linux-basert programvare-samling som sammen utgjør et komplett Linux-system, med et eget hovedmål for bruken av systemet (desktop, server, nas, router, og så videre).

Tilbake i 1991 når Linux-kjernen (engelsk: Linux kernel) først ble sluppet på Internett for første gang, var det ikke noen som hadde planlagt og laget en programvare-samling for å skape det vi i dag refererer til som en «Linux-distribusjon», eller «Linux-distro».

«HJ. Lu's bootable rootdisk»

Som basis inneholdt et funksjonelt Linux system på denne tiden minst: Linux-kjernen (laget av Torvalds) og et minimalt sett med biblioteker og verktøy fra GNU (laget av folkene i FSF). Et nokså normalt (på den tiden, minimalt i forhold til i dag) eksempel på et ganske standard Linux system. Man kunne knapt kalle Linus Torvalds egne doble «Root/Boot» disketter en distribusjon (de inneholdt lite verktøy). Det nærmeste man kunne finne en distribusjon, var «H.J. Lu's bootable rootdisk» som var én diskett for et minimalt Linux system for system-gjenoppretting. «Ekte» distribusjoner dukket ikke opp før senere.

«MCC Interim Linux»

Manchester Computing Centre i England, lanserte sitt eget «in-house» Linux system kalt «MCC Interim Linux», offentlig tilgjengelig via FTP. Dette systemet kunne kalles en distribusjon i det aspektet at det ble utviklet og testet av profesjonelle.

«TAMU»

Rett etter MCC Interim Linux, lanserte Texas A&M University i USA også sitt eget Linux system, kalt «TAMU». Denne Linux-samlingen var den første som tilbydde «X Window System» (det grafiske «skrivebords-grensesnittet» for UNIX/BSD/Linux) når det ble oversatt til Linux.

Alle disse for-nevnte systemene ble lansert for bruk på disketter, og ingen av disse diskett-distribusjonene var ment for allmenn bruk. Men heller som utviklings- og / eller forsknings-systemer for bruk i akademisk hensikt eller av spesielt interesserte.

«Yggdrasil»

Offentlig annonserte distribusjoner (som ikke bare var ment for «in-house» eller akademisk bruk) startet ikke før «Yggdrasil» kom på banen, tidlig (18. februar) i 1993. Yggdrasil var det første Linux systemet som ble lansert for bruk på CD-ROM. Yggdrasil ble heller ikke veldig allment anerkjent da det ikke var mange som i det hele tatt visste om Linux på den tiden.

«Softlanding Linux System»

Det var først da «Softlanding Linux System »(«SLS») kom (1993), at mer folk begynte å bruke Linux og anerkjenne samlingen som en Linux-distribusjon. SLS var et prosjekt laget av Peter MacDonald (kanadisk programvare-ingeniør), som dominerte Linux-markedet i begynnelsen (MacDonald-sitat: «the first complete freeware Unix distribution»). Dominansen varte i alle fall til utvikleren av prosjektet bestemte seg for å bytte det kjørbare fil-formatet fra «a.out» (den gamle UNIX®-standarden) til «ELF» (Executable and Linkable Format). Dette ble ikke godt mottatt av brukerbasen, og ble grunnlaget for en del «diskusjons-kriger» (engelsk: «flame-wars») innenfor SLS-fellesskapet. SLS ble også ansett som ganske «buggete» av brukerene generelt.

«Slackware Linux»

Det var rundt denne tiden at Patrick Volkerding også sa seg uenig i beslutningene som ble tatt og gjennomført i SLS. Han tok den gjeldende varianten av SLS som utgangspunkt, og i løpet av april 1993 tilpasset, modifiserte, feil-fikset og ryddet han opp i distribusjonen som i løpet av denne tiden ble til noe helt nytt. Resultatet ble hans egen vri, hans «fork»(«modifisert kopi-variant») av SLS Linux, som han kalte «Slackware Linux».

Slackware Linux er i dag den eldste Linux-distribusjonen (v1.0 ble lansert 16. Juli 1993) som enda eksisterer og vedlikeholdes. Den er kanskje mest kjent for å være den mest «UNIX-lignende» Linux-distribusjonen (veldig «kommando-linje-rettet» grunnbase-system).

«Debian GNU/Linux»

Debian GNU/Linux var hjertebarnet til utvikleren Ian Murdock. Murdock var også veldig irritert over utviklingen i SLS, og satte heller i gang sitt eget prosjekt fra grunnen av, med SLS som eksempel-system (Debian-annonsering, fra nyhetsgruppen comp.os.linux.development, anno 16. Aug. 1993).

«Red Hat Linux»

Rett etter Debian ble den kanskje mest kommersielt kjente Linux-distribusjonen «Red Hat» lansert (1993). I begynnelsen av prosjektet, fokuserte de mest på å skape et bedriftsrettet desktop-alternativ, men da dette ikke ga nevneverdige resultater, fokuserte de mer på tjener-markedet med «Red Hat Enterprise Linux», og lanserte heller desktop-distribusjonen som et eget åpen-kildekode prosjekt kalt «Fedora Core» for videreutvikling i fellesskapet på Internett.

Disse tre distribusjonene ble i løpet av 90-tallet sertifiserte Linux-baser, og utgangspunktene for mange av dagens mer populære fork-distribusjoner, som for eksempel «Gentoo» / «Arch Linux» (Slackware), «Ubuntu» / «Linux Mint» (Debian GNU/Linux) og «Fedora Core» / «CentOS» (Red Hat).

Nåtidens mer allmenn-populære distribusjoner har rettet hovedmålene sine mot å tilby et mer bruker-rettet desktop-alternativ som ligner på de mest populære proprietære desktop-systemene (Apple Mac OS/X, Micosoft Windows 7/8), og inneholder derfor gjerne også flere grafiske vindus-grensesnitt, bedre kjent som «vindus-behandlere» (engelsk: «window managers»). Eksempler på vindus-behandlere inkluderer blant annet: «KDE», «GNOME», «Unity», «MATE», «Cinnamon», «Fluxbox», «Blackbox», «fwm» og «XFCE».

Hva en Linux-distribusjon inneholder, kommer altså helt an på hva bruksformålet er for hver spesifikke distribusjon.

I skrivende stund er det over 600 forskjellige distribusjoner tilgjengelig på Internett (i følge www.distrowatch.com).




Sikkerhet

Linux har fra begynnelsen av vært veldig sikkerhetsfokusert. Dette fordi system-typen det skulle etterligne (Unix) ble laget med enkelhet, sikkerhet og stabilitet i fokus.

Unix-rettigheter / tilgangsrettigheter («DAC»)

«Discretionary Access Controls» («DAC») er sikkerhets-aspektene som er under kontroll av fil- eller mappe-eier i Unix- / Unix-lignende systemer. Tradisjonelle Unix-rettigheter på fil-systemet endres og settes gjennom det som kalles «bit-metoden»(engelsk: «bit method»).

Linux har akkurat samme type DAC-system som Unix (POSIX-standard), bare kodet og implementert annerledes (for å unngå å bryte opphavsrettighetene til UNIX®). I Linux refereres disse rettighetene til som tilgangsrettigheter.
DAC-baserte tilgangsrettigheter finnes i de fleste oprativ-systemer i dag og det er denne typen tilgangsrettighet de fleste av oss er vant med.

Security-Enhanced Linux / SELinux («MAC»)

Security-Enhanced Linux (SELinux) er «Mandatory Access Control» / «MAC»-implementasjonen som kan legges til i Linux-kjernen.

SELinux sjekker om noe faktisk er tillatt av gjeldende MAC policy (etter at vanlige Unix-rettigheter (DAC) allerede er sjekket, med andre ord dobbeltsjekker den sitt eget policy-sett som en andre-faktor for sikkerhetens skyld). Vanlige Unix-rettigheter er (som nevnt ovenfor) et godt eksempel på Discretionary Access Controls (DAC), og i SELinux-sammenheng vil MAC policyer overkjøre DAC-regler.

SELinux hindrer prosesser tilgang til å skrive til eller lese filer som de ikke skal ha tilgang til. Som eksempel, kan en web-tjener (som for eksempel httpd) normalt ikke lese tilfeldige filer under system-mappen «/etc», som passord-filen «/etc/passwd». Selv om denne filen er lesbar (tilgangsrettighet) for alle vil ikke httpd få lese den, fordi dersom tjenesten prøver, vil SELinux da hindre dette som et sikkerhetsbrudd. Dette gir betydelig større sikkerhet dersom tjenesten httpd skulle bli kompromittert.

Hovedforskjellen mellom DAC og MAC er selve autoriteten som setter reglementet. Med MAC blir sikkerheten hevet over vanlige brukere og lokale superbrukere, håndtert av en sentral administrator, og det hele blir sett mer på som en sikkerhets-arkitektur.

Mange nyere Linux-distribusjoner har inkludert SELinux som standard i sine systemer. Disse inkluderer blant andre: Red Hat Enterprise Linux, Ubuntu Server / Desktop, Linux Mint, og så videre.

SELinux er laget og videreutvikles av USAs National Security Agency (NSA).

Nettverksikkerhet / netfilter

Nettverksikkerhet styres direkte i Linux-kjernen, av system-tjeneren «netfilter». Netfilter behandler nettverkpakker som skal inn / videreformidles i et Linux system, og er selve rammeverket og motoren for pakke-filtrering. Pakker som havner hos tjener / klient, går først gjennom netfilter hvor det videre blir akseptert, manipulert, eller avvist basert på reglene som er satt ved hjelp av administrasjons-verktøyet: «iptables».

Iptables / ufw

Iptables er ikke et lett konfigurasjons-program, men et avansert kommando-linje verktøy for administrasjon av netfilter-baserte brannmurer (SPI-regler organisert i logikk-kjeder). I nyere Linux-distribusjoner, som for eksempel Ubuntu (siden versjon 8.04), har de laget både et kommando-linje verktøy og grafisk grensesnitt for brannmur-administrasjon for å forenkle disse oppgavene for administratorer med lite forkunnskaper om netfilter / iptables i praksis.

I Linux-distribusjonen Ubuntu heter kommando-linje administrasjons-verktøyet for brannmur «ufw» (Uncomplicated Firewall), og det tilhørende grafiske grensesnittet «gufw». Ufw ble laget for å forenkle de nokså kompliserte kommando-argumentene som iptables krever for å lagre og kjøre et gitt regel-oppsett.

Ikke at ufw er dårligere eller manglende i forhold til iptables, ufw-rammeverket kan sette opp nøyaktig samme typer regelsett som iptables, bare på en litt mindre komplisert måte for sluttbrukeren. For å gjøre dette, leter ufw etter «iptables-scripts» (bash-scripts med iptables-kommandoer, som for eksempel kan eksporteres direkte fra iptables med verktøyet iptables-save) i «/etc/ufw/». Regel-filene heter «before6.rules» som laster spesifiserte iptables-kommandoer før regler som er lagt til av ufw, og «after6.rules» som laster spesifiserte iptables-kommandoer etter regler som er lagt til av ufw.

Eksempel på ufw-kommandoer for å sette opp en enkel brannmur:

user@linuxbox>$ sudo ufw allow ssh/tcp
user@linuxbox>$ sudo ufw logging on
user@linuxbox>$ sudo ufw enable
Firewall loaded
user@linuxbox>$ sudo ufw status
Status: active
ToActionFrom
------------
22:tcpALLOWAnywhere

Dette setter opp en standard «DROP»-brannmur (avvisende) som tillater innkommende SSH forbindelser, og tillater alle utgående forbindelser med tilstandsovervåking. Som vist ovenfor, er ikke ufw-kommandoer veldig komplekse. Iptables kommandoer derimot, kan bli nokså komplekse, alt ettersom hvilken regel-funksjonalitet / protokoll det dreier seg om.

Med ufw-eksempelet som utgangspunkt, vil kommandoer med iptables bli tilsvarende:

user@linuxbox>$ sudo iptables -F
user@linuxbox>$ sudo iptables -A INPUT -m conntrack --ctstate \ ESTABLISHED,RELATED -j ACCEPT;
user@linuxbox>$ sudo iptables -ACCEPT-A INPUT -p tcp --dport ssh -j ACCEPT
user@linuxbox>$ sudo iptables -A INPUT -j DROP
user@linuxbox>$ sudo iptables -L
Chain INPUT (policy ACCEPT)
targetprotoptsourcedestination
ACCEPTall--anywhereanywherestate RELATED,ESTABLISHED
ACCEPTtcp--anywhereanywheretcp dpt:ssh
DROPall--anywhereanywhere

Eksempelet er noe forenklet, men viser allikevel at iptables har en mer komplisert struktur enn ufw.

Secure Shell (SSH)

Secure Shell (SSH) er akkurat som det høres ut som fra navnet, et «sikret skall».

SSH oppstod som en nettverkprotokoll for sikret fjern-innlogging og andre sikrede nettverkstjenester over usikrede nettverk (Internett / WAN).

SSH protokoll versjon 1.0 ble laget i 1995 av den finske forskeren Tatu Ylonen, ved University of Helsinki. Tidlig i 1995 ble passordet til Ylonen snappet opp fra universitets-nettverket, og Ylonen så sitt til å utvikle en sikkerhetsprotokoll for å beskytte mot nettopp slik passord-sniffing. Det var ikke før senere i 1995 da SSH-1 fikk en større brukerbase, at manglene ved 1.0-protokollen ble oppdaget. Feilene kunne ikke fikses uten å ødelegge bakover-kompatibilitet med tidligere protokoll-versjoner (<=1.0). Ylonen opprettet firmaet SSH Communications Security, Ltd.(«SCS»), som i 1998 lanserte SSH protokoll versjon 2.0 eller SSH-2 for å rette opp sikkerhetsfeilene gjort i versjon 1.0. SCS lanserte etterhvert sin «SSH Secure Shell» programpakke under en mer liberal programvarelisens som tillot bruken av SSH innen «ikke-kommersielle interesser», som også tillot gratis gjenbruk i Linux, NetBSD, FreeBSD og OpenBSD operativ-systemer.

Sent i år 2000 (da referanse-boken ble trykt), var SSH-2 enda ikke blitt industri-standard da mange selskaper enda satt på eldre Unix-systemer og benyttet SSH-1 daglig. SSH-1 inneholder en rekke alvorlige sårbarheter, som til og med den dag i dag (2013) blir brukt av ymse selskaper som kjører utdaterte Unix-type systemer. Derfor blir sårbarheter i protokollen enda overvåket av National Institute of Standards and Technology (NIST/USA) sin CVE(Common Vulnerabilities and Exp osures )-database.

SSH-1 erstattet etterhvert den tidligere velbrukte standarden «telnet» (som fremdeles brukes i noen profesjonelle switcher / rutere og proprietære Unix-systemer), siden telnet-protokollen ikke ble ansett som sikker nok (sendte brukernavn og passord i klartekst for innlogging, med andre ord har ikke telnet sikring) til å brukes over offentlige (usikrede) kommunikasjonskanaler.

I dag benyttes SSH-2 som standard sikret kommunikasjonsprotokoll mot nyere Linux- / BSD- / Unix-systemer over Internett.

«OpenSSH» (www.openssh.com) er et under-prosjekt i OpenBSD-prosjektet. Det er denne implementasjonen av SSH-2 som finnes i de fleste POSIX baserte operativ-systemer (Unix / BSD / Linux / Mac OS X / Minix) den dag i dag.




Egne tanker om Linux

Unix-type systemer har siden 70-tallet vært ganske sentrale infrastruktur-komponenter for utvikling, forskning, laboratoriearbeid, datanettverk og sist men ikke minst: dannelse og videreutvikling av «ARPANET» (1968-1982) som resulterte i det verdensomspennende nettverket vi i dag kaller «Internett». Så man kan vel si at Unix har satt sine spor som et industri-godkjent produksjonssystem siden tidlig data-alder.

Unix ble laget på prinsippet om at programmer skulle være små og utføre en oppgave om gangen. Tunge oppgaver ble fordelt ved å kjøre informasjon fra program til program med pipes. Under arbeidet med å utvikle Unix, ble det også laget et lett, enkelt (i forhold til daværende programmeringsspråk), maskinuavhengig (portabelt), men allikevel kraftig programmeringsspråk for å kunne flytte programvare fra maskin til maskin, i stedet for å måtte skrive om kode helt fra bunnen av for hver eneste nye maskin-arkitektur. Dette var starten på C. Unix-prinsippene har levd helt inn i vår tid, men mest i akademisk / teknisk / forsknings sammenheng.

Det var ikke før den finske universitet-studenten Linus Torvalds tidlig på 90-tallet fant ut han ville ha et Unix-type system, slik som de hadde på universitetet (Sun Solaris), men som kunne kjøre på hans 386-baserte laptop. Torvalds tok til seg alle spesifikasjoner han kunne finne på nettet (Minix) og satte i gang med å utvikle et fritt tilgjengelig Unix-type system, annonsert i newsgroups (comp.os.minix, comp.os.linux) slik at andre utviklere kunne bidra til hobby-prosjektet gjennom Internett.

Prosjektet tok litt av og tilbakemeldingene fra utviklere på Internett florerte en del mer enn Linus hadde forventet. Resultatet av prosjektet ble Linux-kjernen, og sammen med «GNU toolchain» ble «GNU/Linux » systemet til.

Termen «GNU/Linux» ble (og blir fortsatt) iherdig promotert av grunderen bak GNU-prosjektet: Richard M. Stallman. Men alle er ikke like fikserte på å dedikere navneplass for verktøy-kjeden slik som Stallman, faktisk har det skapt en del splid i åpen kildekode-samfunnet. Linus Torvalds selv bryr seg ikke egentlig om navnekonvensjon og dedikering, for ham er det et fett om en distribusjon kalles «GNU/Linux» eller bare «Linux», alt er lov.

Etterhvert ble Linux (delvis) POSIX-kompatibelt og bedre anerkjent som et ekte industri-godkjent Unix-type system. Linux har siden begynnelsen bevist sin rolle som en kraftig og stabil ressurs innen tjener-markedet, hvor Red Hat / CentOS og VMware ESX(i) har satt sine spor i data-haller, data-sentre og hos tjeneste-tilbydere verden over.

Linux har også (siden samme tid) vært et kritisk viktig verktøy for Internett-tilbydere for effektiv og skalerbar utrulling av tjenester som epost, avansert ruting (inkludert kjernenett), brannvegg (NAT / SPI) og web-hotell. I senere tid (slutten av 2000) har Linux også tatt inntog på desktop-markedet med Ubuntu Desktop, Linux Mint, Fedora Core og ChromeOS (som strengt tatt ikke er en Linux-distribusjon, men dog et Linux-basert datasystem), bare for å nevne et par av hundrevis av varianter man kanskje bør holde et øye med framover.

Mange av de større (kjente) offentlige påvirkningene med åpen-kildekode kom ikke før midt på 2000-tallet, men det er mest fordi slike store programvare-prosjekter tar tid å planlegge, kodes, implementeres og feilsøkes / -fikses. Google Android er et godt eksempel på et slikt prosjekt. Det ble ikke sluppet (veldig kommersielt eller reklame-rettet) for den offentlige brukermassen før den rundet versjon 2.0, fordi det heller ble rettet informasjon om systemet og tilgjengeligheten til åpen-kildekode entusiaster som fikk tak i sin egen Android-enhet (forfatter inkludert), for å teste den skikkelig ut og være med i fellesskapet for å luke ut alvorlige bugs og sårbarheter raskere enn med et lukket utviklings-team, slik at teknologien faktisk kom ut raskere til «mannen-i-gata».

Ganske nylig (2012-2013) fikk også spill-markedet sin egen smak av Linux, med «Steam»-klienten lansert av Valve, selskapet bak større spilltitler som «Half-Life 2», «Counter-Strike: Source» og «Portal 2». Samarbeid mellom større aktører som Alienware / Dell / Canonical (utviklings-selskapet bak Ubuntu) og Valve, kan kanskje rette oppmerksomheten til spill-utviklere mot kryss-plattform utvikling (med OpenGL/AL/CL/ML og muligens SDL som utviklings-verktøy) for å fremme åpen-kildekode som et akseptabelt utviklings-alternativ på spill-markedet.



Selected logo's and / or brand names belong to their respective (©) copyright holders.
All other content ©2017  www.pizslacker.org, all rights reserved (unless otherwise stated).
E-mail:

Section-content last updated: 15.10.2017 - 22:36:42 GMT+1
Page loaded in 0.001 seconds for IP address 54.91.38.173

Apache powered- PHP powered- Lynx enhanced Cross browser tested