Pregunta

¿Alguien puede decirme acerca del uso de Common Lisp (Steel Bank) para escribir GUI a través de llamadas al sistema? Sé que hay algunas bibliotecas, pero este es un ejercicio de aprendizaje de idiomas, así que quiero hacerlo yo mismo.

Estoy desarrollando en Kubuntu 8.10 y SBCL 1.0.18.

Gracias.

¿Fue útil?

Solución

Puede echar un vistazo más de cerca al sb-posix-package . Pero como dice la página " La funcionalidad contenida en el paquete SB-UNIX es solo para uso interno de SBCL; es probable que su contenido cambie de una versión a otra. "

Otra posibilidad, la que elegiría, es incluir la instrucción C-syscall (2) a través de CFFI y luego realizarlo.

Para crear una GUI con ventana, debe usar X11, al menos para darle una ventana para pintar. Por lo tanto, debe conocer las especificaciones X11 para crear una ventana e implementar las llamadas al sistema para acceder a los zócalos de dominio de Unix o iniciar dispositivos shm, etc.

Si solo desea gráficos en una consola, puede pensar en usar el dispositivo framebuffer / dev / fb * . Necesitas ioctl (2) y syscalls para leer (2) ing y write (2) ing para usarlo, pero aún así, creo que esto sería mucho más fácil que usar X11 para esto (aunque todavía hay muchos trabajo). Tal vez debería mirar el código fuente de libFB o algo similar para ver cómo inicializarlo, etc. .

¿Es esto realmente lo que quieres hacer? Esto es mucho trabajo, aprenderá mucho, pero creo más sobre la infraestructura del sistema Linux, en lugar de sobre SBCL. Si desea usar Syscalls bajo SBCL, tal vez sea mejor intentar abrir TCP-Sockets solo con Linux-Syscalls; solo esto puede llevar horas de frustración.

Otros consejos

Al escribir GUI a través de llamadas al sistema, ¿quiere decir que no usa ningún kit de herramientas GUI como Gtk + o Qt? En tal caso, debe hablar directamente con el servidor X a través del socket e implementar todo el protocolo X11 (o usar CLX) y la GUI encima. Pero esa no es una tarea fácil, porque X11 es complejo.

En caso de que decida profundizar en X11, hay algunos enlaces para especificaciones: http: / /www.xfree86.org/current/specindex.html http://www.freedesktop.org/wiki/Specifications?action=show& redirect = Estándares

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top