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

rrobase-3 en yahoo.com.ar rrobase-3 en yahoo.com.ar
Sab Ago 30 21:52:26 CEST 2008


Hola xonly

Más o menos entiendo tu pensamiento. Hace varios años la cosa era hacer los programas lo más chicos posibles para ahorrar recursos y también el tener que hacerlos lo más eficiente posible. Ahora cambió todo, lo que importa es el tiempo que toma hacer las cosas y la facilidad con que se pueden modificar, encontrar errores, que otras personas entiendan lo que uno hizo, portabilidad y cosas así.

Fijate el tremendo empuje que hagarraron los lenguajes interpretados (los scripts), ellos no buscan en primer medida el rendimiento sino facilidad, portabilidad, y no sé que más.

También ten en cuenta que Windows es un sistema multitarea y no puede perder el control nunca por un programa que quiera hacer la suya, debe atender a todos, con diferentes prioridades, pero a todos en fin. Linux es igual, tiene su API con la que hay que manejarse, no podés hacer lo que quieras.

Donde sí podés es en DOS, ahí la máquina es toda tuya. El problema es que tenés que controlar todo vos (querés imprimir es tu problema, querés que trabajen dos programas a la vez también es tu problema, usar un puerto de salida es otro problema, te la tenés que arreglar para todo). Por el contrario Windows y Linux te dan muchas cosas servidas. Tu programa en DOS seguro que irá más rápido, pero te va a costar mucho más laburo y tendrás que estar actualizándolo de por vida para que siga siendo compatible con diferentes PCs que vayan saliendo (bueno, eso depende del tipo de programa).


No me queda claro el para qué te intereza programar. Si es un hobby y lo que te gusta es el asembler y estar haciendo programas eficientes y metiéndote en el hardware y cosas así, por qué no aprendes electrónica digital, microcontroladores y todo eso. En estos tiempos la electrónica es medio un rompecabezas, juntas las partes y luego programas el micro. Estos microcontroladores son computadoras en miniatura. Si te interesa el tema, te paso unos tutoriales para que veas de qué se trata.


saludos



--- El sáb 30-ago-08, xonly <xonly2002 en yahoo.es> escribió:
De: xonly <xonly2002 en yahoo.es>
Asunto: Re: [C con Clase] ¿Alguien sabe destripar librerías...?
Para: cconclase en listas.conclase.net
Fecha: sábado, 30 de agosto de 2008, 9:49 am

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....
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ



      Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080830/c15c5f65/attachment.html>


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