-
Guia de Linux en Dreamcast para principiantes
Adaptación por
Guybrush
Basada en
"Linux on Dreamcast: A Beginners Guide", de Adrian O´Grady.
-
¿Qué es Linux DC?:
LINUX es un sistema operativo de 32 bits, basado y totalmente compatible con UNIX, probablemente la mejor familia de Sistemas Operativos que existen. LINUX fue creado inicialmente por
Linus Torvalds, a partir de UNIX. Lo llamó
"Unix para el 386" y pronto miles de programadores se interesarian por su idea y empezarían a colaborar en la creación de este Sistema Operativo. Linux es el núcleo (kernel) del Sistema, que al unirlo con el proyecto GNU de Richard Stallman formó lo que hoy conocemos como GNU/Linux, conocido como Linux a secas por mayor comodidad (aunque linux repito es el nombre del kernel). Se cambió radicalmente un aspecto con respecto UNIX: era un sistema operativo libre (GNU). LINUX tenía el código totalmente abierto (programado en C) y cada usuario podría modificar el Sistema Operativo de acuerdo a sus necesidades. Bajo este tipo de licencia eran lanzados los programas también: todo programa tenía su código fuente disponible al público, para que cada uno lo modificara si lo creía necesario.
En contra de lo que alguien pueda pensar, LINUX se ha convertido en el Sistema Operativo por excelencia para el usuario de nivel alto y medio, y no tiene nada que envidiar a otras soluciones de la competencia. Es un sistema operativo MULTIUSUARIO de 32 bits, con un sistema de archivos mucho más eficiente de lo que nos tienen acostumbrados los sistemas monousuario de la competencia: el EXT2 que permite un altísimo aprovechamiento de la capacidad de disco y un indice 0 de fragmentación (no hay fragmentación). Hay que añadir que se trata de un sistema con concurrencia de procesos muy eficiente, lo que junto a su capacidad de trabajar con varios procesadores a la vez definen el concepto de
"Multitarea".
-
¿Porque existe una version para Dreamcast?:
Muy simple. Es un clon de UNIX que se caracteriza por ser un sistema PORTABLE, que significa que modificando minimamente el código puede ser compilado para ser usado por otro tipo de procesador, lo que hace que tengamos versiones de UNIX en PC, en Workstations, en MAC... toda clase de miniordenadores. LINUX también tiene esta caracteristica, y ha sido compilado para un tipo un tanto "especial" de miniordenador: la consola Sega Dreamcast.
-
Requerimientos:
El unico requerimiento 100% necesario es un
TECLADO. Sin él no podrás escribir y por tanto no podrás hacer
login (entrar al sistema) con lo cual no podrás usar LINUX DC.
Se hace aconsejable que tengas un
RATON para las X-WINDOWS, y si tienes un
VGA BOX mejor que mejor (con la TV es posible que se te coma parte de la pantalla, con lo que puedes perder parte de la linea de comandos, bien por abajo o por la izquierda). Los mandos corrientes de DC se pueden usar para jugar con PRBOOM y XMAME.
-
Arrancando LINUX:
Pon tu LINUX DC en la dreamcast y enciende (suponiendo que te hayas bajado una imagen AUTOBOOT). Si te la has compilado tu mismo (para poner roms, o algo similar) y NO has hecho el disco AUTOBOOT, carga el boot cd de Utopia y despues cambia el disco por el de LINUX DC.
Tras unos segundos aparecerá una imagen azul y después empezará el proceso de carga de demonios y los checkeos del sistema. Cuando el proceso de carga haya finalizado, el shell del sistema nos pedirá que introduzcamos nuestro nombre de usuario:
Debian GNU/Linux testing/unestable dreamcast tty1
dreamcast login:
Una vez visto esto pondremos
"root" (*) y pulsamos enter para hacer LOGIN. Despues de el mensaje de vienvenida (/etc/motd) se te presentará el PROMPT del sistema:
dreamcast:~#
Bienvenido al maravilloso mundo de Linux :)
(*) El "root" es el superusuario del Sistema, tiene UID 0 (todos los privilegios). Es el encargado de crear nuevos usuarios, administrar sus permisos y crear grupos, entre otras cosas. En ESTA VERSION para DC solo hay 1 usuario: el "root", y además NO TIENE CLAVE, porque en este caso no es necesario Esto no es lo normal En un sistema UNIX/LINUX funcionando en un ordenador. Normalmente es totalmente indispensable que el superusuario tenga un password que nadie conozca y además este debe ser cambiado con regularidad, debe ser alfanumerico y que preferiblemente no se encuentre en ningún diccionario (por motivos de seguridad).
-
Consideraciones a tener en cuenta:
1) Nuestro teclado es español (se supone) pero LINUX viene con el teclado configurado en inglés. Así que algunas teclas no estarán donde aparecen representadas. Puedes poner cualquier caracter si conoces su código ASCII, pulsando
ALT + ASCII. Por ejemplo, para poner el símbolo ~ debemos pulsar ALT + 126 (126 es el códgo ASCII del carácter ~)
2) Los directorios se separan con barras, no contrabarras. Aunque no lo parezca todos los SO´s trabajan así, solo Microsoft introdujo la contrabarra
\ para separar directorios, para utilizar la barra
/ al añadir modificadores a los comandos.
3) Linux es
"case sensitive", es decir, distingue mayúsculas y minúsculas. No es lo mismo el archivo
"cosas.doc", que
"COSAS.DOC" o
"Cosas.doc". Lo mismo sucede con los comandos, que hay que escribir en minúsculas.
4) Los comandos y programas tienen una entrada estándar y una salida estándar. Podemos cambiar esto mediante los redirecionamientos (>, <, >>, << ). Por ejemplo, la salida estándar del comando ls será la pantalla. Podemos hacer que en lugar de mostrarlo por pantalla lo guarde en un fichero:
ls -lagF > fichero
O podemos hacer que, si existía el fichero, añada los datos a continuación, sin borrar lo que había:
ls -lagF >> fichero
Son solo dos ejemplos, el que quiera más información que la busque. No acabaría si me pusiera a hablar de los redirecionamientos ;)
5) Se puede usar la
SALIDA de un programa como
ENTRADA de otro. Para esto usamos las tuberías
| :
ls |
sort
La salida de
ls (listado de archivos) la recibe como entrada
sort, quien recibe la lista de archivos y los ordena, y luego los muestra por la salida estándar de sort: la pantalla.
-
Unos cuantos comandos simples:
No voy a explayarme demasiado sobre estos comandos, teneis multitud de informacion sobre como funciona LINUX en internet. No obstante, aquí van algunos comandos:
Nota: el comando MAN no está en esta version. Este comando, nos muestra como se usa cualquier comando del sistema.
pwd: Te enseña en el directorio en que estás posicionado (directorio activo).
cd directorio: cambia al directorio especificado. Recordemos que en LINUX la se utiliza la barra
/ para separar directorios, no la contrabarra
\como en los sistemas Microsoft.
ls: nos muestra los archivos y directorios del directorio actual. Es el equivalente al comando DIR de MS-DOS. Podemos poner detrás una ruta de directorio para que haga el
ls alli en lugar de en el directorio activo. Con
ls -l haremos un listado largo (veremos todos los datos), y con
ls -a veremos también los archivos ocultos. Nota: podemos encadenar varios modificadores:
ls -alFg
mkdir: Igual que en MS-DOS, crea un directorio.
rmdir: Borra un directorio. Debe estar vacio.
more archivo: Nos muestra, paginado, el contenido de un archivo.
startx: Inicia el entorno de ventanas X-WINDOWS.
xdm: Igual que
startx pero pidiendo, además, LOGIN.
df: Enseña cuanto espacio de disco está usado.
which comando: Te dice exactamente que ejecutable está asociado a un comando
shutdown -h now: Apaga el sistema. No es necesario en este LINUX puesto que no tenemos disco duro, la unidad está emulada en RAM y por tanto es volatil y no causará daños en archivos al apagar (directamente se destruirán).
cat: Concatenar. Recibe texto y lo manda a la salida estándar. Podemos usarlo para escribir en un fichero (
cat > fichero), o para leer lo que contiene, por ejemplo (
cat fichero).
who: muestra los usuarios que hay utilizando el sistema. En este caso solo puedes estar tu.
vi: programa editor de texto muy potente, aunque un poco complicado de usar para novatos. Si escribimos código C nos coloreará el texto.
-
El sistema de archivos:
LINUX DC arranca usando más o menos 2 megas de
RAMDISK (disco en memoria RAM). Esto se traduce en que no hay mucho espacio para guardar tus archivos en la DC. De todas formas, cuando apagues la consola todos los datos se borrarán. No obstante, hay algunos directorios importantes en esta versión de LINUX:
/root: Tu
"home" o directorio principal. Aqui es donde puedes guardar todo el trabajo que hagas. Es tu directorio personal de usuario que en el caso de cualquier usuario normal es
/home/usuario, pero el
root siempre tiene uno fijo llamado
/root.
/etc: La mayoria de los ficheros de configuración de los programas en esta distribución están aqui.
/gdrom: Es un enlace a
/mnt/gdrom, es decir, aqui encontraremos el contenido del GD de LINUX. Por desgracia, en esta versión no se puede hacer un
"umount" para montar la unidad de nuevo, por lo que solo podremos leer el disco original de LINUX no pudiendo cambiarlo por otro.
/bin
/sbin
/usr/bin
/usr/sbin: En estos directorios están la mayoria de los binarios o programas que incluye esta distribución. Basta echar un ojo para ver que contienen.
/usr/games: Unos cuantos juegos para LINUX, la mayoria en modo texto.
/usr/doc: Documentación sobre LINUX.
Muchos programas puede que no estén en el
path, así que tendreis que ejecutarlos de forma absoluta, anteponiendo
./ al comando, por ejemplo:
./startx
-
Prboom:
Empieza lo divertido. Prboom es un port del
DOOM de MS-DOS para LINUX. Pues como tenemos LINUX podemos jugarlo.
Lo primero es fijar el
"frame buffer depth". Lo haremos escribiendo:
fbset -depth 16
Despues lanza el prboom escribiendo
prboom. En ocasiones falla, asi que vuelve a poner el
fbset y vuelve a intentar lanzar el prboom. Tarde o temprano funcionará.
-
Como usar vi para editar los ficheros:
Esto es una breve explicación de como se usa
vi. Que conste que un manual completo nos podria llevar fácilmente 30 páginas, porque a pesar de ser muy potente,
vi sigue siendo un poco complejo para usuarios no experimentados.
Para abrir o crear un archivo con
vi, escribe
vi seguido del nombre del fichero:
dreamcast:~# vi hola.txt
Una vez que se haya cargado el programa, tienes que ponerte en modo "insertar" para poder escribir cualquier cosa. Para esto pulsa "i". Una vez hecho esto, puedes escribir como el cualquier otro editor de texto y moverte por el texto con las teclas de dirección.
Cuando hayas terminado de editar tu documento, presiona
ESCAPE para abandonar el modo de inserción. Puedes salir sin guardar los cambios escribiendo
ZZ (shift + zz) o salir guardando los cambios escribiendo :q!
-
Programando con la Dreamcast:
Esta versión de LINUX viene con un compilador de
C/C++ para Dreamcast. El límite solo lo pone el tamaño de la RAM. Para empezar, aquí tenemos un típico programa
"hola mundo" en C.
Primero necesitamos editar el codigo fuente:
dreamcast:~# vi hola.c
Luego ponemos el siguiente texto:
main()
{
printf("Hola mundo!!\n\n");
return 0;
}
Que conste que la función principal siempre debe devolver algo en DC.
Después de guardarlo podemos compilarlo así:
dreamcast:~# gcc hola.c -o hola
(Donde "hola" es el nombre del fichero ejecutable resultante)
Luego podrás ejecutar el programa de la siguiente manera:
dreamcast:~# ./hola
Hola mundo!!
dreamcast:~#
Felicidades. Acabas de escribir tu primer programa para Dreamcast. Aquí va otro ejemplo un poco más complejo, por si alguien quiere probarlo:
main()
{
int num1, num2;
printf("Escriba un numero\n");
scanf("%d", &num1);
printf("Escriba otro numero\n");
scanf("%d", &num2);
printf("La suma de los dos números es %d\n", num1+num2);
return 0;
}
-
Uso del coders cable:
Puedes usar el coders cable para conectar la Dreamcast desde tu PC. Abre tu programa de comunicaciónes (por ejemplo, el Hyper Terminal) y configuralo a 115200bpp (8-N-1) y una vez que la dreamcast haya arrancado, deberías ver la pantalla de login. Haz login como
root.
Ahora podemos usar el cable para guardar datos en el PC desde la Dreamcast. Para ello escribiremos:
dreamcast:~# gzip stuff.dat
dreamcast:~# uuencode stuff.dat.gz stuff.dat.gz.uue > stuff.dat.gz.uue
dreamcast:~# more stuff.dat.gz.uue
Así copiamos la salida en un fichero de texto y lo guardamos en el disco duro del pc. Para devolver el archivo a la dreamcast primero le dremos a la dreamcast que copie alguna entrada en un fichero:
dreamcast:~# cat > stuff.dat.gz.uue
Despúes, copiamos los datos del archivo de texto al archivo de comandos y presionamos
CONTROL + C (en una nueva linea) cuando lo haya mandado todo. Después escribimos:
dreamcast:~# uudecode stuff.dat.gz.uue -o stuff.dat.gz
dreamcast:~# gunzip stuff.dat.gz
dreamcast:~# rm stuff.dat.gz.uue
Ya tenemos el archivo
stuff.dat de vuelta.
(Nota: esto ha sido traducido directamente del texto de Adrian O´Grady y no ha sido comprobado por mi)