This is a large manual and of special interest are Parts I and II dealing with application and system programming, respectively. Using such a set of resources rather than a focused textbook is, of course, typically how a real world software engineer operates. It includes a complete set of development and detective tools. The source code is available. It is an evolving multitasking, multiuser environment making use of the advanced features of the underlying chip architecture.
Various libraries are in the standard locations.
It is non-commercial, so students can get more seriously involved with maintenance and development later in the curriculum. The Debian users and developers are extremely responsive and helpful. Other distributions such as Red Hat or Craftworks meet most of these requirements quite well also, except for item 4, which is important for our students, but perhaps not to others. We have found it convenient and productive to write our assembly language in-line within C source code. Labels can be interjected in the source code at appropriate places to provide breakpoints for the debugger.