X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fintro.texi;h=7bdd7e51b0531ed545869034cf7b8566c0cdccc6;hb=9818aeac330907b5b314ac58c861d3dba8b15e5e;hp=9af1fb376e96b3202c836ddb370ff340977d09ce;hpb=4fc06dfc1ec85505bfa3443be9c291f9d5155618;p=pintos-anon diff --git a/doc/intro.texi b/doc/intro.texi index 9af1fb3..7bdd7e5 100644 --- a/doc/intro.texi +++ b/doc/intro.texi @@ -1,4 +1,4 @@ -@node Introduction, Project 1--Threads, Top, Top +@node Introduction, Pintos Tour, Top, Top @chapter Introduction Welcome to Pintos. Pintos is a simple operating system framework for @@ -9,10 +9,10 @@ project team will strengthen its support in all three of these areas. You will also add a virtual memory implementation. Pintos could, theoretically, run on a regular IBM-compatible PC. As -fun as it might be, it is impractical to supply every student in CS -140 with his or her own PC. Therefore, we will run Pintos projects in -a PC simulator, that is, a program that simulates an 80@var{x}86 CPU -and its peripheral devices well enough that unmodified operating +much fun as it might be, it is impractical to supply every student in +CS 140 with his or her own PC. Therefore, we will run Pintos projects +in a PC simulator, that is, a program that simulates an 80@var{x}86 +CPU and its peripheral devices well enough that unmodified operating systems and software can run under it. In class we will use the @uref{http://bochs.sourceforge.net, , Bochs} simulator. Pintos has also been tested within @uref{http://fabrice.bellard.free.fr/qemu/, , @@ -79,7 +79,7 @@ Now you can extract the source for Pintos into a directory named @example tar xzf /usr/class/cs140/pintos/pintos.tar.gz @end example -Alternatively +Alternatively, retrieve @uref{http://www.stanford.edu/class/cs140/pintos/pintos.tar.gz} and extract it in a similar way. @@ -165,7 +165,7 @@ the kernel. @xref{Adding c or h Files}, for more information. Object file for the entire kernel. This is the result of linking object files compiled from each individual kernel source file into a single object file. It contains debug information, so you can run -@command{gdb} or +@command{gdb} or @command{backtrace} (@pxref{Backtraces}) on it. @item kernel.bin Memory image of the kernel. These are the exact bytes loaded into @@ -199,24 +199,53 @@ issue the command @code{pintos run}. This command will create a @file{bochsrc.txt} file, which is needed for running Bochs, and then invoke Bochs. -Bochs opens a new window that represents the the simulated machine's +Bochs opens a new window that represents the simulated machine's display, and a BIOS message briefly flashes. Then Pintos boots and -runs a simple test program that scrolls by a few screenfuls of text. +runs a simple test program that outputs a few screenfuls of text. When it's done, you can close Bochs by clicking on the ``Power'' button in the window's top right corner, or rerun the whole process by clicking on the ``Reset'' button just to its left. The other buttons are not very useful for our purposes. +(If no window appeared at all, and you just got a terminal full of +corrupt-looking text, then you're probably logged in remotely and X +forwarding is not set up correctly. In this case, you can fix your X +setup, or you can use the @option{-v} option.) + The text printed by Pintos inside Bochs probably went by too quickly to read. However, you've probably noticed by now that the same text -was displayed - +was displayed in the terminal you used to run @command{pintos}. This +is because Pintos sends all output both to the VGA display and to the +first serial port, and by default the serial port is connected to +Bochs's @code{stdout}. You can log this output to a file by +redirecting at the command line, e.g.@: @code{pintos run > logfile}. + +The @command{pintos} program offers multiple options for running +Pintos. Specify these options on the command line @emph{before} the +@option{run} command. Use @code{pintos help} to see a list of the +options. You can select a simulator other than Bochs, although the +Leland systems only have Bochs installed. You can start the simulator +running a debugger (@pxref{i386-elf-gdb}). You can set the amount of +memory to give the VM. Finally, you can set up how you want VM output +to be displayed: use @option{-v} to turn off the VGA display, +@option{-t} to use your terminal window as the VGA display instead of +opening a new window, or @option{-s} to suppress the serial output to +@code{stdout}. + +The @command{pintos} program offers commands other than @samp{run} and +@samp{help}, but we won't have any need for them until project 2. + +The Pintos kernel has its own command line that you can use to pass +options. These options must be specified @emph{after} the +@option{run} command. These options are not very interesting for now, +but you can see a list of them using the @option{-u} option, e.g.@: +@code{pintos run -u}. @node Pintos Trivia @section Pintos Trivia The design of Pintos is inspired by Nachos, an instructional operating -system implemented at UC Berkeley, and even uses a few pieces of +system originally from UC Berkeley, and even uses a few pieces of Nachos code. Pintos is different from Nachos in two important ways. First, Nachos requires a host operating system such as Solaris, whereas Pintos runs on real or simulated 80@var{x}86 hardware.