stringtranslate.com

Sistema operativo orientado a objetos

Un sistema operativo orientado a objetos [1] es un sistema operativo que está diseñado, estructurado y operado utilizando principios de programación orientada a objetos .

Un sistema operativo orientado a objetos contrasta con una interfaz de usuario o un marco de programación orientado a objetos , que pueden ejecutarse en un sistema operativo no orientado a objetos, como DOS o Unix .

Ya existen conceptos de lenguaje basados ​​en objetos que intervienen en el diseño de un sistema operativo más típico, como Unix . Si bien un lenguaje más tradicional como C no admite la orientación a objetos de manera tan fluida como los lenguajes más recientes, la noción de, por ejemplo, un archivo , un flujo o un controlador de dispositivo (en Unix, cada uno representado como un descriptor de archivo ) puede considerarse un buen ejemplo de objetos. Después de todo, son tipos de datos abstractos , con varios métodos en forma de llamadas al sistema cuyo comportamiento varía según el tipo de objeto y cuyos detalles de implementación están ocultos al llamador.

La orientación a objetos se ha definido como objetos + herencia , y la herencia es solo un enfoque al problema más general de delegación que ocurre en cada sistema operativo. [2] La orientación a objetos se ha utilizado más ampliamente en las interfaces de usuario de los sistemas operativos que en sus núcleos .

Fondo

Un objeto es una instancia de una clase que proporciona un conjunto determinado de funcionalidades. Se pueden diferenciar dos objetos en función de las funcionalidades (o métodos) que admiten. En el contexto de un sistema operativo, los objetos están asociados a un recurso. Históricamente, los principios de diseño orientado a objetos se utilizaban en los sistemas operativos para proporcionar varios mecanismos de protección. [1]

Los mecanismos de protección de un sistema operativo ayudan a proporcionar una separación clara entre los distintos programas de usuario. También protegen al sistema operativo de cualquier comportamiento malicioso de los programas de usuario. Por ejemplo, considere el caso de los perfiles de usuario en un sistema operativo. El usuario no debería tener acceso a los recursos de otro usuario. El modelo de objetos se ocupa de estos problemas de protección con cada recurso actuando como un objeto. Cada objeto puede realizar solo un conjunto de operaciones. En el contexto de los perfiles de usuario, el conjunto de operaciones está limitado por el nivel de privilegio de un usuario. [1]

Los sistemas operativos actuales utilizan principios de diseño orientados a objetos para muchos componentes del sistema, incluida la protección.

Ejemplos

Atenas
Athene es un sistema operativo basado en objetos lanzado por primera vez en 2000 por Rocklyte Systems. [3] [4] El entorno de usuario se construyó completamente a partir de objetos que se vinculan entre sí en tiempo de ejecución. Las aplicaciones para Athene también se podían crear utilizando esta metodología y, por lo general, se programaban utilizando el lenguaje de programación de objetos Dynamic Markup Language (DML). Los objetos se podían compartir entre procesos creándolos en la memoria compartida y bloqueándolos según fuera necesario para el acceso. El marco de objetos de Athene era multiplataforma, lo que permitía su uso en entornos Windows y Linux para desarrollar programas orientados a objetos. La empresa dejó de funcionar y el proyecto se abandonó en algún momento de 2009.
BeOS
BeOS [5] fue un sistema operativo orientado a objetos lanzado en 1995, que utilizaba objetos y el lenguaje C++ para la interfaz de programación de aplicaciones (API). El núcleo estaba escrito en C con contenedores C++ en el espacio de usuario. El sistema operativo no tuvo un uso generalizado y demostró ser comercialmente inviable, sin embargo, ha sido utilizado y desarrollado continuamente por una pequeña comunidad de entusiastas.
Opciones
Choices es un sistema operativo orientado a objetos desarrollado en la Universidad de Illinois en Urbana–Champaign . [6] [7] Está escrito en C++ y utiliza objetos para representar componentes básicos del núcleo, como la unidad central de procesamiento (CPU), procesos , etc. La herencia se utiliza para separar el núcleo en clases independientes de la máquina portables y pequeñas clases dependientes no portables. Choices ha sido portado y se ejecuta en SPARC , x86 y ARM .
CARÁCTER DISTINTIVO
ETHOS fue una versión experimental orientada a objetos del Sistema Oberon (ver más abajo) creado por Clemens Szyperski para su tesis doctoral [8] escrita en Oberon-2.
Geometría
PC/GEOS es un sistema operativo gráfico multitarea orientado a objetos, ligero, con una sofisticada gestión de ventanas y escritorios y fuentes escalables. Está escrito principalmente en un dialecto de lenguaje ensamblador x86 orientado a objetos y algo de C/C++ y está diseñado para ejecutarse en DOS (similar a Microsoft Windows hasta Windows Me ). GEOS fue desarrollado originalmente por Berkeley Softworks en 1990, que luego se convirtió en GeoWorks Corporation, y continúa siendo mantenido por BreadBox Computer Company. Las suites de software relacionadas se denominaron Ensemble y New Deal Office . Existen adaptaciones para varios palmtops y sistemas de 32 bits con CPU que no sean x86.
Haiku
Haiku (originalmente llamado OpenBeOS ) es un reemplazo de código abierto para BeOS. Alcanzó su primer hito de desarrollo en septiembre de 2009 con el lanzamiento de Haiku R1/Alpha 1. La distribución x86 es compatible con BeOS tanto a nivel de código fuente como binario. Al igual que BeOS, está escrito principalmente en C++ y proporciona una API orientada a objetos. Se desarrolla activamente.
IBM i (OS/400, i5/OS)
IBM presentó el sistema operativo OS/400 en 1988. Este sistema operativo se ejecutaba exclusivamente en la plataforma AS/400 . En 2008, este sistema operativo pasó a llamarse IBM i y se ejecuta exclusivamente en sistemas Power que también pueden ejecutar AIX y Linux . IBM i utiliza una metodología orientada a objetos e integra una base de datos ( Db2 para i ). El sistema operativo IBM i tiene un identificador único de 128 bits para cada objeto.
Sistema operativo IBM OS/2 2.0
El primer sistema operativo gráfico multitarea preventivo basado en Windows de IBM, basado en prioridades, incluía un shell de usuario orientado a objetos. Fue diseñado para el Intel 80386 que utilizaba el modo 8086 virtual con soporte completo de 32 bits y fue lanzado en 1992. ArcaOS , un nuevo sistema operativo basado en OS/2 inicialmente llamado Blue Lion [9] , está siendo desarrollado por Arca Noae. La primera versión fue lanzada en mayo de 2017.
Vista superior de IBM
TopView era un entorno operativo orientado a objetos que se cargaba en un PC con DOS y luego tomaba el control del DOS. En ese momento se convirtió en un sistema operativo orientado a objetos con una API orientada a objetos (API de TopView). Fue el primer sistema operativo multitarea, basado en ventanas y orientado a objetos de IBM para PC, dirigido por David C. Morrill y lanzado en febrero de 1985.
Basado en Java
Dado que Java, de Oracle (anteriormente Sun Microsystems ) , es hoy uno de los lenguajes orientados a objetos más dominantes, no sorprende que se hayan intentado crear sistemas operativos basados ​​en Java. En este ámbito, lo ideal sería que el núcleo constara del mínimo indispensable para dar soporte a una máquina virtual Java (JVM). Este es el único componente de un sistema operativo de este tipo que tendría que estar escrito en un lenguaje distinto de Java. Basado en la JVM y en el soporte básico de hardware, sería posible escribir el resto del sistema operativo en Java; incluso partes del sistema que tradicionalmente se escriben en un lenguaje de nivel inferior como C, por ejemplo, los controladores de dispositivos , se pueden escribir en Java.
Algunos ejemplos de intentos de crear un sistema operativo de este tipo son JavaOS , JOS, [10] JNode y JX .
Basado en Lisp
Un sistema operativo orientado a objetos escrito en el dialecto Lisp Lisp Machine Lisp (y más tarde Common Lisp ) fue desarrollado en el MIT. Fue comercializado con máquinas Lisp de Symbolics , Lisp Machines Inc. y Texas Instruments . Symbolics llamó a su sistema operativo Genera . Fue desarrollado con la extensión orientada a objetos Flavors de Lisp, luego con New Flavors y luego con Common Lisp Object System (CLOS).
Xerox desarrolló varias estaciones de trabajo con un sistema operativo escrito en Interlisp-D . Interlisp-D proporcionaba extensiones orientadas a objetos como LOOPS y CLOS.
Movitz y Mezzano son dos intentos más recientes de sistemas operativos escritos en Common Lisp.
Medos-2
Medos-2 es un sistema operativo monousuario, orientado a objetos, creado para la línea de estaciones de trabajo Lilith (procesador: Advanced Micro Devices (AMD) 2901 ), desarrollado a principios de los años 1980 en la ETH de Zúrich por Svend Erik Knudsen con el asesoramiento de Niklaus Wirth . Está construido enteramente a partir de módulos del lenguaje de programación Modula-2 . [11] [12] [13] Fue sucedido en la ETH de Zúrich por el sistema Oberon , y una variante llamada Excelsior fue desarrollada para la estación de trabajo Kronos , por la Academia de Ciencias de la Unión Soviética , rama siberiana, Centro de Computación de Novosibirsk , proyecto Modular Asynchronous Developable Systems (MARS), Grupo de Investigación Kronos (KRG). [14]
Singularidad de Microsoft
Singularity es un sistema operativo experimental basado en .NET Framework de Microsoft . Es comparable a los sistemas operativos basados ​​en Java.
Microsoft Windows NT
Windows NT es una familia de sistemas operativos (que incluye Windows 7 , 8 , Phone 8 , 8.1 , Windows 10 , 10 Mobile , Windows 11 y Xbox ) producidos por Microsoft , cuya primera versión se lanzó en julio de 1993. Es un sistema operativo multiusuario , multiprocesamiento , independiente del procesador y basado en lenguajes de programación de alto nivel . Se describe mejor como basado en objetos en lugar de orientado a objetos, ya que no incluye las propiedades de herencia completas de los lenguajes orientados a objetos. [15]
El Administrador de objetos se encarga de administrar los objetos de NT. Como parte de esta responsabilidad, mantiene un espacio de nombres interno donde varios componentes del sistema operativo, controladores de dispositivos y programas Win32 pueden almacenar y buscar objetos. La API nativa de NT proporciona rutinas que permiten a los programas de espacio de usuario (modo) explorar el espacio de nombres y consultar el estado de los objetos ubicados allí, pero las interfaces no están documentadas. [16] NT admite listas de control de acceso por objeto (archivo, función y rol), lo que permite aplicar un amplio conjunto de permisos de seguridad a los sistemas y servicios. WinObj es un programa de Windows NT que utiliza la API nativa de NT (proporcionada por NTDLL.DLL) para acceder y mostrar información sobre el espacio de nombres del Administrador de objetos de NT. [17]
Modelo de objeto componente
En el lado del modo de usuario de Windows, el Modelo de objetos componentes (COM) es un estándar de interfaz binaria de aplicación para componentes de software introducido por Microsoft en 1993. Se utiliza para permitir la comunicación entre procesos y la creación dinámica de objetos en una amplia gama de lenguajes de programación . COM es la base de varias otras tecnologías y marcos de Microsoft, incluidos Object Linking and Embedding (OLE), OLE Automation , ActiveX , COM+ , Distributed Component Object Model (DCOM), el shell de Windows , DirectX y Windows Runtime. OLE es una tecnología patentada desarrollada por Microsoft que permite incrustar y vincular documentos y otros objetos . A nivel técnico , un objeto OLE es cualquier objeto que implementa la interfaz IOleObject , posiblemente junto con una amplia gama de otras interfaces, según las necesidades del objeto. Su uso principal es para administrar documentos compuestos , pero también se utiliza para transferir datos entre diferentes aplicaciones mediante operaciones de arrastrar y soltar y portapapeles .
Formato binario de archivo compuesto
El formato binario de archivo compuesto (CFBF) es un formato de archivo para almacenar muchos archivos y secuencias dentro de un archivo en un disco. CFBF es desarrollado por Microsoft y es una implementación de Microsoft COM Structured Storage . El almacenamiento estructurado se usa ampliamente como formato de archivo principal en aplicaciones de Microsoft Office, incluidas Microsoft Word , Microsoft Excel , Microsoft PowerPoint, Microsoft Access y es la base de Advanced Authoring Format .
Vinculación e incrustación de objetos
Object Linking and Embedding (OLE) era parte de un plan más grande llamado Cairo , el nombre en código de un proyecto en Microsoft de 1991 a 1996. Su objetivo era construir tecnologías para un sistema operativo de próxima generación que cumpliera la visión de Bill Gates de " información al alcance de la mano ". [18] [19] Cairo nunca se lanzó , aunque partes de sus tecnologías han aparecido desde entonces en otros productos. La interfaz gráfica de usuario de Windows 95 se basó en el trabajo de diseño inicial que se realizó en la interfaz de usuario de Cairo. El componente restante es el sistema de archivos basado en objetos . Alguna vez se planeó implementarlo en forma de Windows Future Storage ( WinFS ) como parte de Windows Vista . WinFS es el nombre en código del proyecto de sistema de almacenamiento y administración de datos basado en bases de datos relacionales , que se ejecuta en el sistema de archivos de Windows NT ( NTFS ), que está orientado a objetos en el sentido de que puede almacenar los objetos NT, incluido su identificador de objeto NT. Cada objeto NTFS tiene un identificador de objeto; Un acceso directo con un destino que está en un volumen NTFS también registra el identificador de objeto del destino del acceso directo y el identificador de objeto de la unidad. [20] WinFS se demostró por primera vez en 2003 como un subsistema de almacenamiento avanzado para el sistema operativo Microsoft Windows , diseñado para la persistencia y la gestión de datos estructurados , semiestructurados y no estructurados . El desarrollo de WinFS se canceló en junio de 2006, y algunas de sus tecnologías se fusionaron con otros productos de Microsoft, como Microsoft SQL Server 2008 y Microsoft SharePoint . Posteriormente se confirmó en una entrevista con Bill Gates que Microsoft planeaba migrar aplicaciones como Windows Media Player , Windows Photo Gallery , Microsoft Office Outlook , etc., para usar WinFS como back-end de almacenamiento de datos. [21]
Siguiente paso
A finales de los años 1980, Steve Jobs fundó la empresa informática NeXT . Una de las primeras tareas de NeXT fue diseñar un sistema operativo orientado a objetos, NeXTSTEP . Lo hicieron añadiendo un marco orientado a objetos sobre Mach y BSD utilizando el lenguaje Objective-C como base. Alcanzó un estatus de nicho en el mercado informático, utilizado en particular por Tim Berners-Lee al desarrollar la primera implementación de la World Wide Web .
Posteriormente, NeXTStep evolucionó a OpenStep y la API Cocoa en macOS e iOS ( iPadOS , watchOS ).
OpenStep se proporcionó como una capa de API en muchos sistemas operativos, a saber, HP-UX , NextStep, Solaris y Windows.
Sistema Oberón
Oberon System es un sistema operativo orientado a objetos para un solo usuario creado para la línea de estaciones de trabajo Ceres (procesador: National Semiconductor NS32000 ), desarrollado a finales de la década de 1980 en la ETH de Zúrich por Niklaus Wirth y Jürg Gutknecht . Está construido completamente a partir de módulos del lenguaje de programación Oberon . [22] Hay dos sucesores del Oberon System, ETHOS (ver arriba) y, a partir de 2023 todavía se mantiene, una evolución llamada Active Object System (AOS), [23] luego renombrado Bluebottle , luego renombrado A2 .
OOSMOS
El sistema operativo de máquina de estados orientada a objetos (OOSMOS), escrito en C, promueve la encapsulación orientada a objetos e implementa una arquitectura de máquina de estados jerárquica basada en tablas. Genera código C directamente a partir de diagramas de estados dibujados con la herramienta de código abierto UMLet . OOSMOS también admite una característica única llamada "subprocesos de estado" que permite un subproceso de ejecución por estado. OOSMOS funciona en una placa base o en cooperación con un sistema operativo existente.
Sistema operativo fantasma
Phantom OS se adhiere a un principio donde "todo es un objeto" y elimina por completo el concepto de archivo, persistiendo en cambio de forma transparente la memoria virtual en el almacenamiento.
ReactOS
ReactOS es un sistema operativo de código abierto diseñado para ser compatible a nivel binario con el software de aplicación y los controladores de dispositivos creados para las versiones de Microsoft Windows NT. Escrito desde cero, su objetivo es seguir la arquitectura de Windows NT diseñada por Microsoft desde el nivel de hardware hasta el nivel de aplicación. No es un sistema basado en Linux y no comparte nada de la arquitectura Unix . [24] [25]
Charla informal
Smalltalk fue inventado en Xerox en la década de 1970. El sistema Smalltalk está totalmente orientado a objetos y necesita muy poco soporte por parte del BIOS y del sistema de tiempo de ejecución .
Sílaba
Syllable hace un uso intensivo de C++ y por ese motivo a menudo se lo compara con BeOS .
Simbólicos Géneros
Genera de Symbolics es un sistema operativo para máquinas Lisp escrito en ZetaLisp y Symbolics Common Lisp . Hace un uso intensivo de Flavors (una de las primeras extensiones orientadas a objetos de Lisp) y del Common Lisp Object System (CLOS). El desarrollo comenzó a mediados de los años 70 en el MIT.
Taligente
Taligent fue un proyecto de sistema operativo orientado a objetos, iniciado por Apple Inc. y desarrollado conjuntamente con IBM en la década de 1990. Posteriormente se escindió en una subsidiaria de IBM y se transformó de un sistema operativo a un entorno de programación.

Véase también

Referencias

  1. ^ abc Pashtan, Ariel (1 de enero de 1982). "Sistemas operativos orientados a objetos". Actas de la conferencia ACM '82 sobre - ACM 82 . Association for Computing Machinery (ACM). págs. 126–131. doi :10.1145/800174.809777. ISBN 9780897910859.S2CID 9463966  .
  2. ^ Wegner, Peter (diciembre de 1987). "Dimensiones del diseño de lenguaje basado en objetos". ACM SIGPLAN Notices . 22 (12): 168–182. doi :10.1145/38807.38823.También en Actas de congresos sobre sistemas y lenguajes de programación orientados a objetos.
  3. ^ "El sistema operativo Athene". LWN.net . Consultado el 13 de febrero de 2017 .
  4. ^ "Rocklyte Systems". Rocklyte Systems . Archivado desde el original el 2006-11-03 . Consultado el 2007-02-18 .
  5. ^ Sydow, Dan Parks (1999). Programación del sistema operativo Be (1.ª ed.). Pekín: O'Reilly. ISBN 978-1-56592-467-3.
  6. ^ Campbell, Roy; Johnston, Garry; Russo, Vincent (1 de julio de 1987). "Opciones (Interfaz abierta jerárquica de clases para sistemas integrados personalizados)". ACM SIGOPS Operating Systems Review . 21 (3): 9–17. doi : 10.1145/29321.29323 . ISSN  0163-5980. S2CID  11935474.
  7. ^ "Opciones". choices.cs.illinois.edu .
  8. ^ Szyperski, Clemens (1992). Insight ETHOS: On Object-Orientation in Operating Systems (PhD). Zúrich, Suiza: ETH Zürich . ISBN 3-7281-1948-2.Colección ETHZ.
  9. ^ "León Azul, de Arca Noae". Arca Noae . Consultado el 18 de febrero de 2017 .
  10. ^ "Acerca de". JOS (Un sistema operativo gratuito basado en Java) . Consultado el 3 de septiembre de 2012. El proyecto JOS es un proyecto colaborativo de un grupo internacional de programadores y entusiastas de Java™ cuyo objetivo es la creación de un sistema operativo gratuito y abierto basado en Java™ (JOS). Como esfuerzo colaborativo, trabajamos juntos para investigar cómo debería funcionar un sistema operativo basado en Java. Juntos, trabajamos para crear componentes para un sistema operativo basado en Java.
  11. ^ Knudsen, Svend Erik (1983). Medos-2: Un sistema operativo orientado a Modula-2 para la computadora personal Lilith (PhD). ETH Zurich . doi :10.3929/ethz-a-000300091. hdl :20.500.11850/137906.
  12. ^ Knudsen, Svend Erik (25 de octubre de 2000). "Medos en retrospectiva". En Böszörményi, László; Gutknecht, Jürg ; Pomberger, Gustav (eds.). La escuela de Niklaus Wirth: el arte de la simplicidad . Morgan Kaufman. págs. 69–86. ISBN 978-1558607231. ISBN  1-55860-723-4 y dpunkt, ISBN 3-932588-85-1
  13. ^ Sand, Paul A. (septiembre de 1984). «La computadora personal Lilith». Byte . págs. 300–311 . Consultado el 6 de marzo de 2021 .Reimpresión.
  14. ^ Kuznetsov, DN; Nedorya, AE; Tarasov, EV; Filippov, VE "Kronos: una familia de procesadores para lenguajes de alto nivel". Kronos: Historia de un proyecto (en ruso). xTech . Consultado el 13 de abril de 2021 .
  15. ^ "Basado en objetos". Centro de desarrollo de hardware de Microsoft . Consultado el 23 de agosto de 2015 .
  16. ^ Nebbett, Gary (20 de febrero de 2000). Referencia de API nativa de Windows NT/2000 . Sams Publishing. pág. 528. ISBN 978-1578701995La Referencia de API nativa de Windows NT/2000 ofrece la primera visión integral de estos servicios no documentados. Esta referencia, una herramienta única para desarrolladores de software, incluye documentación de más de 200 rutinas incluidas en la API nativa y una descripción detallada de rutinas a las que no se puede acceder directamente a través de la API de Win32 o que ofrecen una funcionalidad adicional sustancial.
  17. ^ Russinovich, Mark. "Windows Sysinternals WinObj". Microsoft . Consultado el 16 de mayo de 2014. Obj es una herramienta imprescindible si eres un administrador de sistemas preocupado por la seguridad, un desarrollador que busca problemas relacionados con objetos o simplemente sientes curiosidad por el espacio de nombres del Administrador de objetos.
  18. ^ Gates, Bill (1990). ""Information at Your Fingertips" Keynote - Comdex/Fall 1990". Microsoft . Consultado el 16 de mayo de 2014. Bill Gates pronunció el 12 de noviembre de 1990 su famosa conferencia titulada "Information at Your Fingertips"
  19. ^ Gates, Bill (1994). ""Information at Your Fingertips" #2 Keynote (The Road Ahead) – Comdex 1994". Microsoft . Consultado el 16 de mayo de 2014 . El discurso de apertura de Bill Gates "Information At Your Fingertips" para Comdex 1995 se convirtió en la base de su libro The Road Ahead, en el que predice la próxima década en tecnología, tanto correcta como incorrecta. Estas predicciones se ven animadas por la interacción entre el discurso de Gates y un programa sobre crímenes del futuro creado para Comdex.
  20. ^ Chen, Raymond (2007). "Windows Confidential: The NT Way (extractos del libro "The Old New Thing")". Microsoft . Consultado el 16 de mayo de 2014 . Los expertos en sistemas de archivos de Windows NT analizaron el algoritmo de resolución de accesos directos de Windows 95 y se burlaron. "Podemos hacerlo mejor que eso: ¡estamos orientados a objetos!" Cada objeto NTFS tiene un identificador de objeto; un acceso directo con un destino que se encuentra en un volumen NTFS también registra el identificador de objeto del destino del acceso directo, así como el identificador de objeto de la unidad en sí.
  21. ^ Kornev, Daniel (19 de diciembre de 2006). "Unas palabras sobre WinFS: el proyecto ha vuelto a ponerse en marcha". Canal 9.
  22. ^ Wirth, Niklaus ; Gutknecht, Jürg (1988). El sistema Oberon: Informe número 88 (PDF) (Reporte).
  23. ^ Muller, Pieter Johannes (2002). Diseño de sistemas de objetos activos e implementación de multiprocesadores (PDF) (PhD). Instituto Federal Suizo de Tecnología, Zúrich ( ETH Zurich ).
  24. ^ Friedl, Klemens. "Acerca de ReactOS: basado en objetos". Proyecto ReactOS . Consultado el 19 de febrero de 2017. ReactOS utiliza una metáfora de objeto que está presente en toda la arquitectura del sistema. ReactOS no solo considera objetos a todas las cosas incluidas en la metáfora de archivo de UNIX, sino también a cosas como procesos y subprocesos, segmentos de memoria compartida, la base de datos de registro global e incluso derechos de acceso.
  25. ^ Filby, J. "ReactOS: ¿Una alternativa de código abierto a NT?" IEEE Software 16.1 (1999): 35–35.

Enlaces externos