I want to know more about Linux must be one of my most enduring sentiments.

But I often find that I learn the most, or perhaps just feel the most satisfied with what I have learned, when I simply crack open the history books.

What's hiding in /etc and /dev that I don't know about? Well, files. Everything is a file.

But what put those files there?

History put them where they are, and history dictated how they were written, yadda yadda yadda.

According to man hosts

Historical Notes
RFC 952 gave the original format for the host table, though it has since changed.
Before the advent of DNS, the host table was the only way of resolving hostnames on the fledgling Internet. Indeed, this file could
be created from the official host data base maintained at the Network Information Control Center (NIC), though local changes were
often required to bring it up to date regarding unofficial aliases and/or unknown hosts. The NIC no longer maintains the hosts.txt
files, though looking around at the time of writing (circa 2000), there are historical hosts.txt files on the WWW. I just found
three, from 92, 94, and 95.

Great. So that gives me something to chew on. I wanna know how Linux works, and in particular I wanna know why Linux networking looks the way it does, so I'll just go read RFC 952.

Before trying to tackle these, I gotta know, did all of the Request for Comments (RFC) documents directly impact the design of Unix and Linux? Should I be trying to get my head around all of them, or just a subset?

Yes, they all did. Especially this one I think :)
–
MatFeb 8 '12 at 18:20

"I want to more about Linux" -- this reminds me of the time "I accidentally 93 MB of rar files" :). You may want to retrieve the verb that went missing.
–
jw013Feb 8 '12 at 23:50

RFC's are mostly about networking and the Internet, which is only one part of and applies to most OS's. If you're going to read RFC's, stick with the standard / standards track ones. For more about Unix and Linux standards, look into publications like POSIX or other ones mentioned in the standards(7) man page if your system has it. Since POSIX is implementation-driven, the rationale sections would probably be of interest to you.
–
jw013Feb 8 '12 at 23:52

@Mat: I didn't even have to click your link or look at its number to know that it would be IP over avian carriers. The only other possibility was the EVIL bit.
–
dmckeeFeb 9 '12 at 1:48

3 Answers
3

No, they didn't. Some don't even apply to Unix. When Unix was in its infancy, there were dozens of operating systems out there, and dozens more came after its release. Many of them were on the ARPANet and many of them made it to the Internet. Some RFCs describe global things like the right way to write IPv6 addresses (RFC 4291), how MD5 should be implemented (RFC 1321), or why not to admire pigs flying overhead (RFC 1925). Others are more OS-specific, like Windows Kerberos password change protocols (RFC 3244).

A lot of what you see now are empirical decisions that later became standardised.

If you want to learn about Unix networking, your best bet is probably one of the books about Unix. If you want to learn about why things are the way they are, reading the source code of early Unices is an interesting exercise. But not an easy one. :)

If you want to go back to the history of recent Unix-like systems, you'd better read The Design and Implementation of the 4.4 BSD Operating System. It's old but so are unix concepts. Networking especially was designed as part of the 4.3 BSD OS, which is of course discussed thoroughly in the book. GNU/Linux systems were born after, following this model but rewritten from scratch. The networking code made is later to many other OS.

As for the standards, everything must be defined in order to achieve interoperability. So in the regard, all RFCs potentially affected the design of Unix networks and much more.
Some RFC were never implemented, people are free to implement the RFC they want and make their programs implementing them available to all.

Basically, POSIX dictates a lot when it comes to UNIX systems, you might want to check it... I supposed that's more what you are really looking for as it target unix systems and specify some requirements. Keep in mind that GNU/Linux systems don't always follow POSIX as it may be considered old and rusty, some alternative and non-standards ways have emerged. This is problematic for developers working on portable programs/systems.