Professional Documents
Culture Documents
kernel hardware
shell
Pg. 1
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
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
bin
dev
etc
mnt
usr
lib
Curso1
Curso2
bin
arch
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
/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
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
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
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
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
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
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
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
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
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