UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO Facultad de Ingeniería Laboratorio de computación para Ingenieros Practica No. 4 “Sistemas Operativos y de Desarrollo parte II” Equipo 8: Caballero Jiménez Dafne Raquel Pérez Morales Berenice Concepción Puerto Moctezuma Sara V. Grupo: 1113 OBJETIVO: Conocer los sistemas operativos de desarrollo Unix y Linux. Primera parte Historia El inicio del desarrollo de este sistema operativo (uno de los más influyentes en la historia de la computación) fue muy particular, pues nadie habría predicho el éxito de UNIX después de su primera encarnación. A finales en 1960, el Instituto Tecnológico de Massachussets, los laboratorios Bell de AT&T y General Electric trabajaban en un sistema operativo experimental llamado Multics (Multiplexed Information and Computing System), desarrollado para ejecutarse en un ordenador o computadora central (mainframe) modelo GE-645. El objetivo del proyecto era desarrollar un sistema operativo interactivo que contase con muchas innovaciones, entre ellas mejoras en las políticas de seguridad. El proyecto, por cierto, consiguió dar a luz versiones para producción, pero las primeras versiones contaban con un pobre rendimiento. Los laboratorios Bell de AT&T decidieron desvincularse y dedicar sus recursos a otros proyectos. Uno de los programadores del equipo de los laboratorios Bell, Ken Thompson, siguió trabajando para la computadora GE-645 y escribió un juego llamado Space Travel (Viaje espacial). Sin embargo, descubrió que el juego era lento en la máquina de General Electric y resultaba realmente caro, algo así como 75 dólares de EE.UU. por cada partida. De este modo, Thompson escribió nuevamente el programa, con ayuda de Dennis Ritchie, en lenguaje ensamblador, para que se ejecutase en un ordenador DEC PDP-7. Esta experiencia, junto al trabajo que desarrolló para el proyecto Multics, condujo a Thompson a iniciar la creación de un nuevo sistema operativo para la DEC PDP-7. Thompson y Ritchie lideraron un grupo de programadores, entre ellos a Rudd Canaday, en los laboratorios Bell, para desarrollar tanto el sistema de ficheros como el sistema operativo multitarea en sí. A lo anterior, agregaron un intérprete de órdenes (o intérprete de comandos) y un pequeño conjunto de programas. El proyecto fue bautizado UNICS, como acrónimo Uniplexed Informationand Computing System, pues sólo prestaba servicios a dos usuarios (de acuerdo a Andrew Tanenbaum, era sólo a un usuario [1]). La autoría de esta sigla se le atribuye a Brian Kernighan, ya que era un hack de Multics. Dada la popularidad que tuvo un juego de palabras que consideraba a UNICS un sistema MULTICS castrado (pues eunuchs, en inglés, es un homófono de UNICS), se cambió el nombre a UNIX, dando origen al legado que llega hasta nuestros días. 1-. ¿Qué es UNIX? Ken Thompson y Dennis Ritchie Unix® (o UNIX) es un sistema operativo portable, multitarea y multiusuario; desarrollado en principio por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy. Hoy día, la palabra UNIX se utiliza para denotar diferentes conceptos dependiendo del contexto en que es usada. Esto suele dar lugar a confusiones: • UNIX - familia: desde el punto de vista técnico, UNIX se refiere a una familia de sistemas operativos que comparten unos criterios de diseño e interoperabilidad en común. Esta familia incluye más de 100 sistemas operativos desarrollados a lo largo de 20 años. No obstante, es importante señalar que esta definición no implica necesariamente que dichos sistemas operativos compartan código o cualquier propiedad intelectual. • UNIX - el sistema operativo original: desde el punto de vista histórico, UNIX se refiere a la subfamilia de sistemas operativos que descienden de la primera implementación original de AT&T. El término “descendencia” ha de interpretarse como trabajos derivativos que comparten propiedad intelectual con la implementación original. • UNIX - la marca: desde el punto de vista legal, Unix es una marca de mercado. Dicha marca es propiedad de “The Open Group”, una organización de estandarización que permite el uso de dicha marca a cualquier sistema operativo que cumpla con sus estándares publicados. Todo ello independientemente de que el sistema operativo en cuestión sea descendiente o clónico del Unix original. Resumiendo, la marca Unix no es propiedad de ninguna compañía. 2.- ¿Cuáles son sus principales características? UNIX es un sistema operativo, que se creó en los años 60 en los laboratorios BELL. En un principio surgió como respuesta a las necesidades de las máquinas de la época, máquinas muy caras, que debían ser compartidas por muchos usuarios, con capacidades muy limitadas que tenían que ser exprimidas al máximo. Es una maquina virtual, es decir, no trabajas directamente con las propiedades de la maquina en la que estas conectado sino que esta es un terminal de otra maquina al cual se le llama servidor. Es uno de los Sistemas más completos el cual esta escrito en C. Fue diseñado especialmente para programadores. Esto dio como resultado un sistema operativo con las siguientes características: • Multitarea: Debía ser capaz de ejecutar varios programas a la vez. Controlando que cada uno no consumiese todos los recursos del sistema y permitiendo que realice las funciones para las que ha sido diseñado. • Multiusuario: Varios usuarios concurrentes podían emplear los distintos recursos del sistema. Así, varios usuarios utilizarían al mismo tiempo el mismo programa, sin que cada uno interfiriera en la actividad del otro. Esto está íntimamente relacionado con la reserva de memoria por proceso y no por programa. • Jerárquico: Cada usuario tenía unos permisos y unos privilegios y, éstos eran insaltables. Por ello, si un usuario intentaba algo para lo que no tenía privilegios, el sistema debía negarle el permiso y mostrarle un mensaje de error. • Robustez: Era necesario que el sistema fuera lo más robusto posible, para poder aprovechar al máximo el rendimiento de equipos, por lo general, muy caros. • Consistencia: El sistema debía evolucionar de forma continuada, pero sin cambiar las órdenes y comandos que empleaban los usuarios, con el objetivo de asegurar la no obsolescencia de los conocimientos básicos sobre el sistema. Para ello, se creó la asociación de productores de UNIX, agrupada bajo el nombre de USENIX. El objetivo de ésta asociación era mantener la unidad de UNIX más allá de las distintas versiones. 3.- Diga los comandos que utiliza Permite cambiar la palabra clave de acceso, vigile que no sea obvia, que usted se acuerde para la próxima vez que desee entrar y preste atención a las mayúsculas y minúsculas que pone. Generalmente el sistema obliga a caracteres alfabéticos y caracteres especiales (al menos uno como. _ dígito). Además para que Ud. este passwd: seguro le pedirá que lo repita antes de hacerlo efectivo. El passwd lo puede cambiar tantas veces como quiera pero existe un máximo de días para trabajar con el mismo passwd luego el SO le obligará a cambiarlo de lo contrario no lo dejará acceder. (print working directory) imprime el directorio donde estamos situados (actual). pwd: (change directory) cambia de directorio. Unix permite identificar los directorios padre e hijo por .. y . como abreviaturas, por lo que el comando cd .. permite pasar al cd: directorio superior (padre). (list) permite listar el contenido de un directorio. Admite diferentes opciones: -l ls: form. largo, -a lista todos, -d sólo directorios, -s sólo tamaño, etc. Permite cambiar los permisos de lectura(r), escritura (w), ejecución(x) de un archivo/ directorio. Unix reconoce tres grupos de usuarios: dueño (owner) del archivo/dir, grupo (group) y resto (public) y por cada arch/dir existen 9 bits (rwxrwxrwx) que indican qué está permitido para el dueño-grupo-resto hacer con ese archivo (estos bits se pueden visualizar con ls -l) por ejemplo rw-r--r-- indicará: dueño lee-escribe, chmod: grupo-resto sólo lee. Para cambiarlo existen diferentes formas pero la más sencilla es considerar los bits agrupados de tres en tres y el siguiente código (valor octal de los bits): 7 significa rwx, 6 rw-, 5 r-x, 4 r--, 3 -wx, 2 -w-, 1 --x, 0 ---, por lo cual para poner el código anterior (rw-r--r--) será chmod 644 nombre_del_fichero. Permiten cambiar el dueño de un fichero y su grupo. Cuidado con esta opción pues chown y chgrp: si le cambiamos el dueño a un fichero luego no podremos recuperar el antiguo (sólo lo puede hacer el nuevo), además sólo podemos cambiar el dueño a nuestros ficheros. (visual editor) editor de textos en modo pantalla. vi: (manuals) manuales interactivos de Unix, para utilizarlos poner man nombre_del_ man: comando. (concatenate) permite concatenar ficheros o ver su contenido (1 o más). cat: (copy) permite copiar ficheros. cp: Da información sobre hora y fecha. date: (disk free) información sobre espacio de disco libre. df: (disk usage) información sobre espacio de disco ocupado. du: Busca archivos en el árbol de directorios. find: Permite enviar mensajes a otros usuarios sobre la misma máquina o sobre otras mail: máquinas. (make directory) crea directorios. mkdir: Visualizador del contenido del fichero (más agradable que el cat). more, page: (move) permite mover ficheros o renombrar. mv: (remove) borra fichero / borra directorios (rm -r borra fich./dir.) rm, rmdir: Permite ver quién está conectado (whoami indica quien soy). who: Permite ver quién esta conectado y qué hace. w: (process status) permite ver los procesos que está ejecutando el SO. ps: (calendar) imprime un calendario. cal: borra el display de la terminal (si está bien configurado el emulador) clear: compress, uncompress: dc: diff: env: expr: exit: file: grep: kill: ln: lp: mesg: nice: nohup: quota: sed: awk: ftp: telnet: sleep: sort: su: tail: tar: tee: test: users: wc: write: compacta/descompacta archivos. (desk calculator) calculadora. (different) permite comparar dos archivos. (environmnet) imprime el entorno (variables). (expression) evalúa argumentos de una expresión. Se desconecta (termina la sesión activa). Idem que ^D. Imprime el tipo de fichero que es (ejecutable/texto/archivo de C/etc.). Busca un patrón en un archivo. Elimina un proceso de ejecución. (link) genera un link a un fichero. (line printer) envía un fichero a imprimir (si la impresora está habilitada) (lpstat información sobre las impresoras conectadas). habilita/deshabilita los mensajes de otros usuarios sobre el terminal (se envían con write). Ejecuta los comandos con baja/alta prioridad. (no hangup) permite ejecutar un comando aún después de desconectarse de la máquina. Muestra el espacio de disco restante del total asignado. stream editor. Procesamiento de patrones y lenguaje incluido. (file transfer protocol) permite transferir ficheros entre diferentes máquinas. Permite comunicarse con otras máquinas en forma interactiva. Suspende la atención por un determinado tiempo. Ordena por campos. Reemplaza la identidad de un usuario temporalmente. Permite ver el contenido de un archivo comenzando por el final. (tape archiver) agrupa ficheros/directorios en un único fichero. Permite que una salida de un comando sea dirigida a dos sitios simultáneamente. Evalúa condiciones. Lista los usuarios del sistema. (word count) cuenta caracteres/campos/etc. Envía mensajes a usuarios que se encuentren conectados. 4.- Aplicaciones en Ingeniería General Gestionar, programar y administrar plataformas HP-UX. Trabajar con sistemas de alta disponibilidad y arquitecturas de 64 bitsp. 5.- Aplicaciones en Ingeniería Industrial Las aplicaciones que le podemos dar son muchas pero en un campo muy avanzado, a estas alturas se nos puede dificultar ya que no tenemos los conocimientos de expertos. Este sistema es una maquina virtual que consultaríamos para llevar acabo la realización de otros trabajos, además de que nos facilitaría información adecuada para trabajar con otros sistemas operativos. Segunda parte Historia Linus Torvalds, creador de Linux La historia de Linux está fuertemente vinculada a la del proyecto GNU. El proyecto GNU, iniciado en 1983, tiene como objetivo el desarrollo de un sistema Unix completo compuesto enteramente de software libre. Hacia 1991, cuando la primera versión del núcleo Linux fue liberada, el proyecto GNU había producido varios de los componentes del sistema, incluyendo un intérprete de comandos, una biblioteca C y un compilador. El proyecto GNU aún no contaba con el núcleo que definiría un sistema operativo. Sin embargo, el núcleo creado por Linus Torvalds, quien se encontraba para entonces estudiando en la Universidad de Helsinki, llenó el hueco final que el sistema operativo GNU exigía. Subsecuentemente, miles de programadores voluntarios alrededor del mundo han participado en el proyecto, mejorándolo continuamente. Torvalds y otros desarrolladores de los primeros días de Linux adaptaron los componentes de GNU para trabajar con el núcleo de Linux, creando un sistema operativo completamente funcional. Cabe mencionar que a pesar de que el núcleo de Linux se libera bajo los términos de la licencia GPL, no es parte oficial del proyecto GNU. 1.- ¿Qué es LINUX? Linux es la denominación de un sistema operativo y el nombre de un núcleo. Es uno de los paradigmas del desarrollo de software libre (y de código abierto), donde el código fuente está disponible públicamente y cualquier persona, con los conocimientos informáticos adecuados, puede libremente estudiarlo, usarlo, modificarlo y redistribuirlo. El término Linux estrictamente se refiere al núcleo Linux, pero es más comúnmente utilizado para describir al sistema operativo tipo Unix (que implementa el estándar POSIX), que utiliza primordialmente filosofía y metodologías libres (también conocido como GNU/Linux) y que está formado mediante la combinación del núcleo Linux con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software (libre o no libre). El núcleo no es parte oficial del proyecto GNU (el cual posee su propio núcleo en desarrollo, llamado Hurd), pero es distribuido bajo los términos de la licencia GNU GPL. La expresión Linux también es utilizada para referirse a las distribuciones Linux, colecciones de software que suelen contener grandes cantidades de paquetes además del núcleo. El software que suelen incluir consta de una enorme variedad de aplicaciones, como: entornos gráficos, suites ofimáticas, servidores Web, servidores de correo, servidores FTP, etcétera. Coloquialmente se aplica el término Linux a éstas, aunque en estricto rigor sea incorrecto, dado que la distribución es la forma más simple y popular para obtener un sistema Linux. La marca Linux (Número de serie: 1916230) pertenece a Linus Torvalds y se define como “un sistema operativo para computadoras que facilita su uso y operación”. Desde su lanzamiento, Linux ha incrementado su popularidad en el mercado de servidores. Su gran flexibilidad ha permitido que sea utilizado en un rango muy amplio de sistemas de cómputo y arquitecturas: computadoras personales, supercomputadoras, dispositivos portátiles, etc. Los sistemas Linux funcionan sobre más de 20 plataformas diferentes de hardware; entre ellas las más comunes son las de los sistemas compatibles con PCs x86 y x86-64, computadoras Macintosh, PowerPC, Sparc y MIPS. Asimismo, existen Grupos de Usuarios de Linux en casi todas las áreas del planeta. El logotipo oficial del núcleo Linux es el pingüino Tux Desarrollador Familia de S.O. Modelo de desarrollo Núcleo Tipo de núcleo Licencia Última versión estable Estado actual Sitio Web Varios Unix-like Open source Linux Monolítico GPL/LGPL/BSD/Otras Muchas versiones / Día con Día En desarrollo Por desarrollador 2.- ¿Cuáles son sus principales características? • multitarea: varios programas (realmente procesos) ejecutándose al mismo tiempo. • multiusuario: varios usuarios en la misma máquina al mismo tiempo (¡y sin licencias para todos!). • multiplataforma: corre en muchas CPUs distintas, no sólo Intel. • funciona en modo protegido 386. • tiene protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema. • carga de ejecutables por demanda: Linux sólo lee de disco aquellas partes de un programa que están siendo usadas actualmente. • política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria. • memoria virtual usando paginación (sin intercambio de procesos completos) a disco: una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha (se sigue denominando intercambio, es en realidad un intercambio de páginas). Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio. • la memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y éste puede a su vez ser reducido cuando se ejecuten grandes programas. • librerías compartidas de carga dinámica (DLL’s) y librerías estáticas también, por supuesto. • se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo. • casi totalmente compatible con POSIX, System V y BSD a nivel fuente. • mediante un módulo de emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario. • todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito. • control de tareas POSIX. • pseudo-terminales (pty's). • emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si tu ordenador ya tiene una FPU (unidad de coma flotante), será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria. • soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente. • consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64. • soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud. • acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no necesitas ningún comando especial para usar la partición MS-DOS, parece un sistema de archivos normal de Unix (excepto por algunas graciosas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión estable. • un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS. • soporte en sólo lectura de HPFS-2 del OS/2 2.1 • sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM. • TCP/IP, incluyendo ftp, telnet, NFS, etc. • Appletalk disponible en el actual núcleo de desarrollo. • software cliente y servidor Netware disponible en los núcleos de desarrollo. 3.- Diga los comandos que maneja HACIENDO IMÁGENES DE CD RÁPIDAMENTE Muchas veces usamos programas gráficos para grabar CDs que no son más que frontends para los programas cdrecord, mkisofs, cdrdao, etc. Para hacer una imagen podemos usar simplemente cat o dd: dd if=/dev/cdrom of=imagen.iso Gracias a kyle por esta: cat /dev/cdrom > imagen.iso Ambos comandos hacen lo mismo, después, tostamos con cdrecord o con lo que queramos: cdrecord -v speed=VELOCIDAD dev=GRABADORA imagen.iso Si alguien ha probado a hacer dd if=imagen.iso of=/dev/GRABADORA y le ha funcionado, que me lo comunique por favor ;-) LIMPIAR LA CONSOLA Si somos un poco vagos y no nos apetece hacer clear, no tenemos más que presionar la combinación de teclas Ctrl+L. EVITAR EL CTRL-ALT-SUPR Si queremos evitar que los usuarios puedan usar esta combinación de teclas nos vamos a /etc/inittab y ponemos una almohadilla # de comentario en la siguiente línea: ca: ctrlaltdel: /sbin/shutdown -t3 -r now Pero si lo que queremos es que sólo determinados usuarios puedan usarlo, modificamos esa línea y la ponemos así (sin la # de antes): ca: ctrlaltdel: /sbin/shutdown -a -t3 -r now y creamos un archivo nuevo /etc/shutdown.allow con los nombres de usuarios que nos interese: phantom usuario invitado Está claro que si cambiamos ese -r por un -h nos apagaría el equipo, y bueno, para más opciones: man shutdown. Aun así, podríamos incluso poner otro comando, como que nos muestre un mensajito en consola y mil chorradas como esa, o no tan chorradas... a preferencia de cada uno. VER UN DOCUMENTO MS WORD(r) EN MODO TEXTO Pues si no nos apetece entrar a las X para ver un documento de estos o simplemente no queremos/podemos cargar el openoffice, abiword y similares, nos bajamos el programita antiword que nos muestra por pantalla el texto del documento word. Este programa también permite salida en formato postscript, veamos un ejemplo: Para ver el contenido en modo texto: antiword cosa.doc | less Convertimos a postscript con tamaño de página A4 y lo visualizamos con gv: antiword -p a4 cosa.doc > cosa.ps; gv cosa.ps Para los de Debian: apt-get install antiword Comandos Generales • dmesg : Imprime los mensajes desplegados por el “kernel” al inicio. • depmod -a : Genera un archivo que contiene las dependencias de los módulos que son cargados para el “Kernel”, esto es, es capaz de reconocer cuales módulos deben de ser cargados para que un tercero sea utilizado en el sistema. • free: Estadísticas de uso de Memoria. • init q : Comando que vuelve a leer los parámetros que se encuentran en inittab . • insmod : Habilita (“loads”) el modulo que se especifica en la línea, para que el “kernel” sea capaz de utilizarlo.(ejemplo: insmod ip_alias.o ) • ldconfig : Actualiza las librerías utilizadas por el sistema, recomendable ejecutarlo cada vez que se instale un programa. • lsmod : Despliega la información referente a los módulos que están habilitados por el “kernel”. • mount: Permite que particiones de los sistemas, CD-ROMs, floppys puedan ser leídas en el sistema. Su formato: mount -t <file system (ext2,vfat)> <partición (/dev/hda1,/dev/cdrom)> <punto de lecutra”mount point” (/mnt/home/ /mnt/cdrom)>. Vea también /etc/fstab . • smbmount: Similar al comando mount, excepto que este comando es utilizado para montar particiones en Samba . • smbumount : Utilizado para desactivar las particiones activadas con smbmount • slocate: Actualiza la base de información que es utilizada para encontrar archivos con el comando locate. • source: Recarga el archivo de configuración indicado al ambiente de Shell. • stat: Despliega información detallada sobre el archivo especificado como: fechas de modificación y cambio, dueño del archiv, .etc. • sudo: Ejecuta un comando como usario raíz (“root”), significa “super user do”(Super usuario hacer). Vea el archivo /etc/sudoers/ para configuraciones relacionadas con este comando. • umount: Desactiva la partición que se indicada, los parámetros que toma este comando son similares a los de mount. • uname -a: Información completa sobre el “Host”. • uptime: Hora actual, tiempo que lleva el sistema corriendo desde el último “reboot”, usuarios conectados al servidor, carga del sistema en los últimos 1,5 y 15 minutos. • hostname: El nombre del “Host”. • chkconfig : Este comando despliega la información sobre los niveles de ejecución de los “scripts” ubicados en el directorio /etc/rc.d/init.d En entorno de Red • host: Determina la dirección IP de un “Host” , host -a despliega toda la información de DNS. • ifconfig : Permite configurar una interfase de Red y ver el “status” de ésta. Esa de la forma ifconfig <interfase> , ejemplo: ifconfig eth0 • ifup: Habilita la interfase especificada, ejemplo: ifup eth0. • ifdown: Deshabilita la interfase especificada, ejemplo: ifdown eth0 . • netstat -a : Todas la conexiones de Red originadas y recibidas por el “Host” • netstat -r : Muestra la tabla de ruteo “routing table” del sistema • netstat -i : Estadísticas de red de cada interfase • nslookup : Busca información en los servidores DNS, ejemplo: nslookup -query=mx osomosis.com , si no se especifican parámetros se entra en modo interactivo • ping -s 1016: Manda paquetes de ping de 1024 bytes (header 8 bytes), mientras que el “default” es 512. • route add: Permite agregar tablas de ruteo de y hacia el “Host”. Ejemplo: Para guiar toda la información de la red 206.171.55.16 netmask 255.255.255.240 vía la interfase eth0 : route add -net 206.171.55.16 255.255.255.240 eth0 Para rutear todo el tráfico por cierta interfase (“Default Gateway”): route add default gw 206.171.55.51 eth0 Esto enviará toda la información por la dirección 206.171.55.51 • route -n: Despliega la tabla de ruteo del “Host”. NOTA: Debe de estar “IP Forwarding” ON en /etc/ sysconfig/network, además el “kernel” debe de estar configurado para “IP Forwarding”. • smbclient: Funciona como un cliente FTP, que simula conexiones que serán realizadas a través de Samba. (Vea smbclient ) • tcpdump: Permite el “debugging” de una interfase en el host. • testparm : Verifica la validez del archivo smb.conf utilizado por Samba Control de Procesos ps -aux : Despliega todos los procesos del sistema, con nombre y tiempo de inicio Kill: Es utilizado para mandar señales a los procesos en Linux. Kill -HUP <pid> : Señala al proceso con numero <pid>, que vuelva a leer sus archivos de configuración Kill -INT <pid>: Señala al proceso con numero <pid>, que será interrumpido kill -TERM <pid>: Señala al proceso con numero <pid>,que debe de terminar, a diferencia de -KILL , esta opción da la oportunidad al proceso de terminar. Kill -STOP <pid>: Señala al proceso con numero <pid>, que pare momentáneamente Kill -CONT <pid>: Señala al proceso con número <pid>, que continué, este comando se utiliza para reanudar un proceso que le fue aplicado -STOP Kill -KILL <pid>: Señala al proceso con numero <pid>, que termine de inmediato, el proceso es terminado abruptamente. Killall: A diferencia de kill, killall permite mandar una señal al proceso por nombre. Killall <nombre del proceso >: Envía la señal -TERM al proceso con el nombre especificado. NOTA: Por “default” la señal que toma kill y killall es -TERM. ps -l: Este comando despliega dos parámetros PRI y NI. El parámetro PRI indica la prioridad actual del proceso, que es calculada por el sistema operativo, el valor de NI es tomado en cuenta cuando se determina el PRI. Que es NI? : NI es llamado el numero gentil o “nice number”, este numero es especificado por el “superusuario”(“root”) o dueño del proceso y afecta el orden final del PRI, le da prioridad a los menos gentiles. Sus valores oscilan desde -20 (menos gentil=mas prioridad) y 20 (mas gentil=menos prioridad) nice : Este comando especifica el número NI de cada proceso. nice -10 named: Esto bajaría la nice +10 named: Esto prioridad de named en 10 unidades.(Si estaba en -10, pasará a -20). incrementaría la prioridad de named en 10 unidades.(Si estaba en 0, pasaría a +10). snice y renice: El mismo funcionamiento que nice , excepto que utiliza el numero de proceso : snice -10 <pid> <comando> &: El & es utilizado para indicar que el proceso debe de ejecutarse en el fondo. top : Esta herramienta monitorea varios recursos del sistema y tiene un carácter dinámico, muestra uso de CPU por proceso, cantidad de memoria, tiempo desde su inicio,etc. vmstat : Es muy similar a top ya que es un condensado de los procesos del sistema, para que esta herramienta se vuelva dinámica se deben especificar los argumentos: vmstat -n <numero de segundos por actualización > at : Este comando permite programar ciertas actividades a una cierta hora, ejemplo: at 22:00 , el comando anterior abre un “prompt” de la forma at> , sobre este “prompt” se especifican todos los comandos que se deseen ejecutar, en este caso a las 22:00, una vez especificados, se utiliza Ctlrl-d para salir. Ya finalizado, los comandos estarán programados para ejecutarse a la hora indicada, el directorio /var/spool/at contiene el trabajo. El comando atq despliega los trabajos at que están pendientes, y el comando atrm <numero de at> elimina un trabajo programado con at. Vea también /etc/at.deny y /etc/at.allow crontab : : Al igual que at especifica el tiempo al cual se ejecutará un programa “script”, crontab tiene la siguiente forma: minutos horas días meses fin_de_semana nombre_de_usuario instrucción argumentos El siguiente ejemplo ejecutará el programa oracle.pl cada media hora todos los días: 30 * * * * root /usr/oracle.pl Si se desea realizarlo mensualmente: 01 3 1 * * root /usr/oracle.pl Lo anterior ejecutará oracle.pl el día primero de cada mes, a las 3:01 AM. Para especificar trabajos cron cada usuario mantiene un archivo en el directorio /var/spool/cron/, este directorio lo accesa cada usuario con el comando crontab -e La ejecución de crontab se facilita debido al archivo /etc/crontab que específica trabajos crontab por hora,dia,semana y mes, de esta forma solo se requiere que el usuario coloque un archivo en los directorios correspondientes: /etc/cron.hourly | /etc/cron.daily | /etc/cron.weekly | /etc/cron.monthly 4.- Aplicaciones en Ingeniería General Realización de documentos con LaTeX y Xfig. Programas para el álgebra y la matemática. Programas para el análisis de funciones y señales. Realización de gráficos. Entornos de programación. 5.- Aplicaciones en Ingeniería Industrial En trabajos, por ejemplo al hacer diseños de dibujos con los diferentes programas. Conclusiones SARA: LINUX, por ser abierto al publico en general, tiene accesibilidad de lenguaje; es decir, es relativamente fácil de comprender; por otro lado, UNIX usa un lenguaje especializado para programadores, lo que dificulta las posibilidades de estudiarlo con facilidad. Por lo tanto LINUX es el sistema operativo más adecuado para aprendices, mientras que UNIX es el más completo para expertos. BERE: LINUX es un programa que a mi ver será el avance y reemplazo de Word ya que tiene, en cierto modo, las aplicaciones de Word; se puede utilizar sin ser instalado, y nos puede servir de muchas formas ya que con él podemos desde diseñar hasta crear. UNIX: con Unix puedes crear diseños de software y además nos sirve al mismo tiempo que nos puede servir Linux, ya que es un sistema operativo de tiempo compartido. Los dos son sistemas operativos que en cierto modo van de la mano ya que uno te puede ser de mucha ayuda en el otro. DAFNE: UNIX.-Es un sistema operativo que más bien se dedica a hacer programas de diseño que son importantes en cualquier ámbito profesional, Unix es, por llamarlo de alguna manera, el padre de Linux. LINUX.- Es un sistema operativo muy parecido a Windows, ya que cuenta con la mayoría de sus funciones, y hasta es más fácil de utilizar ya que no hay necesidad de instalarlo en una computadora.