1.1. El concepto de maquina virtual
Texto íntegro de la conversión. Las figuras y la disposición de las notas se pueden consultar en el PDF.
1.1. El concepto de máquina virtual
La finalidad básica del sistema operativo es esconder el hardware del sistema computador mediante una capa de software, por medio de la cual accedemos al hardware para trabajar. El sistema operativo define una máquina virtual en la que los usuarios pueden trabajar de una manera más cómoda de la que lo harían si trabajaran directamente con los elementos que componen el sistema computador.
Esta máquina virtual es muy conveniente para los usuarios programadores porque les ofrece una visión idealizada del sistema computador. Los programadores no tendrán que preocuparse de los detalles específicos del hardware (como por ejemplo el tipo de teclado o el formato del disco duro) y podrán centrarse en la programación de los aspectos directamente relacionados con el problema que tienen que resolver. Esta máquina virtual está definida por la interfaz de llamadas ofrecidas por el sistema operativo. Este último también tiene la importante tarea de transformar las abstracciones ofrecidas (como ficheros) en referencias físicas concretas (como pistas en el disco duro).
Hay muchas maneras de esconder este hardware y agrupar y organizar las funciones que tendrá la nueva máquina. Cada una de estas combinaciones determina un tipo diferente de sistema operativo. Desde el punto de vista del usuario que accede a los recursos ofrecidos por la máquina, estos recursos vienen dados por el entorno de acceso; este entorno está determinado por el sistema operativo y no por el hardware.
El hecho de ocultar el hardware a los usuarios y a los programadores tiene, entre otros, dos objetivos principales, que son los siguientes:
-
La abstracción del sistema computador como un hardware determinado para tener una visión más global y sencilla de la máquina.
-
Proporcionar un modo de funcionamiento nuevo y más seguro cuando se ejecuta el código que pertenece al sistema operativo. Este aspecto es muy importante para evitar que los usuarios tengan acceso a ciertos elementos del sistema que podrían afectar al funcionamiento normal y que de alguna manera tienen que estar supervisados.
Ahora bien, los usuarios finales del sistema computador, que básicamente desean ejecutar programas, pueden encontrar que la máquina virtual ofrecida por el sistema operativo se encuentra en un nivel demasiado bajo. Para facili-
Página 8
tar la tarea de estos usuarios, el resto de software de sistema también les ofrece una máquina virtual a un nivel mucho más alto, que es el intérprete de comandos (también llamado intérprete de órdenes o shell).
El intérprete de comandos es el programa más habitual que configura la interfaz con la que dialoga el usuario. Para simplificarlo, podemos decir que el intérprete de comandos es el interlocutor entre los usuarios y el sistema operativo.
En función del tipo de usuario, este intérprete puede estar más o menos especializado o puede ser más o menos restrictivo. Por ejemplo, un programador que tiene que desempeñar tareas de desarrollo o de gestión del sistema tendrá un intérprete de comandos genérico que le permitirá hacer muchas acciones diferentes; en cambio, un administrativo puede tener un intérprete de comandos muy restrictivo que sólo le permita ejecutar las aplicaciones propias de su tarea.
Ver fragmento extraído sin normalizar
1.1. El concepto de máquina virtual
La finalidad básica del sistema operativo es esconder el hardware del sistema
computador mediante una capa de software, por medio de la cual accedemos
al hardware para trabajar. El sistema operativo define una máquinavirtual en
la que los usuarios pueden trabajar de una manera más cómoda de la que lo
harían si trabajaran directamente con los elementos que componen el sistema
computador.
Esta máquina virtual es muy conveniente para los usuarios programadores
porque les ofrece una visión idealizada del sistema computador. Los progra-
madores no tendrán que preocuparse de los detalles específicos del hardware
(como por ejemplo el tipo de teclado o el formato del disco duro) y podrán
centrarse en la programación de los aspectos directamente relacionados con
el problema que tienen que resolver. Esta máquina virtual está definida por la
interfaz de llamadas ofrecidas por el sistema operativo. Este último también
tiene la importante tarea de transformar las abstracciones ofrecidas (como fi-
cheros) en referencias físicas concretas (como pistas en el disco duro).
Hay muchas maneras de esconder este hardware y agrupar y organizar las fun-
ciones que tendrá la nueva máquina. Cada una de estas combinaciones deter-
mina un tipo diferente de sistema operativo. Desde el punto de vista del usua-
rio que accede a los recursos ofrecidos por la máquina, estos recursos vienen
dados por el entorno de acceso; este entorno está determinado por el sistema
operativo y no por el hardware.
El hecho de ocultar el hardware a los usuarios y a los programadores tiene,
entre otros, dos objetivos principales, que son los siguientes:
• La abstracción del sistema computador como un hardware determinado
para tener una visión más global y sencilla de la máquina.
• Proporcionar un modo de funcionamiento nuevo y más seguro cuando se
ejecuta el código que pertenece al sistema operativo. Este aspecto es muy
importante para evitar que los usuarios tengan acceso a ciertos elementos
del sistema que podrían afectar al funcionamiento normal y que de alguna
manera tienen que estar supervisados.
Ahora bien, los usuarios finales del sistema computador, que básicamente
desean ejecutar programas, pueden encontrar que la máquina virtual ofrecida
por el sistema operativo se encuentra en un nivel demasiado bajo. Para facili-
## Página 8
<!-- source-page: 8 -->
GNUFDL • PID_00214804 8 El sistema operativo: una máquina virtual
tar la tarea de estos usuarios, el resto de software de sistema también les ofrece
una máquina virtual a un nivel mucho más alto, que es el intérpretedeco-
mandos (también llamado intérprete de órdenes o shell).
El intérprete de comandos es el programa más habitual que configura la
interfaz con la que dialoga el usuario. Para simplificarlo, podemos decir
que el intérprete de comandos es el interlocutor entre los usuarios y el
sistema operativo.
En función del tipo de usuario, este intérprete puede estar más o menos espe-
cializado o puede ser más o menos restrictivo. Por ejemplo, un programador
que tiene que desempeñar tareas de desarrollo o de gestión del sistema tendrá
un intérprete de comandos genérico que le permitirá hacer muchas acciones
diferentes; en cambio, un administrativo puede tener un intérprete de coman-
dos muy restrictivo que sólo le permita ejecutar las aplicaciones propias de su
tarea.