Your program must be implemented in C. It is recommended that you write the program under MINIX 3, but you may use any UNIX version provided that you use only POSIX standard calls in your program.
Design and implement a data-sharing system for processes in which:
• Programs can upload and download blocks of data using the OS’s interprocess communication facilities.
• Clients can share their stored data blocks (to read and/or edit) with other clients.
• The service stores and maintains the data and provides security. The means by which the data is stored (in memory, on disk, or in combination) is up to you, provided it can be retrieved quickly when needed.
The clients for your program would be other programs, not user clients. Therefore, you should develop an API rather than a user interface, which can be offered as a C interface library. You should carefully consider the structure of your API and produce documentation for it.
Local clients that share secure data will identify themselves via a shared secret. There is no need to implement “accounts” or related functionality.
The service must be implemented in your own code. Delegating the functionality to another service (that is already part of the OS or otherwise) will result in no marks.