COSC402 - Links

S2 2021

Useful Resources

Useful for your labwork

Material you might like to refer to when doing your labwork.

Tutorial on C Programming

These slides give a tutorial of C programming techniques that you will need in labs.

Beej's Guide to Network Programming

If you don't want to buy Unix Network Programming, then this will be a very good read. It's nowhere as informative as UNP, but it is a very good starting point for knowing the basic networking system calls.

cscope

cscope is a source code browsing/searching (and more) tool, that we find particularly useful when trying to find something under /usr/include/

Some Emacs Tips

This page gives some Emacs-related tips that shall make you more productive or just increases your comfort when programming in Emacs.

Operating System/Environment design

The Unix Haters Handbook

Although Unix has a lot to offer, it also has a lot of mis-design and cruft embodied into it. It is very enlightening to see the sort of rather cool stuff that came before it, especially as some of it is re-introduced in more mainstream systems.

The Art of Unix Programming

Serves as a good counterpoint to The Unix Haters Handbook. Gives a lot of philosophy useful for Unix programmers.

Standards

UNIX Standards
Requests For Comments (RFCs)
Microsoft Solutions Developer Network (MSDN) Library

Useful historical documents

On Holy Wars and a Plea for Peace

A very well known document explaining the whole byte-order (and bit-order) issue.

Interesting IPv6 articles

A Tale of Two Protocols: IPv4, IPv6, MTUs and Fragmentation

This is a long, but useful, illustration of how bad filtering practices, which breakes Path MTU discovery, affects the ability to connect to numerous websites. The problem is more pronounced with IPv6 because tunnels are used extensively in the current IPv6 landscape, so the effective MTU decreases, and IPv6 doesn't allow fragmentation.

It has plenty of examples showing how the problem was diagnosed.