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

On a typical Unix system, we are presented with two key storage\nabstractions. The first is the (1) ____, which can be viewed as an\narray of bytes that you can (2) ____ (store data) to or (3)\n____ (load data) from. Associated with each of these entities is an\n(4) ____ number, which is its low-level name inside the file\nsystem.

\n\n

The second abstraction is the (5) ____, which is a collection or\nlist of pairs containing the user-readable name of the data, and its\nassociated low-level identifier.

\n" }, "q02": { "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. Flush data in memory to disk.
  4. \n
  5. Move to a particular offset within a file.
  6. \n
  7. Load the contents of a file into memory.
  8. \n
  9. Store data in memory to a file.
  10. \n
\n

\n", "responses": { "fsync": "fsync", "write": "write", "open": "open", "lseek": "lseek", "read": "read" } }, "q03": { "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. touch: ____
  2. \n
  3. stat: ____
  4. \n
  5. chmod: ____
  6. \n
  7. mkdir: ____
  8. \n
  9. rmdir: ____
  10. \n\n
  11. cd: ____
  12. \n
  13. ln: ____
  14. \n
  15. rm: ____
  16. \n
  17. mv: ____
  18. \n
  19. kill: ____
  20. \n
\n

\n" } }