¿Cuál es la diferencia entre un navegador web y un sistema operativo?

BIEN, un navegador web nunca tiene que interactuar directamente con el hardware.

La diferencia fundamental es que el sistema operativo es solo una plataforma para que se ejecuten aplicaciones (incluido el navegador web). A veces se puede incluir el navegador (Internet Explorer en Windows y Windows Phone, Safari en iOS y OSX y navegadores sin nombre, principalmente, en otros teléfonos / tabletas / “phablets”). El sistema operativo está fuera de línea, al igual que la mayoría de las aplicaciones, la mayoría de los programas, es decir, simplemente iniciando y haciendo un poco de trabajo (para aplicaciones de utilidad y para juegos, todo el trabajo) fuera de línea .

El navegador web se ejecuta sobre esa plataforma, es decir, del sistema operativo. Esto es cierto incluso en el caso de Chrome OS, donde el navegador en sí está separado del núcleo del sistema operativo, aunque no lo parece. El navegador realmente llama al sistema operativo para que realice varias representaciones (en la mayoría de los casos) y E / S de archivos (siempre) para cachés, archivos descargados, etc.

Básicamente, el sistema operativo hace todo el backend y proporciona una interfaz de usuario, el navegador hace todo el frontend cuando, por ejemplo, abre un resultado de búsqueda en Google para un sitio web menos popular (es decir, no YouTube / Facebook / Twitter / …). Por ejemplo, Quora (creo que no tiene ninguna aplicación real para ninguna plataforma, aunque alguna vez la tuvo).

Y para algunas marcas distintivas reales:
Yo uso Windows 10 Technical Preview. Este es el sistema operativo. Tengo OneDrive, Dropbox, Free Download Manager, Windows Media Player, TeamViewer actualmente abierto en segundo plano, un juego fuera de línea (variante de MineSweeper) y algunas ventanas del navegador web. Si pierdo la conectividad a Internet, Windows Media Player y el juego sin conexión seguirán funcionando.
Para el lado del navegador, uso (uhm) Internet Explorer 11. Sí, ESE navegador 🙂 Pero realmente no me quejo: – ??

Ah, y algo al azar: ¿dónde se ejecuta Windows Defender (u otro antivirus)? ¿En el navegador o en el sistema operativo? BIEN, principalmente en el sistema operativo, aunque también escanea todos los enlaces a los que accede el navegador web, bloqueando el contenido malicioso (cuando, en mi caso, MS SmartScreen no lo hace)

El anillo de protección que ejecutan

Esta es la única diferencia clara entre cualquier programa de usuario como un navegador y un núcleo: Anillo de protección – Wikipedia

Esto le da al kernel un mayor control sobre el hardware que el usuario.

Sin embargo, los navegadores aún pueden usar las funciones de hardware expuestas por el núcleo, como las instrucciones de uso de la CPU, la red, el disco IO, etc.

Actualmente, los navegadores son cada vez más comparables a una API estándar de usuario de bajo nivel como POSIX: nunca entendí realmente: ¿qué es POSIX? POSIX se usa actualmente para implementar navegadores en sistemas POSIX.

Pero, por supuesto, alguien podría (¿ya lo hizo?) Crear un navegador simple, como ya se ha hecho para programas más simples como Tetris: programble / tetrasm y luego la distinción realmente desaparecería.

Creo que la mayor diferencia es el modelo de seguridad: los navegadores suponen que el código de la aplicación es hostil y van desde allí. Esto lleva a que las aplicaciones se ejecuten en entornos aislados: no pueden acceder entre sí o al entorno host; Para un sistema operativo, la capacidad de ejecutar código nativo es esencial, pero para un navegador es una vulnerabilidad crítica, que a menudo vale decenas de miles de dólares en recompensas por errores.

De lo contrario, como habrá notado, se ocupan de problemas bastante similares, si excluimos la capa cerca del hardware: administrando la memoria y los recursos para las aplicaciones, ofreciendo diferentes API y servicios del sistema, incluidos los controles de representación, diseño y UI, la capacidad para el código de usuario para solicitar que se le notifiquen los eventos que suceden en el “mundo exterior” (clics del mouse, datos de red disponibles), abstracción sobre el almacenamiento persistente de datos, etc. Deben ser bastante similares en alcance y complejidad, con una ligera ventaja para los navegadores, ya que pueden usar algunos servicios del sistema operativo (a veces en la forma en que un mecánico de automóviles iría a otro mecánico de automóviles porque carece de algunas herramientas, sin embargo, por ejemplo, los navegadores le dicen al SO para darles una gran cantidad de memoria, que luego subdividen y administran ellos mismos).