{"id":301,"date":"2015-01-18T12:36:53","date_gmt":"2015-01-18T12:36:53","guid":{"rendered":"http:\/\/wil.straatman.com\/?page_id=301"},"modified":"2015-01-31T20:48:59","modified_gmt":"2015-01-31T20:48:59","slug":"software","status":"publish","type":"page","link":"http:\/\/wil.straatman.com\/?page_id=301","title":{"rendered":"Software"},"content":{"rendered":"<p>&nbsp;<\/p>\n<h4><span style=\"color: #333333;\">Software of programmatuur is een gangbaar woord voor computerprogramma&#8217;s. Naast toepassingen voor de mainframes, pc&#8217;s en spelcomputers, bevatten ook apparaten als televisies, telefoons, telefooncentrales, auto&#8217;s, machines sinds de jaren zeventig van de vorige eeuw steeds vaker software.<\/span><\/h4>\n<h4><span style=\"color: #333333;\">Software kan worden ingedeeld naar toepassingsgebied of gebruikersgroep.<\/span><\/h4>\n<h4><span style=\"color: #333333;\">Het begrip &#8220;software&#8221; komt uit het Engels, en is de tegenhanger van hardware (apparatuur), waarmee alle &#8220;tastbare&#8221; apparatuur wordt bedoeld.<\/span><\/h4>\n<h4><span style=\"color: #333333;\">Het onderscheid tussen hardware en software bestond al voordat de computer bestond, al worden de termen in die zin niet vaak gebruikt. Een radiotoestel is hardware, het radioprogramma is software. Een grammofoon is hardware, de plaat is software. Dit illustreert dat de hardware onbruikbaar is zonder software.<\/span><\/h4>\n<h4><strong><span style=\"color: #333333;\">Systeemsoftware<\/span><\/strong><\/h4>\n<h4><span style=\"color: #333333;\">Systeemsoftware wordt ook wel een besturingssysteem genoemd, met als bekende voorbeelden Windows, Macintosh en Unix. Dit zijn alle programma&#8217;s die nodig zijn voor het functioneren van het systeem, bijvoorbeeld programma&#8217;s om bestanden te kopi\u00ebren (<i>cp<\/i> of <i>copy<\/i>), te verwijderen (<i>rm<\/i> of <i>del<\/i>), mappen aan te maken en de inhoud van een bestandssysteem zichtbaar te maken (<i>ls<\/i> of <i>dir<\/i>). Typische onderdelen zijn BIOS, <i>device drivers<\/i>, <i>interrupt service routines<\/i>. Deze laag wordt ook wel <i>low level software<\/i> genoemd.<\/span><\/h4>\n<ol>\n<li>\n<h4><span style=\"color: #333333;\">De kernel: deze implementeert alle diensten die voor het hele systeem beschikbaar (moeten) zijn zoals <i>multitasking<\/i>, geheugenbeheer en semaforen.<\/span><\/h4>\n<\/li>\n<li>\n<h4><span style=\"color: #333333;\">Programmabibliotheken met specifieke functionaliteit, zoals netwerkabstracties (bv. TCP\/IP), implementaties van specifieke bestandssystemen, grafische routines en basisbibliotheken voor specifieke computertalen (libc, bijvoorbeeld).<\/span><\/h4>\n<\/li>\n<li>\n<h4><span style=\"color: #333333;\">Daemons, processen die weliswaar niet bij de kernel horen, maar wel noodzakelijk zijn voor het functioneren van het systeem zoals programmamanagers, printermanagers, windowmanagers en cronachtige programma&#8217;s. Daemons worden (in de regel) door het systeem zelf gestart en zijn voortdurend actief.<\/span><\/h4>\n<\/li>\n<\/ol>\n<ul>\n<li>\n<h4><span style=\"color: #333333;\">Netwerkprogrammatuur (bijvoorbeeld voor internet), FTP, NNTP- en IRC-servers en -cli\u00ebnten.<\/span><\/h4>\n<\/li>\n<li>\n<h4><span style=\"color: #333333;\">Om te kunnen werken hebben computers ten minste <i>firmware<\/i> nodig, bijvoorbeeld het BIOS van een pc, maar in de regel bevat een computer een grote verscheidenheid aan software. De uitzondering hierop is een embedded system, dat over het algemeen uitsluitend op <i>firmware<\/i> berust.<\/span><\/h4>\n<\/li>\n<\/ul>\n<h4><strong><span id=\"Hardwareplatform\" class=\"mw-headline\" style=\"color: #333333;\">Hardwareplatform<\/span><\/strong><\/h4>\n<h4><span style=\"color: #333333;\">De ontwikkeling van software is naarmate men dichter bij de hardware staat, nauwer verweven met het <i>platform<\/i> waarop men werkt. Op het allerlaagste niveau dient men op de hoogte te zijn van alle relevante details, terwijl het op het hoogste niveau vaak mogelijk is software zo te schrijven dat zij op een groot aantal verschillende platforms kan worden gebruikt, door handig gebruik te maken van verschillende abstractielagen. Goede voorbeelden hiervan zijn Qt van Nokia en de POSIX-standaard.<\/span><\/h4>\n<h4><strong><span id=\"Realtimesoftware\" class=\"mw-headline\" style=\"color: #333333;\">Realtimesoftware<\/span><\/strong><\/h4>\n<h4><span style=\"color: #333333;\">Realtimesoftware geldt als een speciaal geval, waarin niet alleen het uiteindelijke resultaat, maar ook scherpe tijdsrestricties gelden. Over het algemeen wordt een onderscheid gemaakt tussen<\/span><\/h4>\n<ul>\n<li>\n<h4><span style=\"color: #333333;\"><i>Soft real time<\/i>, waarbij alleen een maximumresponstijd geldt, die afhankelijk is van de eisen en<\/span><\/h4>\n<\/li>\n<li>\n<h4><span style=\"color: #333333;\"><i>Hard real time<\/i>, waarbij het systeem &#8216;deterministisch&#8217; moet zijn, d.i. O(n) = c.<\/span><\/h4>\n<\/li>\n<\/ul>\n<h4><span style=\"color: #333333;\">Hoewel vele realtimetoepassingen eveneens <i>embedded<\/i> zijn, zijn de twee begrippen geenszins equivalent.<\/span><\/h4>\n<h4><span id=\"Ingebouwde_software\" class=\"mw-headline\" style=\"color: #333333;\">Ingebouwde software<\/span><\/h4>\n<h4><span style=\"color: #333333;\">Embedded software is software die is ingebouwd in apparaten, zoals auto&#8217;s, (antiblokkeersysteem) thermostaten, televisies, camera&#8217;s, mobiele telefoons, <i>Active Suspension<\/i>, navigatiesystemen, dataloggers, gps-cli\u00ebnten, remote sensors, satellieten.<\/span><\/h4>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Software of programmatuur is een gangbaar woord voor computerprogramma&#8217;s. Naast toepassingen voor de mainframes, pc&#8217;s en spelcomputers, bevatten ook apparaten als televisies, telefoons, telefooncentrales, auto&#8217;s, machines sinds de jaren zeventig van de vorige eeuw steeds vaker software. Software kan worden ingedeeld naar toepassingsgebied of gebruikersgroep. Het begrip &#8220;software&#8221; komt uit het Engels, en is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":300,"menu_order":11,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-301","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/wil.straatman.com\/index.php?rest_route=\/wp\/v2\/pages\/301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/wil.straatman.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/wil.straatman.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/wil.straatman.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/wil.straatman.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=301"}],"version-history":[{"count":7,"href":"http:\/\/wil.straatman.com\/index.php?rest_route=\/wp\/v2\/pages\/301\/revisions"}],"predecessor-version":[{"id":631,"href":"http:\/\/wil.straatman.com\/index.php?rest_route=\/wp\/v2\/pages\/301\/revisions\/631"}],"up":[{"embeddable":true,"href":"http:\/\/wil.straatman.com\/index.php?rest_route=\/wp\/v2\/pages\/300"}],"wp:attachment":[{"href":"http:\/\/wil.straatman.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}