3 ms·
Learning C is essentially required to become really good with UNIX. For example, the answer to your library linking question only "correctly" makes sense when y
by jcr 12y ago
Learning C is essentially required to become really good with
UNIX. For example, the answer to your library linking question only
"correctly" makes sense when you understand C since you need to
understand C to really understand how the underlying C code works with
all the compilers, linkers, loaders, object files, executable file
formats, and such.
The good folks Debian build and maintain a solid linux disto, but you
need to realize how a linux distro will only teach you the "linux way"
of doing things. There are other ways, and of course, other systems. The
various BSD operating systems like OpenBSD, FreeBSD, NetBSD,
DragonFlyBSD, ArchBSD, BitRig, and so forth all tend to stick a bit more
closely to the classic or historic "UNIX way" of doing things.
If the goal is to learn C so you can learn the underlying system code,
my choice would be OpenBSD. It's simple, solid, and secure, but the best
reason to pick it would be the quality of the code and documentation. It
really helps to have reliable code and docs when you're trying to learn,
and like all active projects, they keep trying to improve both.
The only reason why I know about the AFL fuzzer is due to the never
ending auditing of OpenBSD since some of the OpenBSD developers, like
Damien Miller [1] and Jonathan Gray [2], have recently been using AFL to
discover and fix bugs.
[1] https://twitter.com/damienmiller/status/534156368391831552 https://twitter.com/damienmiller/status/534156368391831552
[2] https://www.marc.info/?l=openbsd-cvs&m=141646270127039&w=2 https://www.marc.info/?l=openbsd-cvs&m=141646270127039&w=2
- spacemanmatt 12y agoThat is some of the best argument I've heard to go back to OpenBSD.
- yzzxy 12y agoThanks for the advice... I will be bookmarking this and I think I'll load up a FreeBSD install on a Raspberry Pi or something[0]. I know C, but I don't know C, and it think learning about compilers and such would be super interesting. [0] More driver problems are probably good, right? :)