jueves, 22 de abril de 2010

/mnt/cdrom/19971125/webs/xingzangwushuxuexiao.cn/html/zhongwen/xingzhang/lishi.htmlRequeriría de mucha memoria y de un buen rato de tecleado. Por suerte, existe otra forma de especificar los nombres de archivo, la que se conoce como nombre de camino relativo. Se llama así pues se especifica el camino en forma relativa al directorio actual. Por ejemplo, si estoy en el directorio de trabajo de rmg y quiero ver una foto que rmg tiene entre sus monos, se puede especificar de estas dos formas:/home/rmg/monos/fotos/lr1.jpgomonos/fotos/lr1.jpgUn punto único (.) se utiliza para referirse al directorio actual. Por ejemplo, el nombre de camino./prog/cuentases el nombre de camino del archivo cuentas del directorio prog del directorio actual. Los dos puntos (..) especifican el directorio padre del directorio actual, que es el siguiente de más alto nivel en el árbol de directorios. Si estamos en el directorio/home/lgm/software/ch-city/El directorio padre sería software, quien tiene como padre a lgm, quien a su vez tiene como padre a home, el que es hijo del directorio raíz ([/]). Este último es el único directorio sin padre, y [/../] es un sinónimo de [/]. El doble punto se utiliza para especificar cosas más abajo en el sistema de directorios. Por ejemplo, si estamos en /home/lgm/disk/, el nombre de camino relativo ../../rmg/recetas/curanto.txt apunta al archivo cuya ruta completa (o nombre de camino completo) es /home/rmg/recetas/curanto.txt.
5. DIRECTORIOSEl UNIX al estar estructurado en árbol se forma una jerarquía de directorios que para un sistema seria:/ Raíz del sistema de archivo./bin Programas esenciales en forma ejecutable/dev Archivos de dispositivos./etc Sistemas diversos./etc/motd Mensaje del dia al inicio de sesión./etc/passwd Archivos de contraseñas./lib Bibliotecas esenciales, etc./tmp Archivos temporales, desaparecen cuando se reanuda el sistema./unix Forma ejecutable del sistema operativo./usr Sistemas de archivos del usuario./usr/adm Administración del sistema, información contable, etc./usr/bin Binarios del usuario./usr/dict Diccionario ( words ) y soporte de spell ( 1 ) etc. Los directorios se crean mediante la llamada al sistema mkdir y se pueden eliminar mediante rmdir. El directorio actual se cambia mediante chdir.Los directorios son la base del sistema jerárquico de archivos de Unix. Son grupos de archivos que sirven para clasificarlos y organizarlos de acuerdo a las necesidades de los usuarios. Un directorio puede contener otros directorios y archivos, y así sucesivamente. En teoría, no existe limitación del número de archivos y directorios que se puedan crear en un directorio, con excepción del tamaño del dispositivo donde se almacena. El sistema de directorios y archivos se puede graficar en lo que se conoce como estructura de árbol. / .---.---.---.---.---.---+---.---.---.---.---.---.---. | | | | | | | | | | | | | | | boot | etc | lib | opt | root | tmp | varbin dev home mnt proc sbin usr | | | .------^--.----.-----. .----.-----| httpd lgm memo rmg log run spool .------+-----. | | |cgi-bin html logs | pubwww | | .-----^--+------.------. | GNUstep monos pubwww recetas .------.--------^-. | disk escritos software .---^---. | | dibujos fotos .--^--. .--^----. tbr sds ch-city utilsEste diagrama representa parte de un sistema de directorios y archivos típico, donde la raíz del árbol se encuentra en la parte superior. Se le llama directorio raíz o símplemente raíz y se denomina con el símbolo / (slash). De ella se ramifican todos los demás directorios del sistema. Por ejemplo, dentro del directorio home, que es un subdirectorio de la raíz, hay cuatro subdirectorios, httpd, lgm, memo y rmg, los que a su vez contienen otros subdirectorios. El directorio donde cada usuario se encuentra al iniciar la sesión se llama HOME o directorio de trabajo. Cada usuario tiene un único directorio de trabajo, desde el cual se puede mover hacia arriba y abajo en el árbol de directorios. Generalmente el directorio de trabajo es un subdirectorio del directorio /home, y tiene como nombre el nombre de presentación del usuario.Nótese que pueden haber varios archivos con nombres iguales en distintos directorios, pero no dentro de un mismo directorio. Recuérdese que se considera la diferencia entre mayúsculas y minúsculas en la distinción de nombres de archivo.¿Cómo se distinguen los archivos uno de otro? En Unix se pueden especificar nombres de archivo incluyendo los directorios en que están ubicados. Este tipo de nombre se llama nombre de camino o nombre de ruta, pues describe el camino a seguir para llegar al archivo. Son de dos tipos:• Nombres de camino completos o absolutos. • Nombres de camino relativos. Los nombres de camino completos son los que van desde la raíz hasta un archivo. Por ejemplo:• / • /bin/sh • /home/lgm/software/ch-city/COPYING • /home/rmg/GNUstep/Library/WindowMaker/Backgrounds/termopilas.png • /etc/httpd/conf/httpd.conf • /usr/local/bin/0verkill • /var/log/messages Los nombres de archivos y directorios se separan con slashes. En los nombres de camino completos, el primer / corresponde al directorio raíz. Especificar un nombre de camino completo elimina toda ambigüedad, ya que no pueden existir dos archivos con el mismo nombre de camino completo, pero puede ser molesto para el usuario. En la mayoría de los sistemas, es común mantener cinco, diez, más incluso, niveles de directorio y, especificar un nombre de camino como este:
4. NODO-I:Un archivo posee varios componentes: un nombre, contenido e información administración como permiso y fechas de modificación. La información administrativa esta almacenada en el “ nodo-i ”( en ingles muchas veces se usa inodo ( sin guión) en vez de i-nodo), junto con datos esenciales para el sistema tales como su longitud, la región del disco en la que se encuentra almacenado el contenido del archivo y otros elementos.Existen tres fechas en un i-nodo: la fecha en la que se hizo la ultima modificación ( escrita ) al contenido del archivo, la fecha en la que dicho contenido fue usado ( leído o ejecutado ) por ultima vez y la fecha en la que el i-nodo fue alterado por ultima vez, por ejemplo, para definir los permisos.El nombre de archivo en un directorio se llama liga ( link) ya que une un nombre en la jerarquía de directorio al nodo-i y, en consecuencia, a los datos. El mismo numero-i puede aparecer en mas de un directorio.Por lo tanto el nodo-i es un registro que almacena información sobre el archivo determinado y contiene: Identificación de usuario y de grupos de archivos. Instantes del ultimo acceso y de la ultima modificación. Contador con él numero de HORD-LINK al archivo. El tipo de archivo. 15 apuntadores a bloques de disco.Los primeros 12 bloques apuntan a bloques directos, o sea que se puede referenciar inmediatamente a 12 directorios de bloques de datos de archivos ( ya que existe una copia del nodo-i en memoria principal, mientras el archivo esta abierto ).Los siguientes tres apuntan a bloques indirectos ( del tamaño del bloque grande): El primero es la dirección de un bloque indirecto simple ( bloques de direcciones de bloques de datos) El segundo apunta a un bloque indirecto doble ( bloque de direcciones de bloques que apuntan a bloques de datos) El tercero apunta a un bloque indirecto triple ( no se lo necesita)
3. PERMISOSCada archivo tiene un conjunto de permisos asociados con él, los cuales determinen que hacerse con el archivo y quien puede hacerlo.Existe un usuario especial en cada sistema UNIX, llamado superusuario, quien puede leer o modificar cualquier archivo en el sistema. La clase de acceso especial root posee privilegios de superusuario: esta la emplean los administradores del sistema cuando llevan a cabo el mantenimiento del mismo. Existe también un comando llamado su que otorga un status de superusuario si se conoce la contraseña de root. Por eso no es recomendable guarda ningún material confidencial en el sistema de archivos.Si el usuario requiere mayor seguridad, puede cambiar los datos en un archivo de manera que ni aun el superusuario puede leerla ( o al menos entenderla) usando el comando crypt.Cuando un usuario entra en sesión, teclea un nombre y después confirma que efectivamente es esa persona tecleando una contraseña ( password ) El nombre es la identificación para iniciar la sesión del usuario, o login-id. Pero el sistema en realidad reconoce al usuario por medio de un número, llamado su “ identificación ( o identificación) de usuario ” o uid.El sistema de archivos y por tanto el sistema UNIX en general determinan lo que el usuario hacer mediante los permisos otorgados a su uid y a su group-id.El archivo es texto ordinario, pero las definiciones de los campos y los separadores son una convención reconocida por los programas que usan la información del archivo.Existen tres tipos de permisos para cada archivo: leer ( es decir, examinar su contenido ), escribir ( es decir, cambiar su contenido ) y ejecución ( es decir, ejecutarlo como un programa ). Además, se puede aplicar un permiso diferente a cada persona. Como dueño de un archivo, el lector posee un conjunto de permisos de lectura, escritura y ejecución. Su grupo tiene otro conjunto. Los demás tienen un tercer conjunto.El bit de set-uid es una idea simple pero elegante que resuelve varios problemas de seguridad.Es particularmente serio para un programa con atributo set-uid ya que root tiene permisos de acceso a cualquier archivo en el sistema. ( Algunos sistemas UNIX apagan el bit-uid cuando un archivo se modifica, para reducir el peligro de una falla de seguridad )Existen llamadas al sistema que crean y borran archivos, y solo a través de ellas es posible cambiar el contenido de un directorio. Sin embargo, la idea de los permisos aun se aplica.Los permisos para borrar archivos son independientes del archivo mismo. Si el usuario tiene permiso de escritura en un directorio, puede borrar archivos de el, aun los que estén protegidos contra escritura.
El sistema de archivos de Unix; esta basado en un modelo arborescente y recursivo, en el cual los nodos pueden ser tanto archivos como directorios, y estos últimos pueden contener a su vez directorios o subdirectorios. Debido a esta filosofía, se maneja al sistema con muy pocas órdenes, que permiten una gran gama de posibilidades. Todo archivo de Unix está controlado por múltiples niveles de protección, que especifican los permisos de acceso al mismo. La diferencia que existe entre un archivo de datos, un programa, un manejador de entrada/salida o una instrucción ejecutable se refleja en estos parámetros, de modo que el sistema operativo adquiere características de coherencia y elegancia que lo distinguen. La gestión de archivos viene implementada por mecanismos propios de UNIX. Esta aproximación tiene consecuencias directas sobre la seguridad del sistema.$ file /bin /bin/de /usr/ src/ cmd/ de.c/ usr/ man/ man1/ de.1 /bin : directory /bin/ de : pure executable /usr/ src/ cmd/ de.c : c program text /usr/ man /,an.1/ de.1 : roff, nroff, or eqn input text Estos son cuatro archivos típicos, relacionados todos con el editor : el directorio en el cual este se encuentra (/ bin), el programa mismo en su forma ejecutable o binaria (/ bin/ ed) , el o conjunto de instrucciones en C que definen el programa (/ usr/ src/ cmd/ de.c) y el manual (/ usr/ man/ man1/ de.1).Para determinar los tipos, File no puso atención a los nombres (aunque podría hacerlo), ya que las convenciones con los nombres, por el echo mismo de no ser mas que convenciones, no son confiables. Por ejemplo, los archivos con sufijo .c son programas fuentes en C, pero nada impide al usuario crear un archivo .c con un contenido arbitrario. En vez de eso, el comando file lee unos cuantos cientos de bytes al principio del archivo y busca indicios que indiquen el tipo de archivo en cuestión.Algunas veces los indicios para identificar un archivos son obvios. Un programa ejecutable se marca con un “numero mágico” binario al principio. El comando od sin ninguna opción vacía el archivo en palabras de 16 bits (o dos bytes) y hacen visible el numero mágico : $ od /bin /de0000000 000410 025000 000462 011444 000000 000000 000000 0000010000020 170011 016600 000002 005060 177776 010600 162706 0000040000040 016616 000004 005720 010066 000002 005720 001376 020076 El valor octal 410 “marca” un programa ejecutable puro, un programa cuyo código puede ser compartido por varios procesos. (los números mágicos específicos son dependientes del sistema). El patrón de bits representado por 410 no es un texto en ASCII, por lo que este valor no podría ser generado inadvertidamente por un programa tal como un editor. Sin embargo, el lector puede crear un archivo así ejecutando un programa propio, y el sistema entenderá la convención de que tales archivo son programas en binario.Para archivos de texto, los indicios que indicar el tipo de archivo en cuestión pueden encontrarse mas escondidos en el. Por ejemplo, el comando file buscará palabras como #include para identificar programas fuente en C, o líneas que comiencen con un punto para identificar entradas para nroffo o troff.
2. SISTEMA DE ARCHIVOS UNIX:Todo en el sistema UNIX son archivos. El sistema de archivos es indispensable para el éxito y utilidad del sistema UNIX.Un archivo es una secuencia de bytes. (Un byte es un pequeño trozo de información, normalmente compuesto por 8 bits. Para nuestro propósito, un byte es equivalente a un carácter.) El sistema no impone estructura alguna a los archivos, ni asigna significado a su contenido; el significado de los byte depende únicamente de los programas que interpretan el archivo. Además, esto es cierto no solo para archivos en disco sino también para dispositivos periféricos. Cintas magnéticas, mensajes de correo, caracteres de teclados, salidas de impresoras, datos que fluyen en interconexiones, cada uno de estos archivos no es mas que un secuencia de bytes desde el punto de vista del sistema y sus programas.Cada byte de un archivo contiene un numero de tamaño suficiente para representar un carácter. El código empleado en la mayoría de los sistemas UNIX es ASCII (“Código Norteamericano Estándar para Intercambio de Información”), Pero algunas computadoras, entre las que sobresalen las IBM, usan un código llamado EBCDIC (“Código Extendido de Intercambio Decimal Codificado en Binario”).Los programas obtienen los datos de un archivo por medio de una llamada al sistema (una rutina del núcleo) llamada read . Cada vez que se invoca a read , esta regresa la siguiente porción de un archivo, la siguiente línea de texto tecleada en la terminal , por ej. read también indica cuantos bytes trae el archivo, por lo que al final del archivo es identificado en el momento en que read dice “ se traen cero bytes”. Si se hubieran quedado algunos bytes en el archivó, read los hubiera leído. En realidad , tiene sentido no representar el final de un archivo con algún valor en especial, ya que, como se menciono anteriormente , el significado de los bytes depende de como se vaya a interpretar el archivo. Pero todos los archivos tienen un final, y como todos los archivos deben accesarse por medio de read , regresar un cero es una manera de representar el final de un archivo ( independientemente de cualquier representación ) sin introducir ningún carácter especial.Cuando un programa lee de la terminal el núcleo envía al programa cada una de las líneas de entrada solo cuando se teclea su carácter de nueva-linea (es decir, cuando se oprime RETURN ). Por lo tanto si se comete un error mecanografico, uno puede corregirlo si es que se lo detecta antes de teclear el carácter de nueva-linea. Si no es así la línea ya ha sido leída por el sistema y no podrá corregirse. ¿ Que hay en un archivo ? El formato de un archivo depende de los programas que lo usen ; existe gran variedad de estos de archivos, debido a que también existen muchos programas. Sin embargo, puesto que los tipos de archivos no son determinados por el sistema de archivos, el núcleo no puede decirnos cual es el tipo de un archivo: no lo conoce.
1. ¿QUÉ ES UNIX?El sistema operativo UNIX surgió en los laboratorios de la AT&T Bell como un proyecto de algunos programadores que querían hacer un SO para ellos mismos.Aunque nunca hayamos usado UNIX, casi todos los sistemas de la actualidad tienen conceptos tomados de él incluyendo al DOS, OS/2, NT, etc.UNIX es algo así como el latín de los sistemas operativos. Uno de los factores que motivan el que hoy se escuche más acerca de este sistema operativo es la aparición del LINUX ,un clon de UNIX freeware.La palabra UNIX es una marca registrada ,que fue pasando de manos con el tiempo y actualmente esta en poder de Novell. Sin embargo,muchas empresas diseñaron sistemas UNIX compatibles. Cuando se habla de compatibilidad entre UNIX , generalmente se habla de compatibilidad nivel código fuente.O sea que se puede tomar un programa escrito en C para una plataforma, compilarlo y usarlo en otra. Los sistemas operativos ”a lo UNIX” son: SCO UNIX,BSD UNIX ,AIX DE IBM, UnixWare de Novell Linux. UNIX es un muy buen SO y se puede usar para casi todo, pero el ámbito en donde se destaca es en redes. Y esto incluye Internet .Como Internet en sus comienzos estuvo lejos del publico en general, y mas cerca de los investigadores, fue natural que la plataforma de elección fuera UNIX.Y es así como todos los conceptos que giran en torno a Internet, sus protocolos, sus servicios, tienen alguna relación con UNIX.La interfase gráfica que se usa en el ambiente UNIX se llama Xwindows, y es muy poderosa .Esta diseñada para trabajar en cualquier sistema operativo y cualquier computadora para funcionar sobre una red con las aplicaciones corriendo en una maquina remota.La forma de moverse dentro de UNIX es parecida a DOS. Los comando más comunes son: Pwd..........para averiguar cual es el directorio actualIs..............para pedir un listado del directorio actualcd.............para cambiar el directoriomkdir.......para crear un directoriocat............para ver un archivoecho.........imprime una cadena de caracterescp.............copia un archivomv............mueve o renombra un archivo
6.Tipos de Sistemas Operativos:El sistema de E/SConsiste 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.Sistema de archivosLos 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, EXT2, NTFS...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.Sistemas de protecciónMecanismo 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 comunicacionesPara 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.Programas de sistemaSon 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.