[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: cua -> ttyS ?



> > Eduardo Alvarez Guzman wrote:
> > > Hola.
> > > Actualice el kernel a 2.2 y recibo el siguiente mensaje para el gpm:
> > > tty_io.c: process 311 (gpm) used obsolete /dev/cua0 - update software to use /dev/ttyS0
> > > Ahora, no se como proceder para que el gpm funcione con ttys, ¿alguien
> > > me puede sugerir documentacion para aprender a hacerlo?
> > > Saludos
> > De hecho, el cua0 es solo otro nombre para ttyS0. Segun yo
> > solo necesitas rehacer la liga /dev/mouse a que apunte a
> > /dev/ttyS0. Es decir:
> > `ln -sf /dev/ttyS0 /dev/mouse'
> Gracias a todos los que contestaron, esto resuelve el rollo del mouse.
> Alguien me puede sugerir bibliografia para entender que onda con los
> archivos (dispositivos) en /dev y como interactuar con ellos?

Bueno, basicamente basta saber que en UNIX puedes accesar a todo como si
fuera un archivo - archivos, discos, impresoras, terminales, tarjetas,
etc. Para ello, reciben archivos especiales en el directorio dev (de
devices, dispositivos).

Hay dos tipos de dispositivos: Dispositivos por bloques (principalmente,
discos) y dispositivos por caracteres (mouses, impresoras, terminarles,
tarjetas de red, etc.) Cual es la diferencia? Sencillo: A un dispositivo
por caracteres no le puedes pedir que tenga memoria. Si abres el puerto de
modem para lectura, recibes los caracteres como van llegando. Si abres el
puerto de impresion, mandas los caracteres conforme los vayas teniendo
listos. En cambio, con los dispositivos por bloques tienes que decirles
"dame el bloque que esta en tal direccion" o "ahi te va un bloque, grabalo
en tal otra direccion".

Como interactuar con ellos? Bueno, con los dispositivos por caracteres es
muy facil. Suponiendo que tienes el permiso de escritura o lectura hacia
ese dispositivo, basta que en tu programa abras el dispositivo como si
fuera un archivo, por ejemplo, si quisieras imprimir desde un programa de
perl, harias algo asi:

open (PRINTER,">/dev/lp0");
print PRINTER,"Este texto queda impreso";

Claro, este no es demasiado buen ejemplo, puesto que para imprimir
normalmente lo haras a traves de lpr... Pero sirve para ejemplificar.
Ahora, para recibir lo que diga el modem:

open (MODEM,"</dev/cua1");
$recibido = <MODEM>;
print "Lo que recibimos de /dev/cua1 es: \n$recibido";

De nuevo, no lo utilizaaas asi en la vida diaria, pero es bueno para
ejemplificar.

Si quieres mas informacion acerca del "como" de todo esto, te recomiendo
ampliamente comprar el libro "Sistemas operativos: Dise&o e
implementacion" de Andrew Tannenbaum. En este, describe tanto la parte
teorica como la manera en que implementa cada parte del sistema operativo
Minix. Aparte de ser este un dialecto de UNIX que corre en cualquier PC,
por mas viejita que sea, tienes el hecho de que Linus Torvalds se inspiro
en este para comenzar a desarrollar Linux.

Suerte!

-------------------------------------------------------------------
 Gunnar Wolf	gwolf en campus iztacala unam mx	   tel. 5623-1118
     Universidad Nacional Autonoma de Mexico, Campus Iztacala
       Jefatura de Seccion de Sistemas y telecomunicaciones
-------------------------------------------------------------------
There are two major products to come out of Berkeley: LSD and UNIX.
We do not believe this to be a coincidence.




[Hilos de Discusión] [Fecha] [Tema] [Autor]