En 1959, el sistema operativo SHARE se lanzó como una utilidad integrada para el IBM 704, y más tarde en los mainframes 709 y 7090, aunque fue rápidamente reemplazado por IBSYS / IBJOB en el 709, 7090 y 7094. Un controlador de dispositivo es un tipo específico de software de computadora desarrollado para permitir la interacción con dispositivos de hardware. Si bien muchos sistemas operativos más simples admiten una gama limitada de opciones para acceder a los sistemas de almacenamiento, los sistemas operativos como UNIX y Linux admiten una tecnología conocida como sistema de archivos virtual o VFS. Un sistema operativo como UNIX admite una amplia gama de dispositivos de almacenamiento, independientemente de su diseño o sistemas de archivos, lo que permite acceder a ellos a través de una interfaz de programación de aplicaciones común.
El sistema operativo también es un conjunto de servicios que simplifican el desarrollo y la ejecución de programas de aplicación. Estas características se incluyeron o no en el software de la aplicación a opción de los programadores de la aplicación, en lugar de en un sistema operativo separado utilizado por todas las aplicaciones.
Dirigiría el desarrollo del sistema operativo Windows NT, que continúa sirviendo como base para la línea de sistemas operativos de software almacen Microsoft. NEXTSTEP más tarde sería adquirido por Apple Inc. y utilizado, junto con el código de FreeBSD, como núcleo de Mac OS X.
Desde finales de la década de 1960 hasta finales de la de 1970, evolucionaron varias capacidades de hardware que permitieron que software similar o adaptado se ejecutara en más de un sistema. Los primeros sistemas habían utilizado la microprogramación para implementar características software mantenimiento en sus sistemas con el fin de permitir que las diferentes arquitecturas de computadora subyacentes parecieran ser las mismas que otras en una serie. De hecho, la mayoría de los 360 después de 360/40 (excepto 360/165 y 360/168) eran implementaciones microprogramadas.
- La gestión de memoria cooperativa, utilizada por muchos de los primeros sistemas operativos, asume que todos los programas hacen un uso voluntario del administrador de memoria del kernel y no exceden la memoria asignada.
- Con la administración de memoria cooperativa, solo se necesita un programa que se comporte mal para bloquear el sistema.
Aplicaciones de escritorio frente a aplicaciones web
Estos sistemas operativos se encuentran más comúnmente en servidores web, aunque también pueden funcionar como un sistema operativo de computadora personal. Internet debe gran parte de su existencia a BSD, ya que muchos de los protocolos que ahora utilizan comúnmente las computadoras para conectarse, enviar y recibir datos a través de una red se implementaron y refinaron ampliamente en BSD. La World Wide Web también se demostró por primera vez en varias computadoras que ejecutan un sistema operativo basado en BSD llamado NeXTSTEP. La introducción del chip CPU Intel en octubre de 1985, con arquitectura de 32 bits y capacidades de paginación, proporcionó a las computadoras personales la capacidad de ejecutar sistemas operativos multitarea como los de las miniordenadores y mainframes anteriores. Microsoft respondió a este progreso contratando a Dave Cutler, quien había desarrollado el sistema operativo VMS para Digital Equipment Corporation.
Se produciría una falla de protección general, indicando que se ha producido una violación de segmentación; sin embargo, el sistema a menudo fallaba de todos modos. Tanto en la segmentación como en la paginación, ciertos registros de modo protegido especifican a la CPU a qué dirección de memoria debe permitir el acceso de un programa en ejecución. Los intentos de acceder a otras direcciones desencadenan una interrupción que hace que la CPU vuelva a ingresar al modo supervisor, colocando al núcleo a cargo.
En su lugar, podrían utilizarse otros métodos de autenticación, como tarjetas magnéticas o datos biométricos. En algunos casos, especialmente las conexiones desde la red, se puede acceder a los recursos sin autenticación alguna. Se accede a un dispositivo de almacenamiento conectado, como un disco duro, a través de un controlador de dispositivo. El controlador de dispositivo comprende el idioma específico de la unidad y puede traducir ese idioma a un idioma estándar que utiliza el sistema operativo para acceder a todas las unidades de disco.
Actualmente, la mayoría de los sistemas operativos admiten una variedad de protocolos de red, hardware y aplicaciones para usarlos. Esto significa que las computadoras que ejecutan sistemas operativos diferentes pueden participar en una red común para compartir recursos como computación, archivos, impresoras y escáneres mediante conexiones por cable o inalámbricas. Básicamente, las redes pueden permitir que el sistema operativo de una computadora acceda a los recursos de una computadora remota para admitir las mismas funciones que podría tener si esos recursos estuvieran conectados directamente a la computadora local. Esto incluye todo, desde una simple comunicación hasta el uso de sistemas de archivos en red o incluso compartir los gráficos o el hardware de sonido de otra computadora.
Uno de los primeros modelos que regía la asignación de tiempo a los programas se denominaba multitarea cooperativa. En este modelo, cuando el kernel pasa el control a un programa, puede ejecutarse durante el tiempo que quiera antes de devolver explícitamente el control al kernel. Esto significa que un programa malintencionado o que funciona mal no solo puede evitar que otros programas usen la CPU, sino que puede bloquear todo el sistema si entra en un bucle infinito. Si un programa intenta acceder a la memoria que no está en su rango actual de memoria accesible, pero no obstante se le ha asignado, el kernel se interrumpe de la misma manera que lo haría si el programa superara su memoria asignada. Las versiones de Windows 3.1 a ME tenían cierto nivel de protección de la memoria, pero los programas podían fácilmente eludir la necesidad de usarlo.
Esto se denomina violación de segmentación o Seg-V para abreviar, y dado que es difícil asignar un resultado significativo a dicha operación y porque generalmente es un signo de un programa que se está comportando mal, el kernel generalmente recurre a terminar el programa ofensivo. Un subgrupo de la familia Unix es la familia Berkeley Software Distribution, que incluye FreeBSD, NetBSD y OpenBSD.
Algunos servicios de red permiten acceder de forma transparente a los recursos de una computadora, como SSH, que permite a los usuarios en red el acceso directo a la interfaz de línea de comandos de una computadora. El sistema operativo proporciona una interfaz entre un programa de aplicación y el hardware de la computadora, de modo que un programa de aplicación puede interactuar con el hardware solo obedeciendo las reglas y procedimientos programados en el sistema operativo.