diff --git a/README.md b/README.md
index 3356785b6238328e24c3c352429232f3b3afc190..e1b6e08fbeea57e8ba7bf1c44ebad09026f618b3 100644
--- a/README.md
+++ b/README.md
@@ -88,6 +88,18 @@ of the kernel. Symbols are the names we have given functions and variables. This
 
 Note: If run.sh fails it means there is still a os161-runner container running. Use `docker kill os161` to kill it.
 
+## Building and installing OS/161 userspace programs
+User-level programs are built and installed from the directory /os161-1.99/. 
+To build and install all of the user-level programs, in the container
+
+You can type
+```
+# cd cd /os161-1.99/
+# sys161 kernel
+bmake
+bmake install
+```
+User-level programs are installed under $OS161TOP/root/ in the bin, sbin, testbin and uw-testbin directories.
 
 ## Running Linux userspace assignments
 To run the Linux userspace programs in the container, that are part of the progrmaming assignment, you must start the container using the `run.sh` script, which takes one argument -- the directory that holds your code for that userspace programming assignment, that is, the `c` files for the programming assignments. For example,