Regarding Linear Type Systems and friends I recommend reading parts of Jesse Tov's PhD thesis [1], "Practical Programming with Substructural Types". I found parts of it pretty accessible as an undergraduate. In particular he uses substructural types to put types on the network protocol of a server and client. Neat stuff.
There's also the wikipedia page on Substructural Types [2].
There's also the wikipedia page on Substructural Types [2].
[1] http://www.eecs.harvard.edu/~tov/pubs/dissertation/
[2] http://en.wikipedia.org/wiki/Substructural_type_system