Inhoud

4000: Informatie en Communicatie Technologie

Technische ICT: computeren en zo...

ICT gaat over het geautomatiseerd verwerken van allerhande informatie met behulp van technologie, dus gegevens verzamelen, bewerken, opslaan en presenteren.

Bij "informatietechnologie" denkt men doorgaans direct aan computertechniek, zowel hardware als software, de hulpapparatuur, de dataopslag en de netwerktechniek, maar allereerst moet er wel een goede systeemanalyse worden gemaakt van het soort, de hoeveelheid informatie en de bedoelde gegevensstroom, voordat er direct een computer wordt gekocht.

De ICT is een relatief recent vakgebied, dat zich razend snel ontwikkelt, onder meer gedreven door de snelle ontwikkelingen in de elektronica. Dit uit zich soms helaas in wildwest gedrag bij het creëren van nieuwe producten, die dan niet altijd aansluiten bij andere producten. Het aanbod van steeds grotere opslagsystemen creëert ook weer een vraag naar het bewaren van steeds meer informatie, maar of die na jaren evolutie van opslagtechnieken nog te lezen is?

Hoewel er een sterke drive is bij de professionele gebruikers om tot standaarden te komen, laten producenten zich daar soms weinig aan gelegen liggen in hun begrijpelijke strijd om de concurrentie voor te zijn. Wel zijn ICT-oplossingen van dominante bedrijven zoals IBM, DEC, HP, Xerox, Intel en Microsoft door de diverse normalisatieorganisaties achteraf in standaarden vastgelegd. De technische universiteiten en vooral de internationale ingenieursvereniging IEEE hebben zich echter altijd voor standaardisatie binnen de ICT zeer ingespannen.

4200: Geschiedenis van de computertechniek

De geschiedenis van de ICT begint eigenlijk al in 1500 vChr in Mesopotamië met de rekenkunde van repeterende berekeningen. In de 10e eeuw wordt in de Arabische wereld het idee van rekenen (algebra) als het uitvoeren van systematische procedures (algoritmen) geïntroduceerd.
Onder meer de mechanische rekenmachines van Charles Babbage (midden 19e eeuw) zijn vroege pogingen om tot rekencomputers te komen. Alan Turing introduceert het idee van de "turingmachine" in 1936, een wiskundig model van een zo simpel mogelijke gegevensverwerkende machine en bouwt later een werkende elektronische programmeerbare computer.

De eerste werkende computers, in de jaren '40, hadden alleen schakelaars en lampjes als input en output voorziening, maar naarmate er meer verwerkt kon worden werden er "randapparaten" aan gekoppeld. Allereerst de telex (Teletype) als man/machine-interface en daarmee ook al snel de ponsband en ponskaart.
Uiteraard werd van alle ontwikkelingen in de elektronica gebruik gemaakt; in eerste instantie werden dus radiobuizen gebruikt (zo'n "mainframe" computer besloeg een gehele kamer), maar al snel ook transistoren en digitale IC's. Midden 60er jaren worden computers hierdoor zoveel kleiner dat de "mini-computers" (ter grootte van een kleerkast) in serieproductie werden genomen. Als weer 10 jaar later de "microprocessor" op de markt komt ontstaan er natuurlijk ook "microcomputers".

Microcomputers worden al snel in allerhande apparaten ingebouwd: in computerterminals, printers, calculators en "slimme" huishoudelijke apparaten. En natuurlijk ontstaan er ook allerhande kantoorapparaten, vooral een wildgroei aan onderling incompatibele programmeerbare tekstverwerkers en tafelrekenmachines.
Om de boot niet te missen geeft IBM, koning van de mainframe computer, in 1981 een kleine firma "Microsoft" opdracht voor hun eigen programmeerbare tafelcomputer software te ontwerpen, die onder de naam "Personal Computer" op de markt komt. Het is onmiddellijk een groot succes en zet direct een standaard voor dergelijke apparaten.

Voor de 2e wereldoorlog werden de telexberichten al massaal in centrales (met de hand) doorgeschakeld en het lijkt dus voor de hand te liggen om computers te gebruiken voor de communicatie tussen onderzoekslaboratoria. Toch duurde het nog tot eind jaren '60 voordat de DoD (Amerikaanse defensie) opdracht gaf tot de aanleg van een nationaal computernetwerk genaamd "ARPANET" dat bestand moest zijn tegen het uitvallen van enkele verbindingen of knooppunten. Dit was de start van het latere Internet.

4300: Hardware: de computerapparatuur

Onder "hardware" verstaat men doorgaans het totaal van de apparatuur in een computersysteem. De minimale hardware die nodig is om een computer te vormen zijn:

Daarnaast zijn, zeker bij PC's en Laptops, aansluitingen voor b.v. USB en Netwerk nuttig.

Opbouw van een computer

Een computer bestaat dus uit een CPU (processor), geheugen elementen en I/O (in- en outputvoorzieningen), onderling verbonden door een "Adres-bus" (wie is aan de beurt?) en een "Data-bus" (wat is de info?). Een "bus" is in de digitale elektronica een gegevenskanaal, een vaak meerdraads verbinding tussen meerdere onderdelen.

Bovenstaande geldt voor alle computers, ook voor heel kleine in huishoudelijke apparaten, telefoons of speelgoed; de verschillen zitten alleen in de invoer (knopjes en sensors of toetsenborden en muizen) en de uitvoer (motoren en lampjes of grafische displays). Wel kunnen (bijna) alle elementen bij kleine computers in slechts één elektronische chip zijn samengevoegd.

De CPU is het hart van de schakeling, maar haalt zijn opdrachten en informatie uit het geheugen. Hiertoe zal de CPU een "geheugen adres" op op de "Adres-bus" zetten, waarop de geadresseerde geheugenlocatie dient te reageren via de "Data-bus". Instructies en andere "data" kunnen in beginsel door elkaar in het geheugen zitten en ook de I/O chips kunnen geheugen bevatten en dan ook in het geheugenbereik worden opgenomen. Aangezien bovendien bij veel computers het geheugen of de I/O kan worden uitgebreid, is het in de praktijk over meerdere chips of geheugen-modules verdeeld (zgn. geheugen-slots) en vindt een voorselectie plaats met behulp van een "Adres-decoder" die eerst de juiste chip of module kiest.

Werking van de computer

Bij het opstarten (of resetten) van een computer wordt de "Instructie teller" in de "CPU" op een standaard waarde gezet die, via de "Adres bus", naar het geheugen van de computer wordt gezonden. De gekozen geheugenplaats, meestal in een "ROM", geeft de eerste instructie terug via de "Data bus" aan de "Instructie decoder" die zorgt voor de uitvoering. Bij sommige typen processors wordt het adres van de eerste instructie teruggegeven en volgt er nog een extra slag. Doorgaans zal de Instructie teller zich na elke instructie met 1 verhogen, zodat de volgende instructie zal worden uitgevoerd; en zo verder.

4310: CPU de Centrale verwerkingseenheid

De "Centrale verwerkingseenheid" of "CPU" (Central Processing Unit) is het hart van elk computersysteem. In de 60'er jaren werd zo'n "processor" gebouwd op meerdere printkaarten met honderden transistoren. De eerste "microprocessor", een "CPU-op-één-chip", was Intel's 4-bits "4004" (2300 transistors op 740 kHz). Hij werd in 1971 op de markt gebracht, al snel opgevolgd door de 8-bits "8008" en in 1974 door de eveneens 8-bits "8080" (4500 transistors op 2 Mhz). In 2019 zijn de top processors 64-bit, bevatten tot 18 kernen (complete CPU's op dezelfde chip of module) en meer dan 1 miljard transistoren op 4 Ghz, maar de werking is globaal gelijk gebleven.

Werking van een CPU

De "Instructie-teller" is een register (interne opslag-locatie) van evenveel bits als de "Adres-bus" waarop de CPU is aangesloten. Het bevat het adres van een uit te voeren instructie. De CPU kopieert dit adres naar de Adres-buffer die de interface vormt met de Adres-bus (de interne transistoren mogen niet belast worden met de bedrading buiten de chip). Ergens buiten de CPU bevind zich op de Adres-bus één geheugenelement dat reageert op dit adres met de gezochte instructie op de "Data-bus". Via de "Data-buffer" wordt deze opgeslagen in een register van de "Instructie-decoder", vertaald en uitgevoerd b.v. door de "Rekeneenheid". Veel instructies maken gebruik van de interne "Data-registers", zodat b.v. "A=B+C" intern kan worden uitgevoerd, maar ook kunnen deze 3 "variabelen" ergens uit het externe geheugen worden geladen of weggeschreven met andere instructies. Normaal zal de Instructie-teller zich automatisch incrementeren zodat de volgende instructie kan worden opgehaald. Data-registers hebben in beginsel dezelfde bit-lengte als de Data-bus, maar kunnen ook als factoren 2 groter of kleiner worden behandeld.

Instructieset van een CPU

De "Instructieset" is de verzameling van mogelijke instructies van een bepaald model CPU. De eerste CPU's hadden maar weinig verschillende instructies, maar naar mate de mogelijkheden van de halfgeleiders toenamen, werd het aantal steeds groter. Sommige instructies zijn zo complex dat ze in "microcode" (zeer kleine routines binnen de CPU) moeten worden uitgevoerd. Dit maakt dat deze instructies relatief veel klok-cycli nodig hebben.
Als reactie hierop werd de "RISC-architectuur" ontwikkeld en ging men de andere "CISC-architectuur" noemen (Reduced/Complex InstructionSet Computer). RISC-cpu's hebben veel minder verschillende instructies, maar alle verwerkingscapaciteit wordt aan de veel gebruikte eenvoudige instructies toegekend. Beide methoden hebben voors en tegens: de PC's en MAC's (tot 2021) draaien op CISC-processors, de meeste tablet's, smartphones en nieuwe MAC's op RISC.

4320: RAM geheugen

Willekeurig benaderbaar geheugen noemen we "RAM" geheugen (Random Access Memory). Bij de allereerste computers werd geprobeerd met vertragingslijnen, magnetische draden of trommels (voorloper van de harddisk) tijdelijke opslag te realiseren, maar dat werkte veel te traag bij het verwerken van niet opeenvolgende data. Ook het "ringkerngeheugen" was jarenlang een goede oplossing, maar erg duur. Toen rond 1970 de halfgeleidertechnologie voldoende ontwikkeld was, werd het mogelijk "geheugenchips" te ontwikkelen.

Statisch RAM

Door een groot aantal "FlipFlops" op een chip te plaatsen met een decoder op de "Adres-bus" om de juiste flipflops aan te spreken en een gekoppelde multiplexer tussen de outputs en de "Data-bus", wordt een adresseerbaar geheugen gemaakt. Hiervoor zijn 4 à 6 transistoren per bit nodig, plus de overhead van decoder en multiplexer, hetgeen dit type geheugenchip snel maar toch nog vrij duur maakt.

Dynamisch RAM

Bij wat grotere geheugens worden voornamelijk dynamische chips gebruikt. Deze vragen slechts 1 transistor en 1 condensator per bit, maar wel wordt de overhead veel groter: de geladen condensator een "1", ontlaad zich in enkele milliseconden en moet dus regelmatig (automatisch) ververst worden anders wordt het vanzelf een "0". Voor het overige is de structuur vergelijkbaar met de statische chips, met een decoder voor het adresseren en een multiplexer tussen datacellen en de databus.

Informatie behoud

Zodra de voedingsspanning van RAM-chips wegvalt is de informatie verloren. Voor vaste gegevens worden daarom "ROMs" gebruikt en is het natuurlijk mogelijk m.b.v. batterijen of accu's gegevensverlies te voorkomen, want moderne statische RAM's trekken in rusttoestand weinig stroom.

4330: ROM geheugen

De eerste ROM geheugens (Read Only Memory) werden in de fabriek grootschalig in silicium "geëtst"; minimum afname 1000 stuks of zo. Er ontstond dus al snel behoefte aan programmeerbare ROM's en in 1971 kwam Intel op de markt met de "1702", een UV-wisbare "Floating Avalance MOS, Erasable Programmable ROM" (FAMOS EPROM). Deze P-channel chip van 2Kbits (256 Byte), was zeer geschikt voor prototypes en kleine series. In 1974 kwam een snellere N-channel opvolger de "2708" (1 KByte) en natuurlijk werd de serie uitgebreid. Het kwarts venster om het UV-wissen mogelijk te maken, maakte de chip te duur voor wat grotere series en dus werden er ook eenmalig programmeerbare versies (PROM) uitgebracht, zonder venster dus. Proeven wijzen uit dat de informatie, mits correct geprogrammeerd zeker 10 à 20 jaar, enigszins afhankelijk van temperatuur en gebruik, bewaard blijft. EPROMS kunnen, afhankelijk van de technologie, honderden tot tienduizenden keren gewist en geherprogrammeerd worden.

Het uit de schakeling nemen van de EPROM voor wissen en herprogrammeren bij software of parameter updates, is onpraktisch. Een verbetering was dus het beschikbaar komen van de EEPROM (Electrically Erasable PROM), later opgevolgd door het "FLASH" geheugen. Deze laatste variant is flexibeler dan de eerdere EEPROM, doordat er in kleinere blokken kan worden gewist en de chip zelf voldoende eigen rekenkracht bezit om het beschrijven goed over de chip te verdelen, zodat de totale levensduur wordt vergroot.
FLASH wordt gebruikt in USB-sticks, SD-kaartjes en "Solid State Drives" (SSD). Ook veel microcontrollers hebben FLASH op de chip geïntegreerd, voor het programma of constante data.

4340: Floppy, HardDisk, CD-ROM, SSD en SD

Elke computer moet bij het opstarten over een geheugen beschikken waarin zich een programma bevindt. Dat is altijd een ROM, omdat andere vormen van geheugen gegevens verliezen bij stroomuitval. Als men de computer met verschillende programma's wil kunnen starten, moet er toch een vast laadprogramma (bootstrap) aanwezig zijn en een medium waarop die programma's zich bevinden. Vooral ponsbanden, ponskaarten en magnetische (cassette-) banden werden hiervoor in het begin gebruikt. IBM had voor het "booten" van haar "mainframes" al in 1967 een 8 inch slappe kunststof magnetische schijf in gebruik genomen en de ontwerpers van homecomputers vonden de latere 5,25 inch versie hiervan een goed alternatief voor de tot dan gebruikte cassettebandjes.

Floppy disk (Diskette)

De IBM PC werd in 1981 vanaf een 5,25 inch floppy met DOS opgestart. Maximaal 2 floppy-drives (bij Dos PC's A: en B:) worden op een "Floppy-bus" aangesloten.

Parallel ATA (PATA, IDE)

Net als een aantal concurrenten werd de IBM XT met een HardDisk (10 MByte) uitgerust en daartoe werden 2 extra "HardDisk-bus" aansluitingen toegevoegd (C: t/m F:). Eventueel kan er hierop ook een CD/DVD-speler worden aangesloten.

Serieel ATA (SATA)

De PC-standaard wordt in 2003 met een "Serie-HardDisk-bus" uitgebreid om de bekabeling te vereenvoudigen, de snelheid te verhogen en meer disks te kunnen aansluiten.

Solid State Drive (SSD)

Het succes van "Flash-geheugens" maakt het mogelijk hiermee een pseudo disk te bouwen met hoge snelheid en zonder bewegende delen. Vooral voor laptops is dit een groot voordeel.

CF en SD-kaart (CF&SD)

De CompactFlash en Secure Digital Card zijn vergelijkbaar met de SSD.

4341: Floppy disk (Diskette)

Een Floppy disk of diskette is een rond schijfje dikke folie met een magnetische laag op één of beide zijden, in een vierkant hoesje. Er zijn vele formaten in de handel geweest: verschillende diameters (8, 5,25 of 3,5 inch), aantal lagen (Single Sided of Double Sided) en meer sporen en/of kleinere bits (Standard, Double of High Density). De bekendste zijn:

Maat Dichtheid Capaciteit
8 inchSS SD80 KB
8 inchSS DD256 KB
5.25 inchSS SD180 KB
5.25 inchDS SD360 KB
5.25 inchDS DD720 KB
5.25 inchDS HD1,2 MB
3.5 inchSS DD360 KB
3.5 inchDS DD720 KB

Sinds de CD/DVD-speler in de PC en Mac standaard werd, is de diskette sterk teruggedrongen. Na de nog snellere opkomst van de USB-stick is hij geheel uit de gewone computers verdwenen. Diskette loopwerken (stations, drives) zijn alleen nog in de reguliere handel met een USB-interface te koop.

Koppeling met de computer

Vanaf de eerste PC werden diskette loopwerken met een 34-polige "lintkabel" verbonden met het "moederbord"; de benodigde voedings-spanningen (5 en 12 Volt) werden met een aparte kabel met 4 pins Molex connector direct op het voedings-apparaat aangesloten. Er kunnen maximaal 2 diskettestations op deze "Floppy-bus" worden aangesloten. Bij het gebruik van DOS of Windows worden deze "A:" en "B:" genoemd, bij de UNIX-achtige systemen (Mac OS, Linux) wordt de naam van het station zelden gebruikt, maar alleen de door de gebruiker te bepalen naam die op de disk zelf bewaard wordt.

Met behulp van signalen op de bus bepaalt de computer welk station actief is. Bediening van de elektronica, de motoren, de arm waarop de kop of koppen zich bevinden, detectie van aanwezigheid en eigenschappen van het schijfje, alles is via de bus vanuit de computer bereikbaar. Het vertalen van de bit-stroom naar zinvolle data wordt dus ook door de computer uitgevoerd in de zogeheten "driver" (stuurprogramma), dat als een toevoeging in het "besturingssysteem" aanwezig is.

4342: Parallel ATA HardDisk (IDE)

Een "harde schijf" (Harddisk) is één of een stapel roterende metalen schijven met een magnetische laag aan beide zijden. Hij wordt met een 40-polige "lintkabel" aangesloten op het moederbord van een computer. Op deze kabel kunnen 2 diskdrives gekoppeld worden. Er zijn veelal 2 connectors aanwezig, zodat er in totaal 4 disks kunnen worden bediend (eventueel CD/DVD-spelers).

Koppeling met de computer

Een Parallel ATA" (Advanced Technology Attachment) of "IDE" (Integrated Drive Electronics) Harddisk bevat een groot deel van de besturing en decodering die nodig is om de signalen van en naar de magnetische schijven te kunnen gebruiken. In tegenstelling tot de "floppy" kan de computer de data-stroom niet altijd bijhouden en zorgt de elektronica van het diskstation dat de info al vast parallel (als Bytes) wordt aangeboden. Dit maakt het ook mogelijk een "DMA-controller" de dataoverdracht te laten afhandelen, zodat de computer zich met nuttiger taken kan bezighouden.

4343: Serial ATA HardDisk

De "SATA disk" (Serial Advanced Technology Attachment) is een doorontwikkeling van de "PATA disk. De brede lintkabels zaten koelluchtstroom in de weg en de begrenzing van in totaal 4 disks was ook een handicap. Het concept is weinig verschillend van de PATA standaard: er is voldoende "intelligentie" aanwezig om de computer te ontlasten, alleen de communicatie is bit-serieel en bevat dus ook minder draden; bovendien is ook de voedingsaansluiting compacter.

4344: SSD: Solid State Drive

Een SSD (Solid State Drive) is een groot "Flash-geheugen" met doorgaans een "SATA" interface. Een SSD kan daarom dus zonder verdere voorzieningen de plaats innemen van een SATA disk.

4345: CF- en SD-kaarten

De CF-kaart (CompactFlash, 1994) en de SD-kaart (Secure Digital, 1999) zijn op flash chips gebaseerde geheugen-modulen, die zich als HardDisk voordoen. Ze zijn beide ontworpen voor draagbare elektronische apparaten zoals digitale foto- en filmcamera's en smartphones.

CF: CompactFlash kaart

CF is een rechthoekig kaartje dat in verschillende diktes, geheugen-groottes en -snelheden leverbaar is. De koppeling is een 50-polige connector o.a. gebaseerd op dezelfde 8- of 16-bits interface als de de (40-polige) PATA interface voor harddisks en wordt doorgaans in een "FAT-variant" geformatteerd.

Omdat de CF-kaart voor veel consumenten-producten te groot bleek, ontstonden er diverse kleinere alternatieven zoals de "Memory Stick", de "MultiMediaCard" en de "SD-card". Maar voor (semi-) professionele toepassingen hebben de CF-kaarten nog steeds de voorkeur.

SD: Secure Digital kaart

SD is oorspronkelijk ontworpen als een copyright beschermd alternatief voor de CD. De koppeling is gebaseerd op de SPI (Serial Periferal Interface) voor microcontrollers in 1- of 4-bits (8-bits in Double Data Rate) variant. Voor nog grotere snelheden worden ook uitvoeringen met extra rij pennen (dus dubbele doorvoer) geleverd. Hoewel SD-kaartjes (en slots) bijna altijd "backward compatible" zijn, is opletten geboden.

4350: Directe Input en Output

Een computer zonder output is nutteloos: je zou niet weten wat hij gedaan heeft. Zonder input komt ook zelden voor: normaliter wordt verwacht dat er keuzes worden gemaakt of ergens op gereageerd wordt. Tussen de computer en de wereld worden dus interfaces gebouwd die zorgen dat de signalen van buiten (bv. schakelaars, temperatuur of toetsaanslag) vertaald worden naar getallen en omgekeerd getallen naar presentaties of acties (bv. displays of motorsturing).

Bij veel computers wordt een aantal interfaces met de elektronica van de computer samengebouwd of zijn als module "in te prikken". Dergelijke directe (geïntegreerde) I/O is o.a.:

  1. Toetsenbord en muis ingangen
  2. Seriële ingang&uitgang
  3. Parallelle uitgang
  4. Monitor uitgang
  5. Geluid ingang&uitgang
  6. Diverse directe I/O
Natuurlijk hebben niet alle computers alle bovengenoemde aansluitingen. PC's en MAC's natuurlijk wel, maar de computer in de wasmachine heeft alleen wat schakelaars en lampjes.

4351: Keyboard en muis

Oorspronkelijk wordt het toetsenbord (keyboard) op een PC aangesloten via een aparte 5-polige DIN-connector. Vanaf de PS/2 serie van IBM wordt dit een 6-polige Mini DIN, ook voor de muis. De lila versie is voor het toetsenbord, de groene voor de muis.
Nieuwere toetsenborden en muizen worden worden alleen nog met USB-aansluiting geleverd en de PC's hebben dus ook geen speciale connectors meer.

4352: Serie communicatie

Bidirectionele seriecommunicatie is (na panelen met schakelaars) de oudste besturingstechniek voor computers. De "Teletype" telex (TTY) werd in 50'er jaren algemeen gebruikt als "console" (terminal, bedieningsstation) en alle minicomputers waren daarom uitgerust met één of meer serie-poorten. In het begin werden de computers verbonden met 20 mA stroomsturing, maar met de opkomst van "modems" werd de RS232 standaard meer algemeen, met een 25- en later 9-polige connector. De meeste microcontrolerchips hebben eveneens 1 of 2 seriepoorten, maar dan op TTL signaalniveau. Ook enkele oudere randapparaten worden nog met serie communicatie bestuurd.

De werking van asynchrone seriecommunicatie

Zender (Tx) en ontvanger (Rx) zijn tevoren gelijk ingesteld: m.n. de bit-tijdsduur als bits per seconde (baud). In rust is het uitgangssignaal "1" ("mark", bij RS232 -12V). Indien er een karakter verzonden wordt zal er eerst een "startbit" "0" ("space", bij RS232 +12V) van de ingestelde bit-tijd, gevolgd door de data-bits en tenminste 1 "stopbit" op de lijn gezet worden. Omdat de ontvanger weet hoelang een bit duurt kan elke bit op de juiste positie in het te ontvangen Byte (karakter) gezet worden. Kleine verschillen in de verzonden en verwachte bit-tijd worden opgevangen doordat halverwege het stopbit de ontvanger zich al klaarmaakt voor het volgende karakter. De maximale snelheid in Byte/sec is dus 1/10 van de "baudrate".

4353: Parallel Input/Output & GPIB

Onder parallelle communicatie wordt doorgaans 8-bit (Byte) parallelle communicatie verstaan, hoewel er ook wel andere bit-breedte communicatie voorkomt. Bij veel toepassingen komen de bytes nog steeds in serie uit of in de computer. De bekendste 8-bits (output) poort is de "printerpoort", die voornamelijk als 25-polige connector op PC's aanwezig was. Deze poort, soms ook toepasbaar als 8-bits input, werd ook veel gebruikt voor het aansluiten van andere apparatuur. Moderne computers hebben geen parallelle poorten meer: ze zijn door USB-poorten vervangen.

IEEE-488, HPIB/GPIB; General Purpose Interface Bus

De instrumentatie firma "Hewlett Packard" (tegenwoordig "Agilent") ontwikkelde, vooral voor de besturing van meetinstrumenten, een 8-bits instrumentatie-bus die later gestandaardiseerd werd als IEEE 488. De bus werd ook voor het aansluiten van Harddisks gebruikt. De connectors zijn uitgevoerd als speciale stapelbare 24-polige "micro-ribbon" versies.

4354: Monitor Output aansluitingen

Elke PC of MAC computer (en de meeste laptops) heeft één of meer "monitor" (beeldscherm) aansluitingen. De eerste computers gebruikten meestal een TV als monitor: een module op het moederbord van de computer genereerde een "composiet" TV-signaal, dat via een (gele) "RCA tulpconnector" met de TV verbonden werd.

Analoge video aansturing

In de 80'er jaren komen specifieke monitoren voor computers op de markt, met steeds meer pixels, pixels/inch (DPI) en in steeds grotere formaten; bovendien in steeds meer kleuren. Deze worden aangestuurd met 3 analoge signalen "RGB" (Rood/Groen/Blauw).

StandaardPixels Kleuren
Hercules720x3482 (1 bit)
CGA320x2004 (2 bit)
EGA640x35016 (4 bit)
VGA640x480256 (8 bit)
SVGA800x600256 (8 bit)
XGA1024x76865K (16 bit)
SXGA1280x102416,8M (24 bit)
UXGA1600x120016,8M (24 bit)
Vanaf de VGA-standaard komen er ook "widescreen" versies: VGA 4:3 naar WVGA 16:9, er komen dan horizontaal pixels bij en/of de lengte/breedteverhouding van de pixels wordt aangepast.

Digitale video aansturing

Na 1999 komt er een digitale standaard: DVI (Digital Visual Interface), maar op veel computers is ook nog een analoog alternatief aanwezig. Intussen is ook de DVI standaard weer verouderd en opgevolgd door HDMI, DisplayPort of Thunderbolt met grotere functionaliteit en ook digitale audio.

4355: Audio Input/Output

FunctieKleurConnector
Microfoon inputRose3,5 mm Mini-jack
Line inputLicht blauw3,5 mm Mini-jack
Line outputGroen3,5 mm Mini-jack
S/PDIF outputOranjeTOSLINK of RCA

De eerste computers hadden geen echte audio-functies aan boord. De IBM-PC kon wat piepjes afgeven, maar dat was het dan wel. De specificatie van de PC liet wel toe extra elektronica toe te voegen in de "uitbreidings-connectors" en zo kwamen er speciale "geluidskaarten" op de markt. De voor audio ontwikkelde chips werden steeds krachtiger, maar ook de "chipsets" voor PC- en MAC-moederborden werden uiteindelijk standaard met audiofuncties uitgerust. Ook microprocessors konden gebruikmaken van de beschikbare faciliteiten zodat b.v. alarminstallaties en routeplanners ineens konden praten (en soms luisteren).

Audio functies

Nadat er in eerste instantie allerhande connectoren voor audio werden toegepast, werden bij PC's uiteindelijk voornamelijk 3,5 mm Mini-jack connectoren gebruikt in mono- of stereo-uitvoering. Ook komen soms de in de Hifi-wereld bekende "S/PDIF" (Sony/Philips Digital Interface) optische of coaxiale digitale uitgangen voor.

Naast de eenvoudige stereo geluidskaart zijn er ook "surround" systemen op de markt, in 5.1 en zelfs 7.1 variant. Laptop's hebben doorgaans ingebouwde microfoons, luidsprekers en video camera's; alleen een mini-jack voor de "koptelefoon" is vaak nog wel aanwezig.

4356: Diverse Input/Output signalen

In PC's en MAC's zitten diverse I/O signalen: schakelaars en lampjes (LED's) voor de voeding, de USB-, bluetooth- en ethernet-connectie, foto/videocamera, sensoren voor het meten van de processor-temperatuur, kleine display's enz..
De microcontrollers in allerhande toestellen hebben naast schakelaars, draaiknoppen, toetsen, lampjes en displays vaak ook nog specifieke I/O voor allerlei sensoren, relais voor vermogensschakelaars, elektronica voor motorsturing en dergelijken. Dergelijke I/O is voornamelijk digitaal van aard en wordt op "PIO-poorten" (Parallel In Out) aangesloten die meestal per pin kunnen worden bestuurd.

4360: Netwerk I/O

Onder "netwerk I/O" verstaan we hier een koppelmethode waarbij meerdere apparaten onderling gekoppeld worden middels kabels of radio zend/ontvang inrichtingen en waarbij "protocollen" de loop van de gegevensstromen bepalen.

De bedrade netwerken hebben hun specifieke connectoren en de draadloze een in de computer ingebouwde antenne of een "USB-dongel" met antenne.

4361: Ethernet, IEEE802.3

De netwerkprotocollen voor Ethernet (IEEE802.3) beschreven oorspronkelijk een koppeling met "coaxkabels" tussen de knooppunten, maar aangezien dit niet praktisch was bij gebouwenbekabeling werd overgegaan op "Twisted Pair" bekabeling voor "Ethernet 10/100BASE-T" (10 of 100 Mbit/s). Aanvankelijk werd bij diverse organisaties hierbij gebruik gemaakt van de voor IBM-tokenring (IEEE802.4) gespecificeerde (vrij dikke en dure) afgeschermde twisted pair kabels. De in telefonie gebruikelijke niet afgeschermde CAT-3 (en CAT-4) kabels waren nog niet bruikbaar, maar CAT-5 wel en met CAT-5e kwam zelfs 1 Gbit/sec (1000BASE-T) in zicht. Als connector werd gekozen voor de 8-polig RJ-45 connector, grote broer van de 4-polige RJ-10 en RJ-11 uit de telefonie. CAT-5(e)-kabels bevatten 4 paren verbindings-kanalen; voor 100BASE-T worden hiervan alleen de paren blauw en groen gebruikt, voor Gbit/s Ethernet zijn alle 4 paren nodig.

4362: Universele Seriële Bus

De "Universele Seriële Bus" is ontworpen om de wirwar aan verschillende technieken om apparaten aan computers te koppelen te bestrijden. Dit doel is redelijk gelukt, ondanks het grote aantal verschillende USB-connectors: deze varianten hebben uitsluitend te maken met ruimtegebrek op kleine computers (zoals smartphones) en het aantal voor hoge snelheden benodigde extra communicatie paden.

Waar fysiek mogelijk passen oude "stekers" nog steeds in nieuwe "dozen", met behoud van de werking. Ook de communicatie protocollen zijn "compatibel" met oudere versies. Een moderne computer heeft daarom alleen nog enkele USB-poorten voor alle hulpapparatuur. Ook zijn er diverse microcontrollers met ingebouwde USB-functies.
Meer info.

4363: FireWire, IEEE 1394

De verbindingstechniek "FireWire" is oorspronkelijk bedoeld als Apple's seriële opvolger van de 50- of 68-pens parallelle "SCSI" verbinding. De techniek wordt wel vergeleken met USB maar FireWire is meestal sneller. FireWire is bij Apple voor de meeste toepassingen intussen opgevolgd door "Thunderbolt", dat bij versie 3 gebruik maakt van de USB-C technologie.
Sony gebruikt FireWire onder de naam "iLink" voor het verbinden van haar videocamera's aan computers.

4364: Thunderbolt technologie

Sinds 2011 gebruikt Apple het met Intel ontwikkelde "Thunderbolt" in haar MAC-computers. Deze compacte verbindingstechniek kan een groot aantal andere oplossingen vervangen en wordt daarom ook steeds vaker op Laptop's aangetroffen. Thunderbolt kabels kunnen meerdere zeer snelle dataparen, plus voeding bevatten. De Thunderbolt versies 1 en 2 gebruikten de "Mini Display Port", maar versie 3 gebruikt de "USB-C connector".

Met verschillende intelligente verloopkabeltjes kunnen zo ook oudere apparaten op nieuwe computers worden aangesloten. Ook worden in de markt steeds meer "dock's" aangetroffen die deze kabeltjes combineren. Welke functionaliteiten van Thunderbolt in een USB-C poort ondersteund worden is niet altijd duidelijk in de logo's aangegeven (kijk hiervoor dus in de technische specificatie van de computer). Ook kabels met USB-C connectors hoeven niet niet alle functies te ondersteunen die in beginsel met Thunderbolt poorten mogelijk zijn (gebruik de bij het apparaat geleverde kabel).

4365: Chip Bussen: I2C, SPI en 1-Wire

Van veel elektronische apparaten bestaat het digitale deel uit een "microcontroller" met wat hulponderdelen. Zo'n controller heeft veel "pootjes" die elk een digitale in- of uitgang kunnen zijn. Dit is een eenvoudige wijze om allerlei functionaliteiten te realiseren door programma pootjes "uit te lezen" en andere "aan" of "uit" te zetten. Wordt het apparaat wat complexer dan worden natuurlijk ook gespecialiseerde chips ingezet: voor het uitlezen van IR-ontvangers, schakelpanelen, toetsenborden of voor het aansturen van servosystemen, displays en motoren. Het naar buiten brengen van de interne data-bus (8 lijnen of veel meer) is niet aantrekkelijk zodat seriecommunicatie voor de hand ligt. Veel microcontrollers hebben 1 of meer seriecommunicatie protocollen reeds op bepaalde pootjes ingebouwd.

Inter-IC-bus (I2C)

Philips gebruikt vanaf 1980 haar I2C-techniek in diverse producten. Hiermee wordt de centrale microcontroller verbonden met verschillende chip's (vaak sensoren) op dezelfde printkaart of in elk geval binnen dezelfde kast (tot maximaal 1m). De techniek gebruikt slechts 2 lijnen/pootjes van de controller, maar is relatief traag onder meer door het herhaaldelijk omprogrammeren van de datalijn "SDA" van ingang naar uitgang en het adresseringsprotocol.

Serial Peripheral Interface (SPI)

Motorola ontwikkelde de SPI-techniek in de jaren '80 voor seriële toepassingen die hogere snelheden vereisen. De "SD-kaartjes" worden bijvoorbeeld met een SPI-bus uitgelezen en beschreven en ook voor grafische displays is dit een groot voordeel. De hogere snelheid gaat ten koste van het aantal pootjes, terwijl bovendien voor de selectie (adressering) van elk onderdeel ook een pootje nodig is.

1-Wire-bus

Als communicatiesnelheid geen rol speelt, maar langere afstand juist wel, is een 1-draads verbinding natuurlijk beter (exclusief voeding van de chip). Daarom zijn er b.v. veel sensor-IC's in een "1-Wire" versie verkrijgbaar (temperatuur, vochtigheid). In veel gevallen is het mogelijk de data en de voeding van de sensor over een 2-draads kabel te leiden.

4366: WiFi, draadloos Ethernet

Wifi kan gebruikt worden als een point-to-point verbinding tussen 2 nodes of als een "bus-netwerk" rondom een centrale verbinding met een router, een "Basis-station" of "HotSpot".

4367: Bluetooth voor draadloze verbindingen

De draadloze verbindingstechniek "Bluetooth" (IEEE802.15.1) is een weinig stroom trekkende, korte afstand, communicatie oplossing. Ze is ontworpen om randapparaten aan te sluiten, enigszins als draadloos alternatief voor USB en in eerste instantie voor luidsprekers en oordopjes (oortjes), ter vervanging van korte kabels van 1 tot 10 meter. Versie 1 kon tot 1 Mbit/s, versie 4 gaat tot 12 Mbit/s en gebruikt tegelijk zo weinig stroom dat kleine knoopcel batterijen als voeding bruikbaar zijn.

4370: Computersystemen

Vanaf de 40'er jaren waren computers omvangrijke installaties die qua techniek en dus ook qua afmetingen, de ontwikkelingen in de elektronica volgden. Ze werden bediend door specialisten voor beperkte toepassingen en het grote publiek kreeg ze niet te zien. Pas in de jaren '70 komen "zakcalculators", "tafelcomputers" en "hobbycomputers" beschikbaar voor het bedrijfsleven en gewone consumenten, hoewel ze dan nog vrij duur zijn. In 1977 komt Apple bijvoorbeeld met de befaamde 8 bits "Apple II" computer op de markt.

In 1981 lanceert IBM de "Personal Computer" die onmiddellijk een groot succes wordt, vooral in de zakelijke markt. Apple reageert in 1984 met de eerste grafische computer, de "Macintosh", die voornamelijk grafici en fotografen erg aanspreekt. Er is na tuurlijk direct ook vraag naar mobile computers, maar de eerste generatie is in de praktijk veel te zwaar en pas na 2000 nemen de "laptops" een grote vlucht. De zakrekenmachine wordt zoveel krachtiger dat agenda- en communicatie-functies mogelijk worden en dus ontstaat de "PDA" of "organizer". De ontwikkeling van het aanraakscherm maakt "tablet-computers" en "smartphones" mogelijk.

4371: Personal Computer

Het IBM (Desktop) ontwerp van de Personal Computer is vanaf het begin goed opgezet. Het is een schaalbaar modulair systeem, waarvan de specificaties royaltyvrij en open beschikbaar zijn, zodat ook derde partijen kunnen bijdragen. Het hart van het systeem is het "moederbord"(2) waarop de (Intel) CPU(3) en hulpchips zijn geplaatst, met de verbindingsconnectoren voor diverse I/O, geheugenmodules(4), uitbreidingskaarten(5) en voor de standaard voeding(6) van -5, +5 en +12Volt.
In de in veel opzichten standaard kast is ook plaats voor Floppydisk(7), Harddisk(8) en CD- of Dvd-disk. Naast de kast is bij een PC altijd een beeldscherm(1), een toetsenbord(9) en een muis(10) noodzakelijk.

Voor de besturingssoftware gaat IBM in zee met de dan nog jonge firma Microsoft die verschillende versies van "DOS" (Disk Operating System) levert. Later zal Microsoft (met IBM) voor de professionele markt "OS/2" ontwikkelen, met een grafische schil als reactie op de Macintosh en daarna het in eerste instantie eenvoudiger "Windows".

Door het open karakter van het PC-concept worden grote aantallen, steeds geavanceerdere pc's in Azië gebouwd tegen steeds lagere prijzen. IBM verlaat zelf de pc-markt en andere firma's nemen het over.

4372: Macintosh

Bij bezoeken aan het XEROX PARC laboratorium, waar midden 70'er jaren al de geheel grafische "ALTO" computer was ontwikkeld, besluit Steve Jobs namens Apple na onderhandelingen de "Macintosh" te bouwen en van geheel eigen besturingssoftware te voorzien. Deze "Mac's" zijn succesvol bij "creatieve" computergebruikers.

Het gaat echter langzaamaan slechter met Apple: de PC is véél goedkoper en de voordelen van de Mac-achitectuur wegen hier niet altijd tegen op. Steve Jobs verlaat Apple en begint een nieuw computerproject: "NeXT", waarbij het besturingssysteem van BSD-UNIX wordt afgeleid. Hij wordt weer CEO van Apple en zorgt dat de Mac's van de NeXT-software worden voorzien: "OS-X" (OS-10). Dit en een geheel nieuw en modern design van de "iMac" brengt de Macintosh in diverse uitvoeringen weer succesvol terug in de markt.

4373: Laptop

Een "Laptop", "Notebook"of "MacBook", een schootcomputer dus, is een sterk geminaturiseerde draagbare computer met de volledige functionaliteit van een gewone "Desktop" computer. Het beeldscherm kan opengeklapt worden en het toetsenbord zit onder het scherm ingebouwd. Aangezien een laptop ook los van een stroomvoorziening moet kunnen werken zijn doorgaans grote accusystemen aanwezig, met de bijbehorende oplaadvoorziening. Alle laptops hebben een "trackpad", een aanraakgebied dat de muis vervangt; Wifi en Bluetooth voor draadloze verbindingen zijn doorgaans ook aanwezig.

Steeds minder vaak worden in laptops nog cd/dvd-spelers ingebouwd en zelfs de traditionele harddisk wordt veelal vervangen door een SSD. Dit scheelt heel veel stroomverbruik en maakt dat een laptop soms tot wel 10 uur zonder opladen gebruikt kan worden. Ook het aantal verschillende connectoren wordt steeds kleiner, via USB-C kunnen bijna alle benodigde verbindingen gerealiseerd worden; zelfs die met het oplaadapparaat.

4374: Organiser, Personal Digital Assistent

Een Organiser, Zakcomputer of "Personal Digital Assistent" is een klein draagbaar computertje dat een aantal kantoorfuncties vervult. Omdat PDA's zowat de eerste computertjes waren met een beeldscherm, was er weinig accu capaciteit beschikbaar en zijn er speciale processors en besturingssystemen voor ontwikkeld: Symbian, Windows CE en Palm-OS waren de bekendste.
Met de komst van de "SmartPhone", die alle PDA-functies (en veel meer) bevat, zijn de PDA's weer snel van de markt verdwenen.

4375: Tablet computer

Vanaf 1980 zijn er "Tabletcomputers" op de markt, maar ze bleken in eerste instantie geen succes. Steve Jobs van Apple zei altijd dat er geen behoefte aan was, maar toen hij in 2010 er toch één presenteerde als "iPad" was het direct een groot succes en werden ze wereldwijd massaal verkocht; dat gold trouwens ook voor de vaak veel goedkopere "tablets" van de concurrenten. Waarschijnlijk viel de introductie goed samen met de opkomende gewoonte van "even iets opzoeken" of "even een filmpje kijken", waarbij het daarvoor opstarten van de PC toch niet zo handig is.

Tabletcomputers worden in beginsel met de vingers direct op het scherm bediend. Bij het invoeren van tekst wordt er een aanraak gevoelig "virtueel toetsenbord" geprojecteerd op het scherm. Optioneel kunnen er overigens ook compacte toetsenborden op tablets worden aangesloten.
Er zijn grofweg 3 besturingssystemen voor tabletcomputers:

Naast typische tabletcomputers zijn er ook hybride computers, die als een laptop kunnen opereren en ook puur als tablet.

4376: SmartPhone

Een "SmartPhone", letterlijk een slimme telefoon, kan beschouwd worden als een uitbreiding van een PDA met telefonie-functies of als een mobieltje met toegevoegde computer-functies. De smartphones komen in vele vormen; met toetsenborden aan de achterkant, uitschuifbaar of uitklapbaar met elk zijn eigen besturingssysteem, soms ook oude bekenden als Symbian of Palm-OS. In 2007 introduceert Apple de eerste "iPhone"; zeker niet de eerste smartphone, maar wel een vroege toetsloze telefoon met bovendien de volledige iPod functionaliteit ingebouwd. Ook heeft Apple het IOS besturingssysteem toegevoegd, afgeleid van OSX (van de Mac's) met extra "touch" functies.

Verreweg de meeste smartphones draaien op Google's "Android" besturingssysteem, een Linux variant, met per model een specifieke aanpassing.

4380: Microcontroller

Microprocessors, CPU's op een chip, worden doorgaans geleverd met een aantal bijbehorende hulpchips zodat alleen nog aanvulling van geheugen en I/O nodig is. Voor toepassingen met ingebouwde microcomputer zijn dit toch veel componenten terwijl de snelheid van zo'n computer doorgaans niet hoog hoeft te zijn. Voor dit doel is er een scala aan microcontroller (MCU) chips in de markt. Ze bevatten een 8 tot 64 bits CPU, diverse soorten geheugen en 4 tot wel 40 pennen met I/O functies. Normaliter zijn de adres- en databus niet van buiten bereikbaar. De I/O pennen hebben soms een vaste functie, maar vaak is er ook per pen een programmeerbare keuze uit enkele functies.
Mogelijke functies zijn dan:

Er is een groot aantal leveranciers met elk meerdere modellen chips met ver uiteenlopende specificaties. De bekendste zijn: de Atmel (Microchip) AVR-serie, de Intel MCS-serie, de Freescale (NXP) 68HC-serie, de Microchip PIC-serie en de Raspberry-Pico.

Wanneer er geen sprake is van massafabricatie, kan het aantrekkelijk zijn gebruik te maken van modules, waarbij naast de microcontroller enkele componenten zijn toegevoegd die toch bijna altijd nodig zijn: klokgenerator, USB-connectie, resetknop, voeding en waarbij bovendien de I/O pennen op connectoren zijn uitgevoerd. Onder andere de Arduino, de Raspberry PI, de ESP32 en de BBC micro:bit behoren hiertoe.

Wanneer er geen sprake is van massafabricatie, kan het aantrekkelijk zijn gebruik te maken van modules, waarbij naast de microcontroller enkele componenten zijn toegevoegd die toch bijna altijd nodig zijn: klokgenerator, USB-connectie, resetknop, voeding en waarbij bovendien de I/O pennen op connectoren zijn uitgevoerd. Onder andere de Arduino, de Raspberry PI, de ESP32 en de BBC micro:bit behoren hiertoe.

4381: Arduino platform

Het Arduino open source platform is gebaseerd op de ATmega328 8 bits RISC-processor. Het bestaat uit diverse uitvoeringen van onderling compatibele printen met stapelbare connectoren voor het toevoegen van extra functionaliteit in de vorm van sub-printen, "shields" genoemd.

Het systeem is goed gedocumenteerd en voorzien van een uitgebreide IDE (software ontwikkel hulp) met grote bibliotheken, waarmee in een eenvoudige vorm van "C" ontwikkeld kan worden.

Arduino UNO

De UNO is het instapmodel. Het heeft 32 kB Flash programmageheugen, 2 kB SRAM werkgeheugen en 1 kB EEPROM opslag voor te bewaren parameters. Verder zijn er onder meer 14 digitale pennen en 6 analoge inputs.

Arduino NANO

De NANO is een miniatuurversie van de UNO. Het heeft hetzelfde geheugen en er zijn er 22 digitale I/O's waarvan tot 8 analoge inputs op pennen uitgevoerd.

Arduino MKRFOX

Voor IoT projecten met zeer laag stroomverbruik (b.v. 2 AA of AAA batterijen) is de Arduino MKR Fox 1200 beschikbaar. Dit is een op 32-bits ARM SAMD21 van Atmel gebaseerde microcontroller module voor SigFox communicatie.

4382: Raspberry Pi

De Raspberry Pi is een serie printjes van (doorgaans) 85 x 56 mm waarop een volledige computer met RISK ARM of Cortex (tot 4 cores en 1,4 Ghz) CPU, veel DRAM, USB 2 poorten, HDMI beeldschermaansluiting, microSD-kaart opslag, Ethernet of Wifi netwerk en veel meer. De software is veelal op Linux gebaseerd en wordt eenvoudig vanaf de SD-kaart geboot.

Er zijn veel kant en klaar toepassingen (software, subprinten, voedingen en behuizingen) te verkrijgen, zoals voor bestandsserver, mailserver, NAS, Home Theater PC, enzovoort.

4383: ESP32

De Esp32 is een module met een low-power 32-bits CPU, 500 MB SRAM met geïntegreerde Wifi en Bluetooth en zeer veel I/O functies. De module kan worden opgenomen in een grotere applicatie.

4384: BBC micro:bit

De BBC micro:bit is een complete computer op een kaartje van maar 43 mm x 52 mm (een halve bankpas). Het maakt deel uit van een grootschalig Brits project om schoolkinderen kennis te laten maken met programmeren.

Het computertje wordt gevoed via de USB-poort of uit 2 batterijen, bevat een ARM cpu, 256 kB flash geheugen, 16 kB statisch ram, Bluetooth, een 3-assige versnellingsmeter en een kompas. Er zijn 2 drukknoppen, een 5 x 5 LED-display, een resetknop, voedingsaansluitingen en 3 algemene in/uitgangen; via een connector kunnen nog meer aansluitingen worden gebruikt.

Programmeren kan onder meer via een PC in Python, Java of grafisch (vooral voor kleine kinderen).

4400: Software, programmatuur

De software, de programmatuur van een computer, is het totaal aan instructies dat aan die computer opgeven is om zijn taken te vervullen. Een computer "begrijpt" alleen "machine-instructies", codes in de vorm van lange lijsten van 8-, 16-, 32- of zelfs 64-bits getallen, die zodanig aangeboden worden dat ze als machine-opdrachten (codes) worden geïnterpreteerd. Dit betekent dus dat de hardware van de computer bepaalt waar de codes verwacht worden en waar de andere data waarmee gewerkt wordt zich bevindt. De gebruiker moet er dus voor zorgen dat de juiste code op de afgesproken plaats is. Bij microcontrollers is dat de taak van de ontwerper en kan een gebruiker het apparaat alleen maar aanzetten, bij PC's e.d. wordt de gebruiker geholpen een programma te selecteren door het "besturingssysteem" (Operating System, OpSys) dat "vanzelf" gestart is vanaf een "diskfile", klaargezet door de computer-ontwerper.

Programmeren van Applicaties

De meeste APP's worden ontwikkeld in zgn. IDE's, softwarepakketten met alle benodigde hulpmiddelen en definities. Bij het programmeren of scripten worden soms naast elkaar verschillende talen gebruikt omdat toepassingen vaak samenstellingen van verschillende deeloplossingen zijn. Omdat de benadering van variabelen en objecten tussen verschillende systemen kan afwijken, worden API's geraadpleegd.

Door als ontwerper aan te geven dat het product "Open source" is, maakt deze het mogelijk (niet commerciële) toepassing en aanpassing door derden toe te staan en daarmee de verspreiding en verbetering van de APP te versnellen.

4410: Operating Systems, besturingssystemen

Een besturingssysteem (Operating System, OS) is het deel van de software (programmatuur) dat zorgt voor de fysieke uitvoering van de taken die de toepassingen (APP's / programma's) aan de hardware (computer) opdragen.

De voor het grote publiek bekendste besturingssystemen zijn, in historische volgorde: UNIX, CP/M, MacOS, DOS, OS/2, Windows, Linux, iOS, Android en Chrome-OS. Al deze systemen hebben een lange geschiedenis en zijn in vele varianten en versies (updates) beschikbaar geweest, vaak ook voor verschillende computer hardware.

Vóór het midden van de 70er jaren werd de meeste software direct voor de hardware geschreven. Dit betekende dat als er maar iets veranderde aan de hardware (andere printer of beeldscherm), alle programma's aangepast moesten worden. Voor de microcontrollers, die in apparaten worden ingebouwd, is dat nog steeds zo, maar daar verandert niet gauw iets; dan heb je gewoon een nieuw product. Maar voor de meervoudig toepasbare mainframe- of minicomputers en later de PC en MAC moest een betere oplossing worden gevonden: een modulair besturingssysteem met een bedieningsprogramma (shell) met commando's en scripts om de computer mee te bedienen.

OS architectuur

In moderne besturingssystemen, ook in smartphones en tablets, zijn de programma's (APP's) geheel gescheiden van de hardware. Een programma kan om input vragen aan het OS (input call), kan gaan slapen en wordt gewekt als er antwoord is, of kan resultaten melden aan het OS (output call) en krijgt bevestiging van de uitvoering. In de kern van het OS (de kernel) wordt de juiste "hardware-driver" aangeroepen om de taak uit te voeren. Als het OS "multitasking" of "timesharing" is, kan het "proces-controle" deel van het OS besluiten, in afwachting van de respons voorlopig een andere taak toegang tot de computer-capaciteit te geven.

4411: UNIX

De ontwikkeling van UNIX begint in de 60er jaren in ATT's Bell labs voor interne toepassing op minicomputers (voornamelijk PDP mini's). Het wordt later ondersteund door ontwikkelingen op Berkeley University bij San Francisco en wordt in 1973 van Assembler omgezet in de juist nieuw ontwikkelde taal "C" (BSD UNIX).

Diverse organisatie's breiden de functionaliteit uit zodat er diverse varianten van UNIX ontstaan die naast elkaar ook weer verder ontwikkeld worden; toch is de compatibiliteit voldoende gebleven. Latere besturingssystemen bevatten altijd veel structuren die van UNIX zijn afgeleid. Linux en macOS maken daar ook geen geheim van.

4412: Control Program for Microcomputers

Het besturingssysteem voor 8bit computers CP/M (Control Program/Monitor) werd in 1973 ontwikkeld. Het werd snel zeer populair bij de eerste generatie thuiscomputers, bevatte de noodzakelijke basiscommando's voor het bedienen van een computer en de bijbehorende eenvoudige scriptmogelijkheid. Met CP/M commando's was het mogelijk programma's te zoeken, laden en starten vanaf een floppydisk.

Voor CP/M werden diverse programma's ontwikkeld: "ED" (editor), "Wordstar" (tekstverwerker) en "Visicalc" (spreadsheet).

In reactie op de introductie van de IBM PC werd er ook een 16bit versie van CP/M ontwikkeld naast MS-DOS, maar o.m. door de veel hogere prijs werd dit geen succes.

4413: OpSys: MacOS

SysteemVersieWerknaamIntro
Mac OSX10.0Cheetah2001
Mac OSX10.1Puma2001
Mac OSX10.2Jaguar2002
Mac OSX10.3Panther2003
Mac OSX10.4Tiger2005
Mac OSX10.5Leopard2007
Mac OSX10.6SnowLeopard2009
Mac OSX10.7Lion2011
OSX10.8MountainLion2012
OSX10.9Mavericks2013
OSX10.10Yosemite2014
OSX10.11El Capitan2015
macOS10.12Sierra2016
macOS10.13High Sierra2017
macOS10.14Mojave2018
macOS10.15Catalina2019
macOS11.1Big Sur2020
macOS12.1Monterey2021

In 1984 ontwerpt Apple voor zijn "Macintosh" grafische computer een bijbehorend besturingssysteem dat oorspronkelijk gewoon "System" heette. Vanaf System versie 7.6 wordt de PowerPC CPU (RISC) ondersteund en wordt de naam "Mac OS" (Macintosh Operating System) gebruikt.

Na de terugkeer van Steve Jobs bij Apple wordt in 2001 een op BSD-UNIX gebaseerd besturingssysteem "Mac OS X 10.0" geïntroduceerd en nagenoeg elk jaar een nieuwe versie met nieuwe faciliteiten. Zoals gebruikelijk in de softwarewereld krijgen alle significante versies een werknaam (katachtigen of natuur).

Vanaf OSX 10.5 (2007) draait dit op Intel-chips en wordt de PowerPC-chip uitgefaseerd. In 2020 wordt een versie 11.1 uitgebracht waarmee, naast de Intel- ook de nieuwe Apple-chips worden ondersteund.

4414: MicroSoft Disk Operating System

VersieIntroOpmerkingen
1.01981
2.01983
3.01984
3.31987
4.01988
5.01991
6.01993
6.221994

Omdat in 1980 IBM verlegen zit om een eigen besturingssysteem voor haar eerste PC, gaat ze in zee met de jonge firma MicroSoft. Microsoft koopt een voor 16 bit aangepaste kloon van CP/M en noemt het MS-DOS en IBM levert het dan weer als "PC-DOS" bij haar PC. Het OS wordt bediend met de shell "Command" met alle faciliteiten voor het gebruik van de 5.25" floppy disk. Het bijbehorende "FAT-12" filesysteem wordt, met de komst van de PC-XT (met HardDisk), al snel vervangen door FAT-16.

DOS wordt bediend met commandoregels, maar UNIX en MacOS worden sinds 1984 met een grafische interface (GUI) bediend. IBM wil dit ook voor haar PC's en begint met Microsoft aan de bouw van een modern besturingssysteem: OS/2. Microsoft start daarnaast een eenvoudiger op DOS gebaseerd OS+GUI systeem: Windows.

4415: OS/2

VersieIntroOpmerkingen
1.01987Command line interface
1.11988Grafische (GUI) interface
2.0199232 bit protected mode
3.01993WARP: IBM Works office
4.01996WARP: Java & free version

IBM was helemaal geen voorstander het gebruik van een "Personal Computer" in haar zakelijke markt. Maar gezien het succes van allerhande tafelcomputers bij diverse klanten, had men toch de IBM-PC ontworpen. Men wilde hierna ook een een professionelere versie bouwen: "PS/2" (Personal System 2) en hierbij hoorde ook een modern grafisch besturingssysteem: "OS/2".

IBM bouwt met MicroSoft een geheel nieuw systeem volgens laatste inzichten, met een zuivere scheiding tussen soft- en hardware. Maar MicroSoft heeft buiten IBM veel klanten die allerlei software willen draaien op PC-klonen die direct de hardware aanspreken. De samenwerking wordt verbroken en MicroSoft concenteert zich op Windows, in eerste instantie als een presentatie laag op DOS.

IBM gaat verder met OS/2 voor PC's, maar PS/2 wordt geen succes: vooral te duur. De ontwikkeling van OS/2 gaat bij IBM gewoon nog jaren door voornamelijk voor banken en andere zakelijke klanten. Met name in geldautomaten en machine besturing.

4416: MicroSoft Windows

VersieIntroOpmerkingen
1.01985Eerste versie GUI
2.0-3.31987Overlap vensters...
NT 3.1-4.01993New technology!
95 - ME1995Beschermde modus
20002000Prof NT versie
XP2001Populairste versie
Vista2006Hoge systeemeisen
7.02009Nog klassieke stijl
8.0, 8.12012Metro-interface
102015Universele versie
112015Modernisering

Ook MicroSoft wil een OS met grafische interface (GUI) bieden. Men gaat uit van DOS 3.0 en start daarbij een GUI genaamd "Windows" voor de bediening. Bij versie 2 en zeker 3 wordt Windows bruikbaar als OS-besturing hoewel het onderliggende DOS nog geen echte multitasking mogelijk maakt.

In het samenwerkingsverband met IBM voor OS/2 is wel ervaring verkregen op het gebied van multitasking in PC's en wordt een "Windows New Technology" geïntroduceerd, voorlopig alleen bedoeld voor zakelijke toepassingen. Voor consumenten komen er de modernere Windows 95 en 98, die terecht zeer populair worden, hoewel er wel problemen met de beveiliging waren.

Om MicroSoft in het nieuwe millennium een goede start te geven zijn Windows XP en 2000 ontwikkeld voor consumenten en zakelijke toepassing. XP was helaas niet voor het jaar 2000 klaar, zodat een extra tijdelijke versie "Millennium Edition" werd ingevoegd. Windows XP voldeed zo goed dat er weinig belangstelling voor het nieuwe, soms haperende, "Vista" ontstond. Bovendien kon XP op minder krachtiger PC's werken. Pas bij de introductie van Windows 7 wordt weer op grote schaal geüpdated en na versie 7 wordt vooral de opmaak van Windows gemoderniseerd.

MicroSoft maakt intussen ook veel software voor andere apparatuur dan PC's. Met de introductie van Windows 10 wordt een begin gemaakt met een universeel OpSys: ook telefoons en tablets worden nu ondersteund.

4417: Linux: open source OS

VersieIntroOpmerking
UNIX1969In Assembler
UNIX-C1971In "C" omgezet
GNU1984Start GNU
Linux1991Start Linux
Kernel1994Versie 1.0

Linux is een groep vrij toepasbare en aanpasbare (open source, GNU) besturingssystemen met een duidelijk van UNIX afgekeken architectuur. UNIX is in 1969 geheel in de Assembler voor de PDP-computers (van DEC) geschreven en daardoor niet bruikbaar op andere computers. Nadat het in de nieuwe computertaal C was overschreven kon het op andere "architecturen" worden overgezet. Maar er moest op een gegeven moment wel copyright voor betaald worden (aan Bell Labs), zodat het voor veel amateurs onbereikbaar was.

Vrije en open software

Om, vrij van commercie, amateurs de mogelijkheid te geven een professioneel OpSys te gebruiken op eenvoudiger apparatuur dan DEC-PDP (bv. PC), start Richard Stallman het GNU project. Hierbinnen worden diverse modules van UNIX gebruikt op basis van de rechtenvrije C-bronteksten. Alleen de sterk hardware afhankelijke kernel (kern) blijkt niet eenvoudig te realiseren.

De start van Linux

Linus Torvalds had ervaring met UNIX en wilde dat privé ook kunnen gebruiken. Hij stuitte ook op de licentievoorwaarden en ontwikkelde daarom zijn eigen kernel. Grote groepen sloten zich bij hem aan o.a. gebruikmakend van GNU modules. Zo ontstond Linux 1.0. De overgrote meerderheid van de servers draaien nu op Linux. Ook veel "imbedded" systemen zoals modems en smartTV's bevatten grote delen van Linux.

Distributies

Afhankelijk van de toepassing, worden de Linuxkernel en de noodzakelijke modules samengevoegd tot een "distro" voor een bepaald type computer (b.v. PC). Zo zijn er distro's voor dataservers, webservers, zelfs supercomputers of voor gewone desktops; vele tientallen verschillende distro's, die overigens vaak grotendeels van elkaar zijn afgeleid. Slackware, Debian, Red Hat en SUSE zijn bekende vroege distro's waarvan hele families zijn afgeleid.

4418: OpSys: iOS, iPadOS en meer

VersieIntroOpmerking
iPhoneOS2007Voor eerste iPhone
iPhoneOS22008Voor iPhone 3G
iPhoneOS32009Voor iPhone 3GS
iOS 42010Voor iPhone 4
. . . .. . . .. . . .
iOS 132019Voor iPhone 11
iPadOS 132019Voor iPad 11
iOS 142020Voor iPhone 12
iPadOS 142020Voor iPad 12

Voor haar smartphones (ook voor iPod's en later iPad's) heeft Apple iOS ontworpen op basis van macOS, dat weer gebaseerd is op BSD Unix. Het is geoptimaliseerd voor bediening met de vingers op het "aanraakscherm". Aangezien er normaal geen toetsenbord beschikbaar is wordt er één op het scherm afgebeeld. Dit geeft wél de extra mogelijkheid het toetsenbord aan te passen aan de actuele toepassing; als de input alleen cijfers toestaat zal er b.v. een numeriek toetsenbord getoond worden en bij een e-mail adres wordt het '@'-teken getoond.

Jaarlijkse verbeteringen

Vanaf 2007 brengt Apple ieder jaar een nieuw model iPhone uit en daarbij een nieuwe versie van iOS. Elke versie ondersteunt natuurlijk de nieuwe faciliteiten van het laatste model, maar is ook compatibel met zo veel mogelijk oudere modellen. Op enig moment (na 4 à 5 jaar) kunnen de nieuwe functies niet langer op het "oude" model draaien en worden alleen bepaalde "veiligheidsupdates" uitgevoerd. Alle tussentijdse updates die relevant zijn worden regelmatig ongevraagd gratis aangeboden.

Varianten

Omdat geleidelijk de mogelijkheden van de iPhone en de iPad steeds verder uit elkaar liepen, heeft Apple in 2019 naast iOS een separaat iPadOS gebouwd, waarin de uitgebreide mogelijkheden van de iPad worden ondersteund. Ook in de AppleTV en de Apple Watch wordt een afgeleide van iOS gebruikt: tvOS en watchOS.

4419: OpSys: Android en Chrome-OS

VersieWerknaamIntro
1.0-2008
1.1Petit Four2008
1.5Cupcake2009
1.6Donut2009
2.0Eclair2009
2.2Froyo2010
2.3Gingerbread2010
3.0Honeycomb2011
4.0Ice Cream S2011
4.1Jelly Bean2012
4.4KitKat2013
5.0Lollipop2014
6.0Marshmallow2015
7.0Nougat2016
8.0Oreo2017
9.0Pie2018
10-2019
11-2020

Het OpSys "Android" is een "open source" besturingssysteem gebaseerd op Linux. Het door Google overgenomen OpSys is in 2007 als standaard ingebracht in de "Open Handset Alliance" als platform voor smartphones en tablets. Zoals gebruikelijk in de softwarewereld kregen tot versie 10, alle significante versies een werknaam (vaak snoep).

App's voor Android toestellen

Android App's worden in "Java" geschreven en met behulp van de eigen IDE (Android Studio) ontwikkeld. Het resultaat kan, indien gewenst, naar de "Google Play Store" worden opgeladen. Gebruikers kunnen ze daarvan (soms na betaling) downloaden in hun apparaat.

Android varianten

Omdat Android niet erg veel meer is dan een Linux-kern, een Java runtime machine en optionele modules, is het OpSys ook zéér geschikt voor andere toepassingen dan in handsets en wordt het ook veel gebruikt in b.v. "SmartTV's".

Chrome, Chromebook en Chrome-OS

Veel computergebruikers hebben hun PC alleen voor e-mail, Internetten (browsen) en incidenteel een briefje lezen of tikken. De meeste PC's zijn véél krachtiger dan hiervoor noodzakelijk. Men kiest dan ook vaak een tablet computer voor dit doel, maar niet iedereen vindt dit handig. Google is met een goedkoop compromis gekomen: het "Chromebook". Een Chromebook is een eenvoudig klein "Netbook" waarop net als bij Android een Linux-kern draait met netwerkfuncties en verder voornamelijk de webbrowser "Chrome": tezamen "Chrome-OS". Op deze laptop kunnen diverse webapplicaties van o.a. Google uitgevoerd worden.

4420: File Systems, bestandssystemen

FileSysOpSysMaxDiskMaxFile
FAT-16Win,Mac,Linux 4 GiB16 MiB
FAT-32Win,Mac,Linux 2 TiB4 GiB
exFATWin,Mac,Linux64 ZiB64 ZiB
NTFSWin,Linux256 TiB2 TiB
HFS+Mac16 EiB8 EiB
APFSMac,IOS?8 EiB
EXT4Linux?8 EiB
ISO13346CD/DVD4,5 GB1 GiB

Om allerhande informatie op te slaan op digitale systemen moeten die een zekere ordening kennen. Primair natuurlijk om de info terug te vinden, maar ook om die te kunnen verwijderen en de vrijgekomen ruimte te kunnen hergebruiken. Hiervoor zijn er diverse "File Systemen" (FS) ontwikkeld. Filesystemen zijn bedoeld voor gebruik op magnetische disks (of vergelijkbaar).

De meeste besturingssystemen ondersteunen meerdere filesystemen, maar niet noodzakelijk dezelfde die andere besturingssystemen weer ondersteunen. Uitwisseling van data op basis van losse harddisks is vaak niet goed mogelijk. Met CD/DVD's, SD-kaartjes en USB-sticks lukt het vaak wel omdat de FAT- en ISO-formattering door veel OpSystemen standaard gebruikt kan worden. Vaak kunnen ook optioneel extra formats worden toegevoegd.

Als er genoeg ruimte is op een opslagmedium, betekent dit nog niet dat elke file opgeslagen kan worden, doorgaans is het aantal blokken dat een file groot kan zijn (en daarmee het aantal bytes) gelimiteerd.

4421: Structuur van een filesysteem

Een Harddisk wordt bij het "formatteren", afhankelijk van het gekozen "File systeem" en de grootte van de disk, op een specifieke wijze ingericht. Track 0 (het buitenste spoor) is gereserveerd voor organisatorische informatie en mogelijk de bootlader waarmee de computer wordt opgestart. Indien gewenst kan een disk ook worden opgedeeld in meerdere "partities" die door het besturingssysteem als aparte disks worden behandeld.

Een bestandssysteem (FileSystem) is zodanig ingericht dat alle opgeslagen bestanden op naam terug te vinden zijn. Hiervoor is op een vaste plaats op elke partitie een inhoudsopgave (root-directory) aanwezig. Dit is een speciaal bestand waarin van elk ander bestand, de naam, grootte, creatie-datum/tijd, vaak nog veel meer info en, het belangrijkste, de plaats van het startpunt (het eerste cluster) van het gezochte bestand in de partitie op de disk. Vaak verwijst elk cluster weer naar het volgende totdat het laatste cluster is bereikt.

Veel meer mappen

Naarmate de disks groeiden werd het aantal files groter en dus werden ook de mappen groter en minder overzichtelijk. Daarom werd het mogelijk gemaakt om binnen een map ook weer naar sub-mappen te verwijzen, enz..

4422: Harddisks: magnetische schijven

Een magnetische schijf is een ronddraaiende plastic of aluminium schijf waarop een magnetische laag door een boven de schijf zwevende "kop" in concentrische cirkels wordt beschreven met magnetische éénen en nullen. Zo'n cirkel heet een track en kan, afhankelijk van de gebruikte technologie een maximaal aantal bits bevatten. Bij meerdere (en/of dubbelzijdige) schijven zijn er natuurlijk meerdere koppen, spreekt men van (concentrische) cylinders en kunnen er meer bits tegelijk gelezen of geschreven worden. Elke schijf is ingedeeld in een aantal sectoren zodat in elke track clusters van een in te stellen aantal bytes ontstaan. Om een bepaald cluster te kunnen lezen of schrijven wordt de kop boven de juiste track geplaatst, waarna gewacht wordt totdat de juiste sector voorbij komt. Lezen en schrijven van data gaat bij alle systemen altijd in gehele clusters.

Capaciteit van een disk

In beginsel is de capaciteit van een disk: aantal tracks X clusters per track X bytes per cluster. Bij het zogeheten "formatteren" van een schijf wordt de clustergrootte (in bytes/cluster) ingesteld, maar bij elk filesysteem worden er ook clusters gereserveerd voor de interne administratie, zodat de bruikbare capaciteit aanmerkelijk kleiner kan zijn. Bij heel grote harddisks worden doorgaans ook flinke clusters ingesteld om het totale aantal clusters niet te groot te maken. Maar bij veel kleine bestanden is dat natuurlijk minder efficiënt.

4430: Programmeren van toepassingen, codering

Programma's, ook wel applicatie's of kortweg APP's genoemd, worden geschreven in een "programmeertaal" en daarna vertaald door een "compiler" of "assembler" in machinecodes. Ook het besturingssysteem en alle hulpfuncties zoals filesystemen, netwerksoftware, apparatuurbesturing enzovoort, zijn in programmeertalen ontwikkeld maar alleen als machinecode aanwezig.

Assemblers

De machine-codes zijn zelfs door geoefende ontwerpers nauwelijks te hanteren en daarom is men allereerst begonnen voor zichzelf hulpmiddelen te maken om efficiënt te kunnen "programmeren". Tot de oudste programma's behoren daarom de "assemblers", programma's om de namen van de machine-instructies en de bijbehorende parameters vanaf een tekst-bestand in codes te laten omzetten. Hoewel een assembler een hele stap voorwaarts was, bleef de productiviteit van een programmeur vrij laag. Daarom ontstonden er "hogere programmeertalen" die de programmeur efficiënter maken (maar het programma vaak niet).

Hogere programmeertalen

De eerste "hogere talen" waren oorspronkelijk zeer gespecialiseerd: "Fortran" [1957] voor technische rekentoepassingen, "Cobol" [1960] voor administratieve toepassingen en "Algol" [1960] voor wetenschappelijke rekentoepassingen. Voor opleidingsdoeleinden kwamen er ook speciale talen bij: "Basic" [1963] voor het middelbaar onderwijs en "Pascal" [1970] voor het hoger onderwijs. Alle talen lenen van elkaar constructies en datatypen, maar gebruiken (vaak om goede redenen) een verschillende "syntax". Latere versies van alle talen staan steeds meer geavanceerde constructies en datatypen toe en lijken oppervlakkig dus ook steeds meer op elkaar, maar opletten is geboden! Een speciale positie heeft de taal "C" [1973]. Deze technische taal ligt dichter tegen de machine aan dan de andere talen. De programmeertaal "Java" [1995] wordt gecompileerd naar een pseudo code die door een "Java virtuele machine" op willekeurige computers kan worden uitgevoerd. Apple heeft voor het programmeren van haar apparatuur een nieuwe technische taal "Swift" [2014] ontwikkeld volgens de laatste opvattingen.

Ontwikkelaars gebruiken doorgaans speciale "IDE-systemen" (Integrated Development Environment) om APP's te ontwikkelen.

4431: Programmeertaal: Assembler

          global    _start

          section   .text
_start:   mov       rax, 1             ; system call for write
          mov       rdi, 1             ; file handle 1 is stdout
          mov       rsi, message       ; address of string to output
          mov       rdx, 13            ; number of bytes
          syscall                      ; invoke operating system to do the write
          mov       rax, 60            ; system call for exit
          xor       rdi, rdi           ; exit code 0
          syscall                      ; invoke operating system to exit

          section   .data
message:  db        "Hello, World", 10 ; note the newline at the end

Assemblers zijn computerprogramma's die "mnemonics" (instructienamen) en bijbehorende parameters vertalen naar instructiecodes van een bepaalde CPU. De parameters, b.v. het adres van een getal in het geheugen, wordt door zelf gekozen namen aangegeven en door de assembler naar de juiste adreswaarde vertaald.

Maar elke "CPU" heeft zijn eigen "instructieset" (beschikbare instructies) en daarmee ook zijn eigen assembler en die heeft weer zijn eigen "syntax" (taalregels). Dit maakte dat programmeurs niet graag voor veel verschillende CPU's willen programmeren als dat in assembler moet. De leveranciers van CPU-chips zorgen dan ook dat nieuwe ontwerpen zo veel mogelijk overeenkomen met de vertrouwde instructieset en dat de nieuwe processor met de zelfde (misschien uitgebreide) assembler kan worden geprogrammeerd; hierdoor ontstaan er families van processoren..

4432: Programmeertaal Fortran

C AREA OF A TRIANGLE - HERON'S FORMULA
C INPUT - CARD READER UNIT 5, INTEGER INPUT
C OUTPUT -
C INTEGER VARIABLES START WITH I,J,K,L,M OR N
      READ(5,501) IA,IB,IC
  501 FORMAT(3I5)
      IF(IA.EQ.0 .OR. IB.EQ.0 .OR. IC.EQ.0) STOP 1
      S = (IA + IB + IC) / 2.0
      AREA = SQRT( S * (S - IA) * (S - IB) * (S - IC) )
      WRITE(6,601) IA,IB,IC,AREA
  601 FORMAT(4H A= ,I5,5H  B= ,I5,5H  C= ,I5,8H  AREA= ,F10.2,
      $13H SQUARE UNITS)
      STOP
      END

Fortran is de oudste nog bestaande computer taal voor technische rekenproblemen. De naam is afgeleid van IBM's "Mathematical FORmula TRANslating System". Het is een al in de 50'er jaren ontwikkelde compiler met een oorspronkelijk starre opmaak omdat men uitging van ponskaarten voor programma en data invoer. In de loop van jaren heeft het functionaliteiten en opmaak kenmerken van andere talen opgenomen in de eigen syntaxis, zodat het zich lang kon handhaven.

4433: Programmeertaal Cobol

PROCEDURE DIVISION.
       MAIN-PARA.
           DISPLAY " ----------------------- ".
           DISPLAY " ENTER A ".
           ACCEPT A.
           DISPLAY " ENTER B ".
           ACCEPT B.
           DISPLAY " ----------------------- ".

       ADD-PARA.
           ADD A B GIVING ANS. 
           DISPLAY " ----------------------- ".

       DISP-PARA.
           DISPLAY "A IS " A.
           DISPLAY "B IS " B.
           DISPLAY "ADDITION =" ANS.
           STOP RUN.

De programmeertaal Cobol is al vroeg ontwikkeld om administratieve toepassingen te programmeren voor de financiële wereld. De taal is berucht om de grote hoeveelheid typewerk dat nodig is voor het schrijven van een complete toepassing.

4434: Programmeertaal Algol

begin comment gebruik van for statement;
  integer maxn;
  text(1,‘Maximaal aantal getallen=’); maxn:=read(1);
  begin integer n,i;
    integer array a[1:maxn];
    n:=0;
    for i:=1,i+1 while a[i-1]>0 do
    comment Het aantal gelezen getallen wordt in n bijgehouden;
    begin 
      text(1,‘Getal ’);
      write(1,i);
      text(1,‘=’);
      a[i]:=read(1);
      if a[i]>0 then n:=i 
    end;
    for i:=1 step 1 until n do
    begin
      write(1,i);
      text(1,‘ ’);
      write(1,a[i]);
      skip(1)
    end
  end
end 

De programmeertaal Algol heeft een vooral op wiskundig correcte behandeling van data typen en structuren gerichte syntaxis. Belangrijk in Algol is het vooraf eenduidig declareren van alle variabelen, zodat de compiler tegen verkeerd gebruik kan waken. Een "blok" wordt ingesloten door 'begin' en 'end'. Alle "statements" en "blokken" worden gescheiden door een ';' een nieuwe regel, spatie of tab heeft geen enkele betekenis (Whitespace) een overtollige ';' is dus niet correct! In Algol wordt een toekenning geschreven als ':=' (spreek uit 'wordt') en niet als '=' zoals in Fortran, Basic of C.

4435: Programmeertaal Basic

 100 REM PRIEMGETALLEN
 110 INPUT "START=",A1
 120 INPUT "END=",A2
 130 FOR I= A1 TO A2
 140  GOSUB 170
 150 NEXT I
 160 END
 170 REM TEST PRIEM
 180 FOR J=2 TO SQR(I)
 190  IF I/J=INT(I/J)THEN 220
 200 NEXT J
 210 PRINT I;
 220 RETURN

BASIC is een programmeertaal die oorspronkelijk was bedoeld om mensen snel te leren programmeren. De naam is een acroniem voor Beginners All-purpose Symbolic Instruction Code.

4436: Programmeertaal Pascal

If Sel = '2' Then
  Begin 
    ClrScr;
    Write('Input No.1:');
    Readln(N1);
    Write('Input No.2:');
    Readln(N2);
    Total := N1 - N2;
    Write('Subtraction: ');
    Write(N1:2:3,' - ',N2:2:3,' = ',Total:2:3);
    Write('Press any key to continue...');
    Readkey;
  End;  { Closing the if statement }

De programmeertaal Pascal kan beschouwd worden als een afsplitsing van Algol, de laatste werd steeds complexer zodat het minder geschikt was voor het onderwijs.

4437: Programmeertaal C

#include 
int main (void)
  {
  int iks ;
  iks = 1 ;
  iks = iks + 2 ;
  printf(" de waarde van iks = %d \n", iks) ;
  // LET OP: %d voor integer waarden.
  return 0 ; }

Programmeertaal C heeft een speciale positie. Deze taal is natuurlijk afgeleid van z'n voorlopers, (m.n. ALGOL), maar ligt tegelijk dichter tegen de machine aan dan de andere. Dit maakte het bijvoorbeeld mogelijk het besturingssysteem "UNIX" geheel in C te herprogrammeren. Naast nieuwe versies zijn van C ook krachtiger talen afgeleid zoals C++, Objective C, Java en C#.

4438: Programmeertaal Java

public class Factorial
{
  public static void main(String[] args)
  {  final int NUM_FACTS = 100;
     for(int i = 0; i < NUM_FACTS; i++)
     System.out.println( i + "! is " + factorial(i));
  }
	
  public static int factorial(int n)
  {  int result = 1;
     for(int i = 2; i <= n; i++)
     result *= i;
     return result;
  }
}

De object georiënteerde programmeertaal Java maakt het mogelijk een programma te schrijven voor veel verschillende computers. Het idee is dat de Java tekst geïnterpreteerd wordt door een "virtuele" Java machine die op elke doelcomputer aanwezig is.

4439: Programmeertaal Swift

var implicitInteger = 70
var implicitDouble = 70.0
var explicitDouble: Double = 70

let apples = 3
let oranges = 5
let appleSummary = "Ik heb \(apples) appels."
let fruitSummary = "Ik heb \(apples + oranges) vruchten."
print("Hallo Wereld!")

let people = ["Anna": 67, "Julia": 8, "Hans": 33, "Peter": 25]
for (name, age) in people {
    print("\(name) is \(age) jaar oud.")
}

De programmeertaal Swift is door Apple gecreëerd voor de besturing van haar hardware via de besturingssystemen iOS, watchOS, macOS en tvOS. In combinatie met de IDE "Xcode" kan men in Swift applicaties bouwen voor de MAC, iPhone, iPad, Apple TV en Apple Watch.

Oorspronkelijk werd in Xcode "Objective-C" gebruikt voor de programmering van App's, maar na de introductie van Swift in 2014 werd door de meeste ontwikkelaars op Swift overgeschakeld.

4440: Shells en Scripting

De allereerste computers werden mbv 10-tallen schakelaars gestart, maar rond 1970 werden ze van een automatisch geladen commando-programma voorzien: een zogenaamde "shell", die vanaf een "telex" of "terminal" wordt bediend. Hiermee kan men andere programma's laden en starten. Shell's kennen commando's voor het tonen van inhoudsopgaven van disk's, het selecteren van bestanden om te tonen of af te drukken en zo. De bekendste voorbeelden zijn "sh en bash" voor UNIX, "command.com en cmd.exe " voor Dos en Windows.

Omdat er in de praktijk vaak hele riedels commando's moeten worden ingetikt worden shells dikwijls voorzien van eenvoudige programmeer mogelijkheden in een scripttaal.

Scripting is voor veel eenvoudige toepassingen een handig hulpmiddel en wordt daarom ook steeds meer toegepast voor algemene programmering.
Een scripttaal wordt niet altijd gecompileerd naar machinetaal, maar vaak direct geïnterpreteerd en uitgevoerd. Ook worden variabelen niet altijd vooraf gedefinieerd, maar on-the-fly gecreëerd. Bekende voorbeelden voor Website-ontwerp zijn: "SQL", "PHP", "ASP", "JAVA" en "JavaScript".

4441: UNIX shells sh en bash

MyComp:~user$ help

GNU bash, version ...
cd     Change the working directory.
cp     Copy files.
date   Display the date and time.
echo   Write arguments to standard output.
ed     The standard text editor.
kill   Terminate or signal processes.
ls     List directory contents.
mkdir  Make directories.
mv     Move or rename files.
pr     Print files.
rm     Remove directory entries.

Voor het werken met disk-files werd vanaf de eerste versies van UNIX "sh" als shell bijgeleverd. In latere versies werden compatibele varianten geleverd waarbij "bash" nog steeds de bekendste is en ook in Linux en macOS beschikbaar is.

4442: DOS en Windows shells

C:\Users\User>help

For more information on a specific command, type HELP command-name
CD     Displays the name of or changes the current directory.
COPY   Copies one or more files to another location.
DATE   Displays or sets the date.
DEL    Deletes one or more files.
DIR    Displays a list of files and subdirectories in a directory.
ERASE  Deletes one or more files.
EXIT   Quits the CMD.EXE program (command interpreter).
MKDIR  Creates a directory.
PRINT  Prints a text file.
RD     Removes a directory.
REN    Renames a file or files.
VER    Displays the Windows version.

Microsoft levert als "shell" bij "MS-DOS" (Disk Operating System) "command.com" en later bij Windows "cmd.exe". Beide programma's lijken op het oudere "CCP" dat bij CP/M werd geleverd.

4450: Getalrepresentatie en codes

Normale (dus digitale) computers werken alleen met getallen! Alle informatie, of die nu numeriek is of niet, wordt gerepresenteerd door getallen; zelfs alle programmatuur bestaat uit getallen. Het kleinste getal is een "Bit": het kent alleen de waarde 0 of 1. Dit is handig omdat bij digitale elektronica dit als twee verschillende spanningen kan worden weergegeven (bv. 0 of 3 V).

Getallen

BinairDecHexKar
0000000000
0000010155
01000001650x41'A'
01100001970x61'a'
111000012250xE1'á'
111111112550xFF

Losse Bits zijn voor een mens wat onoverzichtelijk en daarom worden ze doorgaans gecombineerd tot groepjes van 8 Bits, de "Bytes". Zo'n Byte kan 256 verschillende waarden hebben: 0 tot 11111111 Binair, 0 tot 255 Decimaal, 0 tot 0xFF Hexadecimaal of het kan iets anders, b.v. een Karakter voorstellen. Heeft men grotere getallen nodig dan gebruikt men meerdere Bytes op opeenvolgende locaties, maar dan moet goed afgesproken zijn welk Byte vooraan staat (vergelijk: '39' spreken we in NL uit als '9 en 30', in EN als '30 9'). Met deze zogeheten "Endianness" moet rekening worden gehouden waar verschillende systemen gegevens uitwisselen, zoals bij het internet. Veelvouden van Bytes geeft men doorgaans aan op de SI-wijze, maar bij data-grootten ook vaker in machten van 1024 (iKB) ipv. 1000 (kB).

Karakters en Strings

Alfanumerieke karakters werden vanaf de 60'er jaren in Bytes opgeslagen, waarvan slechts 7 bits werden gebruikt: o.a. in "ASCII-code". Vanaf de 80'er jaren zijn er veel tekensets bijgekomen, de zogeheten "Codepages", die soms ook meerdere bytes per karakter gebruiken; zonder de juiste codepage is de betekenis van een karakter-Byte niet zeker. Ook bij tekst-strings (tekenreeksen bv. zinnen) moeten alle afspraken eenduidig zijn: soms is de afspraak dat het eerste Byte het aantal karakters in de string aangeeft en soms wordt een string afgesloten met een speciaal gereserveerd karakter.

Programma codes

Programma's zijn lijsten met getallen die in de computer opgevat worden als opdracht codes voor de CPU. Als een 8-bit CPU een instructie uit het geheugen haalt is dat normaliter één Byte. Uit het bit-patroon kan worden afgeleid of er extensie bytes moeten worden opgehaald. Moderne CPU's kunnen zelfs 64-bits instructies (8 bytes, nog exclusief extensies) gebruiken.

4460: Variabelen en structuren

Technisch is bij software een "variabele" een gebied in een variabel geheugen (een RAM) met een unieke "naam" en van een zeker "datatype". De naam verwijst naar de locatie van de gereserveerde ruimte en via het "gedeclareerde" type "weet" het programma (of eigenlijk de compiler) hoeveel Bytes het zijn en wat ze "betekenen". Afhankelijk van aanduidingen in de programmabron (source), kan de "lokatie" van de variabele in werkelijkheid het geheugen adres van de werkelijke info bevatten, zo'n variabele is een "pointer".

Typen variabelen

Elke computertaal kent een aantal "primitieve" basistypen (*). De juiste naam en implementatie is afhankelijk van de betreffende taal. Doorgaans zijn er ook samenstellingen voorgedefinieerd, de "string", een rij karakters, is b.v. bijna altijd beschikbaar, maar er zijn vaak ook mogelijkheden om "array's" van alle andere typen te realiseren of "structuren" van verschillende typen te definiëren.

NaamTypeVoorbeeld
booleanja/nee *waar/onwaar
integergeheel getal *... -2 -1 0 1 2 ... enz.
float, doublereëel getal *9.99 3.14515 12e+03
charkarakter *'0'..'9' 'A'..'Z' 'a'..'z' '#' '@' '%' enz.
stringTekenreeks"Hello World"
array[]rij, reeks{"Volvo", "BMW", "Ford"}
listlijst{1, 2, 3, 5, 7, 11, 13, 17}
setVerzamelingrood,wit,blauw
dictionaryassociative rij{"merk":"Ford","model":"Mustang","jaar":1964}
structstructuurstruct punt {int x; int y;}

4470: Objecten en objectoriëntatie

namespace ObjectPascalExample;

interface

type
  ConsoleApp = class
    class method Main
  end;

  THelloWorld = class
    method Put;
  end;

implementation

method THelloWorld.Put;
begin
  Console.WriteLine('Hello, World!');
end;

class method ConsoleApp.Main;
begin
  var HelloWorld := new THelloWorld;
  HelloWorld.Put;
end;

end.

Het concept van "objectoriëntatie" (OO) dient om programma's beter te structureren, voor de overzichtelijkheid, de onderhoudbaarheid en de herbruikbaarheid. Daartoe worden grote delen van het programma in modulen opgedeeld die men "Klasse" noemt en waarvan men meerdere Objecten (instances, exemplaren) kan creëren. Een Klasse is een soort super Type, een blauwdruk, die niet alleen data kan bevatten, maat ook alle methoden (functies) om die interne data te importeren, te manipuleren en te exporteren. Zo is een hiervan afgeleid "Object" dus ook een super Variabele die alle nuttige functionaliteit in zich draagt, zonder dat de implementatie zichtbaar is.

Programma's worden overzichtelijk doordat alle details in de klassen verborgen is, onderhoudbaar doordat aanpassingen alleen in een klasse óf in het programma zelf plaats vinden en herbruikbaar omdat de klassen natuurlijk ook in andere programma's kunnen worden gebruikt.

4480: Integrated Development Environment

Een IDE is een pakket hulpprogramma's voor het ontwikkelen van APP's. Zo'n IDE of SDK bevat een "Editor" een "Assembler", een "Compiler" (soms voor meerdere talen), diverse "Bibliotheken" met standaard functies en een bijbehorende "Linker" om een werkend programma in machinecodes te kunnen maken. De meeste computer, CPU-chip en Microcontroller leveranciers stellen gratis uitgebreide IDE's voor de eigen "hardware familie" ter beschikking met actuele versies van de relevante API's. Ook zijn er universele IDE's waaraan SDK's van verschillende chip families kunnen worden gekoppeld.

Applicatie ontwikkelen in een IDE

Na het voorontwerp (systeemanalyse, blokschema enz.), wordt alle benodigde informatie verzameld (ook van Internet) en een grafische "mock-up" gecreëerd met de doorgaans bijgeleverde tool. Moderne IDE's genereren zelfs de code die hoort bij verschillende grafische elementen zoals bv. knoppen. De programmeur hoeft alleen de voor de applicatie specifieke commando's m.b.v. een Editor toe te voegen. De resulterende "bron documenten" wordt door de Compiler (of Assembler) vertaald in "object-files" en tezamen met de geselecteerde objecten uit de bibliotheken en API's gelinkt tot een uitvoerbaar bestand.

4481: Application Programming Interface

interface HTMLDocument : Document {
           attribute  DOMString         title;
  readonly attribute  DOMString         referrer;
  readonly attribute  DOMString         domain;
  readonly attribute  DOMString         URL;
           attribute  HTMLElement       body;
  readonly attribute  HTMLCollection    images;
  readonly attribute  HTMLCollection    applets;
  readonly attribute  HTMLCollection    links;
  readonly attribute  HTMLCollection    forms;
  readonly attribute  HTMLCollection    anchors;
           attribute  DOMString         cookie;
  void     open();
  void     close();
  void     write(in DOMString text);
  void     writeln(in DOMString text);
  Element  getElementById(in DOMString elementId);
  NodeList getElementsByName(in DOMString elementName);
};

Een Application Programming Interface (API) beschrijft de toegang tot de functies van het besturingssysteem en de meegeladen (geïnstalleerde) modules: dus de aanroep-code voor functies van het besturingssysteem (OS) en de adressen van I/O-punten.

API's worden ook gebruikt om toegang tot diensten van andere APP's, eventueel op computers elders (bv. servers) te beschrijven. Omdat verschillende talen en zeker ook verschillende besturingssystemen op andere wijze routines aanroepen, is het logisch dat er een universele beschrijvingswijze moet worden gebruikt: een "Interface Description Language (IDL)" genoemd. Bij RPC en COM en SOAP is dat doorgaans ook het geval.

4482: IDE: Visual Studio en dotNET

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.TCP;
public class Client {
  public static int Main(string [] args) {
    TCPChannel chan = new TCPChannel(8086);
    ChannelServices.RegisterChannel(chan);
    Hello hello = (Hello)Activator.GetObject(
    typeof(Hello), "tcp://server:8085/Hello");
    System.Console.WriteLine(hello.helloWorld());
  }
}

Microsoft Visual Studio is een IDE van Microsoft. Het biedt een complete set ontwikkelingstools om computerprogramma's in diverse programmeertalen voor met name Windows-omgevingen (maar ook voor Linux en MacOS) te ontwikkelen. Visual Studio gebruikt software-ontwikkelingsplatformen (frameworks) van Microsoft zoals Windows API, Windows Forms, Windows Presentation Foundation, Microsoft Store en Microsoft Silverlight.

Het .NET framework is een uitgebreid raamwerk van standaard klassen voor het ontwikkelen van allerlei soorten .NET applicaties. Zo is er ASP.NET voor het ontwikkelen van webapplicaties en webdiensten. Voor veel typen van applicaties kan gebruik gemaakt worden van basisklassen voor onder andere databases, XML, tekenen, security, netwerken, strings en COM.

4483: IDE: Xcode voor macOS, iOS, iPadOS enz.

import Cocoa

class ViewController: NSViewController {
  override func viewDidLoad() {
      super.viewDidLoad()
      // Do any additional setup after loading the view.
  }

  override var representedObject: Any? {
      didSet {
      // Update the view, if already loaded.
      }
  }
}

Met de IDE "Xcode" kunnen APP's ontwikkeld worden voor veel Apple apparaten die onder de besturing van macOS, tvOS, watchOS, iOS of iPadOS draaien. Bij elke significante update van één van deze besturingssystemen, wordt ook Xcode geüpdatet om de nieuwe functionaliteit toe te voegen.

Bij het opstarten van Xcode moet na de naam van het project, het doel-apparaat worden gekozen en de versie van het OpSys, zodat de juiste API's en SDK kan worden geladen. Programmering vindt plaats in "Objective-C" of "Swift".

4484: IDE: Android Studio

for arg in "$@" ; do
  CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
  CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
  if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
    eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
  else
      eval `echo args$i`="\"$arg\""
  fi
  i=$((i+1))
done

Met de IDE "Android Studio" kan men APP's ontwikkelen voor apparaten die gebruik maken van het "Android" besturingssysteem.

4485: IDE: Arduino

 //Connections for the OLED display
#define sclk 13 //SCL  (blue wire)
#define mosi 11 //SDA  (white wire)
#define cs 10 //CS   (grey wire)
#define rst 9 //RES  (green wire)
#define dc 8 //DC   (yellow wire)
#define LOGtime 1000 //Logging time in milliseconds (1 second)
#define Minute 60000 //the period of 1 minute for calculating the CPM values
#define YELLOW 0xFFE0 
#define WHITE 0xFFFF
float Sievert = 0;
int COUNTS[10]; // array for storing the measured amounts of impulses in10 consecutive 1 second periods
int t = 0;
//the setup code that follows,will run once after "Power On" or after a RESET//
void setup() {
 Serial.begin(115200);
 display.begin();
 display.fillScreen(BLACK);
 display.print (int (BattPerc)); display.print("."); display.print (int((10*BattPerc)-(10*int(BattPerc))));display.print(" %");
 delay(3000);
 display.fillScreen(BLACK);

Met de opensource IDE van "Arduino" kan men Applicaties bouwen voor microcontrollers in Assembler of in een eenvoudig C-variant. Normaal wordt uitgegaan van de Arduino standaard hardware (een 8 bit-RISC-microcontroller van Atmel) en wordt de bijbehorende SDK geladen: bibliotheken en API (m.n. definities van pin-adressen). Het is echter ook mogelijk voor andere hardware te programmeren.

4490: Open source software

Een computer toepassing, een programma of "APP", bestaat uit verschillende onderdelen die elk "gebouwd" zijn door één of meer programmeurs. Sommige onderdelen zijn al heel oud of zo triviaal dat er geen rechten aan ontleend kunnen worden, andere zijn "eigendom" van een ontwerper (of firma) die er copyright op heeft vastgelegd. Niet alleen maakt dit nieuwe software veel duurder, maar de ontwikkelingen worden er ook door vertraagd. Door als ontwerper aan te geven dat zijn product "Open source" is, maakt deze het mogelijk niet commerciële toepassingen en aanpassingen goedkoop te realiseren.

Opensourcebeweging

De "opensourcebeweging" promoot de ontwikkeling van software waarbij alle broncode bij het product gepubliceerd wordt. Hierdoor is het voor eenieder mogelijk de code te controleren en eventueel te verbeteren.

Open Handset Alliance

De "Open Handset Alliance" is een samenwerking tussen 10-tallen bedrijven voor het ontwikkelen van standaarden voor mobiele apparaten, o.m. "Android".

4500: Omgeving: in- en uitvoer apparatuur

Elk computersysteem heeft in- en uitvoer apparatuur nodig. Zonder uitvoer zullen we nooit weten wat de resultaten van z'n inspanning zijn en zonder invoer kan er maar één situatie worden verwerkt en zal het antwoord dus ook altijd hetzelfde zijn. Natuurlijk kan de invoer vanuit een ander (computer-) proces komen, maar uiteindelijk levert invoer door mensen of natuurlijke processen (meteo b.v.) op enig moment een unieke vraag op, die "berekend" kan worden tot een resultaat dat gepresenteerd kan worden en/of een actie veroorzaakt. Dat er een toetsenbord en een beeldscherm nodig is om een brief in te voeren en een printer om die uit te printen vindt iedereen logisch, maar dat het regelen van de temperatuur van de woonkamer ook het meten van de actuele temperatuur en het starten en stoppen van de verwarmingsketel inhoudt, is men zich minder bewust. Maar ter geruststelling van de consument wordt daarom de gemeten temperatuur en het aan- of uitstaan van de ketel op meeste thermostaten tegenwoordig op een display gepresenteerd en zo'n thermostaat heeft heeft ook invoerapparatuur in de vorm van knopjes om de gewenste temperatuur in te stellen.

Waar menselijke invoer van informatie nodig is worden allerhande (cultuur afhankelijke) toetsenborden, muizen, trackpad's, aanraakschermen, camera's of microfoons gebruikt. Voor invoer van grotere hoeveelheden informatie die elders verkregen is, worden diverse media gebruikt: disks van alle soorten, fotokaartjes, USB-sticks of, steeds vaker, een netwerkverbinding. Papieren documenten en foto's kunnen gescand worden en daarna bewerkt. Kenmerkend voor alle invoer in een computer is dat de informatie binnen een computersysteem digitaal (gemaakt) is.
Voor de uitvoer naar mensen worden voornamelijk displays, luidsprekers of printers gebruikt.

4510: Data Invoerapparatuur

Data invoerapparatuur zorgt dat de computer zijn bedieningscommando's ontvangt en van gegevens wordt voorzien.

Toetsenbord

Een toetsenbord heeft de mogelijkheid letters en/of cijfers naar de computer te sturen.
Numerieke toetsenborden komen doorgaans in twee vormen voor: met de "1" linksboven (telefoon-stijl) of met de "7" linksboven (calculator-stijl).
Alfanumerieke toetsenborden zijn afgeleid van de typemachine en zijn dus ook in vele varianten beschikbaar, meestal met de cijfers en diverse functietoetsen in de bovenste rijen. In West-Europa en de Amerika's worden voornamelijk "QWERTY"- en "AZERTY"-toetsenborden gebruikt, in andere delen van de wereld diverse andere lokale versies. Behalve bij blindtypen zijn er weinig problemen met de verschillende varianten: op de toets staat aangegeven wat er uit komt. Alleen de diverse speciale karakters zijn soms moeilijk te vinden, want verborgen achter shift, ctrl, alt en/of cmd knoppen.

Muis

De muis is oorspronkelijk ontwikkeld in het XEROX PARC lab. Apple levert hem bij haar eerste "Macintosh" computer voor het invoeren van commando's in de grafische besturings-schil. Ook Microsoft gebruikt hem vanaf de eerste versies van OS/2 en Windows. Diverse varianten van de muis, zoals de "Trackball" en de "Joystick" worden alleen in de game-wereld gebruikt, maar grafici gebruiken vanaf het begin graag een "trackpad".

Trackpad (touchpad)

Met de komst van bruikbare laptops (2000) wordt onder of naast het toetsenbord tevens een trackpad geleverd. Het gebruiken van een losse muis is niet erg handig en grafische besturingssystemen laten zich niet goed bedienen met de pijltjes op het toetsenbord. Met een trackpad kan men met één vinger de muis vervangen en met meerdere vingers diverse extra functies realiseren.

4520: Computermonitor

Een computermonitor is, zoals het woord zegt, een toestel om (tussen-)resultaten van een computer te volgen.

Display

Een display geeft een toestand of waarde weer, bijvoorbeeld: of een functie "aan staat" of de temperatuur in de kamer. Doorgaans bedoelt men met "display" een eenvoudig paneel met lampjes en enkele getallen of woordjes om een toestand te presenteren.

CRT monitor

Een Cathode Ray Tube monitor bestaat voornamelijk uit een TV-beeldbuis met bijbehorende elektronica, die via analoge "RGB" signalen (0-1V) met een computer wordt verbonden.

LCD of OLED monitor

Een "Liquid Crystal Display" of een "Organic Light Emitting Diode display" van flinke afmeting kan gebruikt worden als monitor, door deze via digitale "HDMI" communicatie met een computer te verbinden.

Video projector of beamer

Ook een videoprojector kan soms gebruikt worden als computermonitor mits projector en computer beide over een RGB- of HDMI-aansluiting beschikken.

4530: Printer

Teleprinter (telex)

Een teleprinter is een elektro-mechanische typemachine met verbinding met een identiek exemplaar op flinke afstand, waarop dezelfde tekst getypt wordt. Vanaf de jaren '40 is er met het "telexnetwerk" veel ervaring opgedaan, ook met lange afstand verbindingen via modems. Het lag dus voor de hand om ook een telex te gebruiken voor het bedienen van de eerste computers. Daarmee had men dan tegelijk ook een printer in huis én een ponsband lezer/schrijver.

Matrixprinter (Naaldprinter)

Met de komst van beeldscherm monitors en aparte toetsenborden ontstond er ook een vraag naar een losse printer. De elektrische schrijfmachines zijn vervangen door printers, die de letters samenstellen door met 7 of meer pennetjes via een inktlint op papier te kloppen.

Thermische printer

Een alternatief is een thermische printer waarbij de naalden vervangen zijn door zeer kleine verwarmingselementjes. Dit type printer wordt nog steeds veel gebruikt in kassa's e.d., maar heeft het nadeel dat het gebruikte thermisch papier niet lang leesbaar blijft.

Inkjetprinter

Ook de kleine inktdruppeltjes van de "inkjetprinter" worden op het papier geschoten door verwarmingselementjes. Bij gebruik van goede inkt is de houdbaarheid van zelfs kleurenfoto's uitstekend.

Laserprinter

De laserprinter zet poedervormige inkt (toner) af op papier vanaf een statisch geladen rol; de plaatsen waarvan geen inkt mag worden afgezet wordt m.b.v. licht ontladen vóórdat de rol langs de inktbak (tonercassette) gaat.

4600: Dataopslag systemen

Bij het uitzetten (of uitvallen) van een computer zal het grootste deel van de elektronica in een toestand komen die niet meer lijkt op de toestand van vóór het uitschakelen en die komt ook nooit meer terug. Informatie die behouden moet blijven, moet daarom steeds zo snel mogelijk in speciale dataopslag systemen worden opgeborgen die wél de gegevens handhaven. Na ponskaarten, ponsbanden en magneetbanden, kwamen eind 60'er jaren de magnetische schijven in zwang: Floppy, Hard of Serieel, waarvan de capaciteit enorm gegroeid is. In veel gevallen kan een HardDisk vervangen worden door een SSD.

Opslag vindt om verschillende redenen plaats:

Op deze wijze is de data beschermd tegen het uitschakelen van de computer, maar niet tegen storingen of foutieve handelingen in het opslagsysteem zelf. Hiervoor is Back-up opslag noodzakelijk, waarbij weer gebruik kan worden gemaakt van één van de genoemde opslagmethoden maar wél op een ander systeem en bewaard op een andere plaats.

4610: Opslag op een Interne HardDisk

Nagenoeg alle computers (Desktops én Laptops) hebben een Interne Disk (of SSD). Hierop staat het besturingssysteem, de meeste programma's en de bijbehorende data.

De Disks worden vastgeschroefd in de computerkast en binnen de kast met het "moederbord" en de voeding verbonden.

4620: Opslag op een Externe HardDisk

Op vrijwel alle computers kan een externe disk worden aangesloten. Hierop kunnen grote foto- of videoverzamelingen worden bewaard die niet meer op de interne disk passen.

Ook kan een externe disk als back-up worden gebruikt en dan elders, apart van de computer, worden bewaard.

4700: Computer communicatie netwerken

Communicatie netwerken verbinden de onderdelen van een computersysteem met elkaar. Zelfs de verbinding tussen het toetsenbord en de computer kan beschouwd worden als een eenvoudig point to point netwerk. Dat is ook niet zo vreemd omdat tegenwoordig bijna alle apparaten microcomputers bevatten en vaak complexe verbindingen zoals USB gebruiken bij de gegevensoverdracht, maar meestal denkt men bij netwerken aan het Internet, het grootste "computersysteem" van de wereld, of het netwerk van een bedrijf.

We onderscheiden netwerken doorgaans naar hun afmeting als:

Dit onderscheid heeft te maken met de verschillen in techniek. Voor een LAN is het belangrijk dat de looptijd van het signaal beperkt is en de sterkte voldoende; de kosten moeten door een klein aantal gebruikers gedeeld worden. Een WAN daarentegen heeft doorgaans veel gebruikers die ook lagere verwachtingen van de prestaties hebben.

De meeste Nederlanders hebben tegenwoordig meerdere complexe computernetwerken in huis, zelfs als ze geen Wifi gebruiken. De modem is doorgaans met een kabel via het netwerk van hun internetprovider verbonden met het Internet (WAN) en via een kabel en/of Wifi verbonden met één of meer computers in huis (LAN).
Elke computer heeft minimaal een toetsenbord, een muis, een beeldscherm en vaak een printer. Al deze "randapparatuur" communiceert met "hun" computer via communicatie protocollen, die in opzet vergelijkbaar zijn met de "gewone" netwerken. Dit heeft als voordeel dat de kwaliteit van de communicatie met de apparatuur verbetert en bovendien kan de computer zelfstandig vaststellen wat de eigenschappen en instellingen zijn van de aangesloten hulpmiddelen.

4710: Geschiedenis van computer netwerken

Voor 1970 werden soms ad hoc point-to-point seriecommunicatie verbindingen gelegd tussen (mini-) computers voor het uitwisselen van gegevens, maar nog zonder veel structuur. Eind jaren '60 geeft de DoD (defensie VS) opdracht tot de aanleg van een nationaal computernetwerk, later "ARPANET", dat bestand moest zijn tegen het uitvallen van enkele verbindingen of knooppunten. De start van het latere Internet.

In 1971 introduceert de meteorologische dienst van Hawaii, een communicatie systeem "ALOHAnet" voor de gegevensverzameling op de verschillende eilanden van de archipel. Het maakt gebruik van radiozenders en ontvangers op één vaste frequentie en daarom wordt gebruik gemaakt van pakket-schakeling en botsing-oplos-technieken. Daarmee is dit de start van vele latere netwerkprotocollen zoals Ethernet (1972).

De wat grotere computers, de "mainframes", worden voorzien van meerdere beeldschermen, printers en andere in- en uitvoerstations die op flinke afstand van de centrale machine(s) staan. Ook worden diverse specialistische taken, zoals databases en back-up over meerdere machines verdeeld. IBM ontwerpt in 1974 voor de communicatie tussen deze knooppunten (nodes) een netwerkarchitectuur "SNA" voor eigen gebruik. Los hiervan lanceert Digital Equipment (DEC), op dat moment verreweg de grootste minicomputerleverancier, een vergelijkbaar systeem "DecNet" en wordt er t.b.v. Arpanet/Internet ook nog steeds aan hard- en software gebouwd (o.a. het TCP/IP protocol).

Nadat vanaf 1985 de IEEE een consensus weet te bereiken over de aanpak van de netwerkproblematiek, daalt het stof neer en beginnen de meeste netwerken op elkaar te lijken, zodat er nog maar weinig complexe routers nodig zijn. In de meeste huishoudens lost een deeltaakje in de "modem" het probleem op. De meeste lokale netwerken zijn intussen gebaseerd op (varianten van) Ethernet en/of Wifi en de interlokale en internationale netwerken gebruiken alle mogelijke hardware oplossingen, maar bijna altijd met "TCP/IP" als belangrijkste protocol.

4720: Netwerk Topologie

Naar analogie van het wiskundige begrip, noemt men de wijze waarop de nodes (knooppunten, b.v. computers) van een netwerk (bidirectioneel) onderling worden verbonden de topologie van het netwerk.
De basisvormen van elk netwerk zijn:

De busstructuur van veel lokale netwerken op basis van Ethernet wordt vaak aangelegd als een ster- of boomnetwerk met behulp van zogeheten "hubs" en "switches". Als het grote installaties betreft wordt de netwerkapparatuur in speciale "dataruimten" opgesteld. WiFi is ook een busnetwerk, maar dan uitgevoerd als een draadloze zend/ontvang inrichting op een gezamenlijke frequentie.

Thuisinstallaties zijn meestal gebaseerd op Ethernet en/of Wifi, grotere installaties en zeker het Internet, kennen doorgaans alternatieve, dus opzettelijk overbepaalde, routes.
De meest gebruikte verbinding voor computer randapparatuur, "USB" gebruikt een boomnetwerk met "hubs".

4721: Dataruimte voor de netwerkapparatuur

Bij een thuisinstallatie kan de netwerkapparatuur bij de computer of achter de TV worden gezet, maar bij een kantoor wordt dit lastig en kwetsbaar. Men gebruikt dan een aparte kast of zelfs één of meer aparte ruimten.
Komen er ook nog computers (servers) bij dan spreekt men van een datacenter. In zo'n ruimte komen alle kabels van de werkplekken en de apparatuur bijeen en worden op patchpanels (doorschakelborden) de benodigde verbindingen gelegd.

4722: Hub

Een hub is een netwerkapparaat dat alle signalen van alle netwerksegmenten door stuurt naar alle andere. Voor Ethernet worden tegenwoordig geen hubs meer gebruikt, een switch is veel veiliger, sneller en nauwelijks duurder.

Voor USB worden hubs nu uitgerust met voeding voor de aangesloten apparaten en/of diverse speciale poorten.

4723: Ethernet switch

Een switch is een apparaat dat datapakketten van één netwerk segment doorstuurt naar één ander segment. Een switch leert zelf welke zgn. “MAC-adressen” aan welke poort(en) zitten en zal daarom al snel na het opstarten geen pakketten meer sturen naar de verkeerde segmenten. Hierdoor worden de nodes minder belast met datapakketten die niet op hun segment thuishoren.

Een switch is als het ware een vereenvoudigde, maar beperkte router. De switches worden vooral gebruikt voor middelgrote ethernet installaties. Waarbij elk ethernet segment in de praktijk maar één node bevat. Hoewel in principe achter een poort van een switch een hub voor meerdere nodes kan worden geplaatst, wordt dit in de praktijk nooit gedaan en mogelijk ook niet altijd ondersteund.

4730: Netwerk Protocollen

Als mensen met elkaar communiceren zijn een aantal afspraken nodig: men spreekt een taal en enkele andere regels af om elkaar te kunnen begrijpen en als de afstand groot is, worden via diverse centrales telefoons ingezet. Bij computers die willen communiceren is het niet anders: alle deelnemers moeten dezelfde signalen gebruiken, men moet niet door elkaar praten, men moet elkaar niet zomaar onderbreken, maar men moet de anderen ook een kans geven en er worden waar nodig langeafstandsverbindingen ingezet. Dergelijke regels voor de "netwerknodes" (over een netwerk communicerende apparaten) noemt men, ook bij computercommunicatie, protocollen.

Netwerkrollen
Bij computercommunicatie onderscheid men op elk moment verschillende rollen van de verschillende nodes:

Netwerkmodellen
Er zijn meerdere organisatiemethoden mogelijk bij computernetwerken:

Documentatie

De ontwikkelaars van het "ARPANET", het latere "Internet", documenteren hun openbare protocol-afspraken vanaf 1969 in RFC's (Request for Comments). Diverse commerciële partijen (IBM, DEC, enz.) ontwerpen gelijktijdig netwerksystemen voor de eigen hardware.

Standaardisatie

Omdat in de jaren '70 het aantal verschillende netwerkoplossingen de pan uit rezen, begon men zich te realiseren dat het koppelen van apparaten van verschillende firma's m.b.v. "Gateway" computers kostbaar was en werd het OSI-comité opgericht om enige ordening te brengen.

4731: Open Systems Interconnection Model

Van de ISO kreeg een "OSI-comité" tot taak het probleem van de koppeling tussen netwerken op te lossen. In 1978 presenteert het comité het resultaat: een model met een stack (stapel) van 7 functionele lagen, dat als lijddraad dient bij het bouwen van een netwerksysteem. Door alle taken van een (nieuwe) netwerkarchitectuur in de juiste laag te plaatsen en elke taak uitsluitend te laten communiceren met de boven- en de onderliggende laag, is het mogelijk op elk niveau delen van andere architecturen in te passen en dus gemengde netwerken te realiseren.

Als een applicatie in node 1 (computer 1), wil communiceren met een applicatie in node 2, wordt een bericht in node 1 in laag 7 opgesteld en doorgegeven aan laag 6. Hier wordt waar nodig een "vertaling" doorgestuurd aan laag 5 waar optioneel een verbinding wordt geopend met laag 5 van node 2. Aangezien dit alweer niet direct kan, wordt het bericht via laag 4 in hapklare pakketten getransporteerd richting het netwerk, natuurlijk via laag 3 die de weg kent naar node 2 en dus laag 2 opdraagt het pakket via de juiste link (het "MAC-adres"), veilig de goede richting in te sturen. Laag 1 heeft daadwerkelijk de mogelijkheid de fysieke chips te bewegen de gewenste signalen te genereren.
Alle nodes op het netwerk ontvangen in laag 1 het signaal en geven het pakket door aan hun laag 2, waar allereerst wordt getest of het bericht op de juiste node is aangekomen. Zo ja gaat het door naar laag 3, voegt laag 4 de pakketten weer samen enzovoort.

Op deze wijze lijkt het voor elke laag op de stack dat er een directe verbinding is met dezelfde laag op de stack van de andere node. Eigenlijk is er dus een virtuele verbinding tussen overeenkomstige lagen en zullen uiteindelijk ook beide applicaties geen verschil merken met berichtenverkeer binnen hun computer.

Het model heeft beslist bijgedragen aan de zorgvuldigheid bij de ontwikkeling van netwerkarchitecturen, maar gemengde netwerken komen toch niet veel voor omdat er in 40 jaar nog maar weinig verschillende protocollen zijn overgebleven. Bovendien zijn de laagste 2 lagen in sterke mate in chips vastgelegd en zijn de bovenste 3 terecht gekomen in standaard implementaties van databases, filesystemen en programmeerstructuren.

4732: Routing: doorsluizen van data

Wanneer een node een pakket wil (door)zenden kiest het de snelste bekende uitgaande verbinding. Als zender en ontvanger van een netwerkcommunicatie niet in hetzelfde fysieke netwerk zitten, zoekt de network laag (3) een "router" die het pakket kan doorsturen. De router heeft een stack (stapel netwerklagen) voor elke fysieke aansluiting die beschikbaar is en zend het pakket door.
Deze stacks bevatten alleen de onderste 3 lagen omdat de router natuurlijk niet geïnteresseerd is in de inhoud van het bericht en het niet zeker is dat alle pakketten van bericht langs deze router komen. In veel gevallen is het bericht trouwens "end-to-end" gecodeerd en is het in de router helemaal niet te lezen.

4733: User Datagram Protocol

Het "User Datagram Protocol" is de beschrijving van de telegramfunctie van het Internet. Het is een invulling van laag 4 van het OSI-model. Normaliter wordt het gebruikt met IP voor laag 3 en wordt dan gezamenlijk als UDP/IP aangeduid. Het protocol wordt gebruikt bij tijdkritische communicatie als telefonie en video streaming.

UDP biedt geen garantie dat de gegevens daadwerkelijk aankomen (het protocol is "connectionless"), maar omdat er bespaard wordt op diverse checks en bijbehorende hertransmissies, is de gemiddelde doorvoersnelheid hoger dan het alternatief TCP, maar vallen er soms pakketten uit.

Verzenden van een datagram

De door een applicatie uit laag 5 aangeboden data wordt voorzien van een header (kop-info) waarin afzender, geadresseerde, berichtlengte en een optionele foutcontrole code zijn ingevuld. Deze wordt doorgegeven als bericht aan laag 3 die het geheel (UDP-header + data) als een blok data beschouwt, het voorziet van zijn eigen header en weer doorgeeft aan laag 2. Er wordt geen antwoord verwacht!

Ontvangen van een datagram

Van laag 3 ontvangen datagrammen worden met afzender, maar ontdaan van de UDP-header, aan de gezochte applicatie (laag 5-7) verstuurd. Er wordt geen antwoord terug gestuurd! Mocht er een transmissiefout blijken, dan wordt deze gemeld in de node, maar er wordt geen actie ondernomen!

4734: Transmission Control Protocol

Het "Transmission Control Protocol" is de beschrijving van de algemene overdrachtsfunctie van het Internet. Het is een invulling van laag 4 van het OSI-model. Normaliter wordt het gebruikt met IP voor laag 3 en wordt dan gezamenlijk als TCP/IP aangeduid. Het protocol wordt gebruikt bij niet tijdkritische communicatie, waarbij foutloze overdracht belangrijk is, zoals file-transfer.
TCP biedt garantie dat de gegevens daadwerkelijk aankomen maar, omdat er door de diverse controles, hertransmissies nodig kunnen zijn, is de gemiddelde doorvoersnelheid lager dan het alternatief UDP.

Openen van een verbinding

Het TCP protocol is "connection oriented": het legt eerst een verbinding met een TCP-laag in de bestemde node. Dit gebeurt via een "connectie verzoek" over het netwerk op en neer via alle lagere lagen en eventueel ook nog via meerdere routers. Pas nadat er binnen een zekere tijd een connectie-akkoord wordt ontvangen, kan de data worden verzonden.

Verzenden van de data

TCP hakt de data in pakketten. De pakketlengte wordt begrensd door de maximale buffergrootte van de onderliggende lagen. Elk pakket wordt voorzien van een volgordenummer. Van elk pakket wordt binnen een zekere tijd een ontvangstbevestiging verwacht, want anders zal het pakket opnieuw moeten worden verzonden. Het is overigens mogelijk dat de ontvangstbevestigingen niet in de verwachte volgorde binnen komen!

Ontvangen van data

Een binnenkomend connectie verzoek wordt geaccordeerd zodra er voldoende bufferruimte kan worden geopend. De pakketten die voor deze connectie worden ontvangen, worden aaneen geplakt in de aangegeven volgorde en voor elk pakket wordt een ontvangstbevestiging teruggestuurd. Tot slot wordt de gehele databuffer overgedragen aan de applicatie en kan, indien gewenst, de connectie door de afzender worden gesloten.

4735: InternetProtocol

Het Internetprotocol, kortweg "IP", is de meest gebruikte invulling van laag 3 van het OSI-model. Het is ontworpen voor de routering van datagrammen, datapakketten of netwerkcommando's binnen het Internet. Normaliter wordt het gebruikt in combinatie met UDP of TCP voor laag 4 en wordt dan gezamenlijk als UDP/IP respectievelijk TCP/IP aangeduid. De routering vindt plaats op basis van het unieke IP-adres dat elke node heeft gekregen. Elk "IP-pakket" krijgt een kop met afzender, bestemmingsadres en poort (serviceprotocol) waarmee het pakket aan de juiste verbinding (niveau 2 stack) wordt aangeboden. Het IP-protocol doet een goede poging het bericht verzonden te krijgen (best effort), maar geeft geen garanties!

Routering

Het Internet is een overbepaald netwerk, er zijn vaak meerdere routes naar de bestemming mogelijk. IP zal voor elk pakket steeds de op dat moment snelste route kiezen. Uitval of overbelasting van verbindingen maakt dat er soms pakketten wegvallen en b.v. door TCP opnieuw verzonden worden. Dit zal de route doen variëren zodat sommige losse pakketten, via kabels, glasvezels, straalzenders of satellieten, de halve wereld rondgaan voordat ze in de datastroom kunnen worden ingepast.

Als er aan een node (computer of router) meerdere netwerkverbindingen zijn gekoppeld, dan is er voor elke verbinding een stack (stapel netwerklagen) om uit te kiezen. Door diverse procedures en met behulp van DNS vergaart IP kennis over zijn omgeving zodat de verbinding in juiste richting kan worden gekozen. IP vertrouwt er op dat de IP-stack aan de andere kant van de verbinding de weg verder kent.

Als bijvoorbeeld een Eindhovense klant van een Amsterdamse provider iets wil downloaden vanuit een server in Maastricht, wordt hij via Amsterdam met Maastricht verbonden. De pakketten reizen aanvankelijk heen en weer over diverse glasvezels door het land totdat er ergens, misschien door overbelasting, de verbinding hapert: er komen geen ontvangst bevestigingen meer! Dan wordt in tabellen binnen de betrokken IP-stacks gezocht naar een alternatieve route. Als dan ook nog blijkt dat de verbinding Londen-Brussel overbelast is, wordt er gekozen voor de normaal tragere route over Tokio-Hongkong-Brussel. Het duurt misschien wat langer, maar TCP zorgt ervoor dat de data foutloos in Eindhoven aankomt.

4736: Internet Protocol Adres

De node adressen van de bestemming en van de afzender, de zogeheten IP-adressen, zijn een getal, dat uniek is in de gehele wereld. Elk adres bestaat uit een "netwerk" deel (de eerste bits) en het "node" deel (de overige bits). Er zijn grote en kleinere netwerken, door o.a. "RIPE NCC" uitgedeeld in blokken van verschillende grootte: /8 achter het netwerkadres betekent dat de eerste 8 bits vastliggen en dat de overige bits voor node-adressen binnen dat netwerk beschikbaar zijn.

IP-Adres, versie 4

De versie 4 IP-adressen zijn 32 bits (4 bytes) en worden doorgaans gepresenteerd als 4 getallen tussen 0 en 255 gescheiden door punten zoals in: "44.0.127.2". Een netwerkadres met /24 is een klein netwerk met maximaal 256 nodes (enkele gereserveerd).

Het NAT-protocol

Internetproviders (ISP) leveren alleen aan grotere organisaties blokken IP-adressen. Aangezien veel klanten aan één adres niet genoeg hebben worden routers (in het "modem") bijgeleverd die een lokaal netwerk genereren met enkele tientallen nodes met lokale IP-adressen die zo samen gebruik maken van één "echt" IP-adres. Voor deze lokale LAN's zijn de blokken 10.0.0.0/8, 172.16.0.0/12 en 192.168.0.0/16 gereserveerd; deze adressen zijn op het Internet zelf, geblokkeerd!

IP-Adres, versie 6

Omdat het al voor 2000 duidelijk was dat de "v4" adressen opraakten, is een nieuwe adresstructuur opgezet: IP-adres versie 6 heeft adressen van 128 bits (16 bytes) en is tegenwoordig in de meeste landen in gebruik. IPv6 maakt het NAT-protocol overbodig omdat het nu wel mogelijk is grote blokken adressen te leveren. De gebruikelijke 'versie 4' notatie zou nogal lang worden en daarom noteert men adressen in 8 hexadecimale getallen van 16bits elk zoals: "2001:0db8:85a3:0000:1319:8a2e:0370:7344", met diverse mogelijkheden om in te korten (bv. ':0000:'='::').

4737: Domain Name System

Aanvankelijk werd bij het ontwerp van het Internet in elke node (computer of router) een opzoektabel "../etc/hosts" opgeslagen met alle adressen in platte tekst:

127.0.0.1 localhost # deze host
163.0.2.1 nepurl.be # onzin
123.4.5.66 onzin.nl # zo maar wat
Dit was al snel onhoudbaar en werd dus aangevuld met een systeem met databases in "DNS-servers". Dit Domain Name System is een over het gehele Internet gedistribueerde database van "domeinnamen" met bijbehorend IP-adres.

Als een afzender een bericht wil sturen naar een bestemming en er is nog geen IP-adres bekend dan kan dat opgezocht worden bij een nabije DNS-server. In eerste instantie wordt gezocht naar de DNS-server die het root-domein, het laatste deel van het adres (.com, .nl, .be enz.) beheert; is het IP-adres niet direct bekend (onthouden van een eerdere zoekactie) dan wordt het betreffende IP-adres in de database gezocht of ingevuld vanuit een andere DNS. Grotere organisaties zoals de Internetproviders (ISP's) hebben hun eigen DNS en particulieren hebben in hun "modem" een mini DNS voor het eigen LAN.

Internet providers wisselen route-informatie met elkaar uit via het "BGP" (Border Gateway Protocol).

4738: Poorten: serviceprotocollen

Veel gebruikte poorten:

PnrProtocol-naam
20FTP: file transfer protocol
23Telnet: interactief gebruik van remote node
25SMTP: Simple Mail Transfer Protocol
80HTTP: Hypertext Transfer Protocol
110POP3: Post Office Protocol
143IMAP: Internet Message Access Protocol
443HTTPS: Hypertext Transfer Protocol Secured
587SMTPS: Simple Mail Transfer Protocol Secured

Een communicatiedienst op een netwerknode (IP) is toegankelijk via een serviceprotocol of poortnummer. Veel computers (nodes) bieden meerdere netwerkdiensten en kunnen "gelijktijdig" verbindingen met verschillende poorten op andere nodes onderhouden.

Voor elke aanroep van een poort wordt in de node een taak gecreëerd om deze af te werken. Na beëindiging van de taak wordt deze ordelijk opgeruimd. Normaal kan een (multitasking) node dit voor veel verbindingen "gelijktijdig" verwerken, maar bij opzettelijke overbelasting van de node, de zgn. "Dos of DDoS", kan door geheugen gebrek de node onbereikbaar worden.

4760: IEEE 802, netwerknormen

De ingenieursvereniging IEEE neemt het initiatief de "802-commissie" op te richten om de richtlijnen uit het OSI-model voor netwerkcommunicatie toe te passen op een aantal reeds bestaande netwerken. Het doel is de interoperabiliteit van de verschillende, vaak commerciële, netwerken te bevorderen.

In verschillende werkgroepen, waaraan ook de verschillende belanghebbende bedrijven deelnemen, worden standaarden uitgewerkt. In 1985 worden de eerste resultaten gepresenteerd waarna 802.1 t/m 802.5 worden aangenomen.

Veel van deze standaarden zijn niet meer in gebruik: alleen 802.3, 802.11 en 802.15.1 worden heel algemeen gebruikt in LAN's, terwijl er rond 802.15.4 en 802.15.5 veel ontwikkelingen in het kader van IoT en huis- en kantoorautomatisering zijn. De protocollen 802.4 en 802.5 boden mogelijkheden om bepaalde berichten met voorrang te behandelen, belangrijk bij alarmeren, maar zijn uiteindelijk toch door het goedkopere 802.3 opgevolgd.

4761: Ethernet over de kabel IEEE802.3

Vanaf 1973 wordt, bij onderzoek naar lokale netwerken op het Xerox Spark laboratorium, "Ethernet" ontwikkeld. Later wordt het in samenwerking met Dec en Intel gepresenteerd en in 1985 als standaard IEEE 802.3 vastgelegd.

Een "Ethernet LAN", OSI-lagen 1 en 2, is gebaseerd op een Bus-bekabeling waarop de diverse nodes (parallel) zijn aangesloten. De signalering is "Manchestercode", een seriële zelfklokkende datastroom. Met het "CSMA/CD" protocol kunnen alle nodes met alle andere, in pakketjes van max 1000 bytes, communiceren: "Carrier Sense" = "luister of de verbinding vrij is", "Multiple Access" = "alle nodes luisteren mee", "Collision Detection" = "let op botsingen met gelijktijdige pakketjes, zo ja stop en probeer later opnieuw". Elke node bepaalt zelf aan de hand van het bestemmingsadres (MAC-adres) in het pakket of het moet worden doorgegeven of gewist. Ethernet is een relatief eenvoudig protocol maar bij hoge belasting (boven 70% van de theoretische capaciteit) ontstaat filevorming. Door een random toenemende wachttijd bij hertransmissie, blijft de communicatie stabiel en ontstaan er toch geen "spookfiles" zoals in het automobielverkeer.

De oorspronkelijke uitvoering met dikke (10BASE5) of dunne (10BASE2) coaxkabels wordt nog maar zelden toegepast. Deze is vervangen door verschillende soorten "twisted pair" Cat5(e) kabel (100BASE-TX, 1000BASE-TX) of glasvezel (1000BASE-SX).

4762: WiFi, draadloos Ethernet IEEE802.11

De netwerktechniek "WiFi", Ethernet per radioverbinding, IEEE802.11, kan in veel privé en kleinzakelijke omgevingen netwerk-bekabeling vervangen. Er wordt gebruik gemaakt van zend/ontvang techniek in de 2,4 of 5,8 GHz band, zodat het bereik beperkt blijft tot een woning of een klein kantoor (circa 20 m).
Er zijn verschillende typen:

Type Banden Max snelheid
A5,8 GHz5,4 Mbps
B2,4 GHz11 Mbps
G2,4 GHz5,4 Mbps
N2,4 en 5,8 GHz150 tot 600 Mbps
AC5,8 GHz600 tot 1200 Mbps
Het A type wordt niet meer gebruikt; G, N en AC ondersteunen ook de oudere typen communicatie.

Wifi kan gebruikt worden als een point-to-point verbinding tussen 2 nodes of als een "bus-netwerk" rondom een centrale verbinding met een router, een "Basis-station" of "HotSpot". Om het bereik op te voeren is het mogelijk "repeaters" te gebruiken die het signaal doorzenden naar verder gelegen nodes of basis-stations. Dit geeft natuurlijk vertraging, maar die kan verkleind worden door bekabeling tussen de basis-stations. Op deze wijze is het bereik aanmerkelijk groter te maken waarbij, door de connectienaam (SSID) van alle basis-stations gelijk te maken, ook "roaming" mogelijk is.

4763: Bluetooth, Personal network IEEE802.15.1

Bluetooth is een radioverbinding in de 2,4GHz-band voor spraak en data op korte afstand. In 2016 werd versie 5 van de specificatie voorgesteld, ook voor "IoT-technologie"; de snelheid van BLE (Bluetooth Low Energy) werd naar 2 Mbit/s verhoogd.

4770: Universele Seriële Bus

De "Universele Seriële Bus" is ontworpen om de wirwar aan verschillende technieken om apparaten aan computers te koppelen te bestrijden. Dit doel is bereikt: moderne computers hebben vaak alleen nog USB-poorten. Het toch grote aantal verschillende USB-connectors heeft alleen te maken met ruimtegebrek op kleine computers of hulpapparaten. Wel is voor snellere gegevensoverdracht de juiste connectie en kabel nodig.

De opzet, de "architectuur" van USB, is zodanig dat meeste complexiteit van het netwerk bij de controller (de computer) ligt. Ontwerpers van hulpapparatuur kunnen een USB-aansluiting relatief eenvoudig realiseren en kabels zijn er genoeg op de markt. Bovendien kan in veel gevallen de USB-verbinding ook nog de benodigde stroom voor het hulpapparaat leveren. Ook de besturingssoftware wordt normaliter volautomatisch geladen, of is zo standaard dat deze al in het systeem aanwezig is.

4771: USB Architectuur

USB is opgezet als een master/slave netwerk in een boom topologie. Dit is niet direct duidelijk omdat de z.g.n. "root" hub altijd in de computer (de controller/master) is ingebouwd. Om een groot draagvlak voor de USB architectuur te creëren is de standaard geoptimaliseerd voor een eenvoudig ontwerp van de "slaves".

Hardware

De USB-bekabeling is t/m versie 2.0 uitgevoerd als een getwist paar koperaders voor de data plus een 0 en 5 V ader voor de voeding; vanaf versie 3.0 worden 2 extra hoge snelheid paren toegevoegd. De signalering is een bidirectionele seriële zelfklokkende NRZI datastroom.

De controller stuurt het USB-netwerk aan vanuit de "root node" en kan steeds slechts één "end-node" in een apparaat (slave) tegelijk bedienen. Binnen een "end-node" zijn weer meerdere "end-points" beschikbaar voor verschillende taken (instellingen, print-input, scan-output, enz.). De meeste computers hebben meerdere USB-poorten, maar die stammen alle af van dezelfde root node, via de ingebouwde "Root-hub". Als een computer niet voldoende USB-poorten heeft kunnen er extern extra hubs worden toegevoegd, totdat het maximum van 127 nodes is bereikt.

Snelheid

Vanaf de start in 1996 worden er regelmatig hogere snelheden geïntroduceerd, met behoud van compatibiliteit met eerdere versies. Toetsenborden en muizen zijn eenvoudige USB 1.0 apparaten, voor een externe Harddisk is minstens een USB 2.0 verbinding nodig en voor een externe SSD moet dat een Super Speed verbinding zijn.

VersieNaamKleur SnelheidIntro
USB 1.0Low Speedwit1,5 Mbit/s1996
USB 1.1Full Speedwit12 Mbit/s1998
USB 2.0High Speedzwart480 Mbit/s2001
USB 3.0Super Speedblauw5 Gbit/s2011
USB 3.1Super Speed +blauw10 Gbit/s2014
USB 3.2Super Speed +blauw?20 Gbit/s2017
USB 4.0USB4 40Gbpstype-C40 Gbit/s2019

Plug&Play Software

Bij het opstarten van een computer wordt vanaf de root node een scan uitgevoerd over alle 127 mogelijke adressen om aangesloten apparaten (nodes) te detecteren. Van elke gevonden node worden diverse parameters ingelezen en in een lijst van actieve nodes bewaard. Als de node tot een bekende klasse behoort kan deze met de bijbehorende besturingssoftware (driver) worden verbonden. Als de klasse nog onbekend is, kan m.b.v. de "fabrikant+model"-parameter de juiste software alsnog worden geladen. Ook bij het aansluiten van een USB-object op een werkende computer wordt deze procedure gevolgd. In beginsel kan een USB-object ook op elk moment worden verwijderd en dan uit de lijst gewist. Bij opslag-systemen kan echter een deel van de data nog niet zijn weggeschreven en moet het systeem (b.v. een USB-stick of harddisk) eerst ontkoppeld worden, waarbij de gebufferde data eerst "ge-flushed" (weggeschreven) wordt.

4772: Voeden of opladen van USB apparaten

USB levert standaard 5 volt voor het voeden of opladen van apparaten. Het idee is dat veel eenvoudige randapparaatjes, zoals het toetsenbord, de muis, een USB-stick of een SD-kaartlezer, vanuit de computer van stroom worden voorzien. In de versie USB 1.x is vastgelegd dat hiervoor 100 mA per poort beschikbaar is, maar bij gebruik van een USB-hub zou dat dus 100 mA voor alle hub-poorten samen betekenen. Dat is voor een paar sticks wel voldoende, maar de meeste hubs worden daarom toch geleverd met een eigen voeding.

Meer stroom

Apparaten als printers en scanners vragen natuurlijk veel meer stroom en worden dus altijd met een eigen voeding uitgerust en dat gold ook voor de eerste externe harddisks die met de komst van USB 2.0 op de markt kwamen.
Door het grote succes van voeding via USB steeg ook de vraag naar grotere stroomsterkte. Omdat het bezwaarlijk is te eisen dat alle computers altijd veel stroom kunnen leveren aan alle USB-poorten is, vanaf USB 2.0 gekozen voor een protocol waarbij een apparaat kan vragen om meer dan de 100 mA "Low-Power" van een USB-poort. Van toestellen die om "High-Power" vragen wordt wel verwacht dat ze in "Low-Power" opstarten en nooit meer gebruiken dan de toegekende hoeveelheid. Moderne harddisks kunnen soms al met USB 2.0 en vaak met 3.0 zonder eigen voeding werken.

VersieNaamConnectorStroom
USB 1.xLow-Powerwit100 mA
USB 2.0High-Powerzwart500 mA
USB 3.xLow-Power SSblauw150 mA
USB 3.0High-Power SSblauw900 mA
USB 3.2High-Power MLSSblauw1,5 A
USB 4.0USB4 40Gbpstype-C1,5 A

En zelfs meer spanning

Bij USB 3 "SuperSpeed" poorten begint Low-Power met 150 mA en kan met goede kabels in "MultiLane" verbindingen tot 1,5 A gevraagd worden. Met USB-C connectoren (o.a. bij een Thunderbolt verbinding) kan soms zelfs een laptop opgeladen worden met tot wel 5 A bij 20 V.

4773: USB Connectors

In beginsel heeft de "master", doorgaans een computer, een "USB type A" verbinding en de "slave", een apparaat b.v. een printer, een "type B" verbinding. Op de kast zit dan het chassisdeel (jack) en aan de kabel aan beide zijden een stekker (plug), aan één kant dus een type A en aan de andere een type B.
De courante versies van de USB specificatie "V1.1 & V2.0 (standaard) en V3.0 & V3.1 (superspeed) zijn in veel gevallen door elkaar te gebruiken en passen zelfs in elkaars jacks.

Kleinere varianten

Door de miniaturisering van veel apparaten zijn er mini- en microversies van de standaard connectoren ontstaan, met bijbehorende kabels en verloopkabels. Ook zijn er mini-AB en micro-AB (hermafrodiete) jacks die zowel -A als -B stekkers accepteren voor speciale toepassingen.

Hogere snelheden

Sinds 2015 verschijnen er ook "USB-C" verbindingen op de markt, die voldoende intelligentie bevatten om zelf de oriëntatie van de connectors te detecteren en de juiste signaalpaden te realiseren. Een USB-C verbinding kan, naast dikkere voedingsdraden, maximaal 4 hoge snelheid paren en 2 type USB 2.0 paren bevatten.
De aanwezigheid van een USB-C connector op een computer of een hulpapparaat is géén garantie dat alle mogelijkheden van deze connector ook beschikbaar zijn!

4780: Controller Area Network

De CAN-bus is een netwerk-oplossing voor industriële omgevingen waar veel elektrische storingen zijn te verwachten. Momenteel zijn nagenoeg alle nieuwe auto's er mee uitgerust, zodat de steeds omvangrijkere voorzieningen niet langer bijdragen aan de elektrische bedrading. Alle schakelaars, pedalen, lampen, motortjes en sloten worden, soms in groepjes, als "CAN-nodes" aangesloten op de voeding en de CAN-bus die door de gehele auto loopt (totaal maar 4 draden). De boordcomputer vraagt de stand van de schakelaars en pedalen op, beslist welke acties moeten worden uitgevoerd en zendt via de bus de commando's naar de motor, de lampen enz.. Ook wordt de CAN-bus aangesloten op de "OBD" auto diagnostiek connector.

Werking van de CAN-bus

De bus bestaat uit 2 strak getwiste draden die aan beide uiteinden afgesloten zijn door een 120 ohm weerstand om elektrische reflecties van de kabel einden te absorberen. In rust hebben beide draden dezelfde spanning (een "1"). Bij communicatie bewegen de spanningen zich in tegengestelde richting in een vorm van seriecommunicatie. Door deze wijze van communiceren straalt de bus netto geen signalen uit en hebben omgekeerd uitwendige storingen geen invloed op het verschilsignaal dat de nodes ervaren. De in de nodes aanwezige transceiver chips hebben dan ook een grote ongevoeligheid voor "common mode" signalen tot wel 42 volt.

4781: On-Board Diagnostics

In Europa is sinds 2004 een OBD-connector (formeel EOBD) in alle auto's verplicht. Hiermee kan o.m. toegang worden verkregen tot storingsmeldingen m.b.t. de emissies van het voertuig. Ook kan hiermee diverse merkspecifieke informatie en instellingen worden bekeken en/of aangepast.

4790: Mobiel datanet: 1e tot 5e generatie

Al in de 19e eeuw is de telefonie uitgevonden en hierbij werden aparte kabels naar handbediende centrales gelegd. Voor het verbinden van de centrales onderling werden soms ook (straal-)radioverbindingen gebruikt en ten behoeve van de lange-afstand telefonie werden vanaf 1925 "korte-golf" frequenties gebruikt. Nadat de Britten verbinding met India en Canada hadden weten te leggen, lukte de Nederlandse PTT hetzelfde met het toenmalige "Nederlands Indië".

Het "vaste" telefoonnetwerk

Het vaste net is oorspronkelijk geheel bedraad en met analoge signalen uitgevoerd, maar wordt wel waar nodig elektronisch versterkt. De centrales zijn intussen vanaf 1925 geleidelijk geautomatiseerd en alle signalen zijn sindsdien ook internationaal gestandaardiseerd. In 1994 zijn in Nederland de laatste PTT centrales geheel gedigitaliseerd en onderling met glasvezels verbonden.

Het "mobiele" telefoon- & datanetwerk

De in 1886 ontdekte radiogolven bleken goed toepasbaar in de radiotelefonie (1931) zoals de portofoon (1940), de mobilofoon (1949) en de marifoon (1957); een mobiele telefoon voor het grote publiek lag dus voor de hand. Deze systemen waren geheel analoog en slechts bruikbaar over korte afstand of via speciale centrales en "half-duplex" (handmatig overschakelen).

In 1980 komt in Nederland de PTT met de autotelefoon, een opvolger van de mobilofoon, bepaald nog niet draagbaar en nog steeds analoog. Wel was het systeem doorverbonden met het vaste net, "vol-duplex" en al snel populair (en overtekend): de 1e Generatie mobiele telefonie.

Door gebruik te maken van digitale technieken werd het mogelijk meer gelijktijdige gesprekken te realiseren in dezelfde bandbreedte. Bovendien werd hiermee ook data-communicatie zoals SMS, MMS en Internet mogelijk. Door steeds hogere frequentiebanden te gebruiken met steeds slimmere protocollen ontstaat de ene na de andere "Generatie" mobiele communicatie.

4800: Internet, E-mail en het Web

Eind jaren '60 geeft het "Defense Advanced Research Projects Agency" (DARPA) van de Amerikaanse defensie opdracht tot de aanleg van een nationaal robust computernetwerk genoemd "ARPANET" t.b.v. de onderzoekers van militaire technologie bij verschillende universiteiten en laboratoria.

Men gaat snel van start door allereerst het uitwisselen van de eigen ontwerp-documenten (RFC's) via de nog experimentele verbindingen te realiseren. De benodigde communicatie-protocollen (TCP/IP) worden ontworpen en ook mail en zoek-oplossingen. Bovendien wordt het uitvoeren van commando's op andere (verre) computers en het oversturen van bestanden mogelijk gemaakt.

Toen de deelnemende universiteiten de gehele functionaliteit aan medewerkers (en studenten) beschikbaar stelden werd dit de start van het Internet zoals we dat nu kennen.

Het woord "Internet" geeft goed aan wat het is: een netwerk tussen netwerken. Het verbind de computernetwerken van verschillende personen of instituten. Het woord "internet" wordt in vroege arpanet documenten gebruikt voor het interlokale deel van een netwerk als tegenstelling tot het lokale (WAN vs. LAN). Geleidelijk wordt het begrip "Internet" gebruikt voor het geheel van netwerkvoorzieningen én netwerkdiensten.

4810: Request for Comments

De ontwikkelaars van het "ARPANET", het latere "Internet", zetten in 1969 een gezamenlijk chat/documentatie-systeem op. In eerste instantie per post, maar al gauw m.b.v. E-mail. De documenten worden RFC (Request for Comments) genoemd en zijn tegenwoordig open voor discussie, maar voor uiteindelijke standaardisatie door de IETF.

RFC's zijn, om compatibiliteits problemen te voorkomen, altijd eenvoudige bestanden in "platte tekst". Ze worden beheerd in de zgn. "RFC Editor", maar kunnen op het Internet door iedereen zelf worden geraadpleegd.

Voorbeelden van RFC's:

768: UDP, User Datagram Protocol
791: IP, Internet Protocol versie 4
793: TCP, Transmission Control Protocol
959: FTP, File Transfer Protocol
1939: POP3, Post office protocol
1945: HTTP 1.0, Hypertext Transfer Protocol
2460: IPv6, Internet Protocol versie 6
2616: HTTP 1.1, Hypertext Transfer Protocol
2821: SMTP, Simple Mail Transfer Protocol

4820: Elektronische post

Elektronische post of E-mail is een computertoepassing waarbij, met een "mail-programma" (MUA; Mail User Agent), via Internet, eenvoudige tekstberichten naar de MUA van een andere gebruiker kan worden gestuurd. Aangezien de computer van de ontvanger niet aan hoeft te staan, bewaart de internetprovider van de ontvanger het bericht in diens "mailbox" totdat deze zijn mailbox leest.

Als b.v. klant Ingrid van provider aa ("Ingrid@aa.nl") een bericht wil verzenden aan klant Henk van provider bb maakt zij dat op in het mail-programma op haar PC en vult het adres in als "Henk@bb.nl" (afz. "Ingrid@aa.nl"). Als ze op de zend-knop klikt zal het programma m.b.v. SMTP het bericht over Internet uploaden naar haar provider "smtp.aa.nl" (altijd online).
Provider aa zal het adres "Henk@bb.nl" interpreteren en het gehele bericht doorsturen naar "smtp.bb.nl", die het in de "mailbox" (diskruimte) van klant "Henk" plaatst.

Als het mailprogramma van Henk actief is, zal het periodiek m.b.v. POP3 controleren of er nieuwe post in de mailbox zit en deze dan direct downloaden en indien gewenst uit de mailbox wissen. In plaats van POP3 kan ook IMAP gebruikt worden; in dat geval wordt alleen de kop-info van de berichten gedownload en blijft het bericht zelf in de mailbox.

Het meesturen van documenten en media met of in een e-mail was in het begin niet mogelijk, want het formaat stond alleen "platte tekst" toe. Om toch aan deze vraag te voldoen zijn er in 2001 afspraken gemaakt in de MIME specificatie.

4821: Simple Message Transfer Protocol

Het SMTP is een protocol waarmee 7 bits ASCII tekst kan worden verzonden naar servers die altijd online zijn. Vóór SMTP werd voor e-mail overwegend UUCP gebruikt, waarbij rekening gehouden wordt met computers die niet aan staan; "Simple" slaat dan ook op vereenvoudiging t.o.v. UUCP. Dat kan omdat nu alle particuliere e-mail gebufferd wordt door de providers.
Bij SMTP neemt de "zender" altijd het initiatief voor een verbinding: "Pushing" of "Upload". Er zijn weinig timings-restricties zodat e-mail eenvoudig getest kan worden met "TelNet" of "PuTTY".

4822: Post Office Protocol

POP3 is versie 3 van het Post Office protocol. POP3 is zo gemaakt dat de gebruikers zonder constante internetverbinding (zoals dial-up-internet) hun e-mail kunnen ophalen als ze verbonden zijn met het internet en vervolgens de berichten kunnen bekijken en bewerken zonder dat het nodig is om met het internet verbonden te blijven. Nagenoeg alle internetproviders bieden POP3 aan en de meeste ook IMAP, waarbij de berichten op de server blijven staan.

4823: Internet Message Access Protocol

In tegenstelling tot POP3 is IMAP zo gemaakt dat de gebruikers van hun e-mail de berichten kunnen bekijken en bewerken zonder dat het nodig is om eerst alles op de eigen computer te laden. De IMAP-mailbox is dus een verlengstuk van de lokale mail-opslag: een "cloud-dienst" voor e-mail. Bovendien kan men hierdoor de mail op meerdere computers lezen, archiveren en beheren.

Door de dalende kosten van diskruimte, neemt de grootte van de mailboxen enorm toe, zodat nagenoeg geen communicatietijd meer verloren gaat aan onnutte digitale reclamefolders en andere spam.

Hoe werkt email eigenlijk

Email wordt van de gebruiker naar de eigen provider gestuurd mbv “SMTP” en vandaar doorgestuurd naar de provider(s) van de ontvanger(s). Met IMAP kunnen de ontvangers de berichten met elke computer in hun mail-ruimte van de eigen provider lezen en beheren.

4824: Multipurpose Internet Mail Extensions

Multipurpose Internet Mail Extensions, "MIME", vormen een internetstandaard (zie: RFC4855 en RFC6838) voor e-mail. MIME legt de structuur en codering van e-mailberichten vast. Omdat SMTP alleen 7 bits ASCII codes transporteert en de eerste 32 codes niet gebruikt kunnen worden, zijn diverse coderings-technieken nodig om een groot aantal mediaformaten te kunnen overdragen. MIME beschrijft ook de methoden om nieuwe content-types en andere zaken te registreren.
De eerste versie van MIME werd in stappen uitgebreid tot de huidige standaard van 2001. Een belangrijk uitgangspunt van MIME is dat de bestaande mailservers niet hoeven te worden aangepast.

4830: Elektronisch zoeken

Vanaf het begin van de computertechniek was het doorzoeken van bestanden één van de belangrijkste doelen: teksten, spreadsheets, tabellen en natuurlijk databases werden doorzoekbaar gemaakt.

Met de komst van Internet lag het voor de hand de technieken ook geschikt te maken voor gebruik op afstand. De kaartenbak van de bibliotheek, productinformatie van fabrikanten en dergelijke werden voor (professionele) klanten in te zien. In 1991 wordt "Gopher" uitgebracht; een protocol en applicatie voor het opslaan en doorzoeken van grote hoeveelheden informatie.
Later datzelfde jaar wordt het "World Wide Web" voorgesteld als opvolger van Gopher, maar pas met de komst van grafische browsers in 1993, werd dit gebruikersvriendelijk en werden de eerdere zoeksystemen van een WWW-schil voorzien.
Het WWW veroorzaakte ook een grote toename van allerhande informatie op het internet, zodat er doorverwijs pagina's verschenen zoals "Startpagina.nl" in Nederland.

De sterke toename van het aantal webpagina's maakt het arbeidsintensief de groei m.b.v. startpagina's bij te houden en dus werd deze taak geautomatiseerd in de zgn. zoekmachine, die het hele WWW afzoekt naar pagina's en deze indexeert.

4831: Zoekmachines voor het web

Zoekmachines zijn web-toepassingen, waarbij een zoekterm kan worden ingegeven en het programma uit zijn indexfiles een aantal vondsten presenteert gesorteerd op afnemende score. De opbouw van de indexfiles is geautomatiseerd. Een robot-programma doorloopt alle links op een pagina en weer alle links van de gelinkte pagina's enzovoort en indexeert onderweg alle inhoud op trefwoorden. De pagina's waar meer links naar verwijzen krijgt een hogere score, zodat bij de sortering voor de presentatie van de resultaten van een zoekactie op een trefwoord, de hoogste scores bovenaan eindigen. De precieze werkwijze (het algoritme) van de zoekmachines is een zorgvuldig gekoesterd bedrijfsgeheim. Toch bieden diverse organisaties zich aan om met trucs de score van een website te verhogen.
Hier een aantal bekende zoekmachines:

4840: TELetype NETwork

Het netwerkprotocol Telnet maakt het mogelijk op afstand in te loggen op een machine en die via opdrachtregels te besturen. Het meest gebruikte op Telnet gebaseerde programma heet ook "telnet" en is samen met FTP als eerste voor Unix ontwikkeld. Telnet is niet beveiligd en wordt daarom steeds vaker door alternatieven vervangen. Kleinere netwerkapparaten zoals printers en routers zijn vaak nog via een Telnetsessie in te stellen; dus altijd het paswoord van je modem veranderen!!!.

4850: File Transfer Protocol

Het FTP is een protocol dat uitwisseling van bestanden tussen computers vergemakkelijkt. Het standaardiseert een aantal handelingen die tussen besturingssystemen vaak verschillen. FTP ontstond in 1971 en groeide zeer snel uit tot een wereldstandaard. Sinds die tijd maakt FTP het mogelijk bestanden te verzenden of te ontvangen van elke computer ter wereld, voor zover deze is aangesloten op internet, en zolang een eventuele firewall FTP-verkeer toelaat.

Het concept van een FTP is gebaseerd op het client-servermodel. De clientsoftware maakt een verbinding met de opgegeven FTP-server aan de andere kant van de 'lijn'. Deze antwoordt aan de client, waarna de client de gegevens aan de gebruiker toont. FTP-servers kunnen anonieme gebruikers toelaten of juist een geldige gebruikersnaam met wachtwoord vereisen.

4860: Website: WWW, HTTP, HTML en CSS

Een website is een verzameling van webpagina's, binnen hetzelfde domein met tekst, afbeeldingen en hyperlinks. Alle websites tesamen vormen het zogeheten "World Wide Web".

De webpagina's zijn opgeslagen op een "webserver" van een "hosting-provider". De pagina's worden aangemaakt in de HTML-taal en gecommuniceerd met behulp van het HTTP-protocol. De grafische opmaak van pagina's gebeurt op basis van de CSS stijl-instructies.

Elke webpagina heeft een eigen uniek adres op het Internet in de vorm van een URL zoals "nl.wikipedia.org/wiki/Trias" en als men hiernaar wil verwijzen wordt een "link" met het adres in het document geplaatst.

4861: Webhosting

Webhosting is een dienst die particulieren of bedrijven ruimte aanbiedt op het Internet voor het opslaan van informatie, zoals webpagina's, afbeeldingen, databases of andere inhoud die toegankelijk is via een website. Om snelheid en veiligheid te garanderen en ervoor zorg te dragen dat een webpagina of een website altijd beschikbaar is, worden deze opgeslagen bij een hostingbedrijf.

4862: HyperText Transfer Protocol

Het HTTP (RFC 1945, 2616 en 7540) is het protocol voor de communicatie tussen een een webbrowser of een app en een webserver. De webserver kan zich overal op het WWW bevinden, eventueel in het lokale LAN (een Intranet) of zelfs op de eigen computer (zoals een handleiding). Bij gebruik van webpagina's op de eigen computer is, bij pure HTML, overigens geen webserver nodig en ook geen HTTP!

Voorbeeld Request:

GET / HTTP/1.1
Host: sizoo.info
Connection: close
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 10.0; nl;) KHTML/Gecko Firefox/64.0
Accept: text/html,text/plain,image/png,image/gif
Accept-Charset: utf-8

Voorbeeld Response:

HTTP/1.1 200 OK
Date: Thu, 08 Apr 2018 18:24:33 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4
X-Powered-By: PHP/4.3.4
Content-Language: nl
Content-Type: text/html; charset=utf-8
X-Cache: ...
Connection: close
Content-Type: text/html
Content-Length: 49

In HTTP is vastgelegd welke requests een browser aan een server kan stellen en welke responses een webserver daarop kan teruggeven. Elke vraag bevat een URL die naar een webcomponent, een statisch object zoals een webpagina of plaatje verwijst.
Een HTTP-request bestaat uit de requestsoort, de URL, de headervelden en eventueel een inhoud.
HTTP-requestmethoden: GET, HEAD, POST...
HTTP-headervelden: Content-Length, Location, Server...
Een HTTP-response bestaat uit een resultaatcode, headervelden en een body. De resultaatcode bestaat uit minimaal drie cijfers. Het eerste cijfer is het belangrijkste:
1xx: een informele boodschap
2xx: succes boodschap
3xx: redirect
4xx: fout van browser
5xx: fout van server
6xx: proxifout

Een variant van het HTTP is HTTPS, hierbij wordt tussen het HTTP en TCP een extra beveiligingslaag TLS ingevoegd (aan beide zijden). Hiermee wordt het onderweg illegaal onderscheppen van berichten voorkomen. Ter beveiliging weigeren browsers soms een gewone HTTP-requests te zenden zonder uitdrukkelijke toestemming van de gebruiker.

4863: HyperText Markup Language

HTML (v2: RFC 1866) is een op SGML gebaseerde opmaaktaal voor de specificatie van documenten. De oorspronkelijke toepassing was de documentatie van CERN toegankelijker te maken door links naar andere documenten mogelijk te maken mbv. "hypertext". Maar CERN is een internationale organisatie, veel documenten bevinden zich buiten Genève, zodat HTTP ontworpen werd voor het downloaden ervan. Dit samen werd de voorloper van het "World Wide Web".

HTML kent een groot aantal zogeheten tag's, genoteerd als een naam of afkorting tussen <> haakjes. Sommige tag's hebben een directe betekenis zoals "≺br≻eak" (nieuwe regel), maar de meeste geven betekenis aan een stuk tekst zoals "≺p≻dit is een paragraaf≺/p≻" en die daarom ook afgesloten moet worden met dezelfde tag voorafgegaan door een / (einde deze tag). De tag's geven vooral ook structuur aan het document, op de zelfde wijze als in met een tekstverwerker aangemaakte documenten.

Elk HTML-document heeft een vast formaat, het moet tenslotte door computers "gelezen" kunnen worden. Na een bestandstype kenmerk "≺!DOCTYPE html≻", komt het eigenlijke document tussen ≺html≻ en ≺/html≻. Binnen dit html-blok zijn er altijd 2 vaste blokken: ≺head≻ en ≺body≻.
Binnen het head-blok is tenminste een ≺title≻ en verder optioneel allerlei velden zoals trefwoorden, beschrijvingen, lettercodes en veel meer metadata.
De pagina zelf komt vanzelfsprekend binnen het body-blok in de vorm van ≺h≻eaders, ≺p≻aragrafen, ≺a≻nchor's (links), ≺img≻'s (plaatjes) en ≺div≻'s (blokken voor pagina-indeling).
Oorspronkelijk bevatte HTML ook diverse opmaakelementen, maar die zijn vervangen door CSS-stijlen.

Voor veel detailinformatie zie: w3schools.

4864: Cascading Style Sheets

De CSS zijn verzamelingen opmaak stijl-instructies die nagenoeg overal in HTML-documenten kunnen voorkomen. Met "Cascading" wordt in dit verband bedoeld dat, als een stijlelement van een object of blok wordt aangepast, dit alleen binnen dit blok van kracht is en daarbuiten weer de vorige waarde zal aannemen. Alle stijlelementen van alle objecten hebben "zonder tegenbericht" een door de browser gegeven initiële waarde bijvoorbeeld ≺body {color:black; background-color:white}≻, die bij de meeste webpagina's al in het head-blok zal worden aangepast voor de gehele pagina.

Voor veel websites is het handig alle algemene stijl-instructies in een apart bestand te plaatsen waaraan alle pagina's in het head-blok refereren met: ≺link rel='stylesheet' type='text/css' href='mijnstijl.css'≻. Evenzogoed kan de opmaker besluiten één bepaalde kop rood te maken binnen zijn tag met: ≺h2 style='color:red'≻.

Voor de syntaxis van CSS en veel detailinformatie zie: w3schools.

4865: Scripts: JavaScript, Python en PHP

Scripts zijn kleine programma's geschreven in een scripttaal zoals JavaScript, Python of PHP. Scripts worden niet gecompileerd naar machinetaal, maar direct geïnterpreteerd. In webpagina's worden scripts gebruikt om pagina's dynamischer en interactiever te maken (HTML zelf is geheel statisch).

Scripts in webpagina's kunnen op de webserver worden uitgevoerd "aan server zijde" (meestal PHP, ASP of Python) of door de browser "aan cliënt zijde" (meestal JavaScript).

PHP wordt in deze website onder meer gebruikt om een pagina te kiezen: "Sz.php?pg=4865". Op de server wordt begrepen dat "Sz.php" mede door PHP moet worden geïnterpreteerd en PHP ziet dat er een parameter "pg" is die de HTML-informatie specificeert.

Een website-ontwerper kan natuurlijk met "links" naar varianten van zijn pagina verwijzen, maar het is aantrekkelijker om geen nieuwe pagina te hoeven laden als er alleen iets moet worden aangepast of toegevoegd (zie JavaScript demo rechts). Ook bij het gebruik van formulieren is het mogelijk de ingevulde info met JavaScript te controleren voordat het wordt opgestuurd.

Voor de syntaxis van relevante scripttalen zie: w3schools.

4900: Veiligheid en Privacy

We willen allemaal bij het werken met ICT producten zo goed mogelijke veiligheid en privacy, zonder dat het hindert bij het gebruik en het betaalbaar blijft. Natuurlijk draait dit altijd uit op een compromis.

Voor toegangscontrole zijn er digitale "pasjes", speciale kaartjes of biometrische "testers" voor vingerafdruk-, iris- of gezichtsherkenning. Deze zijn vaak niet betaalbaar en/of onbetrouwbaar en interlokaal moeilijk te beheren. Dus kiest men dan vaak weer voor het aloude "paswoord".

Ook zogenaamd beveiligde documenten worden vaak heel eenvoudig "gekraakt". Onder andere Word- en PDF-documenten kunnen van een paswoord worden voorzien en zijn dan wel lastig te ontcijferen, maar beslist niet veilig.

Ook internetcommunicatie is bepaald niet altijd veilig te noemen. Het probleem is eigenlijk dat het Internet helemaal niet ontworpen is voor de huidige toepassingen en daarom zijn de verschillende protocollen in eenvoudige Engelse zinnetjes gerealiseerd. Pas in een later stadium zijn er beveiligingsoplossingen toegevoegd.

4910: Paswoord

Om zich in te dekken tegen de aansprakelijkheid bij beveiliging- en privacylekken, eisen veel internetondernemers dat de klant zelf een gebruikersnaam of een e-mail adres (immers altijd uniek) en een specifiek bijbehorend, liefs regelmatig wisselend, paswoord kiest. Er worden dan wat eisen gesteld aan het aantal en soort karakters; maar dit is slechts schijnveiligheid, de gemiddelde Nederlander heeft wellicht 30 van dergelijke "accounts" en komt niet verder dan een huisdier met een volgnummer als zijn paswoord (hiervoor werd in de 70'er jaren al gewaarschuwd). Of hij/zij is het zat zoveel verschillende paswoorden te onthouden (of verstoppen), geeft het op en gebruikt maar één paswoord voor alles. De zogeheten "paswoord managers" lijken een oplossing, maar dan mag daarmee ook niets misgaan!

Een extra beveiliging op met paswoord beveiligde "accounts" bij kwetsbare situaties is de "Two-Factor Authentication" (TFA). Hierbij worden twee verschillende factoren gecombineerd, bijvoorbeeld een wachtwoord en een eenmalig verzonden code via e-mail of SMS. Het "DigID" van de Rijksoverheid is ook een dergelijk systeem.

Regelmatig horen we bij het nieuws dat er weer een grote "professionele organisatie" de paswoorden in het klantenbestand onversleuteld heeft opgeslagen en dat malafide "hackers" ze te koop aanbieden. Gebruikers van dergelijke diensten die hetzelfde paswoord gebruiken voor meerdere (of alle) accounts, kunnen er op rekenen dat er getracht zal worden het verkregen paswoord op andere voor de hand liggende diensten te testen.

4911: Paswoordmanager

Een paswoord manager beheert de paswoorden van een gebruiker voor een aantal accounts en logt in bij bekende websites. De applicatie nestelt zich in een browser, herkent een website en het inlogformulier en vult dan de inlognaam en het paswoord in, zodat met 1 klik ingelogd kan worden.

Als paswoorden goed versleuteld worden opgeslagen in een paswoordmanager, is het eenvoudig mogelijk veel verschillende sterke paswoorden te gebruiken voor alle accounts. Er is echter één probleem, de toegang tot het paswoordbestand moet altijd beschikbaar en zéér goed beveiligd zijn. En misschien nog belangrijker: het paswoord van de manager zelf moet zéér sterk zijn en dat mag je nooit vergeten, want dan kan niemand je helpen.

4920: Digitale Pas

Digitale pasjes worden gebruikt om toegang te krijgen tot bedrijfsruimten, hotelkamers, cadeausystemen, korting op diensten enzovoort. De meeste digitale pasjes zijn van het "creditkaartformaat". Er zijn wel computers en terminals waar gebruikers zich aanmelden met een pasje, maar behalve bij kassa's wordt het niet vaak gebruikt.

De bekendste digitale pas is de bankpas (Pinpas), maar ook de "Simkaart" (met chip) en de zgn. "Bonuspas" van Albert Heijn (met barcode) kunnen als voorbeeld worden gezien. Een barcode (streepjescode) is niet veilig genoeg voor een bankpas en daarom werden ze allereerst uitgebracht met een magnetische strip waarvan het pasnummer kon worden afgelezen en moet volgens een bepaald protocol bij financiële transacties ook een pincode ingegeven worden. Een verbetering hierop is een speciale chip op de kaart die de veiligheid verder verhoogt. Een latere toevoeging is een ingegoten NFC/RFID-chip met antenne om ook draadloze transacties te kunnen verrichten.

De creditcard is technisch een variant van een bankpas waarbij andere voorwaarden met de achterliggende (internationale) financiële partijen gelden. Veel smartphones hebben tegenwoordig ook de NFC-functie aan boord zodat in veel landen ook met de telefoon betaald kan worden.

4921: Barcode, de streepjescode

Een barcode of "streepjescode" is een methode om objecten van een eenvoudig merkteken te voorzien, dat door apparatuur kan worden uitgelezen (gescand). Doorgaans betreft het een getal zoals een productnummer, een klantnummer of een bagagenummer. Bijna elk type toepassing heeft zijn eigen codering.

Er zijn ook 2-dimensionale scancodes, zoals de QR-code, die ook letters kunnen weergeven en waarmee b.v. een URL (webadres) in een boek of op een affiche kan worden gedrukt voor verwijzing naar extra informatie.

Smartphones kunnen met hun camera allerlei scancodes lezen, hetgeen voor veel toepassingen kan worden gebruikt. Maar dat is tegelijk ook het risico! Het kan ook eenvoudig van vrij grote afstand worden "afgeluisterd".

4922: Near-field Communication & Identificatie

Met NFC kunnen over korte afstand (max 10 cm) gegevens (en energie) worden uitgewisseld tussen twee chips met elk een kleine geprinte antenne.

De voorloper van NFC, de RFID (Radio-Frequency ID), zal een code zenden als er een RF-veld ontvangen wordt. Uit het veld wordt ook de energie onttrokken voor de voeding. Een RFID-toepassing, zoals een toegangspas, heeft dus aan de paszijde geen batterij nodig.

Complexere NFC-toepassingen, zoals de bankpas, voeren uitgebreide tweerichting communicatie zonder dat de pas een eigen voeding nodig heeft.

4930: Biometrische beveiliging

Mensen herkennen elkaar uit diverse details. Maar kenmerken als haarkleur, bril of de lichaamslengte zoals op het paspoort vermeld, zijn niet betrouwbaar genoeg om zomaar toegang tot informatiesystemen te geven.

Het menselijk lichaam is zeer uniek, zelfs eeneiige tweelingen zijn in de details verschillend. Met veel nauwkeurige metingen van bepaalde detailkenmerken kan toch een digitaal profiel worden vastgelegd dat voldoende specifiek is, zoals:

Zo zijn er nog andere methoden te bedenken om een mens te herkennen en ergens toegang toe te verlenen.

4931: Vingertop

Vanaf de 19e eeuw worden vingerafdrukken gebruikt voor het identificeren van personen. Tegenwoordig worden digitale foto's van vingerafdrukken vergeleken met info in een database om eenduidig de identiteit van een (bekend) persoon vast te stellen. Ook het patroon van een handpalm kan zo worden vergeleken.

4932: Gezicht

Mensen herkennen elkaar vooral van het gezicht. Met een paar digitale foto's van een gezicht kan een computer dit ook. De (relatieve) afstand tussen verschillende punten op het gezicht kan vergeleken worden met de info in een database waarmee met vrij grote zekerheid de identiteit kan worden vastgesteld.

4933: Iris

De iris van een menselijk oog is zeer uniek en kan dus gebruikt worden om iemand te identificeren. Hiervoor zijn zogeheten "irisscanners" in de markt. Deze fotograferen de iris digitaal en vergelijken het patroon met de info in een database waarmee met vrij grote zekerheid de identiteit kan worden vastgesteld.

4940: Encryptie van documenten

Het is mogelijk een document te coderen (beveiligen) door het te verhaspelen op een alleen door de ontvanger bekende wijze. Daartoe moet een "sleutel" (code, wachtwoord) aan beide zijden bekend zijn. In veel gevallen is de sleutel een eenvoudig paswoord dat mondeling of telefonisch is uitgewisseld.

Als verzender en ontvanger geen gelegenheid hebben veilig een sleutel uit te wisselen, als men elkaar helemaal niet kent bijvoorbeeld, is het toch mogelijk een document beveiligd uit te wisselen. De verzender codeert dan met een door de ontvanger openbaar gepubliceerde sleutel en de ontvanger gebruikt een bijbehorende geheime "ontvang-sleutel" voor het decoderen. Alleen de bedoelde ontvanger kan het document dan ontcijferen.

4950: Veilige Communicatie

Voor veilige communicatie op het Internet is het van belang dat op de kabels en de nodes waarlangs de informatie loopt de "geheime" data niet gelezen kan worden.

Sinds 1994 met SSL (Secure Sockets Layer) en na gebleken zwakheden hierin, nu met TLS (Transport Layer Security), kan de communicatie tussen computers "End-to-End" worden beveiligd.