Está en la página 1de 32

DISEÑO DE SISTEMAS

OPERATIVOS

Trabajo Practico N°2


Tema: “Primeros Pasos En Minix”
Año 2018
INTEGRANTES
• Mamaní Dalila Jaquelina 36.377.983 6180
• Saiquita Pablo Rubén 37.908.775 7706
• Talavera Roque Emanuel 34.183.779 6313
Objetivos del práctico
Al terminar este trabajo Ud. habrá aprendido a:

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á:

1. Una PC con Windows 80 Mb de Disco y Lector de CD-ROM


2. El CD-ROM de la Cátedra
3. El Emulador BOSCH con imagen de Minix

Fuentes de Información sugeridas


Encontrará información útil en:
1. Las man pages de MINIX
4. El CD-ROM de la Cátedra

1. Instalación del Sistema Operativo(opcional)

Si desea instalar MINIX 2.0.2 en su versión DOSMINIX para procesador 8088/80286 en un


equipo con Windows 95/98/NT/2000 (cdsoa/minix/minix 2.0.2/DOSMINIX PARA 8088). NO
instalar la versión para 80386!!, no funciona bajo Windows.

Ayudarse con el siguiente link:

http://minix1.hampshire.edu/ftp/minix.2.0/2.0.2/

cdsoa/minix/minix 2.0.2/usage.txt

Resultado:

Hacer un PrintScreen de la pantalla una vez booteado el sistema en la que se vea


TODA la pantalla Windows y una Ventana con MINIX.

2. Instalación de comandos y programas fuentes

Genere los diskettes en DOS/WINDOWS correspondientes usando: FDVOL

http://minix1.hampshire.edu/ftp/minix.2.0/dosutil/

Ejemplo:

fdvol 1440 a: usr.taz

Nota:

usr.taz se encuentra en cdsoa/minix/minix 2.0.2/dosminix para 8088

cmd.taz se encuentra en cdsoa/minix/ minix 2.0.2/src

sys.taz se encuentra en cdsoa/minix/ minix 2.0.2/src


En MINIX logearse como root

Minix Release 2.0 Version 2

noname login: root

Para instalar el /usr utilice el comando setup el que le permite agregar archivos desde el
diskette al sistema.

i86/USR.TAZ (3 Diskettes) - Binary /usr files (8086 executables.)


src/SYS.TAZ (2 Diskettes) - Operating system sources (libary, kernel, etc.)
src/CMD.TAZ (3 Diskettes) - Commands sources (cp, ls, mkdir, etc.)

se instalan bajo el directorio /usr .

Ejemplo:

# setup /usr

Repita el mismo procedimiento para los otros archivos .TAZ

Lea el siguiente documento para mas detalles

http://minix1.hampshire.edu/ftp/minix.2.0/2.0.2/usage.txt

Si dispone de poca memoria ejecute:

# cd /usr

# vol /dev/fd0 | uncompress | tar xvfp -

Si aun asi le da error intente matar (kill) al proceso update como se muestra en el ejemplo

# kill –9 <PID>

# ps -ef

F S UID PID PPID PGRP SZ RECV TTY TIME CMD

10 W 0 0 0 0 88 ANY ? 0:00 TTY

10 W 0 0 0 0 88 ANY ? 0:00 DOSDSK

10 W 0 0 0 0 88 ANY ? 0:00 SCSI

10 W 0 0 0 0 88 ANY ? 0:00 WINCH

10 W 0 0 0 0 88 CLOCK ? 0:00 SYN_AL

0R 0 0 0 0 88 ? 0:41 IDLE

10 W 0 0 0 0 88 ANY ? 0:00 PRINTER

10 W 0 0 0 0 88 ANY ? 0:00 FLOPPY


0R 0 0 0 0 88 ? 0:00 MEMORY

10 W 0 0 0 0 88 ANY ? 0:00 CLOCK

10 W 0 0 0 0 88 ANY ? 0:00 SYS

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 S 0 1 0 0 10 (wait) MM ? 0:00 INIT

10 S 0 27 1 27 51 (wait) MM co 0:00 -sh

10 W 0 18 1 0 4 MM ? 0:00 update

10 S 0 28 1 28 14 (TTY) FS c1 0:00 getty

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

Una vez finalizada toda la instalación es recomendable rearrancar la sesión MINIX


# sync
# sync
# shutdown

Setear Teclado Español

previamente hacer
cp /usr/lib/keymaps/spanish.map /etc/keymap
echo loadkeys /etc/keymap >> /etc/rc
sync; sync; shutdown

Acceso A Unidad De Diskette DOS


Para poder usar
dosdir
dosread
doswrite
hacer
ln /dev/fd0 /dev/dosA
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.

3. Comandos Básicos de MINIX/UNIX


Para presentar los resultados de los ejercicios propuestos deberá hacer en la ventana de
MINIX
<EDICION>
<MARCAR>
Luego marcar el texto en la ventana MINIX y hacer
<EDICION>
<COPIAR>
Para copiar el texto en el portapapeles de WINDOWS. De alli en mas insértelo en el documento
y recuádrelo con un marco tal como muestra el ejemplo

# mount

/dev/dosd1 is root device

/dev/dosd2 is mounted on /usr

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

NOTA: la búsqueda debe realizarse estando posicionados en el directorio


/usr/src/lib/syslib. Debe quedar claro para quien corrija, que estaba posicionado
en ese directorio al realizar la búsqueda.

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

para que sea

other

3.14. chown
Cambie el propietario del archivo

/usr/<grupo>/passwd

para que sea

ast

3.15. chmod
Cambie los permisos del archivo

/usr/<grupo>/passwd

para que

➢ el propietario tenga permisos de lectura, escritura y ejecución


➢ el grupo tenga solo permisos de lectura y ejecución
➢ el resto tenga solo permisos de ejecución
3.16. file
Que tipo de archivo es

/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.20.1. ¿Qué le muestra el comando who?¿Qué significa esa información?


3.20.2. ¿Qué le muestra el comando who am i?¿Qué significa esa información?

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

a los siguientes archivos

/tmp/contra1

/tmp/contra2

hacer un ls – l para ver cuantos enlaces tiene

/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

Presente los filesystems que tiene montados

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.29.2. Monte el Filesystem del diskette como read-only en el directorio


/mnt

3.29.3. 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. Uso de STDIN, STDOUT, STDERR y PIPES

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

/tmp/error.txt. Muestre el contenido de /tmp/error.tmp

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.

5. Utilización del Editor “vi”

5.1. Edición de un archivo


Cree el siguiente archivo

/etc/motd

con el siguiente contenido

*******************************************

* UNIVERSIDAD NACIONAL DE JUJUY *

* FACULTAD DE INGENIERIA *

* DISEÑO SISTEMAS OPERATIVOS *

* TRABAJO PRACTICO NUMERO 3 *

* Grupo: <NOMBRE DE GRUPO> *

*******************************************

logonearse en la otra sesión como nobody

y presentar el resultado al entrar al sistema

NOTA: Para mas información acerca de vi utilice el comando


“man –s9 elvis”

5.2. Modificar un archivo


Cambiar el contenido del archivo

/etc/motd

para que incluya los integrantes del grupo con sus correos electrónicos

logonearse en la otra sesión como nobody

y presentar el resultado al entrar al sistema


6. Compilación de un programa C

Crear el siguiente programa /usr/src/prueba.c

#include <stdio.h>

int main()

printf(“*******************************************\n”);

printf(“* UNIVERSIDAD NACIONAL DE JUJUY *\n”);

printf(“* FACULTAD DE INGENIERIA *\n”);

printf(“* DISEÑO SISTEMAS OPERATIVOS *\n”);

printf(“* TRABAJO PRACTICO NUMERO 4 *\n”);

printf(“* GRUPO: <NOMBRE DE GRUPO *\n”);

printf(“*******************************************\n”);

6.1. compilar el programa. El programa compilado debe llamarse prueba


6.2. probar el programa. Hacer un PrintScreen de la pantalla WINDOWS

7. Ejecución de procesos en Background

7.1. Crear el siguiente programa


/usr/src/loop.c

#include <stdio.h>

int main()

int i, c;

while(1)

c = 48 + i;

printf("%d",c);

i++;
i = i % 10;

7.2. Compilarlo. El programa compilado debe llamarse loop


7.3. Correrlo en foreground. ¿Que sucede ?
7.4. Mate el proceso con el comando kill
7.5. Ahora ejecútelo en background
/usr/src/loop > /dev/null &

Que se muestra en la pantalla ?

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>

int system(const char *string)

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.

standard-input, 1-24 (Top)ÿ

3.2) date

# date

Mon Apr 16 17:38:22 EDT 2018

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

-r--r--r-- 1 root operator 1813 Jan 2 2001 /usr/src/LICENSE

3.5.1) El archivo tiene 1813 bytes.

3.5.2) El propietario es root.

3.5.3) El grupo propietario es 1.

3.5.4) El archivo fue creado el 2 de enero del 2001.

3.6) cat

# cat /usr/src/.profile

cat: /usr/src/.profile: No such file or directory

Al ejecutar el commando vemos que el archivo no se encuentra en el directorio solicitado, sin


embargo lo podemos encontrar /usr/home/bin/.profile

* cat /usr/home/bin/.profile

# Login shell profile.

# Erase character, erase line, and interrupt keys.

stty sane erase '^H' kill '^U' intr '^?'

# Check terminal type.

case $TERM in

dialup|unknown|network)

echo -n "Terminal type? ($TERM) "; read term

TERM="${term:-$TERM}"

unset term

esac

# Shell configuration.

unset EDITOR; . $HOME/.ashrc

# Special prompt for bin.


case $USER in

bin) PS1='! '

esac

3.7) wc

3.7.1)

# wc -l /etc/passwd

10 /etc/passwd

El archivo tiene 10 líneas.

3.7.2)

# wc -w /etc/passwd

22 /etc/passwd

El archivo tiene 22 palabras.

3.7.3)

# wc -c /etc/passwd

384 /etc/passwd

El archivo tiene 384 caracteres.

3.8) more

Copyright (c) 1987,1997,2001 Prentice Hall

All rights reserved.

Redistribution and use of the MINIX operating system in source and

binary forms, with or without modification, are permitted provided

3.9) find

# cd /usr/src/lib/syslib

# pwd

/usr/src/lib/syslib

# find proc.c

find: can't get status of proc.c

Como se puede ver estando en el directorio /usr/src/lib/syslib no se puede encontrar el


archivo proc.c, así que realizaremos la búsqueda desde el directorio root
# find / -name 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:

uucp:*:5:5:UNIX to UNIX copy:/usr/spool/uucp:/usr/bin/uucico

www:*:333:15:World Wide Web:/usr/www:

3.11) mkdir

# mkdir /usr/migrupo

# ls /usr

adm bin home lib man migrupo run src

ast etc include local mdec preserve spool tmp

3.12) cp

# ls /usr/migrupo

# cp /etc/passwd /usr/migrupo

# ls /usr/migrupo

passwd

3.13) chgrp

# chgrp other /usr/migrupo/passwd

# ls -al /usr/migrupo

total 3

drwxr-xr-x 2 root operator 48 Apr 16 18:08 .

drwxr-xr-x 18 root operator 288 Apr 16 18:04 ..

-rw-r--r-- 1 root other 384 Apr 16 18:08 passwd

3.14) chown
# chown ast /usr/migrupo/passwd

# ls -al /usr/migrupo

total 3

drwxr-xr-x 2 root operator 48 Apr 16 18:08 .

drwxr-xr-x 18 root operator 288 Apr 16 18:04 ..

-rw-r--r-- 1 ast other 384 Apr 16 18:08 passwd

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

drwxr-xr-x 2 root operator 48 Apr 16 18:08 .

drwxr-xr-x 18 root operator 288 Apr 16 18:04 ..

-rw-r--r-- 1 ast other 384 Apr 16 18:08 passwd

# chmod 751 /usr/migrupo/passwd

# ls -al /usr/migrupo

total 3

drwxr-xr-x 2 root operator 48 Apr 16 18:08 .

drwxr-xr-x 18 root operator 288 Apr 16 18:04 ..

-rwxr-x--x 1 ast other 384 Apr 16 18:08 passwd

3.16) file

# file /usr/bin/who

/usr/bin/who: MINIX-PC 32-bit executable, sep I&D stripped

Es un archivo ejecutable

3.17) grep

# grep include /usr/src/kernel/main.c

#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

root console Sun Apr 16 18:25

3.19) passwd

3.19.1)

# passwd nobody

Changing the password of nobody

New password:

Retype password:

3.19.2)

Minix Release 2 Version 0.4

bochs-minix.local.net login: nobody

Password:

3.19.3)

$ whoami

nobody

$ su

# whoami

root

3.19.3.1) No esta solicitando nada.

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

nobody ttyc1 Mon Apr 16 19:26

Esta información nos dice cuáles son las sesiones de usuarios que están actualmente activas

3.20.2)

$ who am i

nobody ttyc1 Mon Apr 16 19:26

Esta informacion muestra en la sesión que nos encontramos actualmente.

3.21) diff

3.21.1)

# diff /etc/passwd /usr/migrupo/passwd

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

-rw-r--r-- 1 root operator 396 Apr 16 19:34 /etc/passwd

# ln /etc/passwd /tmp/contra1

# ln /etc/passwd /tmp/contra2

# ls -l /etc/passwd

-rw-r--r-- 3 root operator 396 Apr 16 19:34 /etc/passwd

3.24) rmdir

# ls /usr

adm bin home lib man migrupo run src

ast etc include local mdec preserve spool tmp

# rmdir /usr/migrupo
# ls /usr

adm bin home lib man preserve spool tmp

ast etc include local mdec run src

3.25) mkfs

# mkfs /dev/fd0

3.26) mount

#mount /dev/fd0 /mnt

/dev/fd0 is read-write mounted on /mnt

# df

Filesystem 1k-Blocks free used % FUsed% Mounted on

/dev/c0d0p0 1440 932 508 36% 34% /

/dev/c0d0p2 45663 24248 21415 47% 40% /usr

/dev/fd0 1440 1405 35 3% 1% /mnt

3.27) df

0 Symbolic links

24248 Free zones

/dev/c0d0p2 is read-write mounted on /usr

Multiuser startup in progress.

Starting daemons: update cron.

Minix Release 2 Version 0.4

bochs-minix.local.net login: root

# fs

fs: No such file or directory

* mount /dev/fd0 /mnt

/dev/fd0 is read-write mounted on /mnt

# df

Filesystem 1k-Blocks free used % FUsed% Mounted on

/dev/c0d0p0 1440 932 508 36% 34% /

/dev/c0d0p2 45663 24248 21415 47% 40% /usr

/dev/fd0 1440 1405 35 3% 1% /mnt

# df
Filesystem 1k-Blocks free used % FUsed% Mounted on

/dev/c0d0p0 1440 932 508 36% 34% /

/dev/c0d0p2 45663 24248 21415 47% 40% /usr

/dev/fd0 1440 1405 35 3% 1% /mnt

3.28) ps

3.28.1)

# ps

PID TTY TIME CMD

24 co 0:00 -sh

32 c1 0:00 getty

38 co 0:00 ps

3.29) umount

3.29.1)

# umount /dev/fd0

/dev/fd0 unmounted from /mnt

3.29.2)

# mount -r /dev/fd0 /mnt

/dev/fd0 is read-only mounted on /mnt

3.29.3)

# umount /dev/fd0

dev/fd0 unmounted from /mnt

3.30) fsck

# fsck /dev/fd0

Checking zone map

Checking inode map

Checking inode list

blocksize = 1024 zonesize = 1024

0 Regular files

1 Directory
0 Block special files

0 Character special files

479 Free inodes

0 Named pipes

0 Symbolic links

1405 Free zones

3.31) dosdir

# dosdir A

EJEMPLO.TXT

3.32. dosread

# ls -l /tmp

total 0

# dosread -a A ejemplo.txt > /tmp/ejemplo.txt

# ls -l /tmp

total 1

-rw-r--r-- 1 root operator 615 Apr 16 19:53 ejemplo.txt

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)

# cat /etc/passwd | sort >> /tmp/fuentes.txt

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)

# echo 2355 > /tmp/hora.txt

4.3.2)

# date -q < /tmp/hora.txt

1
2 Please enter date: MMDDYYhhmmss. Then hit the RETURN key.
3 Mon Apr 16 20:21:44 EDT 2018
#
4.3.3)

# date

1 Mon Apr 16 20:22:34 EDT 2018


#

4.4) STDERR

# dosdir k 2> /tmp/error.tmp

* cat /tmp/error.tmp

dosdir: cannot open /dev/dosK: No such file or directory

4.5) PIPES

# cd /

4.5.1)

# ls -l usr/bin/s* | grep sync | wc -lwc

2 18 126

5) Utilización del Editor “vi”


5.1)

*******************************************

* UNIVERSIDAD NACIONAL DE JUJY *

* FACULTAD DE INGENIERIA *

* DISEÑO SISTEMAS OPERATIVOS *

* TRABAJO PRACTICO NUMERO 2 *

* Grupo: MAMANI-SAIQUITA-TALAVERA *

*******************************************

~
~

Wrote "/etc/motd" 7 lines, 307 characters

Logueo en nobody y presentación del resultado.

Minix Release 2 Version 0.4

nomame login: nobody

Password:

*********************************

* UNIVERSIDAD NACIONAL DE JUJUY *

* FACULTAD DE INGENIERIA *

* DISE¥O SISTEMAS OPERATIVOS *

* TRABAJO PRACTICO NUMERO 2 *

* Grupo: MAMANI-SAIQUITA-TALAVERA *

*********************************

5.2)

*******************************************

* UNIVERSIDAD NACIONAL DE JUJY *

* FACULTAD DE INGENIERIA *

* DISENO SISTEMAS OPERATIVOS *

* TRABAJO PRACTICO NUMERO 2 *


* Grupo: MAMANI-SAIQUITA-TALAVERA *

* Integrantes: Mamani, Dalila Jaquelina *

* daly.jaquelin@gmail.com *

* Saiquita, Pablo Ruben *

* pablo182r@gmail.com *

* Talavera, Roque Emanuel *

* ema.tala015@gmail.com *

*******************************************

Wrote "/etc/motd" 13 lines, 599 characters

Logueo en nobody y presentación del resultado

Minix Release 2 Version 0.4

nomame login: nobody

Password:

*******************************************

* UNIVERSIDAD NACIONAL DE JUJY *

* FACULTAD DE IGENIERIA *

* DISENO SISTEMAS OPERATIVOS *

* TRABAJO PRACTICO NUMERO 2 *

* Grupo: MAMANI-SAIQUITA-TALAVERA *
* Integrantes: Mamani, Dalila Jaquelina *

* daly.jaquelin@gmail.com *

* Saiquita, Pablo Ruben *

* pablo182r@gmail.com*

* Talavera, Roque Emanuel *

* ema.tala015@gmail.com *

*******************************************

6)

6.1)

#include <stdio.h>

int main()

printf("*************************************************\n");

printf("* UNIVERSIDAD NACIONAL DE JUJUY *\n");

printf("* FACULTAD DE INGENIERIA *\n");

printf("* DISENO SISTEMAS OPERATIVOS *\n");

printf("* TRABAJO PRACTICO NUMERO 2 *\n");

printf("* GRUPO: MAMANI-SAIQUITA-TALAVERA *\n");

printf("*************************************************\n");

~
~

"/usr/src/prueba.c" 11 lines, 400 chars

6.2)

# cc /usr/src/prueba.c -o /usr/src/prueba

"/usr/src/prueba.c", line 3: (warning) 'main' old-fashioned function definition

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;

"/usr/src/loop.c" 12 lines, 133 chars

7.2)

# cc /usr/src/loop.c -o /usr/src/loop

"/usr/src/loop.c", line 3: (warning) 'main' old-fashioned function definition

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

F S UID PID PPID PGRP SZ RECV TTY TIME CMD

4 W 0 (-10) 0 0 93 ANY ? 0:24 TTY

4 W 0 (-9) 0 0 93 ANY ? 0:00 (C1)


4 W 0 (-8) 0 0 93 ANY ? 0:00 at

4 W 0 (-7) 0 0 93 HARDWAR ? 0:00 SYN_AL

0 R 0 (-6) 0 0 93 ? 1h37 IDLE

4 W 0 (-5) 0 0 93 ANY ? 0:00 FLOPPY

0 R 0 (-4) 0 0 93 ? 0:00 MEMORY

4 W 0 (-3) 0 0 93 ANY ? 0:00 CLOCK

4 W 0 (-2) 0 0 93 ANY ? 0:00 SYS

0 R 0 (-1) 0 0 93 ? 1h37 HARDWAR

4 W 0 (0) 0 0 47 ANY ? 0:00 MM

4 W 0 (1) 0 0 139 MEMORY ? 0:01 FS

4S 0 1 0 0 12 (wait) MM ? 0:00 INIT

4S 0 25 1 25 125 (wait) MM co 0:00 -sh

0 R 0 160 1 160 125 c1 0:00 -sh

4S 0 19 1 0 7 (ssusp) MM ? 0:00 update

4S 0 20 1 0 62 (pause) MM ? 0:00 cron

0 R 0 217 25 25 135 co 2:29 /usr/src/loop

4 W 0 222 160 160 159 FS c1 0:00 ps -ef

# kill -9 217

7.5)

# /usr/src/loop > /etc/null &

# No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1


No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

No space on root device 3/1

7.6)

--pid --pc- ---sp- flag -user --sys-- -text- -data- -size- -recv- command

(-10) ba45 95dc 0 1732 0 2K 50K 93K TTY

( -9) ba45 99a4 4 0 0 2K 50K 93K ANY (C1)

( -8) ba45 9dc4 4 70 0 2K 50K 93K ANY at

( -7) ba45 9fe4 4 0 0 2K 50K 93K HARDWARSYN_AL

( -6) d68 a040 0 1 431916 2K 50K 93K IDLE

( -5) ba45 a5e8 4 0 0 2K 50K 93K ANY FLOPPY

( -4) ba45 a7ec 4 2 0 2K 50K 93K ANY MEMORY

( -3) ba45 aa08 4 0 0 2K 50K 93K ANY CLOCK

( -2) ba45 ac2c 4 471 0 2K 50K 93K ANY SYS

( -1) 0 ac48 0 432119 0 2K 50K 93K HARDWAR

( 0) 3485 7fc0 4 4 0 1024K 1039K 47K ANY MM

( 1) 7131 1b7c4 4 360 0 1071K 1100K 139K ANY FS

1 17a5 1310 4 0 1 1210K 1217K 12K MM INIT

25 ebb9 f634 4 1 6 180K 243K 125K FS sh

160 ebb9 f634 4 1 2 180K 418K 125K FS sh

19 539 12e4 4 0 3 349K 351K 7K MM update


20 4021 9af0 4 0 1 356K 379K 62K MM cron

F1 Muestra la tabla de procesos.

Estos datos representan la información de los procesos que en ese momento se encuentran en
ejecución.

Se muestra información de la ubicación en memoria de cada uno de los procesos,


especificando datos como: ID de proceso, tamaño del segmento de texto y datos, tamaño del
proceso en kb.

7.7)

PROC NAME- -----TEXT----- -----DATA----- ----STACK----- -SIZE-

-1 HARDWA 0 2 30 0 32 2d 2d 5f 0 93K

0 MM 0 400 f 0 40f 20 20 42f 0 47K

1 FS 0 42f 1d 0 44c 6e 6e 4ba 0 139K

2 INIT 0 4ba 7 0 4c1 5 5 4c6 0 12K

3 sh 0 b4 3f 0 f3 18 3c 12f 2 125K

4 sh 0 b4 3f 0 1a2 18 3c 1de 2 125K

5 update 0 15d 2 0 15f 1 4 163 1 7K

6 cron 0 164 17 0 17b 8 26 1a1 1 62K

F2 Muestra detalles del uso de memoria del proceso.

Estos datos muestran la organización de la memoria e información de los procesos actuales:

• Nombre del proceso


• Tres segmentos: segmento de texto (código), segmento de datos y segmento de pila.
Cada segmento tiene asociado una: longitud, dirección virtual y dirección física.
• Tamaño del proceso en kb

También podría gustarte