Unix
|
Sistemas operativos
6°A
|
Ricardo Hernández Martínez
|
UNIX
El
sistema Unix es un sistema operativo que admite múltiples usuarios, así
como también múltiples tareas, lo
que significa que permite que en un único equipo o multiprocesador se ejecuten simultáneamente varios
programas a cargo de uno o varios usuarios. Este sistema cuenta con uno o
varios intérpretes de comando (shell) así como también con un gran número de
comandos y muchas utilidades (ensambladores, compiladores para varios idiomas,
procesador de textos, correo electrónico, etc.). Además, es altamente
transportable, lo que significa que es posible implementar un sistema Unix en
casi todas las plataformas de hardware.
Actualmente,
los sistemas Unix se afianzaron en entornos profesionales y universitarios
gracias a su estabilidad, su gran nivel de seguridad y el cumplimiento de
estándares, especialmente en lo que se refiere a redes.
Historia
El primer
sistema "Unix" fue desarrollado en 1965 por Ken Thompson en
los laboratorios de Bell AT&T en Murray Hill, Nueva Jersey, Estados Unidos.
El objetivo de Ken Thompson era desarrollar un sistema operativo interactivo
simple, denominado "Multics" (Multiplexed Information and
Computing System [Sistema informático y de Información Multiplexado]) de
manera que pudiera ejecutar un juego que él mismo había creado (Space Travel
[Viaje al espacio], una simulación de un sistema solar).
Luego,
alrededor de Multics se formó un consorcio compuesto por el MIT (Massachesetts
Institute of Technology), la compañía General Electric Co. y
los laboratorios Bell Lab.
En abril
de 1969 los laboratorios AT&T decidieron utilizar el GECOS (General
Electric Comprehensive Operating System [Sistema Operativo Completo General
Electric]) en lugar de Multics. Sin embargo, Ken
Thompson y Dennis Ritchie, quien se había unido al equipo,
necesitaban hacer funcionar el juego Space Travel (Viaje al espacio) en
una máquina más pequeña (un DEC PDP-7, Procesador de Datos
Programados que sólo tenía una memoria de 4K para hacer que se
ejecutaran los programas del usuario). Por este motivo, ellos rediseñaron el
sistema para crear una versión limitada de Multics, denominadaUNICS (UNiplexed
Information and Computing Service [Servicio informático y de Información
UNiplexado]), convenientemente abreviado: Unix.
La fecha
del 1 de enero de 1970 es considerada la fecha de nacimiento del sistema UNIX,
lo que explica por qué todos los relojes del sistema en los sistemas operativos
de Unix comienzan con esta fecha.
Además de
estas actividades, D. Ritchie jugó un papel muy importante en
la definición del lenguaje C (ya que él es considerado uno de sus creadores
junto con B. W. Kernighan). Así el sistema entero fue completamente
reescrito en C en 1973 y se denominó Unix Time-Sharing System (Sistema
de Tiempo Compartido Unix) (TSS).
Cuando el sistema pasó a la versión 7 en 1979, su desarrollo fue acompañado de
notables modificaciones, tales como:
·
la
extracción de las limitaciones relacionadas con el tamaño de los archivos,
·
mejor
portabilidad del sistema (que opera en varias plataformas de hardware),
·
la
inclusión de varias utilidades.
Un
decreto que data del año 1956 impidió que la compañía AT&T, a la que
pertenecía Bell Labs, comercializara cualquier otro producto que no
fuesen teléfonos o equipos de telégrafo. Es por este motivo que se tomó la
decisión, en el año 1973, de distribuir el código fuente de
UNIX en las
universidades, con fines educativos.
Para
fines del año 1977, investigadores de la Universidad de California
desarrollaron otra versión Unix a partir del código fuente provisto por
AT&T para poder ejecutar el sistema en su plataforma VAX y
lo denominaron BSD, que significa Berkeley Software
Development (Desarrollo del Software Berkeley).
De esta
forma se conformaron dos ramas de desarrollo para el código fuente:
·
La rama
de AT&T que se convertiría en Sistema V de
los Laboratorios del Sistema UNIX (USL)
·
La rama
de BSD (Berkeley Software Development [Desarrollo del
Software Berkeley]), desarrollado por la Universidad de California.
En 1977,
AT&T puso el código fuente de UNIX a disposición de otras compañías, a
pesar de que se desarrollaron muchos sistemas similares a UNIX:
·
AIX, Unix comercial basado en el Sistema V desarrollado
por IBM en febrero de 1990
·
Sun
Solaris, Unix comercial basado en el Sistema
V y en BSD desarrollado por SUN Microsystems
·
HP-UX, Unix comercial basado en BSD desarrollado
por Hewlett Packard a partir de 1986
·
Ultrix, Unix comercial desarrollado por DEC
·
IRIX, Unix comercial desarrollado por SGI
·
Unixware, Unix comercial desarrollado por Novell
·
Unix SCO, Unix comercial basado en el Sistema V desarrollado
por Santa Cruz Operations y Hewlett Packard a
partir de 1979
·
Tru64
UNIX, Unix comercial desarrollado por Compaq
En 1983, AT&T tuvo
el derecho de comercializar su Unix, lo que marcó la aparición del Sistema UNIX
V, la versión comercial de su sistema Unix.
En 1985,
un profesor holandés llamado Andrew Tannenbaum, desarrolló un
sistema operativo mínimo denominado Minix, con el objetivo de poder
enseñarles a sus alumnos la programación de sistemas.
En 1991,
un estudiante finlandés, Linus Torvalds, decidió diseñar, basándose en el
modelo Minix, un sistema operativo capaz de ejecutar 386 tipos de
arquitecturas.
Este
sistema operativo se denominó “Linux" y mostraba el siguiente mensaje en
el foro de discusión comp.os.minix:
Hola a todos los que están
utilizando minix – Estoy diseñando un sistema operativo gratuito (se trata sólo
de un pasatiempo, no será gigante y profesional como gnu) para clones AT 386
(486).
Arquitectura de
hardware
La estructura de Unix
se amolda a un típico modelo de capas, de forma que cada capa únicamente puede
comunicarse con las capas que se hallan en los niveles inmediatamente inferior
y superior.
El núcleo (kernel) del sistema interactúa directamente con el hardware y proporciona una serie de servicios comunes a los programas de las capas superiores, de forma que las peculiaridades del hardware permanecen ocultas. Como los programas son independientes del hardware, es fácil mover programas entre sistemas Unix que se ejecutan en hardware diferente.
KERNEL: es el núcleo del sistema, realiza funciones
directamente relacionadas con el hardware. No se relaciona con el usuario.
Permanece oculto. Está formada por dos partes importantes:
·
Administración
de procesos: asigna y administra los recursos de la computadora, controla la
ejecución de los procesos, planifica el tiempo de los procesos que corren a la
vez y determina los privilegios de cada uno.
·
Administración
de dispositivos: supervisa la transferencia de datos entre la memoria principal
y los periféricos (discos, cintas, impresoras, terminales, etc.)
La
ejecución de un proceso en UNIX se divide en dos niveles: nivel usuario y nivel
kernel. Cuando se produce una llamada al sistema se pasa del modo usuario al
modo kernel. Éste analiza la llamada, la ejecuta y devuelve el control a modo
usuario. Esta diferenciación de modo se produce porque los procesos en modo
usuario pueden acceder a sus instrucciones y datos, pero no a instrucciones y
datos del kernel o de otros usuarios; mientras que el modo kernel puede acceder
a todos los datos e instrucciones del sistema. Hay instrucciones privilegiadas
a las que sólo se puede acceder en modo kernel, el cual reside permanentemente
en memoria.
SHELL: es
un utilitario del sistema (no forma parte del kernel). Es el intérprete de
comandos. Su tarea es tomar los comandos enviados por el usuario,
interpretarlos y llamar a las rutinas correspondientes. Existen distintas
versiones del SHELL:
·
sh (standard shell)
·
csh (c-shell)
·
vsh (visual shell)
·
rsh (restricted shell)
·
ksh (korn shell)
Cada
usuario puede elegir su propio Shell. Un Shell muestra un indicador (prompt)
para indicar al usuario que está preparado para aceptar una orden o
instrucción. Para introducir una orden desde el teclado, se escribe el nombre
de la orden junto con la información que esta requiera y se pulsa la tecla
retorno de carro. Esta línea tecleada se denomina línea de comandos u órdenes.
Cuando el
Shell lee una línea de comandos, extrae la primera palabra, asume que éste es
el nombre de un programa ejecutable, lo busca y lo ejecuta. El shell suspende
su ejecución hasta que el programa termina, tras lo cual intenta leer la
siguiente línea de órdenes.
Aplicaciones o software de interface
con el usuario
Interface de usuario
Estas se definen como la parte del
sistema Unix que determina como interactúa el usuario con él, es decir, de que
forma el usuario introduce comandos o cualquier otra información y como el
sistema visualiza los mensajes después de procesar tal información.
La interfaz primaria o básica de Unix
es de tipo texto y hasta no hace mucho ha sido la única para el sistema. Actualmente
hay interfaces graficas como el X Windows, open look, Gnome o KDE. La interfaz
de tipo texto es la que se muestra al cargar el Shell por defecto o el deseado.
En cuanto a la interfaz gráfica x Windows,
la característica fundamental es que incorpora un modelo cliente-servidor para
el modo en que las aplicaciones interactúan con los dispositivos terminales. Incorpora
tambien un protocolo de red y varias herramientas software que pueden ser
utilizadas para crear aplicaciones basadas en x Windows.
La interfaz open look ha sido diseñada
por AT&T y Sun Microcystems como interfaz grafica estándar para el sistema
Unix. Esta interfaz permite ejecutar y visualizar varias aplicaciones simultáneamente
en ventanas separadas sobre una misma pantalla. En general, todas las
operaciones de gestión de archivos se realizan de forma gráfica gracias a la
interfaz open look.
La interfaz KDE 3.2 para Linux, ahora
con un potente gestor de información personal, incorpora, además de la función de
inicio rápido y la reproducción automática de los medios introducidos (CD, DVD).
La interfaz GNOME 2.4 he mejorado la
usabilidad y se han introducido ayudas de accesibilidad para discapacitados.
Interfaz gráfica de usuario (en inglés conocida por el acrónimo GUI, de Graphic User Interfase) tipo de visualización que permite al usuario elegir comandos, iniciar programas y ver listas de archivos y otras opciones utilizando las representaciones visuales (iconos) y las listas de elementos del menú. Las selecciones pueden activarse bien a través del teclado o con el ratón.
Linux
Gestión de procesos
Es
un sistema multiproceso que permite la ejecución de varios procesos de forma simultánea.
Requiere
de otro programa llamado planificador o Schedule que permite gestionar que
proceso entra a ejecutarse en cada instante en la CPU, ya que esta es un
recurso limitado.
Todo
proceso nace cuando algún otro proceso ejecuta la llamada al sistema clone. Clone
crea un duplicado idéntico del proceso que ha llamado.
PROCESS
ID (PID): Cada proceso tiene un número asociado que se le asigna cuando es
creado. Los PIDs son números enteros únicos para todos los procesos sistema.
USER
ID & GROUP ID: Cada proceso tiene que tener asociado unos privilegios que
limiten el acceso al sistema de ficheros. Estos privilegios quedan determinados
por el
user
ID y group ID del usuario que creo el proceso.
PARENT
PROCESS: Todo proceso es creado por otro proceso, el proceso padre (parent
process). El primer proceso iniciado por el kernel cuando el sistema arranca es
el programa init. Este proceso tiene el PID 1 y es el padre de todos los
procesos del sistema.
PARENT
PROCESS ID: El PID del proceso que inició el proceso hijo.
ENVIROMENT:
Cada proceso mantiene una lista de variables y sus correspondientes valores. El
conjunto de estas variables recibe el nombre de process enviroment.
Normalmente
el entorno de un proceso hijo se hereda del proceso padre a menos de que se
indique de otra forma.
CURRENT
WORKING DIRECTORY: Cada proceso tiene asociado un directorio por defecto, donde
el proceso leerá/escribirá archivos, a menos que se le especifique explícitamente
lo contrario.
NICE
NUMBER: Permite al usuario modificar la prioridad de ejecución de un proceso.
Modos de ejecución CPU
El
CPU tiene dos modos de ejecución: el normal (usuario) y el supervisor (Kernel).
Cuando
un proceso en modo usuario hace llamada al sistema. Ocurre un trap y pasa a
modo supervisor, el kernel ejecuta la primera parte de read, pone el proceso en
la cola de espera, selecciona nuevo proceso, pasa control y regresa a modo
normal.
Cambio
de texto
Cuando
el proceso sale del CPU, su estado se guarda para el siguiente turno de ejecución,
el estado incluye valor de los registros CPU, que son restituidos cuando el
proceso vuelve al CPU, estado se guarda en la tabla de process control block en
el kernel (un proceso, indexado por PID).
Servicios
y funcionalidad
El
sistema nos ofrece como usuarios un conjunto de funciones (llamadas a sistema)
para gestionar procesos
·
Crear
/Planificar/Eliminar procesos
·
Bloquear/Desbloquear
procesos
·
Proporcionar
mecanismos de sincronización
·
Proporcionar
mecanismos de comunicación
o
Memoria
compartida
o
Dispositivos
especiales
o
Gestión
de signals
Cuando
un proceso crea otro, se establece una relación jerárquica que se denomina
padre-hijo. A su vez, el proceso hijo (y
el padre) podrían crear otros procesos generándose un árbol de procesos.
Gestión
de la memoria
Objetivos del sistema de gestión de memoria:
·
Ofrecer a cada proceso un espacio lógico propio.
·
Proporcionar protección entre procesos.
·
Permitir que los procesos compartan memoria.
·
Dar soporte a las distintas regiones del proceso.
·
Maximizar el rendimiento del sistema.
·
Proporcionar a los procesos mapas de memoria
muy grandes.
Memoria Virtual
Direccionamiento
de la memoria virtual: Linux utiliza una tabla de página de 3 niveles, cada
tabla en particular tiene el tamaño de una página:
·
Directorio
de páginas: Los procesos activos tienen un directorio de páginas único que
tiene el tamaño de página. El directorio de páginas debe residir en la memoria
principal para todo proceso activo.
·
Directorio
intermedio de páginas: Este directorio se expande a múltiples páginas. Cada
entrada en la tabla de páginas apunta a una página que contiene una tabla de
páginas.
·
Tabla de
páginas: Cada entrada en la tabla hace referencia a una página virtual del
proceso.
Algoritmo de reemplazo de páginas
Linux se
basa en el algoritmo de Reloj, este algoritmo consiste en asociar un bit de
usado y otro de modificado con cada una de las páginas de memoria principal. En
Linux el usado se reemplaza por una variable de 8 bits. Cada vez que se accede
a la página la variable se incrementa. Después Linux recorre periódicamente la
lista completa de páginas y decrementa la variable de edad de cada página a
medida que va rotando por todas ellas en memoria principal. Una página que
tiene un 0 es una "página vieja" es decir no se ha hecho referencia a
ella desde hace ya algún tiempo y es el mejor candidato para el reemplazo.
Cuando el valor de edad es más alto, la frecuencia con la que se ha accedido a
la página recientemente es mayor y por lo tanto tiene un a posibilidad menor de
elegirse para el reemplazo. Este algoritmo es una variante de la política LRU.
Reserva de memoria del núcleo
La
gestión de memoria del núcleo se realiza en base a los marcos de página de la
memoria principal. Su función básica es asignar y liberar marcos para los
distintos usos.
Los
fundamentos de la reserva de memoria en Linux son los mecanismos de reservas de
páginas ya usados para le gestión de memoria virtual de usuario. Como se
utiliza el algoritmo buddy, se puede reservar y liberar unidades de una o más
páginas. Debido a que el tamaño mínimo de memoria que se puede reservar es de
una página, la reserva de páginas no sería muy adecuada ya que el núcleo
requiere pequeños fragmentos que se utilizarán por poco tiempo y que son de
distintos tamaños. Es por eso que Linux utiliza un esquema conocido como
"asignación de láminas". En una máquina Pentium/x64, el tamaño de
página es de 4 Kbytes y los fragmentos dentro de una página se pueden asignar
en tamaños de 32, 64, 128, 252, 508, 2040 y 4080 bytes.
Gestión
de almacenamiento secundario
El sistema de almacenamiento secundario se usa para guardar
los programas y datos en dispositivos rapidos, de forma que sean fáciles,
accesibles a las aplicaciones a través del sistema de archivos.
Hay dos elementos principales involucrados en este sistema.
·
Discos:
el almacenamiento secundario se lleva a cabo casi exclusivamente sobre discos,
por lo que es interesante reconocer su estructura y como se gestionan.
Los discos son los dispositivos básicos
para llevar acabo almacenamiento masivo y no volátil de datos. Además se usan
como plataforma para el sistema de intercambio que usa el gestor de memoria
virtual. Son dispositivos electromagnéticos u optomecanicos, que se acceden a
nivel de bloque lógico por el sistema de archivos.
·
Manejadores
de discos: controlan todas las operaciones que se hacen sobre los discos, entre
las que son especialmente importantes las cuestiones de planificación de
peticiones a disco.
El manejador de discos se puede ver como una caja
negra que recibe peticiones de los sistemas de archivos y el gestor de bloques
y las traslada a un formato que entiende el controlador del dispositivo.
Un sistema
d almacenamiento secundario es necesario, ya que la memoria principal es volátil
y además muy pequeña para almacenar todos los programas y datos. También es
necesario mantener los datos que no convenga mantener en la memoria principal. El
SO se encarga de:
·
Planificar
los discos
·
Gestionar
el espacio libre
·
Asignar el
almacenamiento
Gestión
de entrada salida
Consiste en un sistema de almacenamiento temporal (caché),
una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar
el almacenamiento temporal de E/S y servir las interrupciones de los
dispositivos de E/S.
La Entrada/Salida se
realiza por medio de los controladores de dispositivos, que tienen un rol
especial en el núcleo de Linux. Estos son los encargados de ocultar
completamente los detalles de funcionamiento interno de un dispositivo a nivel
del Hardware, independizando así los programas de usuario que deberán utilizar
ciertas funciones para poder operar con dichos dispositivos; de esta manera, si
hubiera cambios en los dispositivos, porque se añadan, quiten o cambien, no
hará falta volver a programar los programas, bastando con reemplazar los
controladores antiguos por los que gestionen el nuevo hardware.
La
ventaja de desarrollar controladores de dispositivos para Linux consiste en que
estos pueden desarrollarse por separado del resto del núcleo y luego ser
cargados en tiempo de ejecución, cuando se necesiten.
Sistema
de archivos
Los archivos son colecciones de información relacionada, definidas por
sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos
tales como imágenes, textos, información de bases de datos, etc. El SO es
responsable de:
·
Construir
y eliminar archivos y directorios.
·
Ofrecer
funciones para manipular archivos y directorios.
·
Establecer
la correspondencia entre archivos y unidades de almacenamiento.
·
Realizar
copias de seguridad de archivos.
Existen diferentes Sistemas de Archivos, es decir, existen diferentes
formas de organizar la información que se almacena en las memorias (normalmente
discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT,
FAT32, EXT3, NTFS, XFS, etc.
Desde el punto de vista del usuario estas diferencias pueden parecer
insignificantes a primera vista, sin embargo, existen diferencias muy
importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS, que se utilizan
fundamentalmente en sistemas operativos de Microsoft, tienen una gran
diferencia para un usuario que utilice una base de datos con bastante
información ya que el tamaño máximo de un fichero con un sistema de archivos
FAT32 está limitado a 4 gigabytes, sin embargo, en un sistema NTFS el tamaño es
considerablemente mayor.
GNU/Linux comenzó su andadura
con su sistema de archivos “Ext2”, pero éste fue
sustituido por nuevas versiones que si tenían la capacidad de trabajar con
grandes volúmenes de información (Terabytes) y de poder restituir rápidamente
(gracias al “Journaling”) el sistema ante un fallo importante en el sistema de
archivos. Posteriormente aparecieron otros sistemas de archivos nuevos y
mejoras sobre el modelo existente.
Ext2
|
(Sistema
de archivos Extendido, versión 2) el primer sistema de archivos
utilizado por GNU/Linux fue creado por Remy Card (no es del todo cierto,
antes existió “Ext”, utilizado con “Minix”, pero debido a sus limitaciones y
usos no suele contar como un sistema de archivos válido para las distribuciones
GNU/Linux que conocemos hoy en día). Como todos los sistemas de archivos de
Linux, éste también es asíncrono, es decir, no escribe inmediatamente los
metadatos en el dispositivo de almacenamiento, sino que lo hace de manera
periódica. Con ello consigue aprovechar los tiempos muertos de la CPU y
consecuentemente, el rendimiento general del equipo. Pese a ser el primero,
ya dispone de mecanismos que permiten la recuperación de la información en
caso de fallo (detectando particiones desmontadas erróneamente).
|
Ext3
|
(Sistema
de archivos Extendido, versión 3) es compatible con Ext2 (la
única diferencia con éste es que posee un fichero adicional de registro para
implementar “journaling”). De hecho, el objetivo de Ext3 era mejorar Ext2,
pero manteniendo la compatibilidad con éste. Entre las principales
diferencias cabe destacar que Ext3 mantiene la consistencia no solo de los
metadatos (como ya hace Ext2) sino también de los propios datos. Por
supuesto, la seguridad de poder recuperar los datos de nuestro sistema tiene
un coste, y es que tendremos menos rendimiento y más consumo de espacio en
disco.
|
Ext4
|
(Sistema
de archivos Extendido, versión 4) mantiene la compatibilidad con
sus antecesores, posee “journaling”, reduce considerablemente la
fragmentación de archivos (mejorando con ello el rendimiento), permite
dispositivos de almacenamiento de más capacidad.
|
ReiserFS
|
Desarrollado por la empresa Namesys, fue el primer sistema de archivos
con “journal” incluido en un núcleo estándar de Linux. Pero además,
implementa otra serie de ventajas no disponibles en otros sistemas de
archivos, como puede ser la repartición de sistemas de ficheros montados, o
un esquema para reducir la fragmentación. La versión más reciente de este
sistema de archivos se denomina “Reiser4”, y además de las características
antes indicadas, posee mecanismos que le permiten trabajar con cientos de
miles de archivos, y una estructura de archivos optimizada.
|
XFS
|
Creado por Silicon Graphics Inc., se trata de un
sistema de archivos con “journaling” que inicialmente funcionaba sobre la
implementación IRIX de UNIX, pero que posteriormente se liberó como código
abierto. Destaca por su alta escalabilidad y fiabilidad (admite
redireccionamiento de 64 bits, implementación paralelizada), y sobre todo
porque es capaz de trabajar con archivos muy grandes.
|
JFS
|
Desarrollado por IBM, inicialmente fue creado
para servidores de alto rendimiento y equipos de altas prestaciones. Posee un
eficiente “journaling” que le permite trabajar cómodamente con archivos de
gran tamaño como con otros más pequeños. Las particiones JFS pueden ser
dinámicamente redimensionadas (como ya hacía RaiserFS), pero no pueden ser
comprimidas (algo que si hacen RaiserFS y XFS).
|
Estructura
de Directorios en Linux
Pero no solo el sistema de archivos de nuestro
sistema operativo Linux es importante para conocer aspectos que afectan al
rendimiento de nuestro equipo, también es importante que conozcamos la forma en
la que esta estructurado el sistema de directorios.
El estándar utilizado por GNU/Linux para organizar
la información se denomina FHS (Filesystem Hierarchy Standard), y éste sistema se
encarga de organizar la información de forma jerárquica.
Sistema
de protección
Mecanismo que controla el acceso de los programas o los usuarios a los
recursos del sistema. El SO se encarga de:
·
Distinguir
entre uso autorizado y no autorizado.
·
Especificar
los controles de seguridad a realizar.
·
Forzar el
uso de estos mecanismos de protección.
Sistema
de comunicaciones
Para mantener las comunicaciones con otros sistemas es
necesario poder controlar el envío y recepción de información a través de las
interfaces de red. También hay que crear y mantener puntos de comunicación que
sirvan a las aplicaciones para enviar y recibir información, y crear y mantener
conexiones virtuales entre aplicaciones que están ejecutándose localmente y
otras que lo hacen remotamente.
Gestión
de programas del sistema
Son aplicaciones de utilidad que se suministran con el SO pero no forman
parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de
programas, siendo algunas de las tareas que realizan:
·
Manipulación
y modificación de archivos.
·
Información
del estado del sistema.
·
Soporte a
lenguajes de programación.
·
Comunicaciones.
Gestor
de recursos
Como gestor de recursos, el Sistema Operativo administra:
·
La CPU
(Unidad Central de Proceso, donde está alojado el microprocesador).
·
Los
dispositivos de E/S (entrada y salida)
·
La
memoria principal (o de acceso directo).
·
Los
discos (o memoria secundaria).
·
Los
procesos (o programas en ejecución).
·
y en
general todos los recursos del sistema.
Conclusión
Pese
a que los usuarios de este sistema operativo son contados, Unix es un sistema demasiado
bueno ya que al ser de código abierto permite a sus usuarios modificarlo para
ajustarlo a sus necesidades, además de que ayuda a la economía de estos ya que
puede ser ejecutado en cualquier ordenador. Además de que basándose de su código
fuente este ayuda a desarrollar muchas aplicaciones para teléfonos móviles,
pantallas de televisión, tostadoras, lavadoras, etc.
Unix es un sistema operativo muy completo, ya que gracias a las aportaciones de sus usuarios en todo el mundo lo han llevado a ser un sistema muy estable, además de que no hay muchos programas maliciosos que puedan perjudicarlo a diferencia de Windows.
Bibliografía:
No hay comentarios:
Publicar un comentario