Software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language (typically C). What goes on in the operating system when programs are executed. Core topics: creating and using software tools, pipes and filters, file processing, shell programming, processes, system calls, signals, basic network programming
In this course, we use Subversion for repository control. C is the programming language of choice for systems programming due to its low-level nature. Bash/Shell Scripting is used to provide interaction with batch files. Eclipse is the IDE of choice for C due to it being open-source and its wide adoption by UofT.
This course focuses on several aspects of computer programming. Being able to fork different pipes, use different pipes for I/O, opening and closing sockets for exchanging of information, learning about system calls and different signal handlers and process threads.
My responsibilities therefore, was to gain an adept understanding of how all these concepts worked.
The last assignment of the course was to implement a low-level, functioning version of a basic chat server.
The chat server supported four basic commands: