|
BSDero » about UNIX programming
|
||||||||||||||
/rootPosts Recientes
Navegador de Archivos
Imagen Aleatoria |
You can create sendmail style unique ID string.
Check this code:
http://bsdero.gulags.org.mx/data/files/Code%20snippets/C-Unix/UUID_str/
See ya!
bsdero | General | 14 Agosto, 10:40pm
For english version of this post click here Que tal! Cherokee Web Server es un servidor HTTP multihilado, diseñado y desarrollado por Alvaro Lopez Ortega, un experimentado programador de origen español. De acuerdo a varios benchmarks, Cherokee HTTP server tiene un rendimiento mayor al de Apache HTTP Server. Cherokee utiliza una tecnica conocida como "pool de multihilos" para lograr el maximo desempeño de cualquier equipo de computo, siendo notorio sobre todo en equipos con varios procesadores o cores (SMP). Siempre quise tener Cherokee en Irix, asi que despues de un buen rato frente a mi SGI O2, editar alguno que otro fuente, meter mano al configure y lidiar con getopt_long(), pude lograr un static-build de cherokee 0.7.2. Este build pudo correr sin problemas (aunque cherokee-config se trabo poco despues de iniciar cherokee). Chequense esta screenshot:
cherokee-0.7.2-SGI_IRIX_6.5_gcc_compiled_binary_static.tar.gz
No se si este build sea util para alguien, pero de ser asi, seguramente funcionara muy bien en una Tezro, Octane o algun equipo mucho mas potente que mi pequeña O2. Esta version esta compilada con nekoware gcc, quizas el siguiente port lo haga con el compilador SGI Mips-PRO. Saludos a todos los fans de SGI
Cherokee Web Server is a multi-HTTP server, designed and developed by Alvaro Lopez Ortega, an experienced programmer of Spanish origin. According to several benchmarks, Cherokee HTTP server has a higher performance than Apache HTTP Server. Cherokee used a technique known as "multithreaded-pool" to achieve the maximum performance of any computer equipment, being particularly noticeable on computers with multiple processors or cores (SMP). I always wanted to have Cherokee in Irix, so after a while in front of my SGI O2, edit one another source, touch the configure and deal with getopt_long(), I was able to achieve a static-build of cherokee 0.7.2. This build could run smoothly. Look this screenshot:
cherokee-0.7.2-SGI_IRIX_6.5_gcc_compiled_binary_static.tar.gz
I dont know if this build is useful for someone, but if so, it will runs very well in a Tezro, Octane or any SGI computer more powerful than my little O2. By the way, this version is compiled with gcc nekoware, maybe the next port I'll use the Mips-PRO compiler. Greetings to all fans of SGI
bsdero | General | 25 Julio, 12:12am
Que tal!! Despues de casi un año de no postear nada en el sitio, estoy de regreso ahora con nuevas y bastantes ideas, concretamente sobre programacion y administracion UNIX. Algunos de los temas son Graficos, Redes, Protocolos, Hilos, Aplicaciones de sistema y otras cosas. Entre otras cosas, tendre nuevos posts sobre tecnicas avanzadas de programacion. Estas tecnicas son las que utilizan diversos programas de UNIX. Ademas estas tecnicas seran implementadas en diversos programas 100% funcionales. Por supuesto, todo ello acompañado de codigo fuente.
____
Hi! After nearly a year not to post anything on the site, I now return with new ideas and quite specifically on UNIX programming and administration. Some of the items are Graphics, networks, protocols, threads, systems applications and other things. Among other things, I will have new posts on advanced techniques of programming. These techniques are used by various programs of UNIX. Since these techniques will be implemented in various programmes 100% functional. Of course, all accompanied by source code.
bsdero | General | 23 Julio, 12:09am
Hi, all!! I've compiled binaries of two of the more useful RayTracing programs. First all, Megapov, this is just a patched Povray, with powerful features and capabilities.
Check the links Check the pics too.
Radiance, in the other hand is more than a RayTracer, it is a light path simulator.
Check the links: And the pics raytraced by Radiance.
Nice, huh? Ok, I have binaries of these programs, for SGI Irix 6.5, I've compiled Megapov using GCC. Radiance was compiled using MipsPro 7.4. You can download both from these links:
bsdero | General | 14 Agosto, 11:55am
Hi, all!! I've compiled Povray-3.6.1 and Megapov-1.2.1 for Solaris-Sparc. What is this stuff of "povray" and "megapov"? Well, both of them are Raytracers. Megapov is just a patched povray. It has some great patches, doesn't included in the original povray distribution. Here are the binaries. povray_3.6.1-solaris.tar.gz Both of them were compiled with the Blastwave development packages ( gcc, gmake, autoconf, automake and so on) Enjoy!!
bsdero | General | 3 Abril, 3:33pm
Here is a new Stellarium-0.8.1 binaries for Irix. These binaries were compiled with sgi freeware gcc3. The dependancies from nekoware: zlib, freetype, iconv, sdl, png, sdl_mixer, vorbis, media. I don't know how to make a tardist file, so I made a tar.gz file with stellarium binaries. Just put the content of the file on /opt/stellarium. You can get the binaries from here.
bsdero | General | 1 Noviembre, 4:01pm
En esta ocasion, presentando un sniffer de puertos, inspirado en Wireshark, antes conocido como ethereal. Funciona mas o menos bien, e incluye un filtro de puertos y protocolos. Incluye una interfaz grafica, implementada con Motif, uno de los toolkits mas usados en los sistemas tipo Unix. Como siempre, se ha probado en Linux, FreeBSD, NetBSD, OpenBSD, Irix y por supuesto, Solaris. Les dejo una screenshot de xtraf en linux para que lo chequen. El codigo fuente lo bajan de aca. en el mismo fuente se incluye la forma de compilarlo. ![]()
bsdero | General | 1 Noviembre, 3:45pm
Pues el dia de hoy, por fin estamos liberando la nueva version de TreeLight 1.0. Entre las caracteristicas, se incluye un nuevo y poderoso parser, que no solo es un lenguaje de descripcion de escena, sino tambien un lenguaje de programacion de scripts, con soporte de variables, ciclos while y for, condiciones if y switch, funciones, y otras monerias, con las que se pueden crear instancias de varios objetos, o bien pequeños videos!! Tambien me decidi a escribir los manuales del proyecto, en el que se explica no solo como se compila e instala sobre Linux, *BSD, Solaris, Irix o Windows, sino que ademas se tiene una completa reseña del lenguaje de descripcion de escenas!! Por supuesto en esta nueva version hay muchos nuevos detalles tecnicos, como mapeo de protuberancias, texturas con ruido de perlin, soporte para luminarias, sombras suavizadas, texturas de bitmap con interpolacion bilinear, mejoras en algoritmos de iluminacion general... puf! una y mil monerias mas! Pero bueno, vamos a una breve descripcion del proyecto: Que es TreeLight? Treelight es un software de generacion de imagenes en tres dimensiones mediante el algoritmo de rastreo de rayos (Ray Tracing) para generar las escenas. El algoritmo es lento, dados los intensos calculos matematicos necesarios para generar las escenas, que generalmente tienen una calidad casi fotografica. El software se alimenta de un archivo de texto, conteniendo la descripcion de escena. Como salida, puede generar archivos de formato de imagen tiff, png o jpeg, a cualquier resolucion deseada. Caracteristicas generales Por el momento TreeLight incluye las siguientes caracteristicas: Escrito en lenguaje C, lo que facilita la portabilidad. De momento compila y ejecuta en las siguientes plataformas y arquitecturas:
En teoria deberia, con pocas modificaciones, ejecutar en cualquier sistema operativo que soporte POSIX. Soporte para las siguientes primitivas geometricas:
Se incluyen otras caracteristicas como:
INSTALACION El software esta disenado para ser altamente portable. Hay algunas instrucciones que deben seguirse para instalarlo. DEPENDENCIAS Se requiere de los siguientes paquetes, librerias y programas:
Casi todos los sistemas con los que se trabajo incluyen estas dependencias. Y pues no podian faltar las imagenes generadas por TreeLight, que se incluyen en la distribucion: ![]() Por supuesto las fuentes tampoco podian faltar. Se incluyen varios paquetes para bajar, incluyendo un binario para Windows:
archivo tar.gz Correo Electronico: bsdero at NOSPAMgmail dot org bsdero at NOSPAMhotmail dot com bsdero at NOSPAMyahoo dot com Blog: http://bsdero.gulags.org.mx Gracias!! Y aqui nos veremos...
bsdero | General | 1 Noviembre, 2:08pm
Que tal!! Aqui les presento la segunda version de minis-httpd, un mini servidor de paginas web, basado en el protocolo HTTP-1.0 y escrito completamente en lenguaje C, que he programado para aprender un poco mas sobre este fantastico protocolo y tambien sobre tecnicas de sockets y multi-procesamiento. Por el momento el codigo fuente ya esta un poco mejor estructurado y mejor diseñado para portabilidad, aunque sigue estando algo feo. Sigo con la idea de meter muchos comentarios y opciones, y aunque aun esta muy preliminar a lo que me gustaria que fuera, poco a poco va tomando forma.... La idea es tambien ayudar a otras personas en aplicaciones de redes y sobre protocolos de capa de aplicacion. A diferencia de la primera version, ahora el multiprocesamiento se lleva a cabo mediante hilos POSIX (pthreads). Que sistemas operativos soporta? Hasta el momento, soporta perfectamente compilacion y ejecucion en:
Debe de compilar y ejecutar con pocos o ningun cambio en otros sistemas compatibles con POSIX. (AIX, Digital-UNIX, HP-UX, etc.) Que funcionalidades trae? Pues trae varias mejoras sobre la version anterior:
Algunas de estas funcionalidades son muy basicas y preliminares. Falta aun mucho trabajo por hacer, pero por lo pronto ya se tiene algo mas visible. Como se instala? Basta con descomprimir el fuente con el comando tar -zxvf minis-httpd-pthreads.tar.gz, para posteriormente entrar al directorio minis-httpd-pthreads/src, usar el tipico ./configure y el make. Pueden ver mas opciones de configuracion de Makefile tecleando ./configure --help Para correrlo y probarlo, solo teclear ./minis-httpd, abrir el navegador favorito direccionado hacia el puerto 90 (algo asi como http://miserver:90) y listo!!!!! Que se espera en las siguientes versiones? Tal vez acercarlo a futuro a algo mas cercano al protocolo HTTP-1.0 y posiblemente dar un mucho mejor soporte a las opciones existentes. Quizas se porte tambien a otros sistemas (necesito cuentas de otros unixes, please =) ). Por supuesto no garantizo nada, ya que esto lo hago en mis ratos libres, debido a que mi trabajo y mi agenda social no me permiten hacer mucho =) Y la licencia de distribucion? BSD por supuesto De donde lo bajo? De aca Como te contacto? Por email a bsdero at gmail dot com, o bien, visita mi blog: http://bsdero.gulags.org.mx
bsdero | General | 1 Noviembre, 1:56pm
Que tal!! Aqui les presento a minis-httpd, un mini servidor de paginas web, basado en el protocolo HTTP-1.0 y escrito completamente en lenguaje C, que he programado para aprender un poco mas sobre este fantastico protocolo y tambien sobre tecnicas de sockets y multi-procesamiento. Por el momento el codigo fuente, la verdad, esta un poco feo, aunque le he puesto muchos comentarios, y ya estoy pensando en la segunda version, que liberare muy pronto. La idea es tambien ayudar a otras personas en aplicaciones de redes y sobre protocolos de capa de aplicacion, asi que por lo pronto esta primera version utiliza la llamada al sistema fork() para atender muchos clientes, conforme se conecten. DONDE CORRE? Compila sin problemas en sistemas compatibles con POSIX, como Linux, BSD, Irix o Solaris. QUE FUNCIONA? Por el momento solo sirve el metodo GET del protocolo http, suficiente para cargar paginas. Envia headers de html, imagenes gif y jpeg, asi que puedes ver imagenes en tu navegador, y bajar practicamente cualquier archivo del server, aunque algunos navegadores reconocieron tipos como archivos de texto, o fuentes en C!!! Tambien reconoce el error 404 del protocolo HTTP, que corresponde a mensaje del servidor indicando una pagina u otro contenido no encontrado. INSTALACION Basta con descomprimir el fuente con el comando tar -zxvf minis-httpd.tar.gz, para posteriormente entrar al directorio minis-httpd, usar el tipico ./configure y el make. El make install no lo he incluido en el makefile, pero supongo que no sera problema para mas de uno escribirlo. Para correrlo y probarlo, solo teclear ./minis-httpd, abrir el navegador favorito direccionado hacia el puerto 5093 (algo asi como http://miserver:5093) y listo!!!!! COMO FUNCIONA? Se abre un socket de espera, y al conectarse un cliente, ocurre un fork() y el proceso hijo atiende al cliente mientras el padre sigue escuchando en el socket cliente. Se envia el archivo pedido o el error, en su caso, y se cierra la conexion, para posteriormente terminar el proceso hijo. Asi de facil!!! QUE SE ESPERA LAS SIGUIENTES VERSIONES Posiblemente se mejore el codigo fuente para hacerlo mas estructurado, aunque la idea fue hacerlo todo medio revuelto con el objetivo de aprendizaje. La siguiente version, usara la llamada al sistema SELECT, y de ahi partiremos hacia un servidor multi-threading que aproveche las capacidades SMP de algunos equipos. (tengo aparte de mi Sparc 20, una SunFire v880 con la cual probar!!) Posiblemente usar kqueues y tambien acercarlo a futuro a algo mas cercano al protocolo HTTP-1.0 y posiblemente versiones posteriores. COMO TE CONTACTO Por email a bsdero at gmail dot com, o bien, visita mi blog: http://bsdero.gulags.org Y DE DONDE LO BAJO? De aca
bsdero | General | 1 Noviembre, 1:48pm
Que tal! Pues aquellos que me conocen desde hace varios años, saben que yo me inicie con esto de sistemas programando videojuegos. Hice varios hace algunos años en Turbo Pascal para MS DOS. Pero nada serio, sino variantes del PacMan, navecitas y demas cosas, todo ello usando el famoso modo 13h de la VGA, que es de 320x200x256 colores, y algunos usando el particularmente famoso modo X, que era el mismo modo pero usando ademas la memoria de la VGA. Que decir del modo Y, el modo Z y el desconocido modo Q, que permitia una resolucion de 360x240. Con esto y algo de ingenio, se programaban estupendas demos, que son pequeños programas que hacen algun efecto visual interesante. Hace algunos años, despues de un corto entrenamiento con FreeBSD, en el cual yo era relativamente novato, y despues de algun tiempo de utilizar Linux, decidi reescribir algunas versiones de mis viejas demos escritas en turbo pascal + assembly x86, pero ahora totalmente en C, usando las herramientas GNU (gcc, gdb y gmake) bajo FreeBSD. Por supuesto, esta pequeñas demos no se comparan en absoluto con las que hice en Turbo Pascal y ensamblador 386, por ahi del 92 o 93, que desafortunadamente se perdieron en el limbo junto con mi disco duro de 20 gbytes, pero funcionan bien y son un estupendo legado para las nuevas generaciones de programadores de demos y videojuegos para PC.... (era increible lo que se podia hacer con una 486 de 50 mhz!!!) Es asi, que hoy les presento el codigo fuente listo para compilar y ejecutar de algo que hice hace pocos años, pero que sin duda me recuerda el cariño y la pasion con que programe mis otras demos que se perdieron en el limbo para siempre... ='( El codigo fuente, lo pueden bajar de aca.
bsdero | General | 1 Noviembre, 12:42pm
Utilizando la utileria netcat, escribi otro rastreador de puertos como minis-scan, pero escrito completamente en shell, concretamente el bash. Aunque es algo lento, por estar completamente escrito para shell, funciona perfectamente. Lo he bautizado como minis-shell-scan y lo pueden bajar de aca Ambos rastreadores funcionan completamente en Linux, *BSD, Irix y Solaris. Dependencias? solamente necesita netcat.
bsdero | General | 1 Noviembre, 12:18pm
Pues asi es, los ultimos dias decidi terminar el rastreador de puertos que habia empezado hace tiempo, y al fin lo he terminado. No es nada grande ni profesional como nmap, solo un rastreador de puertos de demostracion que ademas escribi para aprender programacion de sockets y protocolos. Por supuesto, lo escribi en mi lenguaje favorito: C Funciona en Solaris, FreeBSD, OpenBSD, NetBSD, Irix y Linux. No deberia ser problema portarlo a otro sistema tipo UniX. Lo pueden bajar de aqui Para compilar, teclear tar -zxvf minisscan.tar.gz cd minisscan ./configure make
bsdero | General | 1 Noviembre, 11:50am
|
|||||||||||||
| Powered by Jaws | ||||||||||||||