Disclaimer: Uso un procesador de 64 bits y estos apuntes los hago con notas acerca de las modificaciones y errores que cometí al replicar los ejercicios del libro.
Estas notas son acerca de cómo hice las cosas, donde busqué y como lo solucioné Edit: (punto de vista completamente a título personal): Si quieres realmente aprender, deberías hacerlo tú mismo, si copias y pegas para pasar una asignatura, serás un profesionista que no sabe lo que está haciendo, ni sabe para qué se tituló.
Capitulo 1
Abstract (o el choro instroductorio con letras tipo star wars...)
Hackers 1950@MIT usaron equipo telefónico donado para armar un sistema de control de vías para mutiples operadores.
Despues los llamados hackers pasaron de los trenes a programar con tarjetas perforadas, y ellos estaban obsesionados con hacer los mejores programas.
Tenían una obsesion por la elegancia y la eficiencia, entre menos perforaciones hicieran, el programa era mejor, eso demostraba una maestria artística sobre el ordenador. Ellos transformaron una tarea de ingeniería en una forma de arte.
Creian que la informacion debe ser libre, y que cualquier cosa que se oponga a este principio debe ser eludido, esto incluye a figuras o instituciones de seguridad, la burocracia de las clases escolares y a la discriminación. Estas personas desafiaron las metas convencionales y persiguieron el conocimiento en sí mismo.
El deseo de disectar y entender como funciona un aparato no era su proposito, sino el medio para comprender como funcionaban las cosas. Esto se llamo posteriormente etica hacker, apreciar la lógica como una forma de arte y promover el flujo libre de la información simplemente por la meta de comprender mejor el mundo.
capitulo 2 programming, mas choro de la elegancia del coding y la otra cara al encontrar hacks obvios cuando se revisa el codigo con lupa.
Habla acerca del ensamblador y que este lenguaje es dependiente de la arquitectura, habla tambien acerca de los compiladores y la traduccion a ensamblador y a lenguaje maquina. Habla tambien acerca del pseudo código y cual es la convencion que se utilizará en el libro. tambien habla de estructuras de control, y repeticion while until for, explica qué es una variable, los operadores aritméticos, de comparación, y los operadores || y &&
Tambien explica que es una función, despues del choro, lo que cabe resaltar es que indica que las funciones en C tienen que ser declaradas al inicio o bien, declaradas como prototipos de funciones, las cuales no necesitan tener cuerpo, sino que este puede ser declarado más adelante sin ningún problema.
Pagina 21, viene algo interesante, despues de compilar un programa básico, enseña el comando objdump el cual se usa para examinar los binarios ya compilados.
• la primera columna son las direcciones de memoria en las cuales se encuentran las instrucciones en lenguaje maquina del método main.
• la segunda columna son las instrucciones (en lenguaje máquina, representados en hexadecimal) para el procesador
• la tercera columna con push, mov, etc son las mismas instrucciones, peero en ensamblador para que sea más legible
• la cuarta columna contiene los operandos que utilizará la instruccion de la columna anterior:

En mi caso, los datos que genera el objdump son un pelín diferentes a los de la figura que viene en el libro. Esta diferencia se debe a que mi procesador es de 64 bits, lo cual, cambia las instrucciones de lenguaje máquina que ejecutará mi procesador, esto es porque cada arquitectura tiene su conjunto particular de instrucciones.
Existen dos convenciones para las instrucciones del assembler, la convencion de AT&T, es la que contiene & y % en los operandos, y la convencion de intel, la cual muestra los operandos en orden inverso y con una sintaxis diferente:
Encuentra las 10(?) diferencias

El libro tiene un disclaimer, diciendo que es mas fácil la sintaxis de intel y es la que usarán en el libro.
Fin del primer Post
Siguiente capítulo: llorando sangre para replicar la depuración de exhibición del libro.
Comentarios
Publicar un comentario