Vous êtes sur la page 1sur 12

UNIVERSIDAD POLITECNICA SALESIANA

INGENIERIA EN SISTEMAS
SISTEMAS OPERATIVOS II
PROYECTO PRIMER PARCIAL Integrantes: Roberto Montaluisa Edison Vilema Diego Carrillo Primera parte: a) A qu aspecto del sistema operativo se refiere? Qu opciones hay y cuales son las ventajas e inconvenientes de cada una? El profesor Tanenbaum se refiere bsicamente al kernel, y su diseo, cuando al inicio GNU/ Linux era totalmente monoltico, El profesor Tanenbaum prefiere un kernel con diseo de microkernel y piensa que Linux era obsoleto. La primera opcin es que los sistemas operativos monolticos son los que tienen todo su sistema operativo en un solo archivo ejecutable, que contiene los gestores y los procesos de memoria. Su ventaja es su estabilidad ya que todo est sincronizado y comunicado en un solo archivo, el inconveniente es que este archivo puede crecer demasiado volvindose difcil mantener. Algunos de estos sistemas son: UNIX, MS-DOS, VMS, MVS, OS/360 y MULTICS. La segunda opcin son los sistemas operativos microkernel que tienen una parte del sistema operativo en un ncleo pero muchas de las herramientas para su funcionamiento estn distribuidas en servicios o procesos independientes y por fuera del ncleo, estas partes se comunican con el ncleo por medio de paso de mensajes, el ncleo realmente maneja ese paso de mensajes a sus partes, maneja las interrupciones, la gestin de proceso. b) Es todava el caso de las versiones actuales de Linux? Cul ha sido su evolucin histrica? Desde el punto de vista del diseo del kernel, Linux empieza como monoltico ya que era difcil sacar un buen rendimiento a un microkernel, pero despus se solucionaron los problemas de tamao en el desarrollo incluyendo los mdulos de carga dinmica, el desarrollo Linux empieza con Linus Benedict Torvalds cuando estudiaba en la Universidad de Helsinki, Linus cre la primer versin de Linux basado en Minix, un sistema operativo creado por el profesor Andrew S. Tanenbaum el cual tiene ideas de UNIX pero estaba enfocado a el aprendizaje de sistemas operativos, esa primer versin 0.0.1 del kernel de Linux sirvi para que otros programadores lo conocieran y realizaran aportes si decidan desarrollar ms cosas sobre este cdigo, de esa forma la comunidad de desarrolladores de Linux creci y ahora contamos con un sistema operativo totalmente funcional.

En la actualidad el kernel de Linux es considerado monoltico hibrido debido a que se separo en mdulos y cada uno de estos mdulos se comporta como un microkernel. c) Documentarse en estos aspectos sobre los sistemas Minix, BSD, Linux y Mac OS-X y realizar una comparacin. Caractersticas Kernel monoltico al inicio Kernel monoltico ltima versin Primera Versin Ultima Versin Valor Licencia No 1987 2010 Gratuito BSD Si 1977 1995 Gratuito BSD Si, hbrido 1991 2011 Gratuito GPL Si, hbrido 1999 2011 Con costo Propietaria Minix BSD Linux MacOS-X

Si

Si

Si

No

Segunda parte: a) Documentarse sobre el proceso de instalacin: cules son las diferencias mayores que habis visto en el software para hacer la instalacin, qu problemas habis detectado y qu soluciones habis buscado y aplicado. No tuvimos ninguna complicacin ya que el sistema operativo Zorin es una distribucin de Ubuntu el cual es muy fcil de instalar y el ms utilizado. En cuanto a Fedora no tuvimos ningn problema ya que lo instalamos en maquina virtual. b) Examinar el sistema de ficheros: qu diferencias detectan entre las dos instalaciones? Qu ocupacin del disco tienen y si hay variaciones, como las explicis? El sistema de archivos con el cual trabaja Zorin es muy similar al de Fedora ya que Zorin es una distribucin de Ubuntu. En cuanto a la ocupacin de disco de los sistemas operativos no podemos decir nada ya que la instalacin que realizamos de Fedora fue en maquina virtual y no podemos determinar el espacio que ocupa por lo que se encuentra trabajando todo desde la RAM c) Se han creado los mismos usuarios y grupos? Examinen el contenido de los ficheros /etc/passwd y /etc/group, as como los derechos de acceso de los ficheros de configuracin (en el directorio /etc). Se instalaron los mismos grupos de archivos y tienen los mismos derechos de acceso. Pero los usuarios son diferentes ya que en Fedora nos crea el usuario como live por lo que estamos trabajando como maquina virtual.

d) En la pgina web de cada una de las distribuciones que habis usado, haced un breve repaso de la documentacin existente sobre el proceso de instalacin. Cul es la ms completa? En caso de aparicin de problemas, en qu distro 1 habis encontrado mejores respuestas para resolverlos, y con qu facilidad? En realidad para la instalacin de Zorin no tuvimos muchos problemas pero para poder guiarnos en la instalacin utilizamos mucho la pgina de YouTube ya que en la cual podemos encontrar varios tutoriales para la instalacin de programas y la instalacin de drivers que podamos necesitar en el computador que estamos instalando el sistema operativo. En Fedora igualmente no tuvimos problemas ya que lo instalamos en maquina virtual pero si encontramos una pagina en la cual nos permiti la descarga del sistema operativo y la ayuda para la instalacin y el manejo de Fedora. http://fedoraproject.org/es/ Pantallazos de las instalaciones: Zorin 5.2.

Fedora 17.

Tercera parte: Ejercicio 1. 1. Descripcin. Hacer un Shell script basado en Bash Shell que muestre un reporte de cada usuario real del sistema mostrando para cada usuario la lista (ordenada por hora de modificacin) de que tiene en su directorio $HOME y subdirectorios, clasificados por tipo de fichero y finalmente indicando el tamao total y nmero de ficheros en ese directorio. 2. Solucin. Para poder realizar este script se tuvo que investigar el funcionamiento de varios comandos por ejemplo file, users, grep, who, cut, etc, para que nos faciliten el trabajo ya que con estas herramientas se lleva a cabo este programa. El script utilizado es: #!/bin/bash function folder() { if [ $usuario == "root" ]; then cd /root else usuarios=`who | cut -f1 -d ' ' | sort -u` numuser=`who | cut -f1 -d ' ' | sort -u | wc -l | sed 's/^ *//g'` ur=0 error=0 while [ $ur -le $numuser ] do let ur=$ur+1 usuarios=`who | cut -f1 -d ' ' | sort -u` if [ "$usuario" = "$usuarios" ]; then `cd /home/$usuario` let ur=$ur+$numuser else let error=$error+1 fi if [ $error -ge $numuser ]; then echo Error usuario inexistente exit fi done fi } function listar(){ cont=$(ls -l|awk '{print $9}'|sort|uniq|wc -l) if [ $cont -ge 1 ]; then file `ls -l|awk '{print $9}'`|awk '$1!="tipo:" {print $2}'|sort|uniq|cat -n|cat>>tipo echo Tipo de archivos existentes cat tipo i=0 cont=$(file `ls -l|awk '{print $9}'`|awk '$1!="tipo:" {print $2}'|sort|uniq|wc -l) numarchivos=$(file `ls -l|awk '{print $9}'`|awk '$1!="tipo:" {print $0}'|awk '$2!="directory" {print $1}'|wc -l)

let cont=$cont-1 while [ $i -le $cont ] do let i=$i+1 filtro=$(awk '$1=="'$i'" {print $2}' tipo) awk '$1=="'$i'" {print $2}' tipo cont2=$(file `ls -l|awk '{print $9}'`|awk '$1!="tipo:" {print $0}'|awk '$2=="'$filtro'" {print $1}'| wc -l) filtro2=$(file `ls -l|awk '{print $9}'`|awk '$1!="tipo:" {print $0}'|awk '$2=="'$filtro'" {print $1}') j=0 while [ $j -le $cont2 ] do let j=$j+1 if [ $j -le 1 ]; then echo " "$filtro2|cut -d ":" -f $j fi if [ $j -gt 1 ]; then echo $filtro2|cut -d ":" -f $j fi done echo done rm tipo d=$(pwd) bytes=$(echo `du -hs $d`|awk '{print $1}') echo $numarchivos archivos, $bytes bytes else echo 0 archivos existentes fi } id=$1 i="-t" u="-u" usuario=$2 if [ -z ${id} ]; then echo Parametros incorrectos exit fi if [ $id == "-t" ]; then echo todos los usuarios; who | cut -f1 -d ' ' | sort -u cd numarchivos=$(file `ls -l|awk '{print $9}'`|awk '$1!="tipo:" {print $0}'|awk '{print $1}'|wc -l) bytes=$(echo `du -hs $d`|awk '{print $1}') echo $numarchivos archivos, $bytes bytes else if [ $id == "-u" ]; then if [ -z ${usuario} ]; then echo Parametros incorrectos echo Usuarios validos who | cut -d ' ' -f1 | sort -u exit

else folder listar directorios=$(file `ls -l|awk '{print $9}'`|awk '$2=="directory" {print $1}') contd=$(file `ls -l|awk '{print $9}'`|awk '$2=="directory" {print $1}'| wc -l) index=0 echo $contd echo *************** echo Sub-directorios echo *************** while [ $index -lt $contd ] do let index=$index+1 echo $directorios|cut -d ":" -f $index cd `echo $directorios|cut -d ":" -f $index` listar cd .. done fi else echo Parametros incorrectos fi fi 3. Ejecucin.

4. Conclusiones y recomendaciones. Para tener un buen resultado debemos utilizar los comandos y tuberas de una manera correcta ya que sino seguimos un orden debido vamos a tener muchos problemas al momento de ejecutar el script, ya que el manejo de usuarios un Linux es un tema un poco complicado por los permisos y configuraciones que tiene cada usuario. Ejercicio 2. 1. Descripcin. Realizar un Shell script que genere avisos al usuario root sobre la utilizacin de disco de los usuarios. El Shell script aceptar los siguientes parmetros: -i valor un entero de Mbytes que indicar a partir de cundo se generar la alerta. Valor por defecto = 10 Mbytes. -e tipo de archivo exclusivo que buscar el Shell script. Es decir -e mov solo generar la alerta para archivos que terminen en mov. Valor por defecto todos los archivos del usuario en su directorio $HOME y subdirectorios, es decir si no existe este argumento se buscarn todos los archivos. Dentro del cmputo del tamao slo se deben incluir los archivos. -u usuario (p.e. -u usuario a). En caso de no existir este parmetro se debe aplicar a todos los usuarios reales del sistema. El script deber verificar que son usuarios reales del sistema, caso contrario indicar un error. -t hh:mm:ss indicar el intervalo cada cuanto se ejecutar el script para monitorizar los usuarios. Por defecto una vez por hora.

-f file archivo donde se guardar los logs de actuacin y alertas. En caso que se genere un alerta para un usuario deber ser claramente identificada en el archivo indicando la ltima fecha de conexin del usuario. En caso que no exista este parmetro el archivo por defecto ser /root/file.log. Cada evento en este archivo deber indicar la fecha/hora en la cual ocurri. Cualquier ejecucin posterior del script, eliminar las configuraciones previas excepto el archivo de logs que acumular los eventos de las diferentes ejecuciones. 2. Solucin. El ejercicio tiene una serie de condiciones en las cuales nos permite trabajar el crontab con sus diferentes parmetros. Tambin existen una serie de bucles para poder determinar el archivo para el informe que se realiza, tambin utilizamos una serie de tuberas para realizar las acciones que se desea en el crontab. El script utilizado es: #!/bin/bash pa=$# if test $pa -lt 11 then i=10M e=0 u=0 t=0 f=/root/file.log for((j=0;j<$pa;j++));do { ax=$1 if test $ax = -i then shift j=`expr $j + 1` i=$1 fi if test $ax = -e then shift j=`expr $j + 1` e=$1 fi if test $ax = -u then shift j=`expr $j + 1` u=$1 fi if test $ax = -t then shift j=`expr $j + 1` t=$1 fi if test $ax = -f then

shift j=`expr $j + 1` f=$1 fi shift } done if test $e = "0" then if test $u = "0" then buscar=`echo 'find ~ -size '$i ' |cat> '$f` else buscar=`echo 'find ~ -size '$i '-user '$u '|cat> '$f` fi else if test $u = "0" then buscar=`echo 'find / -name '"'*.$e'" '-size '$i '|cat> '$f` else buscar=`echo 'find / -name '"'*.$e'" ' -size '$i '-user '$u '|cat> '$f` fi fi if test $t = "0" then echo '0 * * * *' $buscar|cat> pro else t1=`echo $t | cut -f 1 -d ":"` t2=`echo $t | cut -f 2 -d ":"` t=$t2" "$t1 echo "$t" '* * *' $buscar|cat> pro fi crontab pro else echo "ERROR INGRESE LOS DATOS CORRECTAMENTE! INGRESE EN EL SIGUIENTE FORMATO" echo "-i tamao -e tipo_de_archivo -u usuario -t tiempo -f archivo_respaldo(.log)" fi 3. Ejecucin.

Sin parametros:

4. Conclusiones y recomendaciones. En este script podemos ver que es muy necesario realizar una tarea en un determinado momento para tener un informe de los archivos que se han creado ya que el usuario no puede estar realizando procesos que son muy largos es por eso que se crea este script para que la maquina ejecute una determinada tarea que el usuario requiera para que se ejecute en un periodo determinado por el mismo usuario.

La herramienta que mas se utiliza en este tipo de scripts es la de crontab es necesario saber muy bien todas las caractersticas y facilidades que te brinda esta herramienta. BIBLIOGRAFIA: Primera parte: http://www.cs.vu.nl/~ast/brown/rebuttal/ Aqu encontramos la entrevista completa al profesor Tanenbaum http://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate
En este sitio encontramos algunos aspectos sobre la entrevista.

http://es.wikipedia.org/wiki/Anexo:Comparaci%C3%B3n_de_sistemas_operativos La tabla de comparaciones se los sistemas operativos

Segunda parte: https://www.virtualbox.org/


La maquina virtual y todos sus aplicaciones

http://distrowatch.com/
Aqu encontramos todos los sistemas operativos de software libre actualizados listos para la descarga.

http://fedoraproject.org/es/
Ayuda de la instalacin de Fedora el manejo de dicho sistema operativo

http://zorin-os.com/free.html Descarga del sistema operativo Zorin el cual es una distribucin de Ubuntu. http://www.youtube.com Tutoriales de instalacin de sistemas operativos (Fedora, Ubuntu)

Tercera parte: Ejercicio 1.


http://lubrin.org/dani/ch11.html Aqu encontramos la informacin acerca de usuarios http://www.unsa.edu.ar/gmc/A-web/Labo2/l2-linux/node149.html Aqu encontramos tutora sobre los comandos utilizados en el script. http://es.hscripts.com/tutoriales/linux-commands/id.html

Aqu encontramos como utilizar un id de usuario Ejercicio 2. http://usemoslinux.blogspot.com/2010/11/cron-crontab-explicados.html


Aqu encontramos todas las especificaciones y ejemplos del crontab.

http://www.adminschoice.com/crontab-quick-reference
En este sitio tenemos algunos ejemplos de crontab.

http://linux.about.com/library/cmd/blcmdl1_shift.htm
Aqu tenemos como funciona el shift.

http://rm-rf.es/el-comando-unix-find/
Los parmetros y ejemplos del comando find.

Vous aimerez peut-être aussi