. Implement a basic file system managed from within a file. The operations to the file system are to be done using a daemon process running in the background. Applications requiring the use of the file system should connect to the server using some known Unix domain socket. The commands are given on the socket. Develop a protocol for this purpose. The file system should have the following capabilities:
i. List files stored along with their sizes.
ii. Create files
iii. Allow changes to files
iv. Delete files
2. Extend the above file system to store information about the files: created time, modified time etc.
- Make changes to the above file system to allow it to handle directory information. Allow users to copy and move files between directories.
- Extend the above file system to allow compression on files. The files could be individually compressed on the request of the application programs.
- Enhance the file system above to allow encryption on files. What other practical uses of the above file system can you find out?
- Now implement a Linux kernel module to allow above capabilities. The module should plug into the virtual file system implementation in the Linux kernel. Further it should be available to the users as a loadable kernel module. Note that in this case extensions require adding the capabilities to support file permissions, file attributes and formatting capabilities.