More references coming...
Papers
- The UNIX Time-Sharing System. Dennis M. Ritchie and Ken Thompson. In the Communications of the ACM, Vol 17, Issue 7, July 1974. The first paper describing UNIX. Still a worthwhile read. Besides, it contains descriptions of many of the standard library calls and shell functionality you will need for the first homework.
- The Design and Implementation of a Log-Structured File System. Mendel Rosenblum and John K. Ousterhout. In the ACM Transactions on Computer Systems, Vol 10, 1992.
- Application Performance and Flexibility on Exokernel Systems. M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Héctor M. Briceño, Russell Hunt, David Mazières, Thomas Pinckney, Robert Grimm, John Jannotti, and Kenneth MacKenzie. In the proceedings of the 16th Symposium on Operating Systems Principles, Saint-Malo, France, October 5-8, 1997.
- Singularity: Rethinking the Software Stack. Galen C. Hunt and James R. Larus. In ACM SIGOPS Operating Systems Review, 41(2), pages 37--49, 2007.
Programming References
- The C Programming Language, Second Edition. Brian W. Kerninghan and Dennis M. Ritchie. ISBN 978-0131103627. Prentice-Hall Inc, April 1988. The C reference. Still highly relevant. An oldie but goldie.
- The UNIX Programming Environment. Brian W. Kernighan and Rob Pike. ISBN 978-0139376818. Prentice-Hall, Nov 1983. Written in a very clean and concise style, this book contains good descriptions of how to use various shell facilities, shell programming, common UNIX tools, and basics of UNIX C programming.
- Advanced Programming in the UNIX Environment, Second Edition. W. Richard Stevens and Stephen A. Rago. ISBN 978-0321525949. Addison-Wesley, June 2005. Some of you asked about what book to use to get more familiar with UNIX programming in C. This book has fairly good coverage of how to use system calls and facilities available through the standard library.
Linux References
- The Linux Cross Reference (LXR) for the standard 2.6.29 kernel (The goldfish emulator kernel is based on this). Very useful for quickly finding the right place in the kernel code where a function is defined or used.
- The Linux Coding Style document. You are strongly encouraged to read and follow it.
- Understanding the Linux Kernel, Third Edition. Daniel P. Bovet and Marco Cesati. ISBN 978-0596005658. O'Reilly, 2005. A slightly out of date but in-depth reference on the Linux kernel. Contains more detailed code overviews than the LKD textbook.
- The Linux man-pages project. Section 2 documents all current Linux system calls.
Android References
- Custom LXR cross-reference for the Android goldfish 2.6.29 kernel used in the emulator. Very useful for quickly finding the right place in the kernel code where a function is defined or used.
- Instructions for setting up your Android emulator environment for the class.
- Downloading the Android
SDK. To run the emulator, you do not need the entire SDK. Just
download the "SDK Tools Only" distribution for your platform and
then install the appropriate Android platform version and device
image using the included
android
tool. - How to build an Android kernel. From the Android Open Source Project (AOSP).
- Android Emulator command line reference.