Preface. Using effectively the operating system is very important for anyone workingwith computers. It can be thedifference between performing most tasks by hand, and asking the computer toperform them.Traditionally, Operating Systems courses used UNIX to do this. However,today there is no such thing as UNIX. Linux is a huge system, full ofinconsistencies, with programs that do multiple tasks and do not performthem well. Linux manual pages just cannot be read.These lecture notes use Plan 9 from Bell Labs to teach a first (practical!)course on operating systems. The system is easy to use for programmers, andis an excellent example of high-quality system design and softwaredevelopment. Studying its code reveals how simplicity can be more effectivethan contortions made by other sys- tems.The first Operating Systems course at Rey Juan Carlos University is focusedon practice. Because in theory, theory is like practice, but in practice itis not. What is important is for you to use the system, and to learn tosolve problems. Theory will come later to fill the gaps and try to give moreinsight about what a system does and how can it be used.The whole text assumes that you have been already exposed to computer, andused at least a computer run- ning Windows. This is so common that it makesno sense to drop this assumption. Furthermore, we assume that you alreadyknow how to write programs. This is indeed the case for the lecture thistext is written for. One last assumption is that you attended a basiccomputer architecture course, and you know at least basic concepts. There isa quick review appendix in case you need to refresh your memory.Throughout the text, the boldface font is used when a new concept isintroduced. This will help you to make quick reviews and to double checkthat you know the concepts. All important concepts are listed in the index,at the end of the book. The constant width teletype font is used to refer tomachine data, including functions, programs, and symbol names. In manycases, text in constant width font reproduces a session with the system(e.g., typing some commands and showing their output). The text written bythe user (and not by the computer) is slightly slanted, but still inconstant width. Note the difference with respect to the font used for textwritten by a program, which is not slanted. Italics are used to emphasizethings and to refer to the system manual, like in intro(1). Regardingnumeric values, we use the C notation to represent hexadecimal and octalnumeric bases.Unlike most other textbooks for operating systems courses, bibliographicreferences are kept to the bare mini- mum. We cite a particular text when wethink that it may be worth reading to continue learning about something saidin this book. So, do not quickly dismiss references. We encourage you toread them, to learn more. There are not so many ones. If you want to get athorough set of references for something discussed in the test, we suggestlooking at a more classical operating systems textbook, like for example[1].It is important to note that this book is not a reference for using anoperating system nor a reference for Plan 9 from Bell Labs. The user’smanual that comes installed within the system is the proper reference touse. These lecture notes just shows you how things work, by using them. Onceyou have gone through the course, you are expected to search and use theuser’s manual as a reference.One final note of caution. This text is to be read with a computer side byside. The only way to learn to use a system is by actually using it. Readingthis without doing so is meaningless.