Bibliografía
A continuación se lista la bibliografía principal y la complementaria. Cada ítem tiene una abreviatura que usaremos en nuestras referencias, por ejemplo: [K&R] §2.3.
Bibliografía principal
Computer Systems: A Programmer’s Perspective (3.ª ed.) , Pearson [BRY15]
Randal E. Bryant, David R. O’Hallaron
Observaciones sobre la edición a usar
Se debe usar la 3.ª edición, de 2015. En la edición anterior (de 2011) la arquitectura de referencia es x86 (32-bits), mientras que en la materia utilizamos x86_64 (64-bits).
Existen dos versiones publicadas en 2015 una primera edición para Estados Unidos, y una segunda para el resto del mundo, denominada “Global”. En la materia se usa esta edición “Global”, con la portada que aquí se muestra, y cuyos ISBN son:
- 978-1-292-10176-7 (papel)
- 978-1-488-67207-1 (PDF, 2016)
Computer Organization and Design RISC-V Edition (1.ª ed.) , Morgan Kaufmann [PAT17]
David Patterson, John Hennessy
Observaciones sobre la edición a usar
Hay varias ediciones del libro Computer Organization and Design para diferentes arquitecturas. Si bien todas aportan los contenidos teóricos, en la práctica es conveniente utilizar la versión RISC-V, que es además de la que tomamos partes.
ISBN:
- 978-0-128-12275-4 (papel)
- 978-0-128-12276-1 (ebook)
Sobre programación en C
-
Brian Kernighan, Dennis Ritchie, The C Programming Language (2.ª ed.), Prentice Hall (1988). [K&R]
-
Richard Reese, Understanding and Using C Pointers (2.ª ed.), O’Reilly Media (2013). [REES]
Sobre programación en Rust
-
Steve Klabnik, Carol Nichols, The Rust Programming Language (2018), No Starch Press (2018). [RUST18]
Sobre llamadas al sistema
-
Michael Kerrisk, The Linux Programming Interface: A Linux and UNIX System Programming Handbook (1.ª ed.), No Starch Press (2010). [KERR]
-
Robert Love, Linux System Programming (2.ª ed.), O’Reilly Media (2013). [LOV]
Material de referencia
-
The Linux man-pages project: kernel.org/doc/man-pages.
-
Instalable en Debian/Ubuntu:
1
$ sudo apt install manpages-dev manpages-posix-dev
-
Abreviatura: open(2) o malloc(3) (nombre de la página y sección).
-
-
Intel 64 and IA-32 Architectures Software Developer Manuals, Intel Corporation (marzo de 2017), en línea. [IA32]
En particular: -
ISO/IEC. Programming Languages – C. ISO/IEC 9899:1999(E). ANSI [STDC99]
-
IEEE 754-2008 - IEEE Standard for Floating-Point Arithmetic [IEEE754]