Godmar Back [Wed, 7 Jun 2006 22:09:19 +0000 (22:09 +0000)]
added bad-jump/read/write bad-jump2/read2/write2 to check that process
that attempt to execute/read/write NULL or a kernel address, resp., are
properly terminated.
Ben Pfaff [Thu, 1 Jun 2006 20:11:00 +0000 (20:11 +0000)]
Add support for "keyboard" input over the serial port.
Revise documentation accordingly.
Revise reference solution accordingly.
Change real Return key to produce \r, to match what is received on
serial port.
Update shell example program to expect \r at end of file.
Modify testing makefiles to supply /dev/null as input.
Add squish-pty help program to deal with Bochs,
and modify "pintos" to use it.
Ben Pfaff [Tue, 30 May 2006 21:35:27 +0000 (21:35 +0000)]
Fix two bugs:
- If -s used with GSX, really don't provide serial port.
- Call File::Temp::cleanup() inside eval to cope with old versions
of File::Temp that didn't have cleanup.
Ben Pfaff [Sat, 27 May 2006 20:21:09 +0000 (20:21 +0000)]
Add "-k" option to pintos script. When used, pintos will scan the
serial output for key words like "Kernel PANIC" and, if found,
terminate the run. This is useful for making sure that things like
triple faults or recursive panics don't waste a lot of time by finally
terminating only upon a timeout that might be as much as 10 minutes.
Add "-k" to the command line used in the test scripts.
Also, pintos now saves and restores the terminal settings across the
call to the simulator. This is because qemu turns off local echo and
doesn't restore it if killed by a signal.
Ben Pfaff [Sat, 27 May 2006 00:06:54 +0000 (00:06 +0000)]
Add file system persistence tests:
Change Make.tests to invoke pintos a second time for the extended
filesys tests, and in that run to tar up the file system contents and
copy it out.
Update grading scripts to check the generated tarballs.
Update documentation.
Update documented requirements for remove() of a directory to give
basically the options offered by POSIX, and update the tests to check
for these behaviors.
Remove dir-lsdir test, which no longer made sense given that readdir
is used so heavily in other tests.
Merge dir-mk-vine and dir-rm-vine tests into a single dir-vine test,
which is now much more stringent.
Merge dir-rm-cwd-cd and dir-rm-cwd into a single dir-rm-cwd test,
which is now much more stringent.
Check that a non-empty directory cannot be removed.
Ben Pfaff [Mon, 22 May 2006 18:47:19 +0000 (18:47 +0000)]
File system project updates:
Require support for . and ...
Add inumber system call, so getcwd can be implemented,
and inode_get_inumber() function.
Implement these features in the reference solution.
Add "pwd" example program and require explanation of it in design
document.
Implement "cd" in shell.
Add -l option to "ls" example program.
Describe interpretation of unusual file names.
Remove filesys_self_test().
Update TODO.
Ben Pfaff [Fri, 19 May 2006 20:38:50 +0000 (20:38 +0000)]
Replace lsdir system call by readdir, isdir system calls,
which are far less offensive to good taste.
Add dir_get_inode() and dir_readdir() functions.
Remove dir_list(), filesys_list(). The latter was unused.
Update project documentation, solutions, and tests.
Rewrite "ls" example program to use the new interface, and add the
ability to specify a directory name and a "long format" feature.
Add "cd" command to shell.
Ben Pfaff [Thu, 20 Apr 2006 22:56:54 +0000 (22:56 +0000)]
Major revisions to documentation.
Rewrite VM assignment entirely, adding implementation order and
terminology suggested by Godmar Back.
Make the terminology used elsewhere agree.
Rename "Tour" to "Reference Guide" and move to appendix.
Add "Virtual Addresses" and "Page Tables" sections to reference guide.
Rename "References" to "Bibliography" (to avoid confusion) and move to
end of documentation.
Get rid of option to eagerly load partial pages.
Get rid of fullpage.lds linker script, so rename the normal one from
normal.lds to user.lds.
Break mmu.h into vaddr.h and pte.h.
Add "mcat" to examples as a simpler example of mmap.
NB: Any webpages that reference chapters in the documentation will
need to be updated, because the chapters have been reordered.