baje vario programas, pero este en particular es el escritorio liviano OpenBox. Estuve mirando por arriba el codigo y encontre una funcion main_loop. Pero no me cierra como se inicia la ejecución cuando el sistema comienza a correr este programa. Por lo que se, el sistema reconoce el tipo de ejecutable y salta al punto de inicio de ejecucion luego de realizar la carga en memoria.
Otro por ejemplo que baje fue el KMess, pero alli el codigo es un poco mas ordenado, con el uso de las librerias Qt que utilizan un tipo de bucle que es lanzado desde la función main del mismo.
Lei algunos tutos y libros sobre C/C++ pero no tratan el tema o no supe buscar, por eso me decidí a preguntar en el foro.
Y el tema de las librerias tampoco me quedo muy claro como es que funcionan.
Ya veo, ya con este mensaje veo que usás GNU/Linux y hablamos de lo promedio, empezar a aprender sobre el código de un software ... lo *normal* es tener un main (aunque sea con no más de 5 líneas llamando a un bucle en otro lado que controle la ejecución) y normalmente hay que buscar algún archivo de nombre main.c,main.cc,main.cxx,main.cpp,etc o con el nombre del software.
También conocer las diversas formas de compilar software te puede servir para entender cómo se compila un software (y poder ver qué partes forman qué al leer la descripción de cómo se compila), sistemas como autotools, cmake, etc ...
En el caso de OpenBox, me bajé el código del repositorio de git para mirarlo y openbox está formado por varios componentes, y en el caso de openbox, el main() está en
openbox/openbox.c (recordá la regla de buscar archivos de nombre main o con el nombre del programa en cuestión)
De ahí tenés un punto de partida, aunque insisto, lo mejor es ver cómo se compila, por que en software que no es monolítico (léase : que no está en componentes, sino que es código que se compila ys e enlaza todo "de una") y está formado por varios componentes, podés establecer cómo se relacionan, qué depende de qué, etc ... para después zambullirte en el código con una idea general del software en cuestión.
No sé si era eso lo que preguntaste, si vá por el lado de más bajo nivel como config del compilador, rt y funciones/hooks que se usan en los diferentes sistemas al iniciar un software/cargar una librería, entonces la respuesta está acá :
http://disassembling.org.ua/6555final/lib0018.htmlhttp://gd.tuwien.ac.at/pub/linuxgazette/issue84/hawk.htmlY el tema de las librerias tampoco me quedo muy claro como es que funcionan.
¿Qué es lo que no entendés?
Saludos.