General Topics of Interest Document $Revision: 1.5 $ Some tips for using this document --------------------------------- There are several references to RFC's in this document. There are copies of the RFC's in the rfc locker, so you can find RFC 1510 at /mit/rfc/rfc1510.txt. Note that RFC's are sometimes good ways to learn about things and sometimes not. They're definatly useful for reference though, so I like to have an alias to read them quickly. There's also an index of the RFC's at /mit/rfc/rfc-index.txt that you can look through, or grep through to find RFC's you're interested in. There are also some references to "Inessential XXXX" documents. You can find those either in the SIPB office on paper, in /afs/sipb/project/doc, and many are also avaible at http://www.mit.edu/sipb/docs.html. The Topics ---------- Computer languages C - see "The C Programming Language" by Kernighan & Richie. perl - a cool utility language for getting lots of jobs done quickly. see either O'Reilly "Learning Perl" or "Programming Perl". Also `man perl'. awk - Awk is a small, simple utility intended primarily for text processing. In many ways, it's what people used to use before perl. Does lots but is small and lightweight. See the O'Reilly "awk" book or man awk. java - Java is a newish, object-oriented language from Sun Microsystems. It's used around the world for applets (programs in web browsers) among other things, and used around MIT for 6.170, 6.035, and parts of 6.001. There are many, many books on learning Java, including one from Sun that is partially available on the web at: http://www.javasoft.com/docs/books/tutorial/index.htmlA postscript - describes how to draw things on a page, commonly for the purpose of getting a printer to print it. See the postscript books in the SIPB office, and the postscript locker. elisp - elisp (properly `emacs lisp') is a variant of LISP used to program the emacs editor. Emacs is notorious for its powerful programmability, although Lisp isn't a commonly used programming language anymore. If you learned Scheme for 6.001, then you have some background. There is an extensive Emacs Lisp Manual (available on-line and printed and bound), and SIPB also has an O'Reilly handbook on writing Emacs Lisp Extensions. Tcl/Tk - Tcl (Tool Command Language) is a shell-like language that was designed to be embedded in other programs. The addition of Tk (ToolKit) transformed it into a scripting language with powerful graphical-interface (i.e. windows) capabilities. There are numerous ``Learning Tcl/Tk'' books, including one in the sipb office. ----------------------------------------------------------------------------- Kerberos Kerberos is a security system developed at MIT and used somewhat throughout the world. The latest version, Kerberos 5, is available from MIT and is being adopted by some commercial computer systems. The previous version, Kerberos 4, is still in use around Athena. At this point, you probably want to start with Kerberos 5. general info: /mit/kerberos/doc/appdoc/dialogue.PS, /mit/kretch/Sipb/Project/krbdiagram/krbdiagram.PS for the api: /mit/krb5/sandbox/krb5/doc/api/* the (krb5) protocol: RFC 1510 source in: /mit/source/third/krb5 and /mit/krb5/sandbox/krb5/src ----------------------------------------------------------------------------- Mail sendmail - sendmail is a very standard program that UNIX-based computers use to actually transfer mail messages around. Generally used by the system/other programs, sendmail is called a `Mail Transfer Agent (MTA)', as opposed to a Mail User Agent (MUA), which is what users actually run. ``hacking sendmail'' is one of the last bastions of incredibly obscure, baraoque computer skills still alive today. Learning this skill will be sure to inspire fear and admiration and ``what is he, *crazy*?!?!'' looks from your friends. see the O'Reilly "sendmail" book in the SIPB office, also /mit/sendmail8/sendmail-8.9.3/doc/* SMTP - Simple Mail Transfer Protocol. SMTP is the `normal' way that computers *send* electronic mail today. sendmail (see above) can be thought of as (partially) a server for the SMTP protocol. See RFC 821. POP - The Post Office Protocol. Version 3, the most recent, is the version most commonly in use today. POP3, often called simply `POP', is one of (if not *the*) most commonly used protcols for *reading* mail on the internet today. Athena uses a variant of POP3 that incorporates Kerberos support, sometimes called kPOP or kPOP3. POP is a decent example of a modern `simple' network protocol. Pop is documented in RFC 1734. Also, it can be very instructive to play with the program `pop', in the sipb locker. RFC 2449 documents an extension mechanism that might also be interesting. IMAP - the Internet Message Access Protocol. IMAP (also, IMAP4rev1 to distinguish it from the incompatible IMAP2/IMAP2bis) can be thought of as `POP3++', and then some. Whereas POP3 is an example of a simple, commonly used (and abused) modern network protocol, IMAP is a fine example of the types of systems that are often developed to replace such simple protocols. IMAP includes many interesting and useful capabailities that aren't present in POP3, and is being widely adopted around the net. There are several RFC's available on IMAP and its extensions, but the base protocol is described in RFC 2060. State-of-the-art information on IMAP can be had from: http://www.imap.org/ ----------------------------------------------------------------------------- Network For general networking protocols a good place to start is "Internetworking with TCP/IP" by Comer. Important topics are ARP, IP, ICMP, UDP and TCP. The RFC for IP is 791, ICMP is 792, TCP is 793 Network Programming - see "UNIX Network Programming" by Stevens. The "Berkely Sockets" Chapter is the key one. SNMP - Simple Network Mangement Protocol. See "TCP/IP Illustrated" also various RFC's starting with RFC 1067 PPP - Point to Point Protocol. mbone - The Multicast Backbone DNS and Hesiod - DNS is the Domain Name System, the globally distributed system for resolving hostnames (for example, www.mit.edu) into IP (Internet Protocol) addresses (in this case: 18.181.0.31... right now). Hesiod is an extension to DNS that allows it to serve information other than ``hostname <-> IP address'' mapping. Around Athena, Hesiod is used for to provide mappings for user, locker, and host information, among other things. NTP - Network Time Protocol. A system for syncronizing time on computers across a network. ----------------------------------------------------------------------------- software building utilities make - utility for automating builds and making rebuilds more efficient. See the O'Reilly "Managing Projects with make" imake - autoconf - zephyr - messaging system. See "Inessential Zephyr" and various documents in /mit/zephyr/doc. Source in /mit/zephyr/src and /mit/source/athena/lib/zephyr curses - text window manipulation library. See the O'Reilly "Curses" book. also man curses. discuss - see "Using Discuss" in the SIPB office, or online. source in /mit/source/athena/bin/discuss and in the discuss locker. AFS - see "inessential AFS", or the Transarc AFS Documentation in the two white binders in the SIPB office. Also "xxxx AFS" book in the SIPB office. PGP - Pretty Good Privacy -- it's an encryption/authentication system good for email, etc. start with "http://www.mit.edu/afs/sipb/project/doc/pgp/pgp.html" SQL - moira - Moira is a database system used by Athena to manage host, account, and mailing list information, among other things. Many other systems are fed with information from Moira. Some information from Moira is available in the moiradev locker, in the `doc' directory. Solaris OpenProm - see the OpenProm documentation in the office news - WWW - The World Wide Web is a conglomeration of many standards and protocols, including a few new ones. The most interesting are probably: HTTP: the current `standard' version is 1.1, documented in RFC 2068, and at http://www.w3.org/Protocols/ HTML: The current `standard' version is 4.0 documented at http://www.w3.org/MarkUp/, with tutorial information available in several books, and on-line at: http://www.hotwired.com/webmonkey/html/?tw=frontdoor RCS - `man rcsintro'. Also, track down that `intro to RCS' doc that was written for 6.170 or whatnot. CVS - /mit/gnu/info/cvs.info (in emacs, C-h i g (/mit/gnu/info/cvs.info) RET) additionally, there are a few interesting documents available on the web: http://www.cyclic.com/cvs/doc-blandy.html http://www.cyclic.com/cvs/doc-cederqvist.html http://www.cyclic.com/cvs/doc-faq.html telephony - dotfiles - dotfiles locker roff -