Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OPERATIVOS
UNIX Y LINUX
POR: María Rodriguéz. Richard Dugarte.
César Hidalgo. Adrian Núñez.
Universidad Nacional
Experimental de la Gran
Caracas
•UNIX
El origen del sistema está ligado al desarrollo de un proyecto iniciado en 1968. En aquel momento un
grupo de investigadores de General Electric, AT&T Bell y del MIT (Instituto Tecnológico de
Massachussets). El resultado de estas investigaciones se bautizó como MULTICS (Sistema Multiplexado de
Información y Computación).
Sin embargo, no fueron inútiles. Posteriormente la idea de este proyecto se vuelve a retomar y conduce al
desarrollo en 1969 del sistema operativo UNIX por Ken Thomson, Dennis Ritchie y otros investigadores,
algunos de ellos integrantes del grupo de programadores que llevó a cabo el proyecto MULTICS. Más
adelante, en 1970, el nombre sufre una pequeña variación y pasa a llamarse UNIX, con el que se le conoce
actualmente.
•LINUX
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 todos los que están utilizando MINIX – Estoy diseñando un sistema operativo
gratuito (se trata solo de un pasatiempo, no será gigante y profesional como GNU)
para clones AT 386 (486).”
•UNIX
OBJETIVO: El objetivo que persiguieron los primeros diseñadores de UNIX fueron
conseguir un sistema operativo que permitiera un desarrollo eficiente de programas, que
fuera pequeño y eficiente en el uso de la memoria y fácil de mantener.
Fue la primera mini computadora que interconectaba todos los elementos del sistema,
procesador, memoria y periférico, en un único bus de comunicación, bidireccional y
asíncrono. Este dispositivo, llamado UNIBUS, permitía a los dispositivos enviar, recibir o
intercambiar datos sin necesidad de pasar por la memoria.
En 1972 se tomó la decisión de escribir nuevamente UNIX, pero esta
vez en el lenguaje de programación C. Este cambio significaba que UNIX
podría ser fácilmente modificado para funcionar en otras computadoras
(de esta manera, se volvía portable) y así otras variaciones podían ser
desarrolladas por otros programadores.
BSD son las siglas de Berkeley Software Distribution. Así se llamó a las distribuciones
de código fuente que se hicieron en la Universidad de Berkeley en California y que en
origen eran extensiones del sistema operativo UNIX de AT&T Research. Varios proyectos
de sistemas operativos de código abierto tienen su origen en una distribución de este código
conocida como 4.4BSD-Lite.
Hay dos tipos comunes de interfaces de usuario en el dispositivo de visualización:
Una interfaz de línea de comandos (CLI) es una interfaz de usuario (UI) basada en texto que se utiliza
para ver y administrar archivos de computadora. Las interfaces de línea de comandos también se
denominan interfaces de usuario de línea de comandos, interfaces de usuario de consola e interfaces de
usuario de caracteres.
La Interfaz gráfica de usuario, conocida también como GUI (Graphical user interface) es el entorno que
utiliza un conjunto de imágenes y objetos gráficos para representar información y acciones disponibles
en la interfaz mediante las cuales una máquina y el usuario interactúan.
La forma que el usuario tiene de acceder a
los servicios del kernel es mediante la
shell. Se puede considerar como el
intérprete de comandos, que permite que
los comandos y programas que tecleamos
sean ejecutados.
Mozilla Firefox Gedit Picasa
Cuando linux se ejecuta, el kernel de linux tiene la primera prioridad de ejecución, conocida como PID 1
(Process ID).
Administración de Memoria en UNIX: En este se administran un sistema de
rígido de forma que esta porción de memoria quede disponible para otro
propósito. Cuando los bloques originales vuelven a ser requeridos, que son
tienen una estructura general en la que los detalles son exactos y pueden variar un poco, en
las cuales los conceptos centrales son superbloque, nodo-i, bloques de datos, bloques de
directorios, y bloques de indirección. El superbloque tiene un sistema de archivos en
conjunto, como su tamaño. Un nodo-i tiene toda la información de un archivo y el número de
nodo-i que representa al archivo. El nodo-i contiene los números de varios bloques de datos,
que se utilizan para almacenar los datos en el archivo.
•Los sistemas de archivos en Linux:
MINIX se vio envuelto en muchos problemas legales, para remediar este problema el creador de
MINIX Andrew S. Tanenbau (Que fue profesor de ciencias en la universidad libre de Ámsterdam, Países
bajos),escribe un nuevo sistema desde cero este tiene compatibilidad con Unix.
Luego además de eliminar los problemas legales, no forma parte de un sistema operativo, sino que se
ejecuta como programa de usuario, lo cual esto ayuda al fácil manejo del programa para los estudiantes,
además de ser escrito en lenguaje de programación C.
El desarrollo de MINIX no solo tuvo como propósito el fin educacional, sino que
también buscaba resolver un problema de factibilidad, como se di antes, tiene menos
trabajo que los núcleos monolíticos arquetípicos de UNIX. Como, por ejemplo:
2. Gestionar el CPU.
Esta capa comprende todas las llamadas “tareas”, que son lo que otros sistemas
operativos llaman manejadores o controladores de dispositivo (drivers). Por cada
dispositivo a controlar, es decir, por cada manejador, hay una tarea ejecutándose en
este nivel.
Aunque las tareas tienen mayores privilegios que los procesos de usuario y tienen
mayor prioridad a la hora de ejecutarse, a efectos de comunicación son igual que los
procesos, es decir, mandan y reciben mensajes.
• Funciones de la capa de nivel de usuario:
Ningún proceso de esta capa puede acceder a zonas de memoria de otros procesos,
estén en la capa que estén. Si se tienen que comunicar, se mandan mensajes, y las
copias en memoria las hacen el núcleo mismo o el servicio del sistema.
Por otro lado, por tener los menores privilegios, si hay un solo proceso de otra capa
intentando ejecutarse, obtendrá la CPU antes. Es decir, que no se ejecutará ningún
proceso del nivel 4 mientras haya procesos de otras capas intentándolo.
1. p_int_blocked: Indica si el proceso tiene una interrupción física
2. p_int_held: Indica si el proceso está bloqueado por alguna razón que no le deje ejecutarse.
3. p_nextheld: Apunta al siguiente proceso en la lista de procesos bloqueados.
4. p_messbuf: Puntero a un “almacén” en memoria donde se guardan los mensajes recibidos.
5. p_callerq: Apunta al primer proceso que está bloqueado.
6. p_sendlink: Este campo es un puntero al siguiente proceso que está bloqueado intentando mandar un
mensaje al mismo proceso que el actual.
7. p_getfrom: Indica al proceso del que está intentando recibir el proceso actual.
8. p_nextready: Apunta al siguiente proceso que esté preparado para ejecutarse.
9. p_flags: Es un campo de indicadores. Si el valor es cero, es que el proceso puede ejecutarse. Si no, hay
algún problema. Este campo se interpreta como una máscara de bits, que puede tener los siguientes
valores:
1) P_SLOT_FREE
2) NO_MAP
3) SENDING
4) RECEIVING
Según todo lo anterior, debemos tener siempre presente que cualquier tarea que implique
ejecución se representará en MINIX por un proceso (interrupciones, llamadas al sistema,
procesos de usuario, tareas del sistema), o al menos uno que lo represente o incluya; y que
cada proceso tendrá asociado una estructura con todos los campos anteriores que servirán
para desempeñar las labores de planificación y comunicación de tales procesos.
• Requerimientos de Unix: • Requerimientos de Linux:
3 la red.
GRACIAS POR TU
AT E N C I Ó N