Un système d’exploitation orienté objet est un système d’exploitation conçu, structuré et exploité à l’aide de principes de programmation orientée objet .
Un système d'exploitation orienté objet s'oppose à une interface utilisateur ou à un cadre de programmation orienté objet , qui peut être exécuté sur un système d'exploitation non orienté objet comme DOS ou Unix .
Il existe déjà des concepts de langage basés sur les objets utilisés dans la conception d'un système d'exploitation plus classique tel qu'Unix . Bien qu'un langage plus traditionnel comme C ne prenne pas en charge l'orientation objet aussi facilement que les langages plus récents, la notion de fichier , de flux ou de pilote de périphérique (sous Unix, chacun étant représenté par un descripteur de fichier ) peut être considérée comme un bon exemple d'objet. Il s'agit, après tout, de types de données abstraits , avec diverses méthodes sous forme d' appels système dont le comportement varie en fonction du type d'objet et dont les détails d'implémentation sont cachés à l'appelant.
L'orientation objet a été définie comme objets + héritage , et l'héritage n'est qu'une approche du problème plus général de délégation qui se produit dans chaque système d'exploitation. L'orientation objet a été plus largement utilisée dans les interfaces utilisateur des systèmes d'exploitation que dans leurs noyaux .
Arrière-plan
Un objet est une instance d'une classe, qui fournit un certain ensemble de fonctionnalités. Deux objets peuvent être différenciés en fonction des fonctionnalités (ou méthodes) qu'ils prennent en charge. Dans le contexte d'un système d'exploitation, les objets sont associés à une ressource. Historiquement, les principes de conception orientés objet ont été utilisés dans les systèmes d'exploitation pour fournir plusieurs mécanismes de protection.
Les mécanismes de protection d'un système d'exploitation permettent de séparer clairement les différents programmes utilisateur. Ils protègent également le système d'exploitation de tout comportement malveillant des programmes utilisateurs. Prenons par exemple le cas des profils utilisateur dans un système d'exploitation. L'utilisateur ne doit pas avoir accès aux ressources d'un autre utilisateur. Le modèle objet gère ces problèmes de protection en faisant en sorte que chaque ressource agisse comme un objet. Chaque objet ne peut effectuer qu'un ensemble d'opérations. Dans le contexte des profils utilisateur, l'ensemble des opérations est limité par le niveau de privilège d'un utilisateur.
Les systèmes d’exploitation actuels utilisent des principes de conception orientés objet pour de nombreux composants du système, notamment la protection.
Exemples
- Athéna
- Athene est un système d'exploitation basé sur les objets, publié pour la première fois en 2000 par Rocklyte Systems. L'environnement utilisateur a été entièrement construit à partir d'objets liés entre eux au moment de l'exécution. Les applications pour Athene pouvaient également être créées à l'aide de cette méthodologie et étaient généralement scriptées à l'aide du langage de script objet Dynamic Markup Language (DML). Les objets auraient pu être partagés entre les processus en les créant dans la mémoire partagée et en les verrouillant selon les besoins pour l'accès. Le framework objet d'Athene était multiplateforme, ce qui lui permettait d'être utilisé dans les environnements Windows et Linux pour développer des programmes orientés objet. La société a fait faillite et le projet a été abandonné en 2009.
- BeOS
- BeOS était un système d'exploitation orienté objet sorti en 1995, qui utilisait des objets et le langage C++ pour l' interface de programmation d'application (API). Le noyau était écrit en C avec des wrappers C++ dans l'espace utilisateur. Le système d'exploitation n'a pas été utilisé par le grand public et s'est avéré commercialement non viable, mais il a été utilisé et développé en continu par une petite communauté de passionnés.
- Choix
- Choices est un système d'exploitation orienté objet développé à l' Université de l'Illinois à Urbana-Champaign . Il est écrit en C++ et utilise des objets pour représenter les composants principaux du noyau comme l' unité centrale de traitement (CPU), les processus , etc. L'héritage est utilisé pour séparer le noyau en classes portables indépendantes de la machine et en petites classes dépendantes non portables. Choices a été porté et fonctionne sur SPARC , x86 et ARM .
- ETHOS
- ETHOS était une version expérimentale orientée objet du système Oberon (voir ci-dessous) créée par Clemens Szyperski pour sa thèse de doctorat écrite dans Oberon-2
- GÉOS
- PC/GEOS est un système d'exploitation graphique multitâche léger et orienté objet, doté d'une gestion sophistiquée des fenêtres et du bureau et de polices de caractères évolutives. Il est principalement écrit en langage assembleur x86 orienté objet et en C/C++ et est conçu pour fonctionner sous DOS (similaire à Microsoft Windows jusqu'à Windows Me ). GEOS a été développé à l'origine par Berkeley Softworks en 1990, qui est ensuite devenu GeoWorks Corporation, et il est toujours maintenu par BreadBox Computer Company. Les suites logicielles associées ont été nommées Ensemble et New Deal Office . Des adaptations existent pour divers ordinateurs de poche et systèmes 32 bits avec des processeurs non x86.
- Haïku
- Haiku (initialement nommé OpenBeOS ), est un remplaçant open source de BeOS. Il a atteint sa première étape de développement en septembre 2009 avec la sortie de Haiku R1/Alpha 1. La distribution x86 est compatible avec BeOS au niveau source et binaire. Comme BeOS, il est écrit principalement en C++ et fournit une API orientée objet. Il est activement développé.
- IBM i (OS/400, i5/OS)
- IBM a lancé OS/400 en 1988. Ce système d'exploitation fonctionnait exclusivement sur la plateforme AS/400 . Rebaptisé IBM i en 2008, ce système d'exploitation fonctionne exclusivement sur les systèmes Power qui peuvent également exécuter AIX et Linux . IBM i utilise une méthodologie orientée objet et intègre une base de données ( Db2 pour i ). Le système d'exploitation IBM i possède un identifiant unique de 128 bits pour chaque objet.
- IBM OS/2 2.0
- Le premier système d'exploitation graphique multitâche préemptif basé sur les priorités d'IBM, basé sur Windows, comprenait un shell utilisateur orienté objet. Il a été conçu pour l'Intel 80386 qui utilisait le mode 8086 virtuel avec un support 32 bits complet et a été publié en 1992. ArcaOS , un nouveau système d'exploitation basé sur OS/2 initialement appelé Blue Lion est développé par Arca Noae. La première version est sortie en mai 2017.
- IBM TopView
- TopView était un environnement d'exploitation orienté objet qui se chargeait sur un PC sous DOS, puis prenait le contrôle de DOS. À ce stade, il est devenu un système d'exploitation orienté objet avec une API orientée objet (API TopView). Il s'agissait du premier système d'exploitation multitâche, basé sur des fenêtres et orienté objet d'IBM pour PC, dirigé par David C. Morrill et sorti en février 1985.
- Basé sur Java
- Étant donné que le langage Java d'Oracle (anciennement Sun Microsystems ) est aujourd'hui l'un des langages orientés objet les plus répandus, il n'est pas surprenant que des systèmes d'exploitation basés sur Java aient été tentés. Dans ce domaine, idéalement, le noyau devrait être constitué du strict minimum nécessaire pour prendre en charge une machine virtuelle Java (JVM). C'est le seul composant d'un tel système d'exploitation qui devrait être écrit dans un langage autre que Java. Construit sur la JVM et le support matériel de base, il serait possible d'écrire le reste du système d'exploitation en Java ; même des parties du système qui sont plus traditionnellement écrites dans un langage de niveau inférieur tel que C, par exemple les pilotes de périphériques , peuvent être écrites en Java.
- Parmi les exemples de tentatives d'un tel système d'exploitation, on peut citer JavaOS , JOS, JNode et JX .
- Basé sur Lisp
- Un système d'exploitation orienté objet écrit en dialecte Lisp Lisp Machine Lisp (et plus tard Common Lisp ) a été développé au MIT. Il a été commercialisé avec les machines Lisp de Symbolics , Lisp Machines Inc. et Texas Instruments . Symbolics a appelé son système d'exploitation Genera . Il a été développé avec l' extension orientée objet Flavors de Lisp, puis avec New Flavors, puis avec le Common Lisp Object System (CLOS).
- Xerox a développé plusieurs stations de travail avec un système d'exploitation écrit en Interlisp-D . Interlisp-D fournit des extensions orientées objet comme LOOPS et CLOS.
- Movitz et Mezzano sont deux tentatives plus récentes de systèmes d'exploitation écrits en Common Lisp.
- Médos-2
- Medos-2 est un système d'exploitation mono-utilisateur, orienté objet, conçu pour la gamme de stations de travail Lilith (processeur : Advanced Micro Devices (AMD) 2901 ), développé au début des années 1980 à l'ETH Zurich par Svend Erik Knudsen avec les conseils de Niklaus Wirth . Il est entièrement construit à partir de modules du langage de programmation Modula-2 . Il a été remplacé à l'ETH Zurich par le système Oberon , et une variante nommée Excelsior a été développée pour la station de travail Kronos , par l' Académie des sciences de l'Union soviétique , branche sibérienne, Centre de calcul de Novossibirsk , projet de systèmes modulaires asynchrones développables (MARS), Groupe de recherche Kronos (KRG).
- Singularité Microsoft
- Singularity est un système d'exploitation expérimental basé sur le framework .NET de Microsoft . Il est comparable aux systèmes d'exploitation basés sur Java.
- Microsoft Windows NT
- Windows NT est une famille de systèmes d'exploitation (comprenant Windows 7 , 8 , Phone 8 , 8.1 , Windows 10 , 10 Mobile , Windows 11 et Xbox ) produite par Microsoft , dont la première version est sortie en juillet 1993. Il s'agit d'un système d'exploitation multi-utilisateur , multiprocesseur , basé sur un langage de programmation de haut niveau . Il est mieux décrit comme basé sur les objets plutôt qu'orienté sur les objets car il n'inclut pas toutes les propriétés d'héritage des langages orientés objet.
- Le gestionnaire d'objets est chargé de gérer les objets NT. Dans le cadre de cette responsabilité, il gère un espace de noms interne dans lequel divers composants du système d'exploitation, pilotes de périphériques et programmes Win32 peuvent stocker et rechercher des objets. L' API native NT fournit des routines qui permettent aux programmes de l'espace utilisateur (mode) de parcourir l'espace de noms et d'interroger l'état des objets qui s'y trouvent, mais les interfaces ne sont pas documentées. les listes de contrôle d'accès par objet (fichier, fonction et rôle) permettant d'appliquer un ensemble complet d'autorisations de sécurité aux systèmes et aux services. WinObj est un programme Windows NT qui utilise l'API native NT (fournie par NTDLL.DLL) pour accéder aux informations sur l'espace de noms du gestionnaire d'objets NT et les afficher.
- Modèle d'objet de composant
- Du côté du mode utilisateur de Windows, le Component Object Model (COM) est une norme d'interface binaire d'application pour les composants logiciels introduite par Microsoft en 1993. Il est utilisé pour permettre la communication interprocessus et la création d'objets dynamiques dans un large éventail de langages de programmation . COM est la base de plusieurs autres technologies et cadres Microsoft, notamment Object Linking and Embedding (OLE), OLE Automation , ActiveX , COM+ , Distributed Component Object Model (DCOM), le shell Windows , DirectX et Windows Runtime . OLE est une technologie propriétaire développée par Microsoft qui permet l'incorporation et la liaison à des documents et à d'autres objets. Sur le plan technique, un objet OLE est tout objet qui implémente l' interface IOleObject , éventuellement avec un large éventail d'autres interfaces, selon les besoins de l'objet. Son utilisation principale est la gestion de documents composés , mais il est également utilisé pour transférer des données entre différentes applications à l'aide d'opérations de glisser-déposer et de presse-papiers .
- Format binaire de fichier composé
- Le format CFBF (Compound File Binary Format ) est un format de fichier permettant de stocker de nombreux fichiers et flux dans un seul fichier sur un disque. Le CFBF est développé par Microsoft et est une implémentation de Microsoft COM Structured Storage . Le stockage structuré est largement utilisé comme format de fichier principal dans les applications Microsoft Office, notamment Microsoft Word , Microsoft Excel , Microsoft PowerPoint, Microsoft Access et constitue la base du format Advanced Authoring Format .
- Liaison et incorporation d'objets
- L'OLE (Object Linking and Embedding) faisait partie d'un plan plus vaste appelé Cairo , le nom de code d'un projet mené par Microsoft de 1991 à 1996. Son objectif était de créer des technologies pour un système d'exploitation de nouvelle génération qui répondrait à la vision de Bill Gates de « l'information au bout des doigts ». Cairo n'a jamais commercialisé , bien certaines parties de ses technologies soient apparues depuis dans d'autres produits. L' interface utilisateur graphique de Windows 95 était basée sur le travail de conception initial effectué sur l'interface utilisateur Cairo. Le composant restant est le système de fichiers basé sur les objets . Il était prévu qu'il soit implémenté sous la forme de Windows Future Storage ( WinFS ) dans le cadre de Windows Vista . WinFS est le nom de code d'un projet de système de stockage et de gestion de données basé sur des bases de données relationnelles , exécuté sur le système de fichiers Windows NT ( NTFS ), qui est orienté objet dans le sens où il peut stocker les objets NT, y compris son identifiant d'objet NT. Chaque objet NTFS possède un identifiant d'objet ; un raccourci avec une cible qui se trouve sur un volume NTFS enregistre également l'identifiant d'objet de la cible du raccourci et l'identifiant d'objet du lecteur. WinFS a été présenté pour la première fois en 2003 comme un sous-système de stockage avancé pour le système d'exploitation Microsoft Windows , conçu pour la persistance et la gestion des données structurées , semi-structurées et non structurées . Le développement de WinFS a été annulé en juin 2006, certaines de ses technologies ayant été fusionnées dans d'autres produits Microsoft tels que Microsoft SQL Server 2008 et Microsoft SharePoint . Il a été confirmé par la suite dans une interview avec Bill Gates que Microsoft prévoyait de migrer des applications comme Windows Media Player , Windows Photo Gallery , Microsoft Office Outlook , etc., pour utiliser WinFS comme back-end de stockage de données.
- Étape suivante
- À la fin des années 1980, Steve Jobs fonde la société informatique NeXT . L'une des premières tâches de NeXT fut de concevoir un système d'exploitation orienté objet, NeXTSTEP . Pour ce faire, ils ajoutèrent un framework orienté objet sur Mach et BSD en utilisant le langage Objective-C comme base. Il atteignit un statut de niche sur le marché informatique, notamment utilisé par Tim Berners-Lee pour développer la première implémentation du World Wide Web .
- NeXTStep a ensuite évolué vers OpenStep et l' API Cocoa sur macOS et iOS ( iPadOS , watchOS ).
- OpenStep a été fourni en tant que couche API sur de nombreux systèmes d'exploitation, à savoir HP-UX , NextStep, Solaris et Windows.
- Système Obéron
- Oberon System est un système d'exploitation mono-utilisateur, orienté objet, conçu pour la gamme de stations de travail Ceres (processeur : National Semiconductor NS32000 ), développé à la fin des années 1980 à l'ETH Zurich par Niklaus Wirth et Jürg Gutknecht . Il est entièrement construit à partir de modules du langage de programmation Oberon . Il existe deux successeurs d'Oberon System, ETHOS (voir ci-dessus) et, en 2023 toujours maintenue, une évolution nommée Active Object System (AOS), alors renommée Bluebottle , puis renommée A2 .
- OÙMOS
- Le système d'exploitation à machine d'état orientée objet (OOSMOS), écrit en C, favorise l'encapsulation orientée objet et implémente une architecture de machine d'état hiérarchique entièrement pilotée par table. Il génère du code C directement à partir de diagrammes d'état dessinés avec l'outil open source UMLet . OOSMOS prend également en charge une fonctionnalité unique appelée « threads d'état » qui permet un thread d'exécution par état. OOSMOS fonctionne sur une carte nue ou en coopération avec un système d'exploitation existant.
- Système d'exploitation fantôme
- Phantom OS adhère au principe selon lequel « tout est un objet » et élimine entièrement le concept de fichier, conservant à la place de manière transparente la mémoire virtuelle dans le stockage.
- ReactOS
- ReactOS est un système d'exploitation open source destiné à être compatible binairement avec les logiciels d'application et les pilotes de périphériques conçus pour les versions Microsoft Windows NT. Écrit de toutes pièces, il vise à suivre l' architecture de Windows NT conçue par Microsoft du niveau matériel jusqu'au niveau applicatif. Ce n'est pas un système basé sur Linux et ne partage aucune architecture Unix .
- Petite conversation
- Smalltalk a été inventé chez Xerox dans les années 1970. Le système Smalltalk est entièrement orienté objet et nécessite très peu de support de la part du BIOS et du système d'exécution .
- Syllabe
- Syllable utilise largement C++ et pour cette raison est souvent comparé à BeOS .
- Symbolique Genre
- Genera from Symbolics est un système d'exploitation pour machines Lisp écrit en ZetaLisp et Symbolics Common Lisp . Il utilise abondamment Flavors (une des premières extensions orientées objet de Lisp) et le Common Lisp Object System (CLOS). Le développement a commencé au milieu des années 70 au MIT.
- Talentueux
- Taligent était un projet de système d'exploitation orienté objet, lancé par Apple Inc. et développé conjointement avec IBM dans les années 1990. Il a ensuite été cédé à une filiale d'IBM et transformé d'un système d'exploitation en un environnement de programmation.