For more advanced shell programming, Appendix A: Administrative Shell Programming of the book Essential System Administration, 3rd Edition by Æleen Frisch, O'Reilly and Associates, 2002 has a nice tutorial. This tutorial focuses more on advanced topics, such as piping, loops, and subexepressions, which is probably more sophisticated than you will need in this course (but of practical benefit).
A more comprehensive handbook is Linux in a Nutshell, 6th Edition, Ellen Siever et al., O'Reilly and Associates, 2009 (several copies are available at the UNC libraries). This book is really not intended to be read cover-to-cover, though; it is more like an encyclopedia of Linux shell commands.
For brushing up on basic OS concepts:
The classic book on C:
(Thanks to Eddie Kohler and MIT's 6.828 course staff for the links and commentary below.)
A clear description of x86 assembly language and assembly
language in general, including some stuff you ideally know already.
You might prefer to read this on line, rather than print it out; it's a
quick read. Warning: This book uses "Intel" assembly syntax, in
which instructions are written "instr dst, src
"; we will use
"AT&T" assembly syntax, in which they are written "instr src,
dst
". You don't need to read the following sections, which will
not be needed for class: 1.3.6-1.3.7, 1.4, 1.5, 5, 6, and 7.2.
A short and sweet description of how to use inline assembly instructions with GCC. Includes a description of the "AT&T" assembly syntax used by GCC.
Much shorter than the current Intel Architecture manuals,
but describes most of the processor features we'll use. The original was
a flat text file that used the PC Line Drawing characters for
diagrams; this, and many other versions, are available on the
net. JOS uses the following 486-and-later features, which you
can read about in the IA-32 manuals: The
%cr0
register's WP
bit (Volume 3).
The latest and longest documents from Intel.
Covers both the "classic" 32-bit x86 architecture and the new 64-bit extensions supported by the latest AMD and Intel processors.
Our kernel runs ELF executables; this is the definitive standard for how these executables are constructed.
Although there are good summaries around the web, the relevant chapters of Volume 3c Part 3 of the Intel manual are the most comprehensive explanation of how to program this hardware.
Last updated: 2025-04-23 15:58:27 -0400 [validate xhtml]