various updates
[pintos-anon] / sigcse2009 / introduction.tex
index cd76579f1ac5e7c7949cc2e1bd0073353590236e..a36b89b42ea72b9a873488f11b9321ac7dd6d881 100644 (file)
@@ -3,7 +3,7 @@
 
 Despite the wide use of higher-level languages and environments, gaining a robust
 understanding of operating systems (OS) fundamentals and training in the current design and
-implementation practices of OS remains a cornerstone goal of 
+implementation practices of OS remains a cornerstone of 
 undergraduate computer science education.
 
 % abstract/concrete
@@ -21,23 +21,22 @@ from the point of view of the OS designer, whereas the external perspective
 assumes the role of a user or programmer using an OS's 
 facilities~\cite{Bryant2002Computer}.
 
+% we don't really say about the benefits of the 'internal' approach here.
 % is this too controversial for this audience?
-The approach advocated in this paper adopts a concrete approach and the internal
-perspective.  Students who have been in the role of an
-OS designer bring a better understanding of how to use one; and students
-who have both studied, implemented, and evaluated core OS techniques obtain 
+The approach advocated in this paper is concrete and adopts the internal perspective.  
+Students who have studied, implemented, and evaluated core OS techniques attain 
 a deeper understanding than those who have merely studied them.
 Finally, adopting a concrete approach brings significant secondary
 benefits, including training in modern software development techniques
 and tools.  The C language remains the implementation language of choice
 for operating system kernels and for many embedded systems.
-Practice and debugging skills in C, particularly using modern tools,
+Practice and debugging experience in C, particularly using modern tools,
 not only increases students' ``market value,''~\cite{1292450} but provides students with
 the insight that a low-level programming and runtime model is not incompatible
 with high-level tools.
 
 Designing course material for the internal and concrete 
-approach is challenging for several reasons.  While realistic, 
+approach is challenging.  While realistic, 
 assignments should be relatively simple and doable within a realistic time frame.  
 Whereas assignments should use current hardware architectures, 
 they must not impart too much transient knowledge.
@@ -45,8 +44,8 @@ Assignments should include and emphasize the use of modern software
 engineering practices and tools, such as dynamic program analysis.
 
 This paper introduces Pintos, an instructional operating system kernel that 
-has been in use at several institutions for about 4 years.  Pintos provides 
-a bootable kernel for standard personal computers.  We provide several
+has been in use at multiple institutions for about 4 years.  Pintos provides 
+a bootable kernel for standard x86-based personal computers.  We provide four
 structured assignments in which students implement a basic priority
 scheduler, a multi-level feedback queue scheduler, a process-based 
 multi-programming system, page-based virtual memory
@@ -59,7 +58,7 @@ the parts that are created by students, and their relationship.
 Although Pintos follows in the tradition of instructional operating systems 
 such as Nachos~\cite{Christopher1993Nachos}, OS/161~\cite{Holland2002New}, and
 GeekOS~\cite{Hovemeyer2004Running}, 
-PortOS~\cite{Atkin2002PortOS}),
+PortOS~\cite{Atkin2002PortOS},
 BLITZ~\cite{PorterOverview},
 JOS~\cite{1088822}, or Yalnix~\cite{1088822},
 we believe that it is unique in two
@@ -77,11 +76,11 @@ the three environments in which the same kernel can be run.
 Others have used Linux, either on dedicated devices (e.g., iPodLinux~\cite{1352199}),
 or in virtualized environments~\cite{1008027,1352648,Nieh2005Experiences}, to provide
 an internal, concrete perspective.  Compared to those approaches, Pintos provides
-a similar level of realism to students in that they can see the result of their
+a similar level of realism in that students can see the results of their
 work on concrete or virtualized hardware, but does not require that students 
 understand the often arcane and ill-documented interfaces of the Linux kernel,
-which were not designed from an educational perspective.  By contrast, all
-Pintos code is written to be studied by students.
+which were not designed from an educational perspective.  
+By contrast, all Pintos code is written to be studied by students.
 
 %This paper summarizes the design philosophy that underlies Pintos,
 %details its structure, and outlines the nature and learning goals of each