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 se puede ejecutar en un sistema operativo no orientado a objetos como DOS o Unix .

Ya existen conceptos de lenguaje basado en objetos involucrados 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 con tanta fluidez como los lenguajes más recientes, la noción de, por ejemplo, un archivo , una secuencia o un controlador de dispositivo (en Unix, cada uno representado como un descriptor de archivo ) puede considerarse una 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 para quien llama.

La orientación a objetos se ha definido como objetos + herencia , y la herencia es sólo una aproximación al problema más general de delegación que ocurre en todos los sistemas operativos. [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 determinado conjunto de funcionalidades. Se pueden diferenciar dos objetos según las funcionalidades (o métodos) que admiten. En el contexto de un sistema operativo, los objetos están asociados con un recurso. Históricamente, los principios de diseño orientado a objetos se utilizaron en los sistemas operativos para proporcionar varios mecanismos de protección. [1]

Los mecanismos de protección en un sistema operativo ayudan a proporcionar una separación clara entre los diferentes programas de usuario. También protege el sistema operativo de cualquier comportamiento de programa de usuario malicioso. Por ejemplo, consideremos el caso de los perfiles de usuario en un sistema operativo. El usuario no debe tener acceso a los recursos de otro usuario. El modelo de objetos aborda estos problemas de protección y cada recurso actúa como un objeto. Cada objeto sólo puede realizar 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 orientado a objetos para muchos componentes del sistema, incluida la protección.

Ejemplos

Atenea
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ó enteramente a partir de objetos que están vinculados entre sí en tiempo de ejecución. Las aplicaciones para Athene también se podían crear utilizando esta metodología y comúnmente se escribían utilizando el lenguaje de programación de objetos Dynamic Markup Language (DML). Los objetos podrían haberse compartido entre procesos creándolos en la memoria compartida y bloqueándolos según sea 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 desapareció y el proyecto se abandonó en algún momento de 2009.
BeOS
BeOS [5] era 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 kernel fue escrito en C con contenedores de C++ en el espacio de usuario. El sistema operativo no tuvo un uso generalizado y resultó comercialmente inviable; sin embargo, ha visto un uso y desarrollo continuo por parte de 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 los componentes centrales del núcleo, como la unidad central de procesamiento (CPU), procesos , etc. La herencia se utiliza para separar el kernel en clases portátiles independientes de la máquina y pequeñas clases dependientes no portátiles. Choices se ha adaptado y se ejecuta en SPARC , x86 y ARM .
CARÁCTER DISTINTIVO
ETHOS era una versión experimental orientada a objetos del Sistema Oberon (ver más abajo) creada por Clemens Szyperski para su tesis doctoral [8] escrita en Oberon-2.
GEOS
PC/GEOS es un sistema operativo gráfico multitarea, liviano y orientado a objetos, con administración sofisticada de ventanas y escritorios con 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 BreadBox Computer Company continúa manteniéndolo. Los paquetes de software relacionados se denominaron Ensemble y New Deal Office . Existen adaptaciones para varias computadoras de bolsillo y sistemas de 32 bits con CPU que no son x86.
haikus
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 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 introdujo OS/400 en 1988. Este sistema operativo se ejecutaba exclusivamente en la plataforma AS/400 . Renombrado IBM i en 2008, este sistema operativo se ejecuta exclusivamente en Power Systems , que también puede 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.
IBMOS/2 2.0
El sistema operativo gráfico, basado en Windows, multitarea, preventivo y de primera prioridad de IBM incluía un shell de usuario orientado a objetos. Fue diseñado para Intel 80386 que usaba el modo virtual 8086 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 se lanzó en mayo de 2017.
Vista superior de IBM
TopView era un entorno operativo orientado a objetos que se cargaba en una PC en DOS y luego tomaba el control desde DOS. En ese momento se convirtió efectivamente en un sistema operativo orientado a objetos con una API orientada a objetos (TopView API). Fue el primer sistema operativo orientado a objetos, basado en ventanas y multitarea 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 sistemas operativos basados ​​en Java. En esta área, idealmente, el kernel consistiría en lo mínimo necesario para soportar una máquina virtual Java (JVM). Este es el único componente de dicho sistema operativo que tendría que escribirse en un lenguaje distinto de Java. Construido sobre la JVM y 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.
Ejemplos de intentos de crear un sistema operativo de este tipo incluyen JavaOS , JOS, [10] JNode y JX .
Basado en Lisp
En el MIT se desarrolló un sistema operativo orientado a objetos escrito en el dialecto Lisp Lisp Machine Lisp (y más tarde Common Lisp ). Se comercializó con máquinas Lisp de Symbolics , Lisp Machines Inc. y Texas Instruments . Los simbólicos llamaron a su sistema operativo Genera . Fue desarrollado con la extensión de Lisp orientada a objetos Flavors , luego con New Flavours y luego con Common Lisp Object System (CLOS).
Xerox desarrolló varias estaciones de trabajo con un sistema operativo escrito en Interlisp-D . Interlisp-D proporcionó 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 orientado a objetos de un solo usuario creado para la línea de estaciones de trabajo Lilith (procesador: Advanced Micro Devices (AMD) 2901 ), desarrollado a principios de la década de 1980 en ETH Zurich por Svend Erik Knudsen con el asesoramiento de Niklaus Wirth . Está construido íntegramente a partir de módulos del lenguaje de programación Modula-2 . [11] [12] [13] Fue sucedido en ETH Zurich por el sistema Oberon , y la Academia de Ciencias de la Unión Soviética , sucursal de Siberia, Centro de Computación de Novosibirsk , Modular, desarrolló una variante llamada Excelsior para la estación de trabajo Kronos . Proyecto Sistemas Desarrollables Asincrónicos (MARS), Kronos Research Group (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 WindowsNT
Windows NT es una familia de sistemas operativos (incluidos Windows 7 , 8 , Phone 8 , 8.1 , Windows 10 , 10 Mobile , Windows 11 y Xbox ) producida por Microsoft , cuya primera versión se lanzó en julio de 1993. Es un alto Sistema operativo multiusuario , multiprocesamiento , independiente del procesador y basado en lenguaje de programación de nivel . Se describe mejor como basado en objetos en lugar de orientado a objetos, ya que no incluye todas las propiedades de herencia de los lenguajes orientados a objetos. [15]
El Administrador de objetos se encarga de gestionar los objetos 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 que los programas de espacio de usuario (modo) exploren el espacio de nombres y consulten 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 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 NT. [17]
Modelo de objetos componentes
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 trabajo de Microsoft, incluidos la vinculación e incrustación de objetos (OLE), la automatización OLE , ActiveX , COM+ , el modelo de objetos componentes distribuidos (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 implemente la interfaz IOleObject , posiblemente junto con una amplia gama de otras interfaces, según las necesidades del objeto. Su uso principal es para gestionar documentos compuestos , pero también se utiliza para transferir datos entre diferentes aplicaciones mediante operaciones de arrastrar y soltar y del 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 utiliza ampliamente como formato de archivo principal en aplicaciones de Microsoft Office, incluidas Microsoft Word , Microsoft Excel , Microsoft PowerPoint, Microsoft Access y es la base del formato de creación avanzada .
Unir e incluir objetos
La vinculación e incrustación de objetos (OLE) era parte de un plan más amplio llamado Cairo , el nombre en clave de un proyecto de 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 a tu alcance ". [18] [19] Cairo nunca envió productos , aunque desde entonces partes de sus tecnologías han aparecido 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 clave para un proyecto de sistema de gestión y almacenamiento de datos basado en bases de datos relacionales , que se ejecuta en el sistema de archivos Windows NT ( NTFS ), que está orientado a objetos porque 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 se encuentra 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 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]
Próximo paso
A finales de la década de 1980, Steve Jobs formó la empresa de 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 en Mach y BSD utilizando el lenguaje Objective-C como base. Alcanzó un estatus de nicho en el mercado de la informática, utilizado en particular por Tim Berners-Lee al desarrollar la primera implementación de la World Wide Web .
NeXTStep luego evolucionó a OpenStep y Cocoa API en macOS e iOS ( iPadOS , watchOS ).
OpenStep se proporcionó como una capa 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 de usuario único creado para la línea de estaciones de trabajo Ceres (procesador: National Semiconductor NS32000 ), desarrollado a finales de la década de 1980 en ETH Zurich por Niklaus Wirth y Jürg Gutknecht . Está construido íntegramente a partir de módulos del lenguaje de programación Oberon . [22] Hay dos sucesores del Sistema Oberon, ETHOS (ver arriba) y, a partir de 2023 aún 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 orientado a objetos (OOSMOS), escrito en C, promueve la encapsulación orientada a objetos e implementa una arquitectura de máquina de estados jerárquica completa basada en tablas. Genera código C directamente a partir de gráficos de estado dibujados con la herramienta de código abierto UMLet . OOSMOS también admite una función única llamada 'subprocesos de estado' que permite un subproceso de ejecución por estado. OOSMOS opera en una placa básica o en cooperación con un sistema operativo existente.
SO fantasma
Phantom OS se adhiere al principio de que "todo es un objeto" y elimina por completo el concepto de archivo, en lugar de persistir de forma transparente la memoria virtual en el almacenamiento.
reaccionar
ReactOS es un sistema operativo de código abierto destinado a ser compatible binariamente con software de aplicaciones y controladores de dispositivos creados para las versiones de Microsoft Windows NT. Escrito desde cero, pretende seguir la arquitectura de Windows NT diseñada por Microsoft desde el nivel de hardware hasta el nivel de aplicación. Este no es un sistema basado en Linux y no comparte nada de la arquitectura Unix . [24] [25]
Charla
Smalltalk fue inventado en Xerox en los años 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 esa razón a menudo se lo compara con BeOS .
Géneros simbólicos
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 de Lisp orientada a objetos) y el 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.

Ver 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 . Asociación de Maquinaria de Computación (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". Avisos ACM SIGPLAN . 22 (12): 168–182. doi :10.1145/38807.38823.También en actas de conferencias sobre lenguajes y sistemas de programación orientados a objetos.
  3. ^ "El sistema operativo Athene". LWN.net . Consultado el 13 de febrero de 2017 .
  4. ^ "Sistemas Rocklyte". Sistemas Rocklyte . Archivado desde el original el 3 de noviembre de 2006 . Consultado el 18 de febrero de 2007 .
  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)". Revisión de sistemas operativos (OSR) de SIGOPS . 21 (3): 9–17. doi : 10.1145/29321.29323 . ISSN  0163-5980. S2CID  11935474.
  7. ^ "Opciones". opciones.cs.illinois.edu .
  8. ^ Szyperski, Clemens (1992). Insight ETHOS: sobre la orientación a objetos en sistemas operativos (Doctor). Zúrich, Suiza: ETH Zürich . ISBN 3-7281-1948-2.Colección ETHZ.
  9. ^ "León Azul, de Arca Noae". Arca Noé . 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 una iniciativa de colaboración de un grupo internacional de programadores y entusiastas de Java™ cuyo objetivo es la creación de un sistema operativo (JOS) basado en Java™ libre y abierto. Como esfuerzo colaborativo, trabajamos juntos para investigar cómo debería funcionar un sistema operativo basado en Java. Juntos, trabajamos para construir componentes para un sistema operativo basado en Java.
  11. ^ Knudsen, Svend Erik (1983). Medos-2: un sistema operativo orientado a Módulo-2 para computadoras personales Lilith (PhD). ETH Zúrich . 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). xTecnología . 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 . Editorial Sams. pag. 528.ISBN 978-1578701995. La Referencia de API nativa de Windows NT/2000 proporciona la primera mirada completa a 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, 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 es un administrador de sistemas preocupado por la seguridad, un desarrollador que rastrea problemas relacionados con objetos o simplemente tiene curiosidad sobre el espacio de nombres del Administrador de objetos.
  18. ^ Puertas, Bill (1990). " Conferencia magistral " Información a su alcance " - Comdex / Otoño de 1990". Microsoft . Consultado el 16 de mayo de 2014 . Bill Gates pronunció el 12 de noviembre de 1990 su famosa Keynote titulada “Información a tu alcance”
  19. ^ Puertas, Bill (1994). ""Información a su alcance "Nota magistral n.º 2 (El camino por delante) - Comdex 1994". Microsoft . Consultado el 16 de mayo de 2014 . El discurso de apertura de Bill Gates "Información a su alcance" para Comdex en 1995 se convirtió en la base de su libro The Road Ahead, que predice la próxima década en tecnología: bien y mal. Estas predicciones se ven avivadas por la interacción entre el discurso de Gates y un programa sobre crímenes futuros hecho 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 . La gente del sistema de archivos de Windows NT miró el algoritmo de resolución de accesos directos de Windows 95 y se burló. "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 propia unidad.
  21. ^ Kornev, Daniel (19 de diciembre de 2006). "Unas pocas palabras sobre WinFS: el proyecto ha vuelto a su cauce". Canal 9.
  22. ^ Wirth, Niklaus ; Gutknecht, Jürg (1988). El sistema Oberon: Informe número 88 (PDF) (Reporte).
  23. ^ Müller, Pieter Johannes (2002). El diseño del sistema de objetos activos y la implementación multiprocesador (PDF) (Doctor). Instituto Federal Suizo de Tecnología de 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á omnipresente en toda la arquitectura del sistema. ReactOS no solo ve todas las cosas en la metáfora del archivo UNIX como objetos, sino que también lo son 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?". Software IEEE 16.1 (1999): 35–35.

enlaces externos