Un sistema operativo orientado a objetos [1] es un sistema operativo que está diseñado, estructurado y operado usando principios de programación orientada a objetos .
Un sistema operativo orientado a objetos contrasta con una interfaz de usuario o 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 basados 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 , flujo o 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. qué comportamiento varía según el tipo de objeto y qué detalles de implementación se ocultan al llamador.
La orientación a objetos se ha definido como objetos + herencia , y la herencia es solo un enfoque para el 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 cierto conjunto 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 con un recurso. Históricamente, los principios de diseño orientado a objetos se utilizaron en 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 malintencionado. Por ejemplo, considere 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 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, lo que incluye protección.
Ejemplos de
- 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ó completamente a partir de objetos que están vinculados entre sí en tiempo de ejecución. Las aplicaciones para Athene también podrían crearse utilizando esta metodología y normalmente se escribieron con el lenguaje de secuencias de comandos de objetos Dynamic Markup Language (DML). Los objetos podrían haberse compartido entre procesos al crearlos en la memoria compartida y bloquearlos según sea necesario para el acceso. El marco de objetos de Athene era multiplataforma, lo que le permitía utilizarlo 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
- Un intento de crear un sistema operativo verdaderamente orientado a objetos fue el BeOS [5] de mediados de la década de 1990, que utilizaba objetos y el lenguaje C ++ para la interfaz de programación de aplicaciones (API). Pero el kernel se escribió en C con envoltorios de C ++ en el espacio de usuario. El sistema no se generalizó y resultó comercialmente inviable. Ahora está siendo utilizado y desarrollado por un pequeño grupo de entusiastas.
- Elecciones
- Choices es un sistema operativo orientado a objetos desarrollado en la Universidad de Illinois en Urbana – Champaign . [6] [7] Está escrito en C ++ y usa objetos para representar componentes del núcleo del núcleo como la unidad central de procesamiento (CPU), procesos , etc. La herencia se usa 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 .
- GEOS
- PC / GEOS es un sistema operativo gráfico multitarea orientado a objetos liviano con administración sofisticada de ventanas y escritorio 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 su mantenimiento. Las suites de software relacionadas 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.
- Haiku
- Después de la interrupción de BeOS , comenzó un esfuerzo por crear un reemplazo de código abierto. Haiku (originalmente llamado OpenBeOS ) alcanzó su primer hito 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 exclusivo de 128 bits para cada objeto.
- IBM OS / 2 2.0
- El primer sistema operativo basado en Windows, multitarea, multitarea, gráfico y basado en prioridades 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 [8] está siendo desarrollado por Arca Noae. La primera versión se lanzó en mayo de 2017.
- IBM TopView
- TopView era un entorno operativo orientado a objetos que se cargaba en una PC en DOS y luego tomaba el control de 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 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 (antes 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 admitir una máquina virtual Java (JVM). Este es el único componente de un sistema operativo de este tipo que debería estar escrito en un lenguaje que no sea Java. Construido sobre la JVM y el soporte de hardware básico, sería posible escribir el resto del sistema operativo en Java; incluso las partes del sistema que se escriben de forma más tradicional en un lenguaje de nivel inferior como C, por ejemplo , los controladores de dispositivos , se pueden escribir en Java.
- Ejemplos de intentos en un sistema operativo de este tipo incluyen JavaOS , JOS, [9] JNode y JX .
- Basado en Lisp
- Un sistema operativo orientado a objetos escrito en el Lisp dialecto de Lisp Máquina Lisp (y más tarde Common Lisp ) fue desarrollado en el MIT. Se comercializó con Lisp Machines de Symbolics , Lisp Machines Inc. y Texas Instruments . Symbolics llamó a su sistema operativo Genera . Fue desarrollado con la extensión orientada a objetos Flavours 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 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 . [10] [11] [12] Fue sucedido en ETH Zurich 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, Novosibirsk Computing Center, Modular Proyecto Asynchronous Developable Systems (MARS), Kronos Research Group (KRG). [13]
- 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 (incluidos Windows 7 , 8 , Phone 8 , 8.1 , Windows 10 , Xbox ) producidos por Microsoft , cuya primera versión se lanzó en julio de 1993. Es un lenguaje de programación de alto nivel basado en , sistema operativo multiprocesador , multiusuario , independiente del procesador . 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. [14]
- El Administrador de objetos se encarga de administrar 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) naveguen por el espacio de nombres y consulten el estado de los objetos ubicados allí, pero las interfaces no están documentadas. [15] 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 en el espacio de nombres del Administrador de objetos de NT. [dieciséis]
- 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 para varias otras tecnologías y marcos de Microsoft, que incluyen vinculación e incrustación de objetos (OLE), automatización OLE , ActiveX , COM + , modelo de objetos componentes distribuidos (DCOM), el shell de Windows , DirectX y Windows Runtime . OLE es una patentada tecnología desarrollada por Microsoft que permite la incrustación y vinculación de 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, dependiendo de 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 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 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 del formato de creación avanzada .
- Unir e incluir objetos
- Object Linking and Embedding (OLE) fue parte de un plan más amplio llamado Cairo , el nombre en clave de un proyecto en Microsoft de 1991 a 1996. Su estatuto era desarrollar tecnologías para un sistema operativo de próxima generación que cumpliera la visión de Bill Gates de " información a su alcance ". [17] [18] Cairo nunca se envió , 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 El Cairo. El componente restante es el sistema de archivos basado en objetos . Una vez se planeó implementarlo en forma de Windows Future Storage ( WinFS ) como parte de Windows Vista . WinFS es el nombre de código para el proyecto de sistema de gestión y almacenamiento 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 porque puede almacenar los objetos de NT, incluido su identificador de objeto de 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. [19] 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. [20]
- 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 agregando un marco orientado a objetos en Mach y BSD usando el lenguaje Objective-C como base. Logró un estatus de nicho en el mercado de la computación, especialmente utilizado por Tim Berners-Lee en el desarrollo de la primera implementación de la World Wide Web .
- NeXTStep luego evolucionó a OpenStep y Cocoa API en Mac OS X e iOS .
- OpenStep se proporcionó como una capa de API en muchos sistemas operativos, a saber, HP-UX , NextStep, Solaris y Windows.
- Oberon
- Oberon es un sistema operativo orientado a objetos de 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 ETH Zurich por Niklaus Wirth y Jürg Gutknecht . Está construido íntegramente a partir de módulos del lenguaje de programación Oberon . [21] Una evolución posterior se denominó Active Object System (AOS), [22] luego se renombró Bluebottle , luego se renombró A2 .
- OOSMOS
- El sistema operativo de máquina de estado orientado a objetos (OOSMOS), escrito en C, promueve la encapsulación orientada a objetos e implementa una arquitectura de máquina de estado 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 base o en cooperación con un sistema operativo existente.
- ReactOS
- ReactOS es un sistema operativo de código abierto diseñado para ser binario compatible con software de aplicación y controladores de dispositivos hechos para versiones de Microsoft Windows NT. Escrito desde cero, tiene como objetivo seguir la arquitectura de Windows NT diseñada por Microsoft desde el nivel de hardware hasta el nivel de la aplicación. Este no es un sistema basado en Linux y no comparte nada de la arquitectura Unix . [23] [24]
- Uno mismo
- Self (lenguaje de programación) se inventó en Xerox PARC . Luego se desarrolló en la Universidad de Stanford y Sun Microsystems .
- Charla
- Smalltalk se inventó en Xerox en la década de 1970. El sistema Smalltalk está totalmente orientado a objetos y necesita muy poco soporte 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 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 Flavours (una de las primeras extensiones orientadas a objetos de Lisp) y Common Lisp Object System (CLOS). El desarrollo comenzó a mediados de los 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. Más tarde se convirtió en una subsidiaria de IBM y se transformó de un sistema operativo a un entorno de programación.
Ver también
- sistema operativo
- diseño orientado a objetos
- programación orientada a objetos
- Plan 9 de Bell Labs
Referencias
- ↑ a b c Pashtan, Ariel (1 de enero de 1982). "Sistemas operativos orientados a objetos: una metodología de diseño emergente" . Actas de la Conferencia ACM '82 . Asociación de Maquinaria de Computación (ACM): 126-131. doi : 10.1145 / 800174.809777 .
- ^ 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 las actas de conferencias sobre sistemas de programación orientados a objetos, lenguajes.
- ^ "El sistema operativo de Athene" . LWN.net . Consultado el 13 de febrero de 2017 .
- ^ "Rocklyte Systems" . Rocklyte Systems .
- ^ Sydow, Dan Parks (1999). Programación del sistema operativo Be (1ª ed.). Pekín: O'Reilly. ISBN 978-1-56592-467-3.
- ^ Campbell, Roy; Johnston, Garry; Russo, Vincent (1 de julio de 1987). "Opciones (interfaz abierta jerárquica de clase para sistemas integrados personalizados)". Revisión de sistemas operativos SIGOPS (OSR) . 21 (3): 9-17. doi : 10.1145 / 29321.29323 . ISSN 0163-5980 .
- ^ "Opciones" . choice.cs.illinois.edu .
- ^ "Blue Lion, de Arca Noae" . Arca Noae . Consultado el 18 de febrero de 2017 .
- ^ "Acerca de" . JOS (un sistema operativo gratuito basado en Java) . Consultado el 3 de septiembre de 2012 .
El Proyecto JOS es una empresa colaborativa de un grupo internacional de programadores y entusiastas de Java ™ cuyo objetivo es la creación de un Sistema Operativo (JOS) abierto y gratuito basado en Java ™. Como esfuerzo de colaboración, 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.
- ^ 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 .
- ^ 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 Kaufmann. págs. 69–86. ISBN 978-1558607231.ISBN 1-55860-723-4 y dpunkt, ISBN 3-932588-85-1 .
- ^ Sand, Paul A. (septiembre de 1984). "La computadora personal Lilith" . Byte . págs. 300–311 . Consultado el 6 de marzo de 2021 . Reimprimir.
- ^ 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 .
- ^ "Basado en objetos" . Centro de desarrollo de hardware de Microsoft . Consultado el 23 de agosto de 2015 .
- ^ Nebbett, Gary (20 de febrero de 2000). Referencia de la API nativa de Windows NT / 2000 . Sams Publishing. pag. 528. ISBN 978-1578701995.
La Referencia de la API nativa de Windows NT / 2000 proporciona la primera mirada completa a estos servicios no documentados. Una herramienta única para desarrolladores de software, esta referencia incluye documentación de más de 200 rutinas incluidas en la API nativa, una descripción detallada de las rutinas a las que no se puede acceder directamente a través de la API de Win32 o que ofrecen una funcionalidad adicional sustancial.
- ^ 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 por el espacio de nombres del Administrador de objetos.
- ^ Gates, Bill (1990). " " Información al alcance de su mano "Keynote - Comdex / Otoño de 1990" . Microsoft . Consultado el 16 de mayo de 2014 .
Bill Gates pronunció el 12 de noviembre de 1990 su famoso discurso de apertura titulado "Información al alcance de su mano".
- ^ Gates, Bill (1994). " " Información al alcance de su mano "# 2 Keynote (El camino por delante) - Comdex 1994" . Microsoft . Consultado el 16 de mayo de 2014 .
El discurso de apertura de Bill Gates "Información al alcance de su mano" para Comdex 1995 se convirtió en la base de su libro The Road Ahead, que predice la próxima década en tecnología: lo correcto y lo incorrecto. Estas predicciones están animadas por la interacción entre el discurso de Gates y un futuro programa de crímenes hecho para Comdex.
- ^ Chen, Raymond (2007). "Confidencial de Windows: 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 acceso directo 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.
- ^ Kornev, Daniel (19 de diciembre de 2006). "Algunas palabras sobre WinFS: el proyecto está de nuevo en marcha" . Canal 9.
- ^ Wirth, Niklaus ; Gutknecht, Jürg (1988). El sistema Oberon: Informe número 88 (PDF) (Informe).
- ^ Muller, Pieter Johannes (2002). El diseño del sistema de objetos activos y la implementación de multiprocesador (PDF) (PhD). Instituto Federal Suizo de Tecnología, Zúrich ( ETH Zúrich ).
- ^ Friedl, Klemens. "Acerca de ReactOS: basado en objetos" . Proyecto ReactOS . Consultado el 19 de febrero de 2017 .
ReactOS usa una metáfora de objeto que es omnipresente en toda la arquitectura del sistema. ReactOS no solo ve todas las cosas en la metáfora del archivo UNIX como objetos, sino también cosas como procesos e hilos, segmentos de memoria compartida, la base de datos de registro global e incluso derechos de acceso.
- ^ Filby, J. "ReactOS: ¿Una alternativa de código abierto a NT ?." Software IEEE 16.1 (1999): 35–35.
enlaces externos
- Apertos
- Elecciones
- Hermes , antiguo proyecto de IBM
- OOSMOS
- Rebol aspira a desplazar el sistema operativo por el entorno del lenguaje