47. ¿Cuáles son las partes que componen la estructura del sistema operativo?
48. ¿Qué es el kernel?
Desarrollo
1-Sistema
Operativo (SO)
Un Sistema operativo (SO), software básico que controla una
computadora. Sistema Operativo es en sí mismo un programa de computadora.
Sin embargo, es un programa muy especial, quizá el más complejo e importante en
una computadora. El SO despierta a la computadora y hace que reconozca a
la CPU, la memoria, el teclado, el sistema de vídeo y las unidades de
disco. Además, proporciona la facilidad para que los usuarios se comuniquen con
la computadora y sirve de plataforma a partir de la cual se corran
programas de aplicación.
2-Funciones y características de los sistemas
operativos.
Funciones de los sistemas operativos.
· Aceptación: Aceptar todos los trabajos y conservarlos hasta
su finalización.
· Interpretación de comandos: Interpreta los comandos que
permiten al usuario comunicarse con el ordenador.
· Control de recursos: Coordina y
manipula el hardware de la computadora, como la memoria, las
impresoras, las unidades de disco, el teclado o el Mouse. Manejo de
dispositivos de E/S: Organiza los archivos en diversos dispositivos de
almacenamiento, como discos flexibles, discos duros, discos compactos o cintas
magnéticas.
· Manejo de errores: Gestiona los errores de hardware y la
pérdida de datos.
· Secuencia de tareas: El sistema operativo debe administrar
la manera en que se reparten los procesos. Definir el orden. (Quien va primero
y quien después).
· Protección: Evitar que las acciones de un usuario
afecten el trabajo que esta realizando otro usuario. Multiacceso: Un
usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
· Contabilidad de recursos: establece el costo que se
le cobra a un usuario por utilizar determinados recursos.
En una computadora actual suelen coexistir varios programas, del mismo
o de varios usuarios, ejecutándose simultáneamente. Estos
programas compiten por los recursos de la computadora, siendo el
sistema operativo el encargado de arbitrar su asignación y uso. Como
complemento a la gestión de recursos, el sistema operativo ha de
garantizar la protección de unos programas frente a otros y ha de suministrar
información sobre el uso que se hace de los recursos.
3-El sistema operativo está formado por el software que permite acceder y realizar las operaciones básicas en un ordenador personal o sistema informático en general. Los sistemas operativos más conocidos son:
· 4- AIX (de IBM),
5-HP-UX (de HP),
6-MacOS (Macintosh),
7-Solaris (de SUN Microsystems),
8- las distintas variantes del UNIX de BSD (FreeBSD, OpenBSD...)
9-Windows en sus distintas variantes (de la empresa Microsoft).
· GNU/Linux,
10-Cuando enciendes una computadora, lo primero que ésta hace es llevar a cabo una autodiagnóstico llamado auto prueba de encendido .
15/21-Funciones de los sistemas operativos.
· Aceptación: Aceptar todos los trabajos y conservarlos hasta su finalización.
· Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador.
· Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse. Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas.
· Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
· Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien después).
· Protección: Evitar que las acciones de un usuario afecten el trabajo que esta realizando otro usuario. Multiacceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
· Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados recursos.
En una computadora actual suelen coexistir varios programas, del mismo o de varios usuarios, ejecutándose simultáneamente. Estos programas compiten por los recursos de la computadora, siendo el sistema operativo el encargado de arbitrar su asignación y uso. Como complemento a la gestión de recursos, el sistema operativo ha de garantizar la protección de unos programas frente a otros y ha de suministrar información sobre el uso que se hace de los recursos.
22/29- Características de los sistemas operativos
En general, se puede decir que un Sistema Operativo tiene las
siguientes características:
· Conveniencia. Un Sistema Operativo hace más conveniente el
uso de una computadora.
· Eficiencia. Un Sistema Operativo permite que los recursos de
la computadora se usen de la manera más eficiente posible. Habilidad para
evolucionar. Un Sistema Operativo deberá construirse de manera que permita el
desarrollo, prueba o introducción efectiva de nuevas funciones del
sistema sin interferir con el servicio.
· Encargado de administrar el hardware. El Sistema
Operativo se encarga de manejar de una mejor manera los recursos de la
computadora en cuanto a hardware se refiere, esto es, asignar a cada
proceso una parte del procesador para poder compartir los
recursos.
· Relacionar dispositivos (gestionar a través del kernel). El
Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos,
cuando el usuario así lo requiera.
· Organizar: organiza datos para acceso rápido y seguro.
· Manejar las comunicaciones en red. El Sistema Operativo
permite al usuario manejar con alta facilidad todo lo referente a la
instalación y uso de las redes de computadoras.
· Procesamiento: procesa por bytes de flujo a través del
bus de datos.
· Facilitar las entradas y
salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo
de los dispositivos de Entrada/Salida de la computadora.
Sistemas monousuario y multiusuario.
30- Multiusuarios
Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente.
·31- Monousuarios
Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón.
·32- Monotareas. Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.
33- Multitareas
Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.
34- Uniproceso
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS.
35- Multiproceso
Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.
36-
En algunos sistemas operativos se accede al sistema por medio de
un usuario único que tiene permiso para realizar cualquier operación. Este
es el caso de los sistemas operativos más antiguos como MS-DOS y
algunos más recientes como la serie Windows 95/98/Me de Microsoft o MacOS
(antes de MacOS X) de Macintosh. En estos sistemas no existe una
diferenciación clara entre las tareas que realiza un administrador del
sistema y las tareas que realizan los usuarios habituales, no disponiendo del
concepto de multiusuario, un usuario común tiene acceso a todas las
capacidades del sistema, pudiendo borrar, incluso, información vital para
su funcionamiento. Un usuario malicioso (remoto o no) que obtenga acceso al
sistema podrá realizar todo lo que desee por no existir dichas limitaciones.
Otros sistemas operativos, sin embargo, han
estado siempre preparados para soportar sistemas multiusuario,
permitiendo agruparlos y asignar distintos privilegios a cada uno de ellos o a
sus grupos. Este es el caso de todos los sistemas UNIX y de los sistemas
Windows NT/2000. Esta característica es enormemente útil desde el punto de
vista de seguridad. Por ejemplo en el caso de que un usuario se vea afectado
por un virus, una intrusión, etc. el resto de los usuarios (si los hay) y, sobre
todo, el sistema no tendrán por qué verse afectados a menos que
vulnerabilidades en éstas puedan ser utilizadas por un atacante para
elevar sus privilegios.
Cabe notar que los sistemas operativos libres (Linux y BSD) no
soportan una asignación de grupos y usuarios tan versátil como NT y 2000.
Los grupos en UNIX son mucho menos versátiles (y más difíciles de
administrar) que aquellos aunque también más conocidos.
Queda claro que en todo ordenador donde la seguridad es un factor
que se considera importante debe optarse por un sistema operativo que soporte
varios usuarios con distintos privilegios.
Una ventaja que sí han tenido hasta ahora es que el propio fabricante
daba soporte técnico y garantías de seguridad de sus sistemas
(especialmente en los UNIX propietarios). De igual forma, otra ventaja
adicional ofrecida por estos sistemas operativos, inexistente actualmente
en GNU/Linux, es que los fabricantes persiguen de forma activa la certificación
del sistema operativo (o una parte de éste) frente a los estándares de
seguridad del mercado.
A continuación se presenta una definición mas especifica de
sistemas operativo multiusuario y monousuario, además Monotareas, Multitareas,
Uniproceso, Multiproceso.
·
TIPOS DE SISTEMAS OPERATIVOS
Sistemas de archivos
de disco
Un sistema de archivo de disco está diseñado para el
almacenamiento de archivos en una unidad de disco, que puede estar conectada directa o
indirectamente a la computadora.
Sistemas de archivos
de red
Un sistema de archivos de red es el que accede a sus
archivos a través de una red de computadoras.
Dentro de esta clasificación encontramos dos tipos de
sistemas de archivos:
1. los sistemas de archivos distribuidos (no
proporcionan E/S en paralelo);
2. los sistemas de archivos paralelos
(proporcionan una E/S de datos en paralelo).
Sistemas de archivos
de propósito especial
Los sistemas de archivos de propósito especial (special
purpose file system) son aquellos tipos de sistemas de archivos que no son
ni sistemas de archivos de disco, ni sistemas de archivos de red.
Ejemplos: acme (Plan 9), archfs, cdfs, cfs, devfs,
udev, ftpfs, lnfs, nntpfs, plumber (Plan 9), procfs, ROMFS, swap, sysfs, TMPFS,
wikifs, LUFS, etcétera.
LA INTERFAZ DE USUARIO
La interfaz de usuario es el medio con que el usuario puede
comunicarse con una máquina, equipo, computadora o
dispositivo, y comprende todos los puntos de contacto entre el usuario y
el equipo. Normalmente suelen ser fáciles de entender y fáciles de accionar,
aunque en el ámbito de la informática es preferible referirse a que suelen ser
"amigables e intuitivos" porque es complejo y subjetivo decir
"fácil".
Tipos
En las interfaces
de usuario se pueden distinguir básicamente tres tipos:
1.
Una
interfaz de hardware, a nivel
de los dispositivos utilizados para ingresar, procesar y entregar los datos:
teclado, ratón y pantalla visualizadora.
2.
Una
interfaz de software,
destinada a entregar información acerca de los procesos y herramientas de
control, a través de lo que el usuario observa habitualmente en la pantalla.
3.
Una
interfaz de software-hardware,
que establece un puente entre la máquina y las personas, permite a la máquina
entender la instrucción y al hombre entender el código binario traducido a
información legible.
Según la forma de interactuar del usuario
Atendiendo a como
el usuario puede interactuar con una interfaz, existen varios tipos de
interfaces de usuario:
·
Interfaces
gráficas de usuario (Graphic User Interface, GUI): permiten comunicarse con
la computadora de forma rápida e intuitiva representando gráficamente los
elementos de control y medida.
·
Interfaces
táctiles, que representan gráficamente un «panel de control» en una pantalla sensible al
tacto que permite interactuar con el dedo de forma similar a si se accionara
un control físico.
Estructura de un sistema operativo
El diseño de un sistema
operativo es una tarea compleja. Para reducir la complejidad, los sistemas
operativos, usualmente, son diseñados e implementados mediante una jerarquía de
capas. La arquitectura por capas provee un nivel de abstracción donde los
detalles más complejos están confinados a un módulo. La idea principal en el
diseño de sistemas operativos es la de crear jerarquía de niveles de
abstracción, tal que en cada nivel los detalles de operación de un nivel
inferior son ignorados.
Un modelo jerárquico de un
sistema operativo se muestra en el siguiente gráfico:
Capas de un sistema operativo
Capa 1
Kernel:
En
informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es
un software que constituye una parte fundamental del sistema operativo.
Usa los objetos y operaciones
provistas por el hardware. Las funciones típicas de un kernel son:
Gestión de procesos
Manejo de interrupciones
Intercambio de memoria
Gestión de memoria virtual
Comunicación inter-procesos
Mecanismos de red
Gestión de entradas/salidas
Capa 2
Gestión
de memoria
Las funciones para el manejo
de memoria son implementadas en esta capa. Se reserva memoria para que las
aplicaciones puedan ser cargadas y ejecutadas, y se libera cuando no se
necesita mas.
Capa 3
E/S
Provee funcionalidades para el
manejo de dispositivos de almacenamiento secundario. Provee algunas
funcionalidades para el intercambio de memoria.
Capa 4
Sistema
de archivos
Funciones para la gestión de
la información son implementadas en esta capa. Formas más sofisticadas para la
reserva y distribución de espacio y para el acceso a datos en dispositivos de
almacenamiento secundarios, que aquellas provistas por la capa 3, son
implementadas en esta capa.
Capa 5
Interfaz
de usuario
Provee una interfaz de
comunicación entre los usuarios y el sistema operativo. Esta capa utiliza las
facilidades provistas por las capas anteriores para aceptar comandos de un
usuario. Los sistemas operativos modernos proveen una interfaz gráfica de
usuario (GUI). Las GUI suministran un entorno gráfico para que los usuarios se
comuniquen con el sistema operativo.