Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OPERATIVOS
1. Adaptar el entorno MINIX a sus necesidades. Entre otras cosas, será capaz de:
1.1. cambiar la distribución del teclado según su conveniencia,.
1.2. configurar convenientemente los dispositivos de almacenamiento secundario
(disketteras)
2. Utilizar convenientemente los principales comandos de MINIX.
3. Compilar y ejecutar programas escritos en lenguaje C.
Herramientas necesarias:
Para resolver los ejercicios propuestos necesitará:
http://minix1.hampshire.edu/ftp/minix.2.0/2.0.2/
cdsoa/minix/minix 2.0.2/usage.txt
Resultado:
http://minix1.hampshire.edu/ftp/minix.2.0/dosutil/
Ejemplo:
Nota:
Para instalar el /usr utilice el comando setup el que le permite agregar archivos desde el
diskette al sistema.
Ejemplo:
# setup /usr
http://minix1.hampshire.edu/ftp/minix.2.0/2.0.2/usage.txt
# cd /usr
Si aun asi le da error intente matar (kill) al proceso update como se muestra en el ejemplo
# kill –9 <PID>
# ps -ef
0R 0 0 0 0 88 ? 0:41 IDLE
0R 0 0 0 0 88 ? 0:00 HARDWAR
10 W 0 0 0 0 26 ANY ? 0:00 MM
10 W 0 0 0 0 85 MEMORY ? 0:00 FS
10 W 0 18 1 0 4 MM ? 0:00 update
10 W 0 37 27 27 49 FS co 0:00 ps -ef
# kill -9 18
Si aun asi le da error intente matar (kill) al proceso getty que en este ejemplo tiene el PID 28.
Este proceso es disparado automáticamente por INIT por lo que volverá a nacer con otro PID
previamente hacer
cp /usr/lib/keymaps/spanish.map /etc/keymap
echo loadkeys /etc/keymap >> /etc/rc
sync; sync; shutdown
En este ítem debe indicar qué comandos ejecutó en cada entorno (DOS y MINIX). Ademas, por
cada uno debe capturar la pantalla cuidando que se vea claramente el comando que corrió y
los resultados obtenidos (vea el ejercicio 3 para mas detalles acerca de cómo capturar la
pantalla). Una excepción a esto es la ejecución del comando setup en MINIX ya que cada
archivo que se va descomprimiendo es mostrado en pantalla. En ese caso, indique el comando
que corrió y una descripción de qué es lo que obtuvo al correrlo.
# mount
3.1. man
3.1.1.¿Cuál es la función de este comando?
3.1.2.¿Qué son las secciones del man?
3.1.3.Presente la hoja del manual de la SYSTEM CALL exit.
3.2. date
que fecha tiene el sistema ?
3.3. cd
pruebe el comando cd para cambiar al directorio
/usr/src/kernel
3.4. pwd
Indique qué directorio pasa a ser su current directory si ejecuta:
3.4.1.# cd /usr/src
3.4.2.# cd
3.4.3.¿Cómo explica el punto 3.4.2?
3.5. ls
3.5.1.cuantos bytes
3.5.2.quien es el propietario
3.5.3.cual es el grupo del propietario
3.5.4.en que fecha fue creado
el archivo
/usr/src/LICENSE
3.6. cat
Cual es el contenido del archivo
/usr/src/.profile
3.7. wc
Cuantas
3.7.1.líneas,
3.7.2.palabras y
3.7.3.caracteres
tiene el archivo /etc/passwd?
NOTA: Está prohibido utilizar el comando wc sin opciones para responder estos ítems.
3.8. more
Muestre las primeras 5 lineas del archivo
/usr/src/LICENSE
3.9. find
En que directorio se encuentra el archivo
proc.c
3.10. sort
Ordene alfabeticamente el archivo
/etc/passwd
3.11. mkdir
Genere un directorio
/usr/<nombregrupo>
3.12. cp
Copie el archivo
/etc/passwd
al directorio
/usr/<nombregrupo>
3.13. chgrp
Cambie el grupo del archivo
/usr/<grupo>/passwd
other
3.14. chown
Cambie el propietario del archivo
/usr/<grupo>/passwd
ast
3.15. chmod
Cambie los permisos del archivo
/usr/<grupo>/passwd
para que
/usr/bin/who
3.17. grep
Muestre las lineas que tiene el texto include en el archivo
/usr/src/kernel/main.c
3.18. su
3.18.1. Para qué sirve?
3.18.2. Que sucede si ejecuta el comando su estando logueado como root?
3.19. passwd
3.19.1. Cambie la password del usuario nobody
3.19.2. presione las teclas ALT-F2 y verá otra sesion MINIX. Logearse como nobody
3.19.3. ejecutar el comando su.
3.19.3.1. ¿Que le solicita ?
3.19.3.2. ¿Sucede lo mismo que en 3.18.2? ¿Por qué?
3.20. who
En la misma sesión de nobody.
3.21. diff
3.21.1. ¿Que diferencias hay entre los archivos /etc/passwd y /usr/<grupo>/passwd?
3.22. rm
Suprima el archivo
/usr/<grupo>/passwd
3.23. ln
Enlazar el archivo
/etc/passwd
/tmp/contra1
/tmp/contra2
/etc/passwd
3.24. rmdir
Suprima el directorio
/usr/<grupo>
3.25. mkfs
Genere un Filesystem MINIX en un diskette
3.26. mount
Montelo en el directorio
/mnt
3.27. df
Que espacio libre y ocupado tienen todos los filesystems montados? (En
KBYTES)
3.28. ps
3.28.1. Cuantos procesos de usuario tiene ejecutando ?
3.28.2. Grafique la jerarquia de procesos
3.29. umount
3.29.1. Desmonte el Filesystem del directorio
/mnt
3.30. fsck
Chequee la consistencia de Filesystem del diskette
3.31. dosdir
Tome un diskette formateado en DOS con archivos y ejecute
dosdir a
3.32. dosread
Copie un archivo de texto desde un diskette DOS
al directorio /tmp
3.33. doswrite
Copie el archivo /etc/passwd al diskette DOS
4.1. STDOUT
4.1.1.conserve en el archivo /tmp/fuentes.txt la salida del comando ls que muestra
todos los archivos del directorio /usr/src y de los subdirectorios bajo /usr/src
4.1.2.Presente cuantas lineas, palabras y caracteres tiene /tmp/fuentes.txt
4.2. STDOUT
4.2.1.Agregue el contenido, ordenado alfabeticamente, del archivo /etc/passwd al final
del archivo /tmp/fuentes.txt
4.2.2.Presente cuantas lineas, palabras y caracteres tiene /tmp/fuentes.txt
4.3. STDIN
4.3.1.Genere un archivo llamado /tmp/hora.txt usando el comando echo con el
siguiente contenido:
2355
4.3.2.cambie la hora del sistema usando el archivo /tmp/hora.txt generado en 4.3.1
4.3.3.Presente la fecha del sistema
4.4. STDERR
Guarde el resultado de ejecutar el comando dosdir k en el archivo
4.5. PIPES
Posiciónese en el directorio / (directorio raíz), una vez que haya hecho eso:
4.5.1.Liste en forma amplia los archivos del directorio /usr/bin que comiencen con la
letra s. Del resultado obtenido, seleccione las líneas que contienen el texto sync
e informe la cantidad de caracteres, palabras y lineas.
Nota 1: Está prohibido, en este ítem, usar archivos temporales de trabajo
Nota 2: si le da error, es por falta de memoria, cierre el proceso de la otra sesion, haga
un kill sobre los procesos update y getty.
/etc/motd
*******************************************
* FACULTAD DE INGENIERIA *
*******************************************
/etc/motd
para que incluya los integrantes del grupo con sus correos electrónicos
#include <stdio.h>
int main()
printf(“*******************************************\n”);
printf(“*******************************************\n”);
#include <stdio.h>
int main()
int i, c;
while(1)
c = 48 + i;
printf("%d",c);
i++;
i = i % 10;
7.6. Que sucede si presiona la tecla F1? Que significan esos datos ?
7.7. Que sucede si presiona la tecla F2? Que significan esos datos ?
RESOLUCIÓN
1)
3)
3.1) man
3.1.1) man muestra las páginas de manual en línea para títulos especificos en las secciones
especificas.
3.1.2) Secciones de man: Las secciones del man son las distintas partes en las que se divide el
manual y con las que cuenta para ofrecer descripciones acerca de los comandos asociados a
cada una de ellas.
3.1.3)
SYSTEM(3) Minix Programmer's Manual SYSTEM(3)
NAME
system - issue a shell command
SYNOPSIS
#include <stdlib.h>
DESCRIPTION
System causes the string to be given to sh(1) as input as if the string
had been typed as a command at a terminal. The current process waits
until the shell has completed, then returns the exit status of the shell.
SEE ALSO
sh(1), popen(3), execve(2), wait(2).
DIAGNOSTICS
Exit status 127 indicates the shell couldn't be executed.
3.2) date
# date
3.3) cd
# cd /usr/src/kernel
3.4) pwd
3.4.1)
# cd /usr/src
# pwd
/usr/src
3.4.2)
# cd
# pwd
/root
#
3.4.3) Como el comando cd no tiene parámetro este interpreta que nos referimos a la dirección
/root
3.5) Ls
# ls -hal /usr/src/LICENSE
3.6) cat
# cat /usr/src/.profile
* cat /usr/home/bin/.profile
case $TERM in
dialup|unknown|network)
TERM="${term:-$TERM}"
unset term
esac
# Shell configuration.
esac
3.7) wc
3.7.1)
# wc -l /etc/passwd
10 /etc/passwd
3.7.2)
# wc -w /etc/passwd
22 /etc/passwd
3.7.3)
# wc -c /etc/passwd
384 /etc/passwd
3.8) more
3.9) find
# cd /usr/src/lib/syslib
# pwd
/usr/src/lib/syslib
# find proc.c
/usr/src/kernel/proc.c
3.10) sort
# sort /etc/passwd
ast:*:8:3:Andrew S. Tanenbaum:/usr/ast:
asw:##root:9:0:Al Woodhull:/usr/home/asw:
bin:##root:2:0:Binaries:/usr/home/bin:
daemon:*:1:1:The Deuce:/etc:
ftp:*:15:15:Anonymous FTP:/usr/ftp:
news:*:6:6:Usenet news:/usr/spool/news:
nobody:*:9999:99::/tmp:
root:##root:0:0:Big Brother:/root:
3.11) mkdir
# mkdir /usr/migrupo
# ls /usr
3.12) cp
# ls /usr/migrupo
# cp /etc/passwd /usr/migrupo
# ls /usr/migrupo
passwd
3.13) chgrp
# ls -al /usr/migrupo
total 3
3.14) chown
# chown ast /usr/migrupo/passwd
# ls -al /usr/migrupo
total 3
3.15) chmod
Para realizar esto lo haremos con notación numérica, entonces para el propietario será el
número 7, grupo será 5 y otros 1; por lo tanto el número que ingresaremos será el 751.
# ls -al /usr/migrupo
total 3
# ls -al /usr/migrupo
total 3
3.16) file
# file /usr/bin/who
Es un archivo ejecutable
3.17) grep
#include "kernel.h"
#include <signal.h>
#include <unistd.h>
#include <a.out.h>
#include <minix/callnr.h>
#include <minix/com.h>
#include "proc.h"
3.18) su
3.18.1) Este comando nos permite ejecutar una shell como otro usuario en la sesión activa. Es
decir, nos permite asumir la identidad de otro usuario (si conocemos su password claro) o de
estar en la Shell de otro usuario nos coloca como super usuario, es decir como root
3.18.2)
# su
# who
3.19) passwd
3.19.1)
# passwd nobody
New password:
Retype password:
3.19.2)
Password:
3.19.3)
$ whoami
nobody
$ su
# whoami
root
3.19.3.2) No sucede lo mismo, ya que al ejecutar el comando “su” entramos como root.
3.20) who
3.20.1)
$ who
nobody console Mon Apr 16 19:07
Esta información nos dice cuáles son las sesiones de usuarios que están actualmente activas
3.20.2)
$ who am i
3.21) diff
3.21.1)
10c10
< nobody:34zCe2AJAyOSc:9999:99::/tmp:
---
> nobody:*:9999:99::/tmp:
3.22) rm
# ls /usr/migrupo
passwd
# rm /usr/migrupo/passwd
# ls /usr/migrupo
3.23) ln
# ls -l /etc/passwd
# ln /etc/passwd /tmp/contra1
# ln /etc/passwd /tmp/contra2
# ls -l /etc/passwd
3.24) rmdir
# ls /usr
# rmdir /usr/migrupo
# ls /usr
3.25) mkfs
# mkfs /dev/fd0
3.26) mount
# df
3.27) df
0 Symbolic links
# fs
# df
# df
Filesystem 1k-Blocks free used % FUsed% Mounted on
3.28) ps
3.28.1)
# ps
24 co 0:00 -sh
32 c1 0:00 getty
38 co 0:00 ps
3.29) umount
3.29.1)
# umount /dev/fd0
3.29.2)
3.29.3)
# umount /dev/fd0
3.30) fsck
# fsck /dev/fd0
0 Regular files
1 Directory
0 Block special files
0 Named pipes
0 Symbolic links
3.31) dosdir
# dosdir A
EJEMPLO.TXT
3.32. dosread
# ls -l /tmp
total 0
# ls -l /tmp
total 1
3.33. doswrite
# ls /etc
fstab inet.conf passwd rc.net-disable termcap
group keymap profile serv.access ttytab
hostname.file motd protocols services utmp
hosts mtab rc shadow
# dosdir A
EJEMPLO.TXT
# doswrite -a A passwd < /etc/passwd
# dosdir A
EJEMPLO.TXT
PASSWD
#
4) Uso de STDIN, STDOUT, STDERR y PIPES
4.1) STDOUT
4.1.1)
# ls -laR /usr/src/ > /tmp/fuentes.txt
4.1.2)
# wc -l /tmp/fuentes.txt
2554 /tmp/fuentes.txt
# wc -w /tmp/fuentes.txt
20867 /tmp/fuentes.txt
# wc -c /tmp/fuentes.txt
130313 /tmp/fuentes.txt
4.2) STDOUT
4.2.1)
4.2.2)
# wc -l /tmp/fuentes.txt
2564 /tmp/fuentes.txt
# wc -w /tmp/fuentes.txt
20889 /tmp/fuentes.txt
# wc -c /tmp/fuentes.txt
130697 /tmp/fuentes.txt
4.3) STDIN
4.3.1)
4.3.2)
1
2 Please enter date: MMDDYYhhmmss. Then hit the RETURN key.
3 Mon Apr 16 20:21:44 EDT 2018
#
4.3.3)
# date
4.4) STDERR
* cat /tmp/error.tmp
4.5) PIPES
# cd /
4.5.1)
2 18 126
*******************************************
* FACULTAD DE INGENIERIA *
* Grupo: MAMANI-SAIQUITA-TALAVERA *
*******************************************
~
~
Password:
*********************************
* FACULTAD DE INGENIERIA *
* Grupo: MAMANI-SAIQUITA-TALAVERA *
*********************************
5.2)
*******************************************
* FACULTAD DE INGENIERIA *
* daly.jaquelin@gmail.com *
* pablo182r@gmail.com *
* ema.tala015@gmail.com *
*******************************************
Password:
*******************************************
* FACULTAD DE IGENIERIA *
* Grupo: MAMANI-SAIQUITA-TALAVERA *
* Integrantes: Mamani, Dalila Jaquelina *
* daly.jaquelin@gmail.com *
* pablo182r@gmail.com*
* ema.tala015@gmail.com *
*******************************************
6)
6.1)
#include <stdio.h>
int main()
printf("*************************************************\n");
printf("*************************************************\n");
~
~
6.2)
# cc /usr/src/prueba.c -o /usr/src/prueba
6.3)
7)
7.1)
#include <stdio.h>
int main()
int i,c;
while(1)
c = 48 + i;
printf("%d",c);
i++;
i = i % 10;
7.2)
# cc /usr/src/loop.c -o /usr/src/loop
7.3)
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
4555657484950515253545556574849505152535455565748495051525354555657484950515253
5
Se imprimen por pantalla todos los números que genera el programa /usr/src/loop.c y nunca
sale del bucle infinito.
7.4)
# ps -ef
# kill -9 217
7.5)
7.6)
--pid --pc- ---sp- flag -user --sys-- -text- -data- -size- -recv- command
Estos datos representan la información de los procesos que en ese momento se encuentran en
ejecución.
7.7)
-1 HARDWA 0 2 30 0 32 2d 2d 5f 0 93K
3 sh 0 b4 3f 0 f3 18 3c 12f 2 125K