I mentioned several things in rec and here are the summary of requirements of project 2. 1. Simple version of chat program - Implement a command(or process) for a chat program. - Send a string from one Shell to the other. Don't need to print it out on your Shell. - You may use read/write(uartRead/uartWrite) functions to get a string and send it to the other side(serial port). - You can use stdin/stdout/stderr to check out where you are(in Shell0 or Shell1). 2. Advanced version of chat program - Add a login method - Get an id and pw from a user and use the id for the prefix of the string sent to the other side so that we know which one is sent by whom. The simplest way is to pass the id and pw in the parameter list. I recommand you to use different method to get them like cse server does. 3. Extra bonus - As you know, we don't have any contol on the string sent from the other port. If you can use semaphores or mailboxes or any other methods to fix this problem I showed you in rec, you deserve some extra credits. You don't need to use the semaphores and mailboxes for this project. But, if you can improve the basic requirements of your chat program using them, implement your idea and mention that in your readme file. Don't forget to submit a readme file.