|
|
|
|
Administración de Sistemas Operativos
| ||
| Inicio ASO | Aula Virtual |
Los aspectos más relevantes del diseño de un sistema Linux son los siguientes:
Linux está basado en un largo historial de decisiones de diseño multiusuario
Desde el principio, Linux se diseñó como un sistema operativo multiusuario. Cada usuario tiene un directorio donde se guardan todos los ficheros de datos y de configuración. Cuando un usuario ejecuta una aplicación, por ejemplo un procesador de textos dicha aplicación se ejecuta con los permisos del usuario. Por lo tanto, si un usuario puede escribir en el directorio raíz, la aplicación también podrá hacerlo.
Además, Linux implementa todas las capacidades del sistema (p.e. visualizador de imágenes) con librerías modulares. De esta forma cuando un procesador muestra una imagen, la función de visualización de la imagen se ejecuta con los mismos permisos del usuario. Dada la naturaleza del diseño modular de Linux, prácticamente es imposible enviar un email con un virus a un usuario que infecte el equipo.
De la misma forma los servicios, como puede ser un servidor web, se ejecutan como usuarios con permisos restringidos. Por ejemplo, Debian GNU/Linux ejecuta Apache a través del usuario “www-data”. Si un hacker logra tener control sobre el servidor web de un sistema Debian, el hacker sólo podrá utilizar los ficheros del usuario “www-data”. Además, las cuentas de usuario asociadas a servicios no pueden acceder a la línea de comandos. De esta forma, si un hacker rompe el servidor web, no podrá, en principio, explotar otro tipo de vulnerabilidades a través de la línea de comandos.
Linux tiene un diseño modular, no monolítico
Linux tiene un diseño modular para todos sus módulos de software, excepto algunos drivers gráficos y para los entornos gráficos KDE y GNOME.
En Windows los errores en los drivers de la tarjeta gráfica causan los conocidos “pantallazos azules”. Esto ocurre porque Windows integra el sistema gráfico dentro del kernel. Linux obliga a los drivers gráficos a ejecutarse fuera del kernel, y sólo en unas pocas excepciones lo hacen dentro del kernel (p.e. los drivers de la tarjeta gráfica NVIDIA).
Linux no depende del modelo RPC y los servicios están configurados por defecto para no utilizar RPC
Como hemos visto en la sección de Windows, las llamadas RPC permiten a un programa llamar a otro para que haga algo. En la mayoría de distribuciones Linux, las aplicaciones que utilizan la red se configurar por defecto para que el módulo RPC sólo atienda las llamadas del localhost, y las demás son bloqueadas.
![]() | |