1. When a file is removed, its blocks are generally put on the free list without being zeroed out. From a security perspective, would it be a good idea to clear freed blocks? Why? If so, would it be better to clear the block out before it is put on the free list, or should it be zeroed out before it is used again in another file? Why? Why isn’t this typically done on file systems today?
2. Attributes associated with a file can be maintained in several places as discussed in the course content:
a. Within the set of open file descriptors
b. Within the system-wide file table entry for the file
c. Within the ‘i-node’ (or ‘v-node’)
These attributes can be associated with the actual file (e.g. the file size), or can be associated with an open instance of the file (e.g. whether the file is opened for reading or writing, whether the file is opened for non-blocking I/O, etc.). What would be preferred location of the following attributes of a file and why? Discuss any tradeoffs if that attribute could be in more than one of the above.
a. The owner of the file.
b. The “read/write” pointer of the open file.
c. Whether the file is opened for reading, writing, or both.