You are on page 1of 13

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

Sistema Operativo Unix


1. Historia La primera versin de Unix la desarroll en 1969, Ken Thompson del grupo de investigacin de los laboratorios Bell, para un equipo PDP-7 que estaba ocioso. Junto con Dennie Ritchie produjeron el sistema operativo Unix. Ritchie haba participado del proyecto Multics, en el MIT, era un proyecto demasiado ambicioso para un sistema operativo. De este sistema se adaptaron al Unix los siguientes componentes: organizacin bsica de los archivos, el concepto de shell o intrprete de comandos como proceso de usuario, el uso de un proceso individual para cada orden, los caracteres de edicin de lneas, etc, asimismo se utilizaron ideas de otros sistemas operativos como el CTSS del MIT y el sistema XDS-940. El trabajo de Ritchie y Thompson fue silencioso durante muchos aos. En una tercera versin se rescribi la mayor parte del sistema operativo en C, en vez del lenguaje ensamblador anterior. La primera versin disponible para universidades fue la nmero 6 en 1976. En 1978 se distribuy la versin 7. La Universidad de Berkeley era el grupo mas influyente de desarrollo y fue la que agreg en 1978 memoria virtual, paginacin a demanda y reemplazo de pginas, la versin se denomin 3BSD Unix, estas caractersticas facilitaron el desarrollo de programas muy grandes como el Franz LISP de la Universidad de Berkeley. Estos aspectos convencieron a la Agencia de Proyectos de Investigacin Avanzados de Defensa (DARPA) para la financiacin de un proyecto en la Universidad de Berkeley de un sistema operativo Unix estndar para uso del gobierno. (Silberschatz Galvin, Sistemas Operativos, 5ta ed, Editorial Pearson, Mxico, 1999. Cap 21, pgs. 647 693). 2. Versiones comerciales: Las versiones comerciales tienen licencia de AT&T y de BSD. Actualmente existen en el mercado las siguientes versiones:
HP Vx AIX - Solaris - SCO comprado por Microsoft-

3. Arquitectura Sistemas por capas

kernel hardware

shell

a. El kernel administra memoria, procesos y la entrada y salida b. El shell es el intrprete de comandos


Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 1

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

c. Hardware: cada vez que se agrega hardware el kernel se recompila y es transparente, el kernel es un preograma. En Unix todos los dispositivos son archivos. Estructura modular
kernel ps

ls /dev/spa

4. Carctersticas del sistema operativo UNIX a. b. c. d. e. f. Multiusuario Multitarea Multiproceso Comunicacin de datos Administrador de red nativo Biblioteca de rutinas en C

Los siguientes conceptos son comunes para todos los sistemas UNIX, por lo cual se puede afirmar que stos componen las caractersticas principales de UNIX. KERNEL : Este es el componente principal del sistema operativo. Se encarga de asignar tareas y manejar el almacenamiento de datos. El usuario rara vez opera directamente con el kernel, que es la parte residente en memoria del sistema operativo. SHELL : Esta es la utilidad que procesa las peticiones de los usuarios. Cuando alguien teclea un comando en la terminal, el shell interpreta el comando y llama el programa deseado. Tambin es un lenguaje de programacin de alto nivel que puede utilizarse en la combinacin de programas de utilidad para crear aplicaciones completas. El shell puede soportar mltiples usuarios, mltiples tareas, y mltiples interfaces para s mismo. Los dos shells ms populares son el: BourneShell (System V) y el Cshell (BSD Unix), debido a que usuarios diferentes pueden usar diferentes shells al mismo tiempo, entonces el sistema puede aparecer diferente para usuarios diferentes. Existe otro shell conocido como: KornShell (as llamado en honor de su diseador), que es muy popular entre los programadores.
Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 2

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

PROGRAMAS DE UTILIDAD (UTILERIAS) : El Sistema Operativo UNIX incluye una gran variedad de programas de utilidad que pueden ser fcilmente adaptadas para realizar tareas especficas. Estas utilerias son flexibles, adaptables, portables y modulares, y pueden ser usadas junto con filtros y redireccionamientos para hacerlos ms poderosos. SISTEMA MULTIUSUARIOS : Dependiendo del equipo disponible, un UNIX puede soportar desde uno hasta ms de 100 usuarios, ejecutando cada uno de ellos un conjunto diferente de programas. SISTEMA MULTITAREAS : UNIX permite la realizacin de ms de una tarea a la vez. Pueden ejecutarse varias tareas en su interior, mientras se presta toda la atencin al programa desplegado en la terminal. ESTRUCTURA DE ARCHIVOS : La estructura de archivos del UNIX est pensada para facilitar el registro de una gran cantidad de archivos. Utiliza una estructura jerrquica o de rbol que permite a cada usuario poseer un directorio principal con tantos subdirectorios como desee; UNIX tambin permite a los usuarios compartir archivos por medio de enlaces (links), que hacen aparecer los archivos en ms de un directorio de usuario. Adems, UNIX permite proteger los archivos del usuario contra el acceso por parte de otros usuarios. ENTRADA Y SALIDA INDEPENDIENTE DEL DISPOSITIVO : Los dispositivos ( como una impresora o una terminal) y los archivos en disco son considerados como archivos por UNIX. Cuando se da una instruccin al UNIX puede indicrsele que enve el resultado a cualquiera de los diversos dispositivos o archivos. Esta desviacin recibe el nombre de redireccionamiento de la salida. En forma similar, la entrada de un programa puede redireccionarse para que venga de un archivo en disco. En el UNIX, la entrada y la salida son INDEPENDIENTES DEL DISPOSITIVO, pueden redireccionarse hacia o desde cualquier dispositivo apropiado. COMUNICACIN ENTRE PROCESOS : UNIX permite el uso de conductos y filtros en la lnea de comandos. Un conducto (pipe) redirige la salida de un programa para que se convierta en entrada de otro. Un filtro es un programa elaborado para procesar un flujo de datos de entrada y producir otro de datos de salida. Los conductos y filtros suelen usarse para unir utileras y realizar alguna tarea especfica 5. Requerimientos de Hardware a. PC 386 o superior b. RAM 8 MB 6. Sistema de Archivos a. Estructura de rbol Directorio Archivo
Pg. 3

Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

b. Esturctura de Archivos y Directorios /

bin

dev

etc

mnt

usr

lib

Curso1

Curso2

bin

mail

arch

mail

docs

uno

dos

Mensaje2

Mensaje.todos

La estructura de archivos del sistema operativo UNIX suele organizarse conforme a una convencin, en donde generalmente se encuentran los siguientes archivos y directorios : / (root) El directorio raz, que se encuentra en todos las estructuras de archivos de UNIX. /usr Es en donde generalmente se encuentran los directorios domicilio de los usuarios. /bin/usr/bin Estos directorios incluyen las utilerias estndar de UNIX. Por convencin, /bin contiene las utileras (archivos ejecutables) usadas con ms frecuencia, mientras que /usr/bin estn las utilidades ms complicadas, as como programas especficos de ciertos equipos.

Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 4

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

/dev Todos los archivos que representan dispositivos se almacenan en este directorio. /etc Aqu se almacenan archivos varios. El ms til es el archivo PASSWD, que es una lista de todos los usuarios que tienen permiso para utilizar el sistema. Adems de este archivo, aqu se encuentran comandos usados por el supervisor, archivos de configuracin, archivos de configuracin de discos, archivos de inicializacin, listas vlidas de usuarios, grupos, ethernet, hosts, a donde mandar mensajes crticos, etc.. /tmp Aqu se guardan los archivos temporales que crean los programas que son ejecutados. /lib Libreras del compilador. /bsd Comandos del UNIX de Berkeley. /mnt Vaco, utilizado por los discos. /stand Informacin de booteo. /lost+found Aqu se va la informacin y los procesos que se estaban ejecutando cuando el sistema se cae. /unix* Archivos ejecutables del kernel. Un sistema de archivo en Unix Informacin general sobre la estructura

SUPERBLOQUE
Direcciones de datos de cada Bloque

LISTA INODO
Bloque de datos -en la MEM c/bloque es de 1K

DATOS

Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 5

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

Elementos de un archivo Un archivo puede ser tanto un programa, como un documento, una base de datos, o un directorio o un dispositivo, el sistema operativo les d a todos la misma estructura. Inodo: es un registro en la estructura del sistema de archivos que contiene informacin acerca del archivo, tales como los permisos del archivo, el propietario, el tamao, etc. Datos: el contenido actual del archivo, el cual puede estar vaco o ser un grande en tamao con su propia estructura. Nombre de archivos: el nombre de un archivo se almacena dentro de un archivo de directorio. Los nombres de archivos en Unix contienen casi cualquier combinacin de caracteres ASCII, hasta 255 caracteres de largo. Existen convenciones par manejar con mayor facilidad los archivos: Dar un nombre simple al archivo, que refleje el propsito del archivo, raramente requieren ser ms largos que 14 caracteres. Los nombres de archivos pueden contener casi cualquier caracter ASCII, excepto por la / o el caracter nulo -ASCII 0- Esto ocurre porque dichos caracteres son especialmente interpretados por el kernel a los nombres de las rutas o path. Se pueden utilizar los caracteres como _ y el .. Se deben evitar los siguientes caracteres ya que tienen significado especial para el shell:

;|<> ` $ ! % & * ? \ () []
En los nombres de archivos se deben evitar los espacios en blancos, las tabulaciones o cualquier control de caracter. Utilizar prefijos comunes o extensiones para los archivos comunes Los archivos que comiencen con un . son archivos ocultos Tipos de archivos

Ordinarios :

secuencia ordinaria de bytes. El kernel no le impone estructura, es una secuencia de bytes. Directorio: d, es un archivo especial que organiza la jerarqua de la estructura del rbol del sistema de archivos. Los directorios contienen
Pg. 6

-,

Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

datos y el kernel le impone una estructura a estos datos, una lista de inodoEl ndice de nmeros de inodos dentro de una tabla de inodo donde se guarda informacin del estado de los archivos Los nombres de archivos son cadenas de texto que se asingnan a un archivo para identificarlo. En un mismo directorio no pueden existir dos archivos con el mismo nombre. La primera entrada de un directorio representa el direcorio es s mism y est indicada con un . y la segunda entrada de cualquier directorio tiene el nombre .. y representa el directorio padre.

Link Simblico:

son archivos especiales que hacen referencia a otros archivos. El dato que almacenan es el path o ruta del archivo dentro del sistema de archivo. El kernel automticamente accede a el path almacenado cuando se utiliza un enlace simblico.

l,

c , son archivos especiales que no contienen Archivo de dispositivo datos excepto la informacin almacenada en el archivo inode. Son utilizados por el sistema para identificar un dispositivo especfico que el kernel utilizar para comunicarse con los dispositivos de hardware. Exsiten dos tipos de archivos de dispositivos : a. Caracteres: permite la transferencia de entrada y salida de cualquier tamao. Terminales, mouse, impresorasb. Bloques: utiliza las facilidades de buffering automticodel buffer cache del kernel, donde la transferencia de entrada y salida son siempre de 1 kb en tamao. Discos, disqueterasEl directorio HOME es el directorio de trabajo o el directorio actual /usr/juan Permisos de archivos Los permisos de acceso son las protecciones que se le pueden asignar a un archivo. Estas protecciones pueden proteger los archivos de cualquier usuario de que sean ledos a escritos por gente no autorizada, incluso se pueden proteger los archivos de que sean alterados por su mismo propietario (por ejemplo para evitar que los borre accidentalmente). Hay tres tipos de usuarios que pueden acceder a un archivo : u (user, owner) el dueo del archivo. g (group) el grupo al que pertenece el dueo del archivo. (other) todos los dems.

Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 7

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

Un usuario puede intentar acceder a un archivo sencillo de tres maneras : intentando leerlo, escribir en l o ejecutarlo, estos tres accesos son : r (read) lectura; examinar, copiar datos de un archivo. w (write) escritura; modificar, borrar un archivo. x (execute) ejecutar; usar el archivo como un comando. El dueo de un archivo controla que usuarios tienen permiso de acceso y de que manera pueden hacerlo; el comando ls -l despliega los permisos de acceso asociados a un archivo, el primer campo de 10 caracteres describe los permisos asociados con ese archivo, un campo tpico se ilustra a continuacin : rwxr-xr-x De las nueve columnas, las tres primeras representan los derechos del usuario, los siguientes tres son los derechos del grupo, y los ltimos tres son los derechos de todos los dems. Una letra en el campo significa que el permiso (Read, Write o eXecute) esta concedido, un guin significa que el permiso no est concedido. En el caso de directorios, que no pueden ser ejecutados, el permiso de ejecucin significa que puede realizar una bsqueda por todo el directorio y listar su contenido. Si se entra al sistema como SUPER-USUARIO, se tiene acceso completo a todos los archivos, independientemente del permiso del dueo o del acceso. Para cambiar permisos de acceso de un archivo o directorio, se usa el comando chmod : chmod <permiso> <archivo1[archivoN]> El permiso se puede expresar en dos formas : con letras : [ugo] [+-=] [rwx] con nmeros: [0-7] [0-7] [0-7] El mtodo para cambiar un permiso con letras es el siguiente : Las letras u, g y o representan el Usuario, el Grupo, y Otros (todos los dems). El signo + significa que el permiso se va a conceder, mientras que el signo - significa que el permiso se
Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 8

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

va a revocar. El signo = significa que se instalen los permisos como se muestra a continuacin, algunos ejemplos de cambio de permisos es : $chmod u+x,g-w,o-w archivo1 $chmod u=rx archivo1 El segundo mtodo interpreta el nmero puesto como su equivalente en binario (nueve dgitos binarios), activando el permiso donde se haya puesto un 1 y desactivndolo donde se haya puesto un 0; por ejemplo : $chmod 755 archivo1 Significa que al archivo 1 se le asignaron permisos de la siguiente manera : 755 111 101 101 rwx r-x r-x Pueden establecerse dos privilegios de acceso adicionales para archivos ejecutables FIJAR ID (Identificacin de Usuario) y FIJAR ID DE GRUPO. Estos privilegios de acceso permiten conceder en forma temporal los privilegios de usuario, mientras el autorizado ejecuta un archivo perteneciente al usuario propietario. Fijar el permiso de acceso al archivo con la identificacin da, a cualquiera que ejecute el archivo, la identidad de usuario del dueo del archiv 7.Procesos Los archivos son elementos estticos Los procesos son elementos dinmicos programas en ejecucin en un ambiente, variablesLos procesos tienen una estructura jerrquica El proceso de inicio /etc/inittab, se levanta el swapper 0 memoria virtual-, cada proceso tiene un nro de identificacion pid-. El inittab es el padre de todos los procesos, se lanza al arrancar el sistema operativo y deja en memoria procesos durmiendo hasta que se los despierte demonProf (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 9

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

Luego corre el proceso /etc/gettz, se carga cuando arranca una terminal acorde al inittab, influye la velocidad, luego aparece el login. El login controla el usuario y cuenta en el etc/pwd y luego lanza el shell El shell se encuentra en /bin y puede ser del tipo: Bourne shell sh con cualquier Unix, interprete de comandos basico Korn shell ksh segn el administrador y el programa de crear usuario Shell restringidos es limitado por el administrador En el shell se ingresan los comandos y se cargan las variables de ambiente como HOME, PATH, PROMPT El proceso que se ejecute es hijo de /bin/sh y este de init, el hijo tiene siempre el nro mayor que el padre. Tabla de procesos psUn proceso puede ser interrumpido o Kill Proceso 0
init

Etc/gett z Login (chequea el usuario y cutenta en el etc/pwd)

Lanza el Shell

/bsh /csh /ksh 8. Sintxis de la lnea de comandos Los usuarios teclean comandos en el prompt del shell. El prompt por default para el BourneShell es el signo de dlares ($). En general el shell espera ver la siguiente sintaxis : <comando> <opciones> <argumentos> Para iniciar la ejecucin del comando, despus de la sintaxis anterior se debe presionar la tecla <ENTER>, hasta entonces el shell interpreta la lnea de comandos. Comando : Este es un comando de UNIX. Algunas veces el comando es representativo de la funcin, por ejemplo el comando ls es una contraccin de la primera y tercera letras de la palabra "list". Opciones : Tambin conocidas como banderas (flags), forma ms comn de ponerlas es: A, donde A es la abreviacin de las funciones opcionales del comando; por ejemplo el comando ls lista el contenido de un directorio, mientras
Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 10

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

que el comando ls -l da una lista Larga del directorio y ls -C proporciona la salida en Columnas. Argumentos : Estos pueden ser nombres de archivo, nombres de usuario, o calificadores para el comando o alguna de sus opciones. 9. Comandos del Unix Date Echo Who Logname : nombre del usuario Hostname: nombre de la mquina Id: identificador del usuario y de los grupos Whoami: nombre del usuario Su: para abrir una sesin dentro de otra, para matar procesos en shell de otro usuario kill 9, copiar, como administrador para copiar archivos a los usuarios, para cambiar la propiedad ownership de los archivos-, el id es del otro usuario, en cambio el logname sigue siendo del usuario que se conect. Para salir se coloca exit. 9) At, ejecuta un comando en una fecha y hora determinada 10) Shutdown -g0 i0 y , apagar el sistema 11) Man, ayuda en lnea de los comandos 12) Banner, muestra palabras en un tamao de titular grande 13) Wall, mensaje para todos los usuarios Manejo de archivos 1) cat, ver el contenido 2) more por pantalla 3) cp copiar 4) mv mover 5) rm (rm r) borra todo el rbol y su contenido 6) rmdir 7) mkdir crea directorio 8) cd cambia de directorio 9) pwd mirar el directorio actual 10) ls mirar el contenido de todos los directorios ls ld: se ven los permisos de los directorios ls ld .. dueo del dir de trabajo 11) chmod, cambia los permisos de un archivo 12) cmp, compara archivos de cualquier tipo 13) find, busca archivos segn opciones.
Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

1) 2) 3) 4) 5) 6) 7) 8)

Pg. 11

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

Comandos de Procesos 1) ps ef 2) ps l 3) kill nro de seal, nro de proceso, porcentaje, nro de tarea en kshell: kill 9, en kornshell %1, mata la tarea 1 Filtros 1) sort ordenar 2) grep buscar 3) wc cuenta los caracteres Ejemplo grep curso busco lneas en /etc/passwd | sort selecciona |tee uu.or ordena |wc l cuenta las lneas clear, date, echo, who , pueden ir delante del grep 4) tail muestra los 10 ltimos archivos 5) head: muestra los 10 primeros Variables: Area del shel donde guardo un valor $n=monica $banner $n $dir = /etc $u= /etc/passwd Las variables quedan en el shell hasta que se cierra la sesin Las variables se heredan de padre a hijo. Para enviar variables a otros shell, se utiliza el comando export u dir n. Las variables globales se deben exportar a todos los shell que la utilicen. Los programas se utilizan para inicializar variables al inicio y apagado del equipo, ejemplo en el profile HOME, PATH, PWDVariables del sistema en maysculas para identificar la diferencia entre las variables y comandos. Todo directorio de trabajo tienen un bin, para guardar los programas.

Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 12

Universidad Argentina John F Kennedy

Dpto Computacin - Sistemas Operativos II

Pasar argumentos a un programa shell $ cp ren otro ren y otro son argumentos Sirven para pasar informacin de un programa a otro Programa eco echo los argumentos son: echo argumento 1 = $1 echo argumento 2 = $2 Programa ejecutado server33:/u/usuarios/curso/curso01>eco so unix los argumentos son: argumento 1 = so argumento 2 = unix ** Slo sirve para dos argumentos. Argumentos posicionales Los primeros nueve argumentos posicionales son nueve, pero igualmente se pueden escribir ms de 10 argumentos. Existen tres variables del shell $* tiene la lista de todos los argumentos $# nmero de argumentos $$ el pid del proceso actual

Prof (s) Ing (s) Luis E Arellano Gonzlez - Mara Elena Darahuge

Pg. 13

You might also like