OSTEP / Readings

[OSTEP](http://pages.cs.wisc.edu/~remzi/OSTEP/)

其中一些觉得会比较有意思(都是值得阅读)的引用.

[B86] “The Design of the UNIX Operating System” M.J. Bach Prentice-Hall, 1986 One of the classic old books on how a real UNIX operating system is built; a definite must-read for kernel hackers.

[LM+89] “The Design and Implementation of the 4.3BSD UNIX Operating System” S.J. Leffler, M.K. McKusick, M.J. Karels, J.S. Quarterman Addison-Wesley, 1989 Another OS classic, written by four of the main people behind BSD. The later versions of this book, while more up to date, don’t quite match the beauty of this one.

[O90] “Why Aren’t Operating Systems Getting Faster as Fast as Hardware?” J. Ousterhout USENIX Summer Conference, June 1990 A classic paper on the nature of operating system performance.

[SR05] “Advanced Programming in the UNIX Environment” W. Richard Stevens and Stephen A. Rago Addison-Wesley, 2005 All nuances and subtleties of using UNIX APIs are found herein. Buy this book! Read it! And most importantly, live it.

[CK+08] “The xv6 Operating System” Russ Cox, Frans Kaashoek, Robert Morris, Nickolai Zeldovich From: http://pdos.csail.mit.edu/6.828/2008/index.html The coolest real and little OS in the world. Download and play with it to learn more about the details of how operating systems actually work. xv6 was developed as a port of the original UNIX version 6 and represents a beautiful, clean, and simple way to understand a modern operating system.

[HP90] “Computer Architecture a Quantitative Approach” (1st ed.) David A. Patterson and John L. Hennessy Morgan-Kaufman, 1990 A book that encouraged each of us at our undergraduate institutions to pursue graduate studies; we later both had the pleasure of working with Patterson, who greatly shaped the foundations of our research careers.

[F96] “Six Easy Pieces: Essentials Of Physics Explained By Its Most Brilliant Teacher” Richard P. Feynman Basic Books, 1996 This book reprints the six easiest chapters of Feynman’s Lectures on Physics, from 1963. If you like Physics, it is a fantastic read

[B+10] “An Analysis of Linux Scalability to Many Cores Abstract” Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey Pesterev, M. Frans Kaashoek, Robert Morris, Nickolai Zeldovich OSDI ’10, Vancouver, Canada, October 2010 A terrific modern paper on the difficulties of scaling Linux to many cores.

[BC05] “Understanding the Linux Kernel (Third Edition)” Daniel P. Bovet and Marco Cesati O’Reilly Media, November 2005 One of the many books you can find on Linux. They go out of date quickly, but many of the basics remain and are worth reading about.

[C03] “The Innovator’s Dilemma” Clayton M. Christenson Harper Paperbacks, January 2003 A fantastic book about the disk-drive industry and how new innovations disrupt existing ones. A good read for business majors and computer scientists alike. Provides insight on how large and successful companies completely fail.

[D+13] “Everything You Always Wanted to Know about Synchronization but Were Afraid to Ask” Tudor David, Rachid Guerraoui, Vasileios Trigonakis SOSP ’13, Nemacolin Woodlands Resort, Pennsylvania, November 2013 An excellent recent paper comparing many different ways to build locks using hardware primitives. A great read to see how many ideas over the years work on modern hardware

[MS98] “Nonblocking Algorithms and Preemption-safe Locking on Multiprogrammed Sharedmemory Multiprocessors” M. Michael and M. Scott Journal of Parallel and Distributed Computing, Vol. 51, No. 1, 1998 Professor Scott and his students have been at the forefront of concurrent algorithms and data structures for many years; check out his web page, numerous papers, or books to find out more.

[PDZ99] “Flash: An Efficient and Portable Web Server” Vivek S. Pai, Peter Druschel, Willy Zwaenepoel USENIX ’99, Monterey, CA, June 1999 A pioneering paper on how to structure web servers in the then-burgeoning Internet era. Read it to understand the basics as well as to see the authors’ ideas on how to build hybrids when support for asynchronous I/O is lacking.

[vB+03] “Capriccio: Scalable Threads for Internet Services” Rob von Behren, Jeremy Condit, Feng Zhou, George C. Necula, Eric Brewer SOSP ’03, Lake George, New York, October 2003 A paper about how to make threads work at extreme scale; a counter to all the event-based work ongoing at the time.

[WCB01] “SEDA: An Architecture for Well-Conditioned, Scalable Internet Services” Matt Welsh, David Culler, and Eric Brewer SOSP ’01, Banff, Canada, October 2001 A nice twist on event-based serving that combines threads, queues, and event-based hanlding into one streamlined whole. Some of these ideas have found their way into the infrastructures of companies such as Google, Amazon, and elsewhere.

[B07] “ZFS: The Last Word in File Systems” Jeff Bonwick and Bill Moore Available: http://opensolaris.org/os/community/zfs/docs/zfs last.pdf One of the most recent important file systems, full of features and awesomeness. We should have a chapter on it, and perhaps soon will.

[S+96] “Scalability in the XFS File System” Adan Sweeney, Doug Doucette, Wei Hu, Curtis Anderson, Mike Nishimoto, Geoff Peck USENIX ’96, January 1996, San Diego, CA The first attempt to make scalability of operations, including things like having millions of files in a directory, a central focus. A great example of pushing an idea to the extreme. The key idea behind this file system: everything is a tree. We should have a chapter on this file system too

[P98] “Hardware Technology Trends and Database Opportunities” David A. Patterson Keynote Lecture at the ACM SIGMOD Conference (SIGMOD ’98) June, 1998 A great and simple overview of disk technology trends and how they change over time.

[M07] “The Btrfs Filesystem” Chris Mason September 2007 Available: oss.oracle.com/projects/btrfs/dist/documentation/btrfs-ukuug.pdf A recent copy-on-write Linux file system, slowly gaining in importance and usage.