X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fuserprog.texi;h=817c8a0b31ade12e43477dc1eee70ad236349285;hb=ee3116952fce74dde22dd0ce78fa2f97eaadd1a6;hp=903d9c53311dcd856860b10a5749ffdbd234d3ab;hpb=23da5dabffdcfe6edd4e28f84b712c8be97f1b51;p=pintos-anon diff --git a/doc/userprog.texi b/doc/userprog.texi index 903d9c5..817c8a0 100644 --- a/doc/userprog.texi +++ b/doc/userprog.texi @@ -129,7 +129,7 @@ system implementation. You need to be able to create and format simulated disks. The @command{pintos} program provides this functionality with its -@option{make-disk} command. From the @file{filesys/build} directory, +@option{make-disk} command. From the @file{userprog/build} directory, execute @code{pintos make-disk fs.dsk 2}. This command creates a 2 MB simulated disk named @file{fs.dsk}. (It does not actually start Pintos.) Then format the disk by passing the @option{-f} option to @@ -396,6 +396,14 @@ You may find the code for @func{thread_join} to be useful in implementing the join syscall, but besides that, you can use the original code provided for project 1. +@item +@b{All my user programs die with page faults.} + +This will generally happen if you haven't implemented problem 2-1 +yet. The reason is that the basic C library for user programs tries +to read @var{argc} and @var{argv} off the stack. Because the stack +isn't properly set up yet, this causes a page fault. + @item @b{Is there a way I can disassemble user programs?} @@ -417,7 +425,7 @@ is compiled as a unit.) If you wish to port libraries to Pintos, feel free. @item -@b{How do I compile new user programs? How do I make 'echo' compile?} +@b{How do I compile new user programs?} You need to modify @file{tests/Makefile}.