{ "q1": { "type": "blank", "question": "\n

On a typical Unix system, we are presented with two key storage\nabstractions. The first is the (1) ____, which is just a linear\narray of bytes that you can (2) ____ or (3) ____. Associated\nwith each of these is an (4) ____ number, which is its low-level\nname.

\n\n

The second abstraction is the (5) ____, which is a list of pairs\ncontaining the user-readable name of the data, and its assocated low-level\nidentifier.

\n" }, "q3": { "type": "blank", "question": "\n

Identify the key system call you should use to implement the\nfollowing Unix command-line utility:

\n\n

\n

    \n
  1. mkdir: ____
  2. \n
  3. rmdir: ____
  4. \n
  5. stat: ____
  6. \n
  7. chmod: ____
  8. \n
  9. kill: ____
  10. \n\n
  11. cd: ____
  12. \n
  13. mv: ____
  14. \n
  15. rm: ____
  16. \n
  17. ln: ____
  18. \n
  19. touch: ____
  20. \n
\n

\n" }, "q2": { "type": "order", "question": "\n

Identify the system call you should use to accomplish the\nfollowing tasks:

\n\n

\n

    \n
  1. Create a file.
  2. \n
  3. Load the contents of a file into memory.
  4. \n
  5. Store data in memory to a file.
  6. \n
  7. Move to a particular offset within a file.
  8. \n
  9. Flush data in memory to disk.
  10. \n
\n

\n", "responses": { "read": "read", "write": "write", "open": "open", "fsync": "fsync", "lseek": "lseek" } } }