Because splatting object files and intermediates all over the same directories as the source drives me nuts, I shuffled things so that it's a bit easier to find things (splitting source into kernel/, user/, ulib/, tools/, and include/ directories) and generated files are collected into kobj/, uobj/, out/, and fs/ directories.
https://github.com/swetland/xv6
I also tweaked the scheduler to halt if there's nothing to schedule, per tankenmate's suggestion.
A side-effect of this change is the generate-source-code-printout targets were rather severely broken, so they're simply removed for the moment.