[C con Clase] ¿Alguien sabe destripar librerías...?

xonly xonly2002 en yahoo.es
Sab Ago 30 14:49:24 CEST 2008


P> La función _write no te la mete el compilador, sino que está en msvcrt. 
P> No te vayas a las librerías del sistema, que te pierdes. No es culpa del 
P> compilador. Es como llegar a ntdll y quejarse de que el compilador te 
P> introduce ese código. Todos los programas en windows acaban llamando a 
P> ntdll, que es quien realiza las llamadas al sistema. Suelen hacer 
P> msvcrt->kernel32->ntdll->llamada al sistema. Y como sé que se te 
P> ocurrirá preguntar si no puedes realizar directamente la llamada al 
P> sistema: no, no puedes. En teoría sí, pero en cuanto salga un Service 
P> Pack para Windows, cambiará el id de cada llamada (es generado por un 
P> script) y tu programa dejará de funcionar.

valiiente cabrones, osea que tu te haces la libreria y como no les gusta te la cambian por otra cosa, será cabrones, me gustaría saber si en linux se puede controlar y pasar de todo esto, me urge saber esto, no quiero meterme en follones sin sentido, si esto es así, creo que me voy a ir comprando un disco duro para linux pero ya y dejar de que me toquen las pelotas de tal maña manera...

P> En cambio, si programas para stdio, tu programa puede funcionar 
P> perfectamente -recompilando- tanto en linux como en solaris, como en 
P> windows... Y el mismo programa para windows desde windows 95 hasta Vista.

no me interesa "producir" absoulutamente nada sino es para poder hacer lo que yo quiera, y no lo que quiera el puto windows.

P> A veces se generaliza un poco. Por ejemplo, seguro que printf(...) llama 
P> a fprintf(stdout, ...) Si ejecutase directamente el código de fprintf 
P> sería un poco más rápido, y evitaría un nivel de indirección. Pero 
P> estaría duplicando código, lo que haría la librería más larga y 
P> produciría problemas a la hora de actualizar la función. Al final no 
P> vale la pena.
P> Otro asunto a tener en cuenta es que si haces tus propias librerías 
P> estándar es posible que ralentices tu programa, puesto que lo haces más 
P> grande y el código de la librería, que seguramente ya estaba en memoria 
P> por haberla cargado otros programas, tiene que cargarse (más tiempo, más 
P> memoria que ocupa).

en todo esto seguro que tienes una barbaridad de razón, pues el tema de prioridades y de meter código en caché pues tienes toda la puñetera razón del mundo en que mi código "lo harían lento" por culpa de otras historias, es como se supone que "según un rumor" que me encontré cuando el tema del juego Doom o el Doom 2 que por lo visto funcionaba mucho mejor en un intel que  en un amd porque por lo visto Jonh Carmak ( o algo así creo que se escribe, la verdad es que no soy muy fanático de los juegos) había hecho su cógigo previendo los saltos que hacía el micro de intel frente a los que fabricaba los de amd, a pesar de que supuestamente para el tema multimedia en otras historias de comoparaciones iba éste mejor que el de intel (perdonarme la barbaridad que acabo de decir si es que tengo equivocado los conceptos, pero es lo que en su día entendí....). El caso es que pretendo hacerme mis cosas yo solito, si ya resulta que tuviese 9 vidas como los gatos, pues entonces seguiría cambiando cosas, escribiendo un nuevo sistema operativo con otras politicas de reemplazo en memoria, en fin, es que tengo muchas ideas en la cabeza, pero todas teoricas, de práctica no tengo ni la  más puñetera zorra idea, y se supone que el C es el lenguaje más potente para poder hacer todo lo que pretendo, pero he de tener los conceptos claritos desde el principio, no me vale eso de que a los 10 años me de cuenta de que llevo 10 años perdiendo el tiempo. Por eso necesito si en Linux u otro sistema se puede hacer "guarrerías de todo tipo" en el código y volver totalmente loco al ordenata, pasando en todo lo posible del sistema operativo, y hacer lo que a uno le de la gana con los chips que se compra uno en las tiendas....

P> Finalmente, si quieres ver una implementación de una librería estándar, 
P> puedes mirar libc, que es la usada en linux 
P> http://www.gnu.org/software/libc/ Aunque no te lo aconsejo. Consigue 
P> funcionar en multitud de sistemas, pero no es precisamente sencilla de 
P> entender.

si me comentas que puedo hacer todo todo y todo con esa librería y que puedo ver hasta como se mueven los bits de un lado para otro, no me importa perder la vida en el intento de intentar entender, pero lo dicho anteriormente, no me interesa si luego no puedo hacer que el micro me sume cuando quiero, y si acaso me interesa algún paso intermedio de la suma, puede "colar cosas" o "sacar cosas" si es que me interesase... (otra fase ya de esto podría ser la de montarme mi opropio "intel" pero en fin ya a parte de la falta de tiempo, necesitaría unos cuantos milloncejos de euros), en fin, con soñar nunca se pierde nada.

muchas gracias por los aportes, aunque me interesa sobre manera el si el siguiente paso en lugar de seguir los los "f11" del debuger del visual, puedo irme a linux y por ejemplo, cojerme todo el código y ejecutar por ejemplo ese printf sin utilizar ni una sola librería, aunque tenga que copìar en principio todas las librerías tal cual....


Más información sobre la lista de distribución Cconclase