LX-INL-INFO-linux_about
updated aug/5/2010 10:01

algemene inleiding

nuttige links
inhoudstafel: snelkoppelingen
Distrowatch:
http://www.distrowatch.com
Linux . org:
http://www.linux.org/
wikipedia - linux:
http://en.wikipedia.org/wiki/Linux
google search linux:
http://www.google.com/linux
wikipedia - linuxdistro's:
http://en.wikipedia.org/wiki/List_of_Linux_distributions
linux journal magazine:
http://www.linuxjournal.com/
linux gebruikersgids:
http://doc.nl.linux.org/guide/users-nl/book.html

  1. een besturingssysteem

    Een besturingssysteem (operating system = O.S.) is een stuk software dat er voor zorgt dat gewone mensen een computer kunnen gebruiken voor die taken waar zij hem voor nodig hebben.

    Een computer zonder besturingssysteem is nogal 'kaal'.

    Een computer bevat naast een processor, geheugen en IO-bus een BIOS. Basic Input and Output System. Dit is een stuk software dat in een ROM-module zit. (Read Only Memory).
    Maar veel kan je daar niet onmiddellijk mee.


    Als je de computer opstart, gaat hij eerst zichzelf testen. Daarvoor wordt de zogenaamde POST opgestart: een Power On Self Test.

    De POST is een deel van de BIOS en zit dus ook in de opstart ROM. Hij kijkt na of alles in de computer werkt, hoeveel geheugen er is en of het nog werkt, welke randapparaten er zijn, en of de informatie in de CMOS nog actueel is. De CMOS is een klein stukje geheugen, door een batterij gevoed, dat de settings van de BIOS vasthoudt (boot device, mainboard devices, cpu temperatuur en frequentie settings, ...)

    Zodra de POST klaar is, gaat de BIOS in niet-interactieve modus, en kan je er eigenlijk niet veel meer mee doen. De BIOS probeert nog het besturingssysteem op te starten, en daarna is het de bedoeling dat dit besturingssysteem de meeste taken overneemt en verder opstart. Iedereen die ooit de melding kreeg "Operating system not found" weet hoe waardeloos een computer zonder O.S. eigenlijk is.
    1. gebruikersinterface

      Een besturingssysteem zorgt voor een gebruikersinterface. Via de interface kunnen we communiceren met de computer en het O.S. Globaal genomen zijn er twee types interface:

      • een GUI: Graphical User Interface (wat we gewoon zijn van windows en van onze GSM)
      • een CLI: Command Line Interface (een command shell zoals de DOS command prompt)

      Bijna iedereen kent wel de besturingssystemen van MicroSoft, en sommigen kennen OSx van Apple. Deze cursus wenst uw kennis te verruimen met Linux.

      Als GUI heb je bij Linux de keuze uit Gnome, KDE of XFCE (en nog enkele andere) en als CLI wordt meestal Bash gebruikt, maar ook hier is er keuze.

      • Een GUI is event driven: bewegen en klikken met de muis, en typen op het toetsenbord zorgt voor gebeurtenissen die afhankelijk van de omstandigheden worden geïnterpreteerd.
      • Een CLI werkt met commando's: je geeft orders aan de computer om iets voor je te doen. Die commando's tik je in met het toetsenbord, en je activeert ze met de enter toets.
    2. file system

      Een besturingssysteem zorgt voor een bestandssysteem. Een besturingssyteem heeft een filesysteem nodig om zelf te bestaan, en het geeft de gebruiker ook toegang tot dat filesysteem om bestanden in allerlei formaten op te slaan.

      Meestal gebeurt die opslag op een harde schijf, maar een USB stick, CD/DVD, of geheugenkaarten kunnen ook.

      Linux geeft je de keuze uit een tiental betrouwbare filesystemen, die meestal niet hoeven te worden gedefragmenteerd. Linux filesystemen blijven jarenlang even snel als de dag van de eerste ingebruikname.

      Linux is ook compatibel met bekende formaten als fat, ntfs en iso9660 (CD/DVD).
    3. i/o en randapparatuur

      Een besturingssysteem geeft toegang tot randapparatuur. Zodra je werkt met een GUI of CLI heb je al drie apparaten: scherm, toetsenbord en muis. Het O.S. geeft je ook toegang tot Printers, Netwerk, Geluid, en zo meer.

      Linux heeft dezer dagen drivers voor allerlei randapparatuur, meer en eenvoudiger te installeren dan de commerciële tegenhanger in Redmond.
    4. geheugenbeheer

      Een besturingssysteem beheert je RAM-geheugen, en je virtueel geheugen of SWAP.
      Geheugen dient toegewezen te worden aan processen. En ook vrij gemaakt, en zo nodig gedefragmenteerd. Het besturingssyteem doet dat allemaal automatisch.
    5. multi tasking / multi threading

      Een besturingssysteem stelt je processor zo in dat hij honderden of duizenden taken tegelijk kan verwerken. Linux is multitasking. We spreken over threads, semaphores en ander exotisch jargon.
    6. multi user

      Een besturingssysteem als Linux zorgt ervoor dat je met meerdere gebruikers tegelijk op hetzelfde systeem kan werken. Linux is een multiuser omgeving.

      Vroeger werd unix altijd gebruikt met "dumb terminals". Een "dumb terminal" was verbonden via een seriële poort met de centrale computer, en bestond uit een scherm en een toetsenbord. Een multi-IO kaart in de computer zorgde voor 8, 16, 64 of meer verbindingen met allemaal terminals. Op elke terminal kon gewerkt worden. Om een terminal te laten werken op lange afstand (tot 100km) werden multiplexers, leased lines en modems ingezet.

      Vandaag kun je op om het even welke linux bak inloggen via een secure shell (ssh) vanop het netwerk. Dat kun je met meerdere personen tegelijk, en zo nodig in grafische mode (GUI). Als dat netwerk is verbonden met het internet kan je die linux computer wereldwijd bereiken.
    7. programming interface

      Een besturingssysteem zorgt ervoor dat je programmatuur kan draaien. Dit kunnen services zijn, zoals de APACHE webserver, of desktop applications, zoals K3B om CD-roms te branden, of gewone command line tools.
  2. open source en GNU public license

    Het open source model bestaat sedert de eerste ontwerpen van computertechnologie in de jaren vijftig. De bedoeling is dat systeembeheerders bugs helpen ontdekken en zelf verhelpen, zelf functionaliteiten kunnen toevoegen, en dit alles dan doorgeven aan de developer die deze aanpassingen als update verder kan verspreiden bij zijn klanten.

    Open Source heeft als dusdanig niets te maken met non-commercieel. Het is gewoon een ontwikkelingsmodel dat steunt op cooperatie tussen klant en leverancier.
    Een goed voorbeeld hiervan is de software op IBM mainframes, waarbij de sources altijd werden meegeleverd.

    Freeware is niet noodzakelijk open source. Freeware is gewoon software die gratis wordt aangeboden. Om welke reden dan ook. Op freeware kunnen ook copyrights zitten. Outlook Express is freeware maar je mag er niet mee doen wat je wil. Je mag het niet uit mekaar nemen en voor iets anders gebruiken. Bij outlook express wordt trouwens nooit de broncode meegeleverd.

    De GNU public license (GPL) (GNU: Gnu is Not Unix) is een copyright overeenkomst die er voor moet zorgen dat open source software onder deze licentie altijd open source blijft, dat wijzigingen van de source opnieuw moeten worden ingebracht in de ontwikkelingsgemeenschap, en dat de gewijzigde source eveneens als GPL wordt meegeleverd met het aangepaste produkt. Dat produkt mag wel verkocht worden maar anderen kunnen met de source van dat produkt doen wat ze willen, en het eveneens verkopen of gratis aanbieden.

    Het is de verdienste van Richard Stallman dat er zoiets bestaat als GPL en 'the Free Software Foundation'.

    Richard Stallman begon in de jaren 1980 te ijveren voor vrije software en ontwikkelde vrije GNU versies van vele unix randprogrammatuur. Begin 1990 ontbrak het hem alleen nog aan een kernel om een volledig functioneel systeem aan te bieden.

    De Linux kernel werd in 1991 ontwikkeld door Linus Torvalds. Het opkomende internet zorgde voor bekendheid en een versmelting tot GNU/Linux.

    De kernel, wordt aangeboden onder GPL versie 2, en samen met andere GNU software zoals de bash shell, de gcc compiler collection, GNU core utils (commando's ls, cp, mv ,rm, ...) krijgen we een besturingssysteem dat GNU/Linux wordt genoemd.

  3. vele vormen en kleuren: distributies

    De manier waarop een kernel en GNU software wordt samengegoten in een werkend besturingssysteem noemt men een distributie.

    Zo een linuxdistributie, kortweg distro genoemd, voorziet meestal in een te downloaden iso file, die kan gebrand worden op CD of DVD. Op dit installatiemedium zorgt een installer programma er voor dat alle componenten van de distributie op de juiste plaats terechtkomen. Bovendien wordt er gezorgd voor een minimale werkende configuratie.

    Vele van deze distributies worden aangeboden als live-CD. Een Live-CD zorgt voor een draaiend systeem zonder installatie op harde schijf.

    De kernel, en de utilities er rond, zijn voor veel distributies vergelijkbaar. Hier en daar zijn er wat kleinere verschillen. Zo worden sommige pakketten wel eens in een andere directory geplaatst, en zijn de opstartroutines soms een beetje anders georganizeerd.

    Een distributie onderscheidt zich vooral door de gebruikte installer, door zijn Package Manager, door grafische tools en door de standaard meegeleverde software.
    Een distributie legt meestal de nadruk op een bepaald toepassingsgebied: Server of Desktop, Multimedia of Programmatie, Netwerkdebugger, RescueCD, Firewall en andere.
    Ook de standaard GUI kan verschillen.

    Een Package Manager geeft je toegang tot (extra) softwarepakketten, georganiseerd in zogenaamde repositories. De gebruikte organisatie en de hoeveelheid beschikbare pakketten durven wel eens te verschillen.

    Iedereen is vrij om zelf distributies samen te stellen. Dit heeft geleid tot een veelvoud aan distributies.

    Er zijn een aantal belangrijke distributiefamilies. Een distributiefamilie bevat verschillende distro's die ofwel van elkaar afgeleid zijn, ofwel gelijkaardig zijn samengesteld.

    We kunnen een heleboel, maar niet allemaal, van de huidige ca. 500 beschikbare distributies onderverdelen in 4 grote distributiekorven.


  4. Debian, Red Hat, Slackware en Gentoo zijn zelf heel belangrijke distributies.

    RedHat en Redhat based distributies (CentOS, Scientific Linux, Oracle Enterprise Linux) worden vooral gebruikt op servers. Fedora zit ook in deze familie en is eerder een desktop distro. Redhat distributies gebruiken de RPM package manager.

    Distributies als SuSE, opensuSE, Mandriva en PClinuxOS gebruiken ook rpm en lijken in veel aspekten op RedHat.

    Debian is voor alles bruikbaar, maar is toch nog vooral een serverdistributie. De afgeleide distro Ubuntu is vooral geschikt voor Desktops en Laptops. Mint is op zijn beurt weer afgeleid van Ubuntu en biedt nog meer gebruiksgemak. In de Debian familie vinden we verder nog Mepis, Sidux, en Knoppix naast vele anderen.

    Slackware heeft een eigen filosofie die vooral programmeurs en analisten aanspreekt. Op Slackware zijn verschillende distributies gebaseerd zoals SLAX, ZenWalk, NimbleX, en VectorLinux.

    Gentoo is een geval apart. Gentoo heeft als doel een distro te zijn zonder geprecompileerde pakketten, getuned op je eigen persoonlijke hardware, en met alleen die pakketten en kernel modules die jij zelf nodig hebt. Sabayon en Rescue CD zijn allebei Gentoo based.

  5. UNIX als model

    UNIX bestaat al sedert de vroege jaren 70. Dat is 20 jaar langer dan Linux.
    De meeste GNU commando's zijn open source versies van unix commando's.

    De Linux kernel werd door Linus torvalds geconcipieerd als een Unix cloon, met 'POSIX compliance'. (POSIX is een application programming interface.) Linus was op de universiteit zelf niet onder de indruk van minix (een unix cloon voor onderwijsdoeleinden), en wilde het beter doen met zijn eigen kernel. Zo kwam hij in 1991 met het voorstel: "
    I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones."

    UNIX bestaat nog steeds in 3 commerciele versies: AIX (ibm), HP-UX (hp) en SOLARIS (sun-oracle).

    Bovendien zijn er open source versies van unix, alle met als basis BSD (Berkeley Software Distribution): FreeBSD, OpenBSD, NetBSD en DragonflyBSD. Mac OSX is eveneens BSD-based maar wordt verkocht als commerciële software.

  6. allerlei soorten hardware

    Binaries, dit zijn geprecompileerde programma's, kun je maar uitvoeren op één processorfamilie. De compiler zorgt ervoor dat aan alle eisen voldaan is om het programma op die architectuur te laten werken.

    Daarom heb je voor x86 architectuur momenteel twee versies van software, een versie voor 32bit en een versie voor 64bit processors.

    Omdat Linux wordt aangeboden als source, kun je de source compileren voor om het even welke hardware.

    Er zijn linuxen beschikbaar voor o.a. Intel/AMD based hardware 32 en 64 bit, PPC hardware (Mac), ARM, Mips, System390, Itanium, en alle andere architecturen waarvoor een compiler beschikbaar is. Android is linux based en draait op GSM-telefoons. De TV-merken Philips, Sony en Panasonic draaien alle Linux intern op jouw televisie.

    Van de top 500 snelste computers ter wereld draait 90% op Linux. De Macs en de Microsofts in die lijst zijn op 1 hand te tellen.

  7. server en workstation in één

    Distributies duwen een gebruiker in een bepaalde richting.

    Redhat is duidelijk een server-OS.
    Linux Mint is duidelijk naar de desktop toe gericht.

    Een apache server installeren onder Linux Mint duurt echter minder dan 1 minuut. Er is geen verschil in de configuratie in vergelijking met Debian. De grens server/desktop is vaag in Linux.

    Wie de moeite doet kan CentOS draaien als desktop.

    Debian heeft geen echte voorkeur al is het makkelijker er een server van te maken dan een desktop met de allernieuwste software, videodrivers en wireless netwerkkaarten.

    Bij een server komt stabiliteit op de eerste plaats, en daarom zijn server distributies conservatiever wat software versies betreft.

  8. stabiel en veilig

    Enkele punten zorgen ervoor dat Linux veiliger is dan andere systemen.

    Werken in Linux doe je altijd als gewone gebruiker. Een mogelijke aanvaller die je firefox hijacked kan in dat geval jouw account misbruiken, maar toch heeft hij dan nog geen toegang tot de administratie van het systeem. Hij kent je paswoord ook niet, hij is gewoon even de user die op dat ogenblik is ingelogd. Een rootkit installeren is dan onmogelijk. Het ergste wat een hacker dan kan doen is jouw documenten stelen, vernietigen of vervormen.

    Elke service draait in zijn eigen sandbox als een aparte user. Een hacker die een service hackt heeft bijgevolg alleen maar toegang tot die kleine sandbox.

    Iemand die een virus schrijft doet dat voor een bepaalde software configuratie (vb.: XP sp3 met Iex8) Door de veelheid aan distributies is het moeilijker voor virusschrijvers om een pandemie in Linux te veroorzaken. Een massmailer moet minstens 1 andere gelijkaardige computer bereiken will een virus voet aan de grond krijgen. Als jij Fedora12 draait, en je wordt geinfecteerd, moet er minstens 1 andere fedora12 gebruiker in je adresboek zitten wil het virus kunnen propageren. Meer nog, die andere gebruiker moet dan ook nog met hetzelfde mailprogramma werken als jij. Momenteel is dit meestal niet het geval. Monoculturen zoals MacOSx zijn kwetsbaarder, ...

    Linux servers zijn meestal stabieler dan andere systemen. Inherent aan open source is dat heel veel mensen uit verschillende kenniswerelden de source gaan bekijken. Bugs kunnen dan ook verholpen worden 'on the field'. De open source wereld is rijker aan developers dan de closed source wereld. Op die manier krijg je een zeer stabiele code, en bijgevolg stabiele machines.