Utilisateur:Silex6/Bac à sable

Bac à sable modifier

Amiga et AmigaOS modifier

[1]

Contexte historique modifier

Dans les années 80, le marché - naissant - des micro-ordinateurs était essentiellement divisé en deux catégories: d'un coté les machines professionnelles, comme celles fabriquées par IBM, qui offraient une ennuyeuse interface en ligne de commande avec un curseur vert sur fond noir. De l'autre les machines familiales, comme les Atari 2600 et le Commodore 64, plus sympathiques, et appréciées pour les jeux vidéo[1]. Seul le Macintosh, sorti en 1984, sortait du lot en offrant une interface graphique, qui rendait cet ordinateur intuitif et élégant tout en permettant son utilisation pour des activités professionnelles telles que la publication assistée par ordinateur[1].

Amiga 1000 modifier

L'Amiga 1000, sorti en 1985, offraient à la fois une interface graphique similaire au Macintosh, et aussi une interface en ligne de commande[1]. Tous les deux ordinateurs utilisaient le processeur Motorola 68000, cependant l'Amiga était équipé d'un chipset sophistiqué qui libérait le processeur de tâches compliquées de génération d'image et de sons[1]. Son interface graphique était en 4096 couleurs, tandis que le Macintosh était en noir et blanc[1].

En 1985, le magazine Compute! décrivant l'Amiga comme « la machine pivot qui brisera le fossé qui divise actuellement en deux le marché des micro-ordinateurs » et le qualifiait de « premier vrai ordinateur personnel »[1]. L'Amiga, fabriqué par un constructeur réputé comme fabricant de jouets, a eu cependant beaucoup de peine à se faire une place dans le milieu professionnel[1].

Les capacités de l'Amiga se résumaient à un seul mot: multimédia[1]. Cependant ce mot n'était pas encore répandu en 1985: il est apparu en 1990 pour désigner des ordinateurs personnels au capacités graphiques et audio étendues, souvent accompagnés d'un lecteur de CD-ROM, et le mot est devenu un des buzzword de la décénie[1].

Selon Commodore, en 1990, le multimédia est « une manière d'intégrer les technologies informatiques, où une seule plateforme permet à l'utilisateur de manipuler aussi bien des textes que des images et du son »[1].

Le prototype modifier

Le design de l'Amiga démarre en 1982, avec à sa tête l'architecte matériel Jay Miner, qui est aussi l'architecte de la console Atari 2600[1]. Selon son habitude, il donne à ces projets des noms de fille, la machine est alors appelée Lorraine et ses principales puces Denise, Paula et Agnus. La puce Denise s'occupe de l'affichage, Paula du son, et Agnus coordonnée l'activité des deux autres puces ainsi que du processeur[1].

effondrement du marché des consoles

En 1983, alors que le projet est en cours, le marché des consoles de jeu s'effondre, saturé de consoles incompatibles entre elles, et saturé de jeux sans originalité. Jay Miner insiste sur le fait que le projet Lorraine est viable aussi bien comme console de jeu que comme ordinateur personnel. La jeune société Amiga Inc met sur le marché l'année suivante le fruit du projet Lorraine sous la forme d'un ordinateur personnel[1].

Le système d'exploitation de l'Amiga a été tout d'abord développé sur un ordinateur SAGE IV. Cet ordinateur est équipé d'un processeur Motorola 68000, et d'un système d'exploitation Unix - qui a également servi de source d'inspiration pour Amiga OS. Le logiciel compilé sur le SAGE IV est ensuite copié sur le Lorraine via un câble[1].

La startup Amiga Inc, en manque de liquidités, fait tout son possible pour pouvoir présenter son prototype au Consumer Electronic Show de 1984[1]. Quelques jours avant le début de l'expo, le Lorraine est tas de circuits imprimés vaguement interconnectés qui plante continuellement[1]. Les ingénieurs ont des pièces de réserve est ont appris à les remplacer au vol, durant la manifestation. Les ingénieurs logiciels travaillent jour et nuit, et les derniers préparatifs ont été fait sur place, durant la nuit - blanche - qui précède l'ouverture de la manifestation[1].

rachat par Commodore modifier

Le prototype présenté lors du Consumer Electronic Show dépasse les espérances, deux des quatres géants du secteur informatique sont intéressées au rachat de la startup Amiga Inc: Commodore et Atari. Atari investit beaucoup d'argent pour le rachat, puis se retrouve en difficulté suite à l'effondrement du marché des jeux vidéo[1]. C'est alors Commodore qui, à la dernière minute, rachète la startup. Atari intente une action en justice contre son rival, mais l'affaire est classée sans suite[1].

AmigaOS modifier

Avec l'évolution technologique, le matériel de l'Amiga n'est plus si avancé, et le fort couplage du matériel est un inconvenient. En 2004, 20 ans après sa sortie, des utilisateurs continuent de se servir des Amiga en raison de son élegant système d'exploitation[1]. La version 4.0, lancée en 2004 par Hyperion Entertainment ne supporte plus le chipset initial de l'Amiga, et est prévu pour fonctionner sur des processeurs PowerPC[1]. AROS et MorphOS sont deux systèmes d'exploitation clône d'AmigaOS, fonctionnant sur du matériel récent[1].

Dès ces débuts, en 1984, une des qualités les plus mise en avant des Amiga 1000, outre leur matériel hors du commun, était leur aisance à exécuter plusieurs applications simultanément. Or cette capacité est apportée par son système d'exploitation[1].

Contexte historique modifier

Alors que Jay Miner est cité à l'unanimité comme étant le père du hardware de l'Amiga, il n'existe pas de père unanimement reconnu du software. Les noms souvent cités sont Bob Pariseau - le team lead, et Carl Sassenrath - le dévelopeur[1]. Entre 1984 et 2011 l'AmigaOS a subi trois re-écritures majeures, mais sa structure générale n'a pas changé[1].

Dans les années 80 les systèmes d'exploitation pour micro ordinateur étaient un triangle de un: un seul utilisateur exécute un seul programme sur un seul ordinateur. AmigaOS, dès le début, apporte une interface graphique, et le multitâche préemptif qui permet d'exécuter simultanément autant de programmes que la mémoire et le processeur permettent[1].

structure modifier

kernel modifier

AmigaOS est un des premiers systèmes d'exploitation en construction microkernel[1]. Exec est le kernel d'AmigaOS, qui apporte les services élémentaires de manipulation des processus et de la mémoire. D'autres services du système d'exploitation sont apportés par des processus et des bibliothèques[1].

Dans AmigaOS chaque programme en cours d'exécution est une tâche. Les tâches sont exécutées à tour de rôle en fonction de priorités - les tâches prioritaires en premier[1]. Une tâche peut être un logiciel applicatif ou un programme système: dans AmigaOS pour chaque disque dur il y a une tâche qui s'occupe des lectures et écritures. Les différentes tâches s'échangent des messages, et, en condition ordinaire, la grande majorité des tâches sont en attente de message ou d'événement[1]. Les priorités sont comprises entre -127 et 127. La priorité usuelle des applications est de zéro; les programmes système ont une priorité de 5, 10 ou 15, et une application gourmande en calcul, comme un moteur de rendu 3D, aura une priorité négative[1].

mémoire modifier

Dans la mémoire des Amiga, une seule adresse contient toujours la même information. La mémoire est réservée par Exec en fonction des besoins du système d'exploitation et des applications[1]. Lorsqu'un programme démarre, Exec réserve la mémoire pour le contenir, puis libère cette mémoire lorsque le programme a terminé. Le programme peut également réserver de la mémoire pour ses besoins, en le demandant à Exec[1]. Il est responsable de libérer la mémoire avant de s'arrêter[1].

bibliothèques modifier

AmigaOS contient une pile de bibliothèques logicielles avec lequelles les programmes peuvent demander des services au système d'exploitation - y compris à Exec: graphics.library offre des fonctions qui permettent d'afficher des images et des animations. Au dessus se trouve intuition.library, qui permet de construire des interfaces graphiques et se sert de graphics.library. Au dessus de ces deux bibliothèques se trouve Workbench, le logiciel qui permet à l'utilisateur de lancer des programmes ou modifier la configuration[1].

interface graphique modifier

Dans les médias, l'interface graphique d'AmigaOS a souvent été comparée à celle de Apple, elle est cependant inspirée principalement par Sun, et se distingue par le fait qu'elle s'utilise avec une souris à deux boutons[1]. En plus de Workbench, les utilisateurs peuvent également se servir de l'interface en ligne de commande d'AmigaOS: le CLI[1].

Fichiers modifier

AmigaDOS est le composant d'AmigaOS qui s'occupe des disques et des entrées/sorties[1]. Initialement AmigaOS devait contenir un composant nommé CAOS, mais suite à des disputes durant son développement, le projet a été abandonné[1]. Commodore, sous la pression des délais, s'est tourné vers TripOS, un système d'exploitation développé par MetaComCo, pour le processeur Motorola 68000: beaucoup de pièces de TripOS ont été réutilisées et adaptées pour obtenir AmigaDOS[1].

ROM modifier

Dans les années 1980, les ordinateurs personnels n'avaient souvent comme unique periphérique de stockage un lecteur de disquette ou de cassette. Le Commodore 64, par exemple, n'avait de base aucun périphérique de stockage[1]. Si le système d'exploitation avait été placé sur une disquette, il aurait pris une place non négligeable et le démarrage de l'ordinateur aurait pris du temps. C'est pour ces raisons que les composant principaux d'AmigaOS sont enregistrés dans une puce de mémoire morte dans l'ordinateur[1].

Cette puce de mémoire morte - le Kickstart, de 256 ou 512 Ko contient Exec, graphics.library, intuition.library, le coeur de AmigaDOS et du Workbench[1]. Le système d'exploitation est cependant amorcé à l'aide d'une disquette ou un disque dur. Ce dernier contient des bibliothèques accessoires telles que translation.library, ainsi que des utilitaires[1]. Le programme amorce sur la disquette peut ne pas se servir du tout d'AmigaOS et utiliser directement le matériel - de nombreux jeux vidéo le font. Il peut également lancer un autre système d'exploitation - comme par exemple Linux[1].

limitations modifier

Selon les Amiga ROM Kernel Reference Manuals, la référence technique officielle de l'Amiga: la génération actuelle d'Amiga n'a pas de protection de mémoire, et donc rien n'interdit à un programme d'accéder à des emplacements de mémoire qui ne lui appartient pas[1]. Une tâche en déroute peut mettre en panne une autre tâche en modifiant accidentellement son code ou ses données; elle peut également mettre en panne le système d'exploitation et provoquer des messages guru meditation (voir plus loin)[1].

Les fuites de mémoire sont un incident courants sur AmigaOS parce que seule la tâche qui réservé de la mémoire peut la libérer. Dans les systèmes d'exploitation plus récents le kernel libère automatiquement la mémoire de la tâche lorsqu'elle s'arrête, notamment en cas de plantage[1].

Selon le Amiga Hardware Reference Manual, le fait qu'un logiciel applicatif exploite directement le matériel de l'Amiga n'est pas interdit, mais fortement déconseillé par ces deux phrases « Pour assurer un maximum de compatibilité en avant il est fortement conseillé de se servir des commandes et des fonctions d'AmigaOS » et « si il est nécessaire d'exploiter directement le hardware il est de votre responsabilité d'assurer que ca fonctionne sur les différents modèle et les différentes configurations »[1].

Guru meditation modifier

[2] Guru Meditation est le message de plantage système d'AmigaOS. Ce message était initialement destiné aux ingénieurs de l'Amiga, et les invite à jouer pour oublier un événement fâcheux. Il fait référence au jeu du même nom qui consiste à rester immobile en position de méditation zen sur une planche équipée de senseurs de mouvements[2].

modèle-vue-contrôleur modifier

Définition modifier

Modèle-Vue-Contrôleur (abr. MVC) est un motif d'architecture logicielle destiné aux interfaces graphiques lancé en 1978 et très populaire pour les applications web. Le motif est composé de trois types de modules ayant trois responsabilités différentes: les modèles, les vues et les contrôleurs.

  • Un modèle contient les données à afficher.
  • Une vue contient la présentation de l'interface graphique.
  • Un contrôleur contient la logique concernant les actions effectuées par l'utilisateur.

Description modifier

Une application conforme au motif MVC comporte trois types de modules: les modèles, les vues et les contrôleurs[3].

Le modèle

C'est l'élément qui contient les données ainsi que de la logique en rapport avec les données: validation, lecture et enregistrement.[4]. Il peut, dans sa forme la plus simple, contenir uniquement un simple texte, voire des données beaucoup plus compliquées[4]. Le modèle représente l'univers dans lequel s'inscrit l'application[3]. Par exemple pour une application de banque, le modèle représente des comptes, des clients, ainsi que les opérations telles que dépôt et retraits, et vérifie que les retraits ne dépassent pas la limite de crédit[3]. Le modèle est indépendant de la vue et du contrôleur et ne s'en sert pas[4].

La vue

C'est la partie visible d'une interface graphique[4]. La vue se sert du modèle, et peut être un diagramme, un formulaire, des boutons, etc[4]. Une vue contient des éléments visuels ainsi que la logique nécessaire pour afficher les données provenant du modèle[4]. Dans une application web une vue contient des balises HTML[3].

Le contrôleur

C'est le module qui traite les actions de l'utilisateur, modifie les données du modèle et de la vue[4].

Les trois éléments sont indépendant les uns des autres, le modèle ne se sert ni de la vue ni du contrôleur, il peut cependant leur envoyer des messages[4]. Il y a deux liens entre la vue et le modèle: premièrement la vue lit les données du modèle et deuxièmement receoit des messages provenant du modèle[4]. Dans la mesure ou une vue est associée à un modèle et un modèle est indépendant, un même modèle peut être utilisé par plusieurs vues[4].

Le contrôleur dépends de la vue et du modèle: la vue comporte des éléments visuels que l'utilisateur peut actionner[4]. Le contrôleur réponds aux actions effectuées sur la vue et modifie les données du modèle[4].

Dans le cas d'un View model, le modèle contient les données que le contrôleur transmet à la vue[3]. Dans le cas d'un Domain model il contient toutes les données en rapport avec l'activité, ainsi que la logique des opérations de modification et de validation des données[3].

MVP et MVVM modifier

Les motifs Model-View-Presenter (abr. MVP) et Model-View-ViewModel (abr. MVVM) sont semblables au motifs modèle-vue-contrôleur, à quelques différences près[5].

  • Dans le patron MVP, le contrôleur est remplacé par un présenteur. Le présenteur est créé par la vue et associé à celle-ci par une interface. Les actions utilisateur déclenchent des événements sur la vue, et ces événements sont propagés au présenteur en utilisant l'interface[5].
  • Dans le patron MVVM il y a une communication bidirectionnelle entre la vue et le modèle, les actions de l'utilisateur entraînent des modification des données du modèle[5].

Dans les applications web modifier

Le patron MVC a été créé dans le but de mettre en oeuvre des interfaces utilisateur[3]. Certains détails sont alignés avec le langage Smalltalk, mais les grandes lignes peuvent s'appliquer à n'importe quel environnement[3]. Le cycle action->mise à jour->affichage induit par ce patron est bien adapté aux applications web[3]. De plus le patron impose la séparation des sujets, et les balises HTML sont ainsi confinées aux vues, ce qui améliore la maintenabilité de l'application[3]. C'est le framework pour applications web Ruby on Rails qui a apporté un regain d'intérêt pour ce patron[3].

Ce patron est utilisé par de nombreux frameworks pour applications web tels que Ruby on Rails, Django, ASP.NET MVC, Spring, Struts ou Apache Tapestry[6].

Dans la mise en oeuvre classique du patron MVC, la vue attends des modifications du modèle, puis modifie la présentation des éléments visuels correspondants[7]. Cette mise en oeuvre est appliquée pour les applications de bureau avec des framework comme Swing[7]. Le protocole HTTP ne permet pas cette mise en oeuvre pour les applications web. Pour ces dernières, lors d'une action de l'utilisateur, le contenu de la vue est recalculé puis envoyé au client[7].

Histoire modifier

Le patron MVC a été créé par Trygve Reenskaug lors de sa visite du Palo Alto Research Center (abr. PARC) en 1978[6]. Le nom original est Thing Model View Editor pattern, puis il a été rapidement renommé Model-View-Controller pattern[6]. Le patron MVC a été utilisé la première fois pour créer des interfaces graphiques avec le langage de programmation Smalltalk en 1980[6].


[3]

[4]

[5]

[6]

[7]

[8]

Document Object Model modifier

Une interface de programmation normalisée par le W3C, qui permet à des scripts d'examiner et de modifier le contenu du navigateur web[8]. Par DOM la composition d'un document HTML ou XML est représentée sous forme d'un jeu d'objets reliés selon une structure en arbre[8]. Les objets DOM peuvent représenter une fenêtre, un document, une phrase, un style, ...[8] A l'aide de DOM un script peut modifier le document présent dans le navigateur en ajoutant ou en supprimant des noeuds de l'arbre[8].

Histoire modifier

A l'origine DOM est un ensemble d'objets mis à disposition par Netscape Navigator. Il a ensuite fait l'objet de normalisations par le W3C, avant d'être incorporé dans la norme HTML5[8]: Netscape Navigator 4 est paru en juin 1997, et Internet Explorer 4 en octobre la même année. Les deux navigateurs promettaient une avancée significative dans une nouveauté qui était à la mode: le DHTML[9]. Le mot désigne le fait d'utiliser les technologies HTML, avec CSS et Javascript, dans le but de modifier à la volée le contenu et la présentation du document affiché dans le navigateur[9]. Les deux navigateurs offraient la possibilité de manipuler le document à travers le DOM, cependant le même document n'était pas représenté de la même manière par les deux navigateurs. Ce problème a disparu suite à la normalisation du DOM par le W3C[9].

Description modifier

Document Object Model (abr. DOM) signifie modèle à objets d'un document[9].

modèle

Un modèle est comme un plan, il représente quelque chose, comme un plan de ville. Le DOM représente le document qui se trouve dans le navigateur[9].

objet

En programmation, un objet est un conteneur qui comporte des propriétés et des méthodes - qui sont des variables et des actions concernant ce qu'il représente[9]. Les objets DOM peuvent représenter une fenêtre, un document, une phrase, un style, ...[8]

document

Le DOM concerne un document, tel qu'une page web affichée dans un navigateur[9]. Une page web commence par une balise DOCTYPE suivi de la balise htmldans laquelle se trouve le reste du document[9]. Par DOM le document est représenté par des noeuds (branches et feuilles) d'une structure en arbre[9].

Mise en oeuvre modifier

La spécification du W3C stipule les objets ainsi que les méthodes et les propriétés qu'un navigateur web doit impérativement mettre à disposition[8]. Les principales catégories d'objet d'un arbre DOM sont le document, les éléments et les attributs[8].

  • le document expose des informations concernant l'ensemble du document HTML ainsi que la balise <html>[8].
  • chaque element expose une balise d'un document HTML ou XML, et comporte une propriété attributes qui expose les attributs de la balise. Chaque élément comporte des méthodes permettant d'accéder aux élément parent, enfant et frères de l'arbre DOM[8].
  • chaque text contient le texte qui se trouve à l'intérieur d'une balise[8].

Chaque navigateur met en oeuvre le DOM dans son langage de programmation. La spécification du DOM est alignée avec le langage Javascript, reconnu par tout les navigateurs web[8]. N'importe quelle partie d'une page web peut ainsi être modifiée par programmation, et le programme fonctionnera sur n'importe quel navigateur web conforme à la norme DOM[8].

Techniquement le DOM permet de lire et modifier n'importe quel document utilisant des balises, avec n'importe quel langage de programmation qui offre une interface de programmation DOM[9].


[9]

[10]

[11]

Enregistrement (base de données) modifier

publication assistée par ordinateur modifier

  • [12] PageMaker, Word, Publisher, InDesign, QuarkXPress, Adobe Acrobat, CorelDraw, Photoshop, Macintosh, Windows, Linux
  • [13] PageMaker, CorelDraw, Photoshop
  • [14] QuarkXPress, InDesign

UML (informatique) modifier

[20]

[21]

Convention de style des infobox modifier

source: en:Wikipedia:Manual of Style/Infoboxes

Citrix XenApp modifier

International Mathematics and Statistics Library modifier

Ipchains modifier

IBM DB2 modifier

[22]

[23]

DB2 aussi appellé UDB est une famille de logiciels de bases de données produites par IBM.

DB2 comporte un interpréteur du langage SQL.

nom cible systèmes moteur serveur partitions répartie
DB2 Host database ordinateur central iSeries, zSeries, OS/390 ? ? ? ?
DB2 Enterprise Server Edition (abr. ESE) serveurs des grandes entreprises        
DB2 Workgroup server edition (abr. WSE) serveur de petites entreprises et groupes de travail Unix, Windows      
DB2 Personal Edition (abr. PE) ordinateurs personnels Linux, Windows    
DB2 Everyplace assistants personnels, ordinateurs de poche Palm, EPOC, Windows CE, QNX  

DB2 permet aussi bien le stockage de données relationnelles, que des documents, des images, des vidéos. C'est un produit important du catalogue de logiciels de IBM.

DB2 WSE est une édition multi-utilisateur, qui vise les réseaux des petites entreprises. Contrairement à l'édition ESE, WSE ne comporte pas le produit DB2 Connect, qui permet d'utiliser des bases de données des ordinateurs centraux. Le packet se compose d'un logiciel serveur, un logiciel client, et des produits d'accompagnements tels que WebSphere MQ, des plugins pour les bases de données spatiales, les données audio ou vidéo.

DB2 Universal Developper edition est un packet qui comporte les trois éditions (ESE, WSE et PE) de DB2, ainsi que divers outils destinés au développement de logiciels, notamment WebSphere Application Server et une version d'essai de Borland Delphi. La licence de ce produit autorise l'utilisation de DB2 à des fin de recherche et de développement uniquement, et interdit une utilisation en production.

DB2 Connect est un packet qui sert d'intermédiaire pour exploiter les bases de données des ordinateurs centraux (DB2 Host database). Ces bases de données peuvent être utilisées à travers un réseau, mais les protocoles réseau sont différents de ceux des autres éditions de DB2: basées sur SNA plutôt que TCP/IP.

[24]

[25]

[26]

[27]

[28]

[29]

[30]

[31]

[32]

Oracle Corporation modifier

Technologies Web modifier

Introduction modifier

Le world wide web est, avec le courrier électronique, l'usage le plus courant d'Internet[10]. Ce service permet le partage d'informations disséminées à travers le monde et leur échange en utilisant le protocole HTTP[11]. La forme conventionnelle des informations échangées sont des documents au format HTML. Ce format permet d'y inclure des liens vers d'autres documents, ainsi que des images, du son et de la vidéo[11].

Le service peut être exploité à l'aide d'un navigateur web: Un logiciel qui interprète le document HTML ainsi que les programmes Javascript ou les Applet Java associés[11]. Le document est fourni par un logiciel serveur HTTP, et peut être construit en utilisant les technologies JavaServer Pages, Active Server Pages ou Java Servlet[11].

TCP/IP, est la technologie de communication de l'Internet et le protocole réseau sous-jacent à HTTP[10].

  • Un protocole est une convention programmée et normalisée selon laquelle deux ordinateurs communiquent: un ordinateur envoie des messages formatés conformément à la convention, rendant ainsi possible l'interprétation du message pas un autre ordinateur qui suit cette convention[11].

L'objectif initial du web était de faciliter l'échange d'informations entre les membres de la communauté scientifique. Il a été créé en 1989 au CERN et était destiné aux rechercheurs en physique des particules. L'usage du format HTML a été introduit en 1993 par le NCSA avec leur navigateur web Mosaic[10].

Entre 1995 et 2005 le web a été le berceau de plusieurs nouvelles technologies. Certaines de ces nouvelles technologies ont été lancées dans le but de remplacer un prédécesseur, ou de faire concurrence[12]. Par exemple Java Servlet était destiné à succéder à CGI, Puis Active Server Pages a été lancé comme technologie concurrente[12].

Le web a évolué d'une dispositif de partage d'informations vers une plateforme technique pour créer des logiciels applicatifs[12]. Ces applications web utilisant les normes et les technologies du web et sont manipulables à l'aide d'un navigateur[12].

Le world wide web, service populaire sur le réseau Internet, est fondé sur différentes technologies.

et est devenu un melting-pot de nouvelles technologies

Histoire modifier

Internet est né durant la guerre froide, 1969, d'un projet du Département de la Défense des États-Unis, qui visait à permettre la communication entre les sites de recherche et les sites militaires des États-Unis, y compris en cas de guerre et de destruction partielle de l'infrastructure. Chaque site ayant lui-même un réseau local[13].

La technologie TCP/IP été lancée en 1970 et adoptée pour l'Internet. C'est une suite de protocoles permettant de relier entre eux des réseaux, et de donner l'illusion d'un réseau unique. Les différents réseaux reliés peuvent utiliser différentes technologies de télécommunication (Ethernet, réseau commuté,...) et les données transmises sur les réseaux TCP/IP peuvent se conformer à différents protocoles, tels HTTP ou FTP, selon le modèle OSI[13].

Le web a été créé en 1989 au CERN et était destiné aux rechercheurs en physique des particules. Le but était de faciliter l'échange d'informations entre les membres de la communauté scientifique en utilisant Internet.

Le code source de l'application www a été mis à disposition du public (open source), ce qui permet à autrui d'y apporter des améliorations. 4 ans après son lancement par le CERN, le NCSA sort le premier navigateur web - Mosaic: Ce programme permet à travers une interface graphique de consulter les documents placés sur des serveurs[13]. Les documents sont au format HTML.

Depuis 1996 le web est utilisé comme plateforme technique pour permettre la manipulation d'applications hébergées sur des serveurs web[14].

Web sémantique

Dans sa construction initiale, le web permet à une personne de récupérer des informations; le tri, le classement et l'extraction de ce qui est pertinent pour elle est une opération manuelle. Ceci peut parfois demander un travail conséquent: un moteur de recherche peut produire plus de 30'000 résultats. En 2001 Tim Berners Lee, l'inventeur du web, lance l'idée d'un web sémantique, où le tri et le classement des informations est automatisé par des techniques d'intelligence artificielle et une description du contenu des documents par des métadonnées; les métadonnées étant manipulées par les ordinateurs[15].

Web 2.0

Le web a changé la manière des gens de communiquer, de faire du commerce et de partager des informations. A ses débuts en 1990, le web était une collection de pages rarement modifiées, puis l'usage a évolué en direction d'applications permettant de partager des photos, des vidéos, de faire du commerce et de participer à des activités de groupe; c'est Web 2.0; une évolution due autant aux changements technologiques qu'à l'augmentation de la couverture d'Internet et de l'évolution des habitudes des utilisateurs[14].

Technologies modifier

Le web permet le partage d'informations disséminées à travers le monde et leur échange en utilisant le protocole HTTP[11]. La forme conventionnelle des informations échangées sont des documents au format HTML.

HTTP (abrégé de HyperText Transfer Protocol) est le protocole sous-jacent du web. Cette convention définit comment les messages sont formatés et transmits et comment le serveur HTTP ainsi que le navigateur web doivent réagir aux messages. La convention prévoit par exemple la transmission d´URL entre le navigateur et le serveur HTTP. C'est un des principaux standard du web, le second étant le HTML qui concerne la manière dont les documents sont codés et affichés[11].

HTTP est un protocole sans état (anglais stateless): chaque opération est effectuée sans tenir compte des opérations précédentes. Cette limitation est contournée par des technologies comme ActiveX, Java, Javascript et les cookies[11].

URL est la description conventionnelle de l'emplacement d'un document du web. L'emplacement comporte le nom de l'ordinateur sur lequel se trouve le document, et ce nom peut faire usage de la technologie DNS[11].

DNS est un service d'Internet qui permet d'obtenir la correspondance entre un nom d'ordinateur convivial et une adresse IP. Chaque serveur DNS est un ordinateur qui contient la table de correspondance des noms et des adresses e-mail d'un domaine (un pays, une entreprise, un organisme,...), ainsi qu'un programme serveur qui réponds à des demandes de recherche[16].

Technologies sous-jacentes

TCP/IP, est la technologie de communication de l'Internet et le protocole réseau sous-jacent à HTTP[10]. Un protocole étant une convention selon laquelle deux ordinateurs communiquent[11].

Une des conventions du protocole TCP/IP est que chaque ordinateur et appareil du réseau est identifié par un nombre à 32 ou 128 bits, certains bits désignent le réseau où il se trouve, et le reste désigne l'appareil. Dans certaines technologies un ordinateur est identifié par un code différent, qui est gravé sur la carte réseau; les technologies ARP, RARP et BOOTP permettent alors de faire la correspondance entre l'adresse IP et l'adresse physique gravée sur la carte. DHCP est une amélioration de ces technologies, où une adresse IP est attribuée automatiquement à l'ordinateur[13].

Les deux principaux protocoles de la technologie TCP/IP sont TCP et IP. TCP apporte la fiabilité des communications qu'IP ne garantis pas: que chaque information envoyée arrive à destination et que les informations arrivent dans le bon ordre, en créant de circuits virtuels entre l'émetteur et le destinataire[13].

les documents

XHTML est une convention proposée en remplacement de HTML, qui garantis la conformité de la norme HTML avec la notation XML. Cette convention comporte des règles supplémentaires qui n'existent pas dans la norme HTML, comme par exemple l'utilisation exclusive des lettres minuscules dans les tags[17].

Cascading Style Sheets (abr. CSS) est une technique pour dissocier la présentation d'une page (typographie, couleurs) de son contenu (texte, images). La présentation peut alors être réutilisée sur plusieurs pages[17].

MIME est une convention appliquée au courrier électronique et aux pages web pour pallier à l'inconvénient suivant: Les informations sont envoyées au destinataire sous forme de flux d'octets qui ne lui permettent pas d'en reconnaître facilement la nature. La convention MIME prévoit alors que ces informations sont associées à une description normalisée de la nature du contenu : texte, image, audio ou vidéo[18].

les programmes

Le web est utilisé comme plateforme technique pour permettre la manipulation d'applications hébergées sur des serveurs web. Dans de telles applications les programmes ainsi que les données résident sur un serveur web - contrairement aux applications classiques qui résident sur l'ordinateur de l'utilisateur. Pour les développeurs la mise à disposition d'une application hébergée sur un serveur web est beaucoup moins coûteuse que le fait de graver un CD et l'envoyer en grande distribution. Les améliorations subséquentes sont également facilitées[14].

CGI est une technique qui permet d'associer un programme avec une page web. Par cette technique le serveur HTTP peut utiliser le programme pour obtenir des données provenant par exemple de bases de données, puis de les envoyer sous forme de page web[18].

Entre 1995 et 2005[12] Java Servlet a succédé à CGI, puis Active Server Pages a été lancé comme technologie concurrente[12].

Java est un langage de programmation sorti en 1996. Les programmes écrit dans ce langage - les applets Java - peuvent être téléchargés et exécutés par les navigateurs web. Cette caractéristique a rendu cette technologie populaire pour réaliser des applications interactives et des jeux vidéo sur le web[17].

Les applications web dites Rich Internet Application (abr. RIA) offrent une maniabilité et un confort d'utilisation équivalent voire supérieur à des applications classiques. Ceci est obtenu par l'utilisation de technologies telles que Ajax, Adobe Flash ou Microsoft Silverlight[14].

Sources modifier

[33] DNS, URL, HTTP

[34] HTML, CSS, DOM, CGI, Java, XML, XSLT, ECMAScript, Perl, ASP, SQL, PHP, Java, SSL, WAP

[35] ...

[36] Web sémantique

[37] HTML, CSS, JSP, JDBC

[38]

[39] web applications

[40] SOA Web services

[41] REST web services

[42] Web 2.0 - architecture

[43] web based systems

[44] web engineering

[45]

web and foundations (IP) and applications

[46] web and HTML and ...

[47]

[48]

[49]

Logiciel modifier

[50]

Les logiciels sont composés de fichiers qui fournissent à l'ordinateur les instructions nécessaires pour effectuer certaines tâches. Les logiciels sont utilisés continuellement, en manipulant un ordinateur, un téléphone mobile, une caméra vidéo numérique, un guichet automatique bancaire, une voiture ou un appareil médical.

Il existe des milliers de catégories de logiciels applicatifs, en fonction de la tâche pour laquelle l'ordinateur est utilisé. Les principales catégories de logiciels système sont les systèmes d'exploitation, les pilotes et les utilitaires.

[51]

[52]

Système d'exploitation modifier

Un système d'exploitation est un logiciel d'autorité qui dirige l'utilisation des ressources matérielles par les logiciels applicatifs. En particulier l'utilisation de la mémoire, du processeur et des fichiers. Il offre des services en rapport avec l'utilisation des ressources matérielles de l'ordinateur dans le but d'exécuter des programmes, de lire et écrire des informations, de manipuler le système de fichier, de communiquer entre les ordinateurs et de déceler des erreurs[19].

Les services du système d'exploitation sont accessibles par son interface graphique, ses commandes ou son interface de programmation[20]. La palette des services offerts et la manière de s'en servir diffère d'un système d'exploitation à l'autre[21].

fonctionalités modifier

[53]

Le système d'exploitation dirige l'utilisation de la mémoire. retient la liste des emplacements de mémoire utilisés, et par qui, ainsi que la liste des emplacements libres[22]. Le système d'exploitation réserve un emplacement de mémoire lorsqu'un processus le demande, et le libère lorsqu'il n'est plus utilisé, par exemple lorsque le processus s'est arrêté[22].

le système de fichier : le système d'exploitation tient la liste des informations enregistrées dans l'ordinateur, leur localisation, utilisation et status[22]. Le système d'exploitation décide quel processus est autorisé à accéder à cette information et assure ainsi la confidentialité[22].

[54]

Un système d'exploitation est composé d'un kernel, de programmes de manipulation du matériel, de bibliothèques logicielles et de logiciels utilitaires[21]. Le kernel est la partie centrale du système d'exploitation, qui réside continuellement en mémoire[21]. C'est la partie critique, l'autorité centrale, qui fournit les services essentiels[21].

[55]

Utilisation modifier

La palette des services offerts et la manière de s'en servir diffère d'un système d'exploitation à l'autre. Le standard industriel POSIX du IEEE définit une suite d'appels systèmes systèmes standard. Un logiciel applicatif qui effectue des appels système selon POSIX pourra être utilisé sur tout les systèmes d'exploitation conformes à ce standard[21].

Les utilisateurs et les programmeurs peuvent demander des services au système d'exploitation par son interface de programmation, ses commandes ou son interface graphique[20].

interface de programmation

Les appels système permettent des interactions entre un programme en cours d'exécution et le système d'exploitation. L'utilisation d'appels système ressemble a celle de fonctions ou de sous-routines ordinaires en langage C ou Pascal[19].

commandes

Les commandes permettent à un utilisateur ou un programme de demander une opération au système d'exploitation. Une commande est un programme qui effectue un appel système selon la demande de l'utilisateur[19],[20].

interface graphique

L'interface graphique permet une manipulation intuitive par l'intermédiaire de pictogrammes. Cette interface, qui n'est pas une partie essentielle du système d'exploitation, et qui cache tout les détails intrinsèques de celui-ci, est souvent considérée comme un complément[20].

[56]

[57]

Mémoire modifier

[58]

Le système d'exploitation dirige l'utilisation de la mémoire. retient la liste des emplacements de mémoire utilisés, et par qui, ainsi que la liste des emplacements libres[22]. Le système d'exploitation réserve un emplacement de mémoire lorsqu'un processus le demande, et le libère lorsqu'il n'est plus utilisé, par exemple lorsque le processus s'est arrêté[22].

Les fonctions de contrôle de l'utilisation de la mémoire vont en particulier suivre l'utilisation de la mémoire, quels emplacement sont libres, sont utilisés, et par qui[19]. Ces fonctions vont également décider quel programme reçoit de la mémoire, quand et quelle quantité est mise à disposition et récupérer la mémoire qui était utilisée par un programme après son exécution, que le programme se soit arrêté volontairement ou accidentellement[19].

La quantité de mémoire utilisée par l'ensemble du système informatique dépends essentiellement de la manière dont le système d'exploitation effectue les réservations[23].

[59]


[60]

[61]

[62]

[63]

Processeur(s) modifier

[64]

Le système d'exploitation permet à plusieurs utilisateurs de se servir de l'ordinateur et donne à chaque utilisateur l'impression qu'il est le seul à utiliser l'ordinateur[24].Pour de faire, l'utilisation du processeur est planifiée: chaque programme est exécuté durant une tranche de temps déterminé, puis le système d'exploitation bascule sur l'exécution d'un autre programme[24].

processus

Un processus est un ensemble d'instruction qui sont en train d'être exécutées. Les instructions proviennent d'un programme, et l'exécution nécessite du temps, de la mémoire, des fichiers et des périphériques[23]. Le système d'exploitation s'occupe de créer, d'interrompre, et de supprimer des processus. Plusieurs processus se trouvent en mémoire centrale en même temps[20].

La responsabilité du système d'exploitation et de réserver de la mémoire, et de planifier l'exécution, de s'occuper des interblocages[25] et d'assurer les communications entre les processus[23]. Le planificateur (scheduler) associe un processus à un processeur, puis plus tard le dissocie du processeur pour associer un autre processus. cette opération associer / dissocier est appelée context switch[20]. Lors de la planification, le système d'exploitation tient compte de la disponibilité, ou non, des ressources utilisées par le processus[25]. Certains systèmes d'exploitation créent des processus pour effectuer certaines tâches propre au système[21].

Lors de l'exécution du programme, celui-ci peut demander de réserver des ressources de l'ordinateur[21]. L'exécution de ce programme peut être interrompue et le système d'exploitation continue l'exécution d'un autre programme, cependant les ressources restent réservées[21]. Lorsqu'un autre processus demande une ressource déjà réservée, le processus est mis en attente. En situation de forte compétition plusieurs processus peuvent être en attente de la même ressource[21]. Lorsque la ressource est libérée le système d'exploitation décide alors quel est le prochain processus auquel la ressource sera réservée. La stratégie d'octroi des ressources par le système d'exploitation vise à répondre équitablement à toutes les demandes et éviter des conflits[21].


Les fonctions du système d'exploitation qui contrôleur l'utilisation des processeurs effectuent les opérations suivantes[19]:

  • Suivre l'utilisation des processeurs: ce qu'ils exécutent ainsi que la liste des programmes en cours d'exécution[19].
  • Décider quel programme va être exécuté par un processeur à quel moment. Le planificateur (scheduler) choisit un des programmes parmi tout ceux qui sont en cours d'exécution[19].
  • Faire les préparations nécessaires pour permette à un programme d'être exécuté par un ou l'autre processeur[19].
  • Prends le contrôle lorsqu'un programme utilise trop le processeur, ou ne l'utilise pas du tout (par exemple parce qu'il a terminé)[19].

La décision du système d'exploitation d'exécuter un programme peut tenir compte également de la quantité de mémoire ou d'espace disque que celui-ci utilise[19].

.


Un processus étant un programme en train d'être exécuté par un utilisateur. ainsi que le traitement des interblocages. Lorsque le processus est exécuté, la mémoire et le processeur central sont utilisés. C'est le système d'exploitation qui s'occupe de réserver de la mémoire, et du temps pour le processeur[26].

Le processeur est utilisé pour exécuter un seul processus à la fois à un instant donné. Les autres processus sont mis en attente jusqu'à ce que l'exécution est suspendue[26].

Une fois l'exécution du programme terminée, le système d'exploitation s'occupe de libérer les ressources qui avaient été réservées pour ce processus[26].

[65]

[66]

[67] La création de processus est une opération courante des systèmes d'exploitation. Des processus peuvent être créés par le système d'exploitation lors de l'initialisation, ou demandés par un processus par un appel système. Dans ce dernier cas un processus père demande la création d'un processus fils, et le processus fils peut ensuite lui aussi demander la création d'un processus. La création de processus fait souvent suite à une manipulation de l'utilisateur[26].

[68]

[69]

un processus est l'état d'un calcul en cours: un programme en train d'être exécuté[21]. Le système d'exploitation crée un nouveau processus lorsqu'il lui est demandé d'exécuter un programme, puis supprime le processus lorsque l'exécution est terminée[21].

Lorsqu'un nouveau processus est créé, le système d'exploitation attribue une partie de la mémoire centrale au processus, copie les instructions ainsi que les données du programme dans cet emplacement de mémoire centrale, puis initie l'exécution du programme[21].

Au cours de l'exécution du programme, celui-ci peut demander que le système d'exploitation lui octroie certaines ressources de l'ordinateur. Les ressources octroyées, la dernière instruction exécutée et la mémoire attribuée sont l'essence du processus[21].

Le kernel du système d'exploitation n'est pas un processus mais un ensemble de programmes qui peuvent être exécutés dans le cadre de processus.

communication entre programmes modifier

[70]

Dans certains logiciels applicatifs, plusieurs programmes effectuent la même tâche simultanément, et s'échangent des informations[21]. Le mécanisme de protection de la mémoire (voir plus loin) empêche aux programmes de manipuler les mêmes informations, et ceux-ci doivent faire appels à des services du système d'exploitation[21].

protection

Par mesure de sécurité, le système d'exploitation réserve à chaque programme un espace d'adressage - un emplacement en mémoire que seul le programme en question peut manipuler[21]. Le système d'exploitation détecte toute tentative d'accès en dehors de l'espace d'adressage et provoque l'arrêt immédiat du programme qui tente d'effectuer telles opérations[21].

Périphériques modifier

Les périphériques sont tout les dispositifs informatiques qui permettent au processeur de communiquer avec l'extérieur: clavier, imprimante, carte réseau, mémoire, disque dur[21]. Ils permettent en particulier de recevoir des informations, d'en envoyer, ainsi que de stocker des informations - les collecter dans le but de les renvoyer plus tard[21].

Une des responsabilités du système d'exploitation est de suivre l'état d'utilisation - libre ou réservé - de tout le matériel du système informatique. Lorsqu'un matériel libre est demandé par un processus, il est alors réservé à ce processus[25].

Pour utiliser un periphérique, le système d'exploitation se sert d'un contrôleur et d'un pilote de périphérique[25].

contrôleur

Un contrôleur est un composant électronique, qui comporte une mémoire tampon, et manipule un certain type de périphérique (disque dur, imprimante, mémoire, lecteur de bande magnétique,...)[25]. Le contrôleur est souvent intégré au périphérique[21]. Les différents contrôleurs disponibles sur le marché ne s'utilisent pas tous de la même manière[21].

pilote (anglais driver)

Les instructions de manipulation d'une gamme de contrôleurs donnée sont incluses dans un pilote informatique: un logiciel qui exploite les possibilités offertes par les contrôleurs[21]. Les pilotes informatiques font partie du système d'exploitation, et offrent des services uniformes utilisés par les autres programmes du système d'exploitation[21].


il existe deux stratégies de manipulation des contrôleurs[21]: Les contrôleurs rapides sont manipulés en programmed I/O. dans cette stratégie le processeur envoie des demandes d'opérations au contrôleur puis vérifie de manière intermittente l'état du contrôleur pour vérifier si l'opération demandée est terminée[21].

Les contrôleurs moins rapides sont manipulés en interrupt driven I/O[21]. Dans cette stratégie le processeur effectue une demande au contrôleur, puis continue d'exécuter des logiciels applicatifs. Le contrôleur envoie un signal électrique lorsque l'opération est terminée. Lors de la venue de ce signal, le processeur interrompt l'exécution des logiciels applicatifs et exécute un programme particulier interrupt service routine qui vérifie le nouvel état du contrôleur[21].

Certains périphériques ne peuvent pas être partagés, et leur utilisation est alors dédiée à un seul programme à la fois. Certains périphériques peuvent être virtuels, ou leur utilisation peut être indirecte. Par exemple l'utilisation d'une imprimante n'entraine pas une impression immédiate parce que les information sont tout d'abord mises en attente. Cette technique du spool permet l'utilisation partagée d'un périphérique qui sans ça ne pourrait pas être partagé[19].

[71] Les fonctions du système d'exploitation qui contrôlent l'utilisation des périphériques effectuent les opérations suivantes[19]:

  • Tenir la liste des périphériques branchés, ainsi que leurs paramètres[19].
  • Décider de la manière dont les programmes se serviront des périphériques. Décider qui l'utilise, quand, et combien[19].
  • Attribuer un périphérique à un programme, et le préparer pour les opérations de lecture / écriture[19].
  • Remettre un périphérique à disposition quand son utilisation est terminée[19].

[72]

Le système d'exploitation se sert des contrôleurs et de pilotes de périphériques. Un contrôleur est un composant électronique, qui comporte une mémoire tampon, et manipule un certain type de périphérique (disque dur, imprimante, mémoire, lecteur de bande magnétique,...). Un pilote (anglais driver) est un programme utilisé par le système d'exploitation en vue d'uniformiser l'utilisation des périphériques. Il sert d'intermédiaire entre les processus et le contrôleur[25].

[73]

Fichiers modifier

[74]

Les informations sont classées selon une structure manipulée de manière collective par les différents programmes - le système de fichiers[19].

Le système d'exploitation[19]:

  • Suit les fichiers, leur localisation, leur état, et qui les utilise[19].
  • Offre des services qui permettent d'accéder facilement aux fichiers, protège les informations en décidant quel programme peut avoir accès à quel fichier[19].
  • permet de dédier l'accès à un fichier à un programme et remettre ce fichier à disposition une fois que le programme a terminé[19].

[75]

Un fichier est une collection d'informations portant un nom, enregistrée sur un média tel qu'un disque dur, une bande magnétique ou un disque optique[23]. Chaque média a ses propres caractéristiques et sa propre organisation[23].

Le système d'exploitation s'occupe de créer et de détruire des fichiers et des répertoires, de réserver de l'espace sur les médias ainsi que copier le contenu des fichiers de et vers la mémoire centrale[23]. Il aide également les logiciels applicatifs à: retrouver les fichiers, partager les fichiers entre plusieurs utilisateurs, modifier le contenu des fichiers, créer des répertoires pour permettre de classer et organiser les fichiers[25]. La vitesse du système informatique dépendra de la vitesse de manipulation des fichiers[23].

Le système d'exploitation permet en particulier de manipuler les attributs: les caractéristiques du fichiers tels que son nom, la date de création, le type du contenu, la taille et l'emplacement[25]. Il permet également de manipuler les permissions: des autorisations qui indiquent si un utilisateur pourra lire, écrire ou exécuter le fichier[25].

Le système d'exploitation tient compte du système de fichiers: la manière dont les fichiers sont organisés et répartis sur un dispositif de stockage[25].


[76]

Le système d'exploitation s'occupe également de manipuler les fichiers. Un fichier est une collection d'informations enregistrée dans les mémoires de l'ordinateur. Les manipulations consistent à créer, modifier et supprimer les fichiers[25].

protection modifier

[77]

Les systèmes d'exploitation contemporains permettent à plusieurs usagers de se servir simultanément de l'ordinateur[23]. Le système d'exploitation comporte des mécanismes destinés à contrôler l'utilisation des ressources par les utilisateurs, les processus et les programmes[23]. Ces mécanismes permettent de certifier l'identité du programme ou de l'utilisateur et lui autoriser l'accès à une ressource en application de règlements de sécurité[23].

Les mécanismes de sécurité du système d'exploitation servent à protéger le système informatique de l'intérieur comme de l'extérieur: Les mécanismes de sécurité intérieure protègent les processus l'un de l'autre, et assurent la fiabilité du système informatique[25]. Les mécanismes de sécurité extérieure protègent les données et les programmes enregistrés dans l'ordinateur contre des accès non autorisés et des erreurs de manipulation[25]. Le système d'exploitation empêche la lecture par des personnes non autorisées, la falsification, la suppression de données, ainsi que l'utilisation non autorisée de périphériques[25].

Plusieurs programmes sont exécutés en même temps et utilisent simultanément la mémoire centrale[21]. Si un processus modifie - accidentellement ou intentionnellement - un emplacement de mémoire utilisée par un autre processus, il met celui-ci en danger[21]. Si il modifie un emplacement utilisé par le système d'exploitation il met en danger l'ensemble du système informatique[21].

Pour éviter tel incident, le système d'exploitation réserve à chaque programme un espace d'adressage - un emplacement en mémoire que seul le programme en question peut manipuler[21]. Le système d'exploitation détecte toute tentative d'accès en dehors de l'espace d'adressage et provoque l'arrêt immédiat du programme qui tente d'effectuer telles opérations[21].

[78]

[79]

Histoire modifier

[80]

L'histoire des systèmes d'exploitation est liée à l'histoire des ordinateurs en général.

Les premières générations d'ordinateurs, des années 1945 à 1955 ne comportaient pas de système d'exploitation. Dans ces ordinateurs équipés de tubes à vide, les programmes manipulaient les ressources matérielles de l'ordinateur sans passer par un intermédiaire[13]. L'ordinateur était utilisé par une seule personne à la fois: la tâche de l'opérateur consistait à placer des piles de cartes perforées dans le lecteur, où chaque carte comportait des instructions d'un programme ou des données[13]. Les ordinateurs à tube à vide de cette génération n'avaient qu'une faible puissance de calcul, ils étaient volumineux peu commodes et peu fiables (les tubes à vide grillaient souvent)[13].

Dans les années 1960, avec l'arrivée des circuits électroniques à semi-conducteurs, la puissance de calcul des processeurs a augmenté de manière significative[13]. Ce qui a permis la réalisation de systèmes d'exploitation rudimentaires: Les ordinateurs ont été équipés d'un spooler - file d'attente permettant d'utiliser la puissance de calcul du processeur pendant que l'opérateur introduit les cartes. L'utilisation des ressources matérielles par les programmes se faisaient alors par l'intermédiaire d'une bibliothèque logicielle[13]. Il a alors été possible de placer en mémoire plusieurs programmes simultanément et les exécuter simultanément; un programme dit resident monitor résidait continuellement dans la mémoire centrale et contrôlait l'exécution des différents programmes[13].

Dès 1980, les circuits électroniques à transistor ont été remplacés par des circuits intégrés, plus petits, ce qui a permis de réaliser des appareils plus compacts et moins coûteux et lancé le marché des ordinateurs personnels. De nombreux concepteurs de système d'exploitation qui se sont lancés sur ce marché n'avaient pas d'expérience, ce qui a donné de nouveaux produits, basés sur des nouvelles idées, sans héritage ou influence de ce qui se faisait jusqu'alors[13]. CP/M, mis sur le marché en 1974, a été le premier système d'exploitation pour micro-ordinateur, son caractère très sympathique, facile à aborder et commode (user-friendly) l'a rendu très populaire et influencé le marché des systèmes d'exploitation[13].

Les premiers systèmes d'exploitation pour ordinateur personnels étaient prévus pour exécuter un seul programme à la fois, au service d'un seul usager. Puis les systèmes d'exploitation XENIX et OS/2 ont apporté aux ordinateurs personnels les fonctions de temps partagé et d'utilisation simultanée par plusieurs personnes. Plus tard l'ajout d'une interface graphique a facilité la prise en main de ces produits.

construction modifier

[81]

un système d'exploitation est un logiciel étendu et complexe, qui offre de nombreuses fonctions. Il est construit comme une suite de modules, chacun ayant une fonction déterminée[27]. Les principes qui régissent l'organisation des différents modules sont l'organisation par couches, le kernel, le principe des machines virtuelles et la construction client-serveur[27].

Un système d'exploitation est essentiellement événementiel - il est exécuté lorsque quelque chose s'est passé. Typiquement lors d'un appel système, une interruption matérielle ou une erreur[28].

organisation par couches

Le principe de la répatition par couches est que chaque module d'une couche donnée utilise uniquement des fonctions offertes par les modules qui se trouve dans la couche au dessous[27].

kernel

le kernel est la partie du système d'exploitation qui fait l'interface avec le matériel.

Le kernel est la pièce centrale du système d'exploitation[29]. C'est le premier programme chargé en mémoire et il y reste en permanence - ces services sont utilisés continuellement[29]. Il réside généralement dans un emplacement protégé de mémoire vive, qui ne peut pas être modifié ni exploité par les autres programmes[29]. C'est un composant critique: Si le kernel tombe en panne, l'ordinateur tombe en panne, tandis que si un autre programme tombe en panne, le système d'exploitation reste opérationnel[29]. Il offre typiquement des fonctions pour créer ou détruire des processus - exécuter des programmes, diriger l'utilisation du processeur, de la mémoire et des périphériques. Il offre également les fonctions qui permettent aux programmes de communiquer entre eux et de s'aligner dans le temps (synchronisation)[27].


machines virtuelles

Le principe des machines virtuelles, est que le système d'exploitation créé l'illusion qu'il existe plusieurs machines, aux capacités étendues, en utilisant une seule machine aux capacités plus limitées[27]. Le cœur du système d'exploitation est un moniteur qui crée les illusions - machine virtuelle -. Les caractéristiques techniques de ces machines virtuelles sont identiques à celle de la machine réellement utilisée et celles-ci peuvent être utilisées pour exécuter un autre système d'exploitation[27].

client-serveur

Dans une construction client-serveur, le cœur du système d'exploitation a pour seule fonction d'assurer la communication entre les modules[27]. Le système d'exploitation est divisé en nombreux petits modules qui sont exécutés de la même manière que des logiciels applicatifs. Cette construction est bien adaptée aux systèmes d'exploitation distribués.[27]

[82]

La conception d'un système d'exploitation est un compromis entre l'efficacité et la commodité; il est adapté à l'environnement dans lequel l'ordinateur va être utilisé. Il existe de nombreux compromis différents. A un extrême se trouvent les systèmes qui fournissent les services les plus rapides possibles, et à l'autre se trouvent ceux qui fournissent les services les plus commodes et les moins coûteux.

Durant les débuts de l'informatique le matériel informatique coûtait très cher. Les systèmes d'exploitation visaient avant tout l'efficacité, et la commodité était réduite au strict nécessaire - tel que pouvoir exécuter un programme écrit dans un langage de programmation de haut niveau. L'utilisation des premiers ordinateurs était compliquée et nécessitait beaucoup de formation, ce qui était toutefois acceptable du fait que la plupart des usagers étaient des scientifiques et des ingénieurs. Plus tard des interfaces utilisateur plus faciles ont été développées dans le but de pouvoir être utilisées par d'autres catégories de personnes.

[83]

monolithique

Dans une construction monolithique, le système d'exploitation est composé d'un seul programme: le kernel. Celui-ci est typiquement organisé en couches[30]. La construction monolithique est la plus courante, appliquée à la plupart des Unix[29].

en couches

Dans l'organisation en couche, chaque pièce de logiciel d'une couche donnée utilise uniquement les fonctions offertes par la couche en dessous de lui[30]. L'organisation en couche n'est pas unique aux systèmes d'exploitation et est couramment appliquée aux logiciels applicatifs[30]. Dans un système d'exploitation, les couche inférieures concernent les périphériques et la mémoire; au dessus desquelles se trouvent les systèmes de fichiers, puis les processus[30].

microkernel

Dans la construction microkernel, le kernel fournis les services minimum[29]: de nombreuses fonctions du système d'exploitation ont été retirées du kernel et sont offertes par des programmes manipulés par le kernel[30]. Des appels de fonction du système d'exploitation ont été remplacées par des envois de message[30]. Dans cette construction le kernel est utilisé principalement pour planifier l'exécution de processus, et pour échanger des messages[30]. AIX, BeOS, Mach, Hurd, MacOS X, Minix et QNX sont en organisation microkernel[29].


appels système

Le kernel étant dans un emplacement protégé, il est impossible pour un logiciel applicatif d'appeler directement ses fonctions[29]. Un mécanisme permet aux logiciels applicatifs de demander des service au système d'exploitation[30]. Il est typiquement mis en oeuvre par une bibliothèque. Celle-ci comporte des fonctions bouchon qui consistent à placer les paramètres selon une convention, puis utiliser une instruction du processeur qui provoque la mise en pause du processus en cours et l'exécution du système d'exploitation[30]. Les fonctions de bouchon s'utilisent comme les fonctions ordinaires d'une bibliothèque[30].


[84]

[85]

La construction hybride ressemble à une construction microkernel, cependant certaines fonction ont été placées dans le noyau pour des raisons d'efficacité[29]. Windows NT, 2000 et XP sont en construction hybride[29].

Et encore modifier

[86]

  1. a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av et aw (en)Jimmy Maher,The Future Was Here: The Commodore Amiga,MIT Press - 2012, (ISBN 9780262300742)
  2. (en)Steven E. Jones,Codename Revolution: The Nintendo Wii Platform,MIT Press, 2012, (ISBN 9780262300537)
  3. a b c d e f g h i j et k (en)Adam Freeman et Steven Sanderson,Pro ASP.NET MVC 3 Framework,Apress - 2011, (ISBN 9781430234043)
  4. a b c d e f g h i j k et l (en)Joey Lott et Danny Patterson,Advanced ActionScript with Design Patterns,Adobe Press - 2007,Modèle:ISNB
  5. a b et c (en)John Ciliberti,ASP.NET MVC 4 Recipes: A Problem-Solution Approach,Apress - 2013, (ISBN 9781430247746)
  6. a b c et d (en)Stephen Walther,ASP.NET MVC Framework Unleashed,Sams Publishing - 2009, (ISBN 9780768689785)
  7. a b et c (en)Colin Yates - Seth Ladd - Marten Deinum - Koen Serneels et Christophe Vanfleteren,Pro Spring MVC: With Web Flow,Apress - 2012, (ISBN 9781430241553)
  8. a b c d e f g h i j k l et m Paul S. Wang,Dynamic Web Programming and HTML5,CRC Press, 2012, (ISBN 9781439871829)
  9. a b c d e f g h i et j Jeremy Keith et Jeffrey Sambells, DOM Scripting: Web Design with JavaScript and the Document Object Model,Apress - 2010, (ISBN 9781430233893)
  10. a b c et d (en)Achyut S. Godbole, Achyut S Godbole Atul Kahate,Web Technologies: Tcp/ip to Internet Application Architectures,Tata McGraw-Hill Education - 2003, (ISBN 9780070472983)
  11. a b c d e f g h i et j (en)C. Xavier,Web Technology & Design,New Age International - 2007, (ISBN 9788122414509)
  12. a b c d e et f (en)Ilia Petrov, Christian Meiler, Udo Mayer,Guide to Web Application and Platform Architectures,Springer - 2004, (ISBN 9783540009474)
  13. a b c d e f g h i j k l et m (en)Godbole,Web Tech,Tata McGraw-Hill Education - 2003, (ISBN 9780070669055) Erreur de référence : Balise <ref> incorrecte : le nom « godbole » est défini plusieurs fois avec des contenus différents.
  14. a b c et d (en)Gary B. Shelly, Mark Frydenberg,Web 2.0: Concepts and Applications,Cengage Learning - 2010, (ISBN 9781439048023)
  15. (en)Karin Breitman - Marco Antonio Casanova - Walt Truszkowski,Semantic Web: Concepts, Technologies and Applications,Springer - 2007, (ISBN 9781846285813)
  16. (en)V.S. Jeure P.S. Gotmare,Web Technology,Technical Publications - 2008, (ISBN 9788184311853)
  17. a b et c (en)P. K. Yuen, V. Lau,Practical Web Technologies,Pearson Education - 2003, (ISBN 9780201750768)
  18. a et b (en)A.A.Puntambekar,Web Technologies,Technical Publications - 2009, (ISBN 9788184316674)
  19. a b c d e f g h i j k l m n o p q r s t u et v I.A.Dhotre,Operating systems,Technical Publications - 2009, (ISBN 9788184316445)
  20. a b c d e et f (en)Jose Garrido, Richard Schlesinger et Kenneth Hoganson,Principles of Modern Operating Systems,Jones & Bartlett Publishers - 2011, (ISBN 9781449626341)
  21. a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af et ag (en)Sibsankar Haldar et Alex A. Aravind,Operating Systems, Pearson Education India - 2010, (ISBN 9788131730225) Erreur de référence : Balise <ref> incorrecte : le nom « haldar » est défini plusieurs fois avec des contenus différents.
  22. a b c d e et f (en),Operating Systems: Principles And Design,PHI Learning Pvt. Ltd. - 2009, (ISBN 9788120338111)
  23. a b c d e f g h i et j (en)Operating Systems,Technical Publications, (ISBN 9788184315622)
  24. a et b Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées choudhury
  25. a b c d e f g h i j k l m et n (en)Balagurusamy,Fund Of Computers, Tata McGraw-Hill Education, (ISBN 9780070141605)
  26. a b c et d (en)Operating Systems, Technical Publications, (ISBN 9788184314915)
  27. a b c d e f g et h (en)Operating Systems: Principles And Design,PHI Learning Pvt. Ltd., 2009, (ISBN 9788120338111)
  28. (en)Michael Kifer, Scott Smolka,Introduction to Operating System Design and Implementation: The OSP 2 Approach, Springer Science & Business Media - 2007, (ISBN 9781846288432)
  29. a b c d e f g h i et j (en)Er. Vivek Sharma - Er. Manish Varshney et Shantanu Sharma,Design and Implementation of Operating System,Laxmi Publications, Ltd. - 2010, (ISBN 9789380386416)
  30. a b c d e f g h i et j (en)Brian L. Stuart,Principles of Operating Systems: Design & Applications,Cengage Learning EMEA - 2008, (ISBN 9781418837693)