Hacker News new | past | comments | ask | show | jobs | submit login

> For quite a while, if you wanted to learn how a Linux system really operated, you'd build a Gentoo system.

Because watching 'configure' output scroll across your screen 40 times makes one a computer expert, natch.




It wasn't watching the compiler output... it was choosing the components. You'll need A, B, C, etc. For each category there was often more than one choice. You had to choose which syslogger you'd use, for example. With RedHat or SuSE or other distributions, those choices were already made. You may not have otherwise known what options were available.

Imagine starting out with Linux today and not knowing that systemd isn't the only option for an init system. (Regardless of whether or not you like it, it's helpful to know what alternatives exist).

In the end, with Gentoo, when you had your config set, yes, you'd get hours of compiler messages. And if you were lucky, none of them would be errors.

But you'd also know how the system worked. Honestly, it was also about control. With Gentoo, you could configure the system exactly as you wanted, down to the compiler flags. How many other systems let you really do that? Instead of targeting a well-known arch (ex: i686), Gentoo let you set your compiler flags for the entire system to match your exact CPU. The upside was that it was your system. The downside was that it was your system and if/when it broke, you'd have to figure it out. If your goal is to learn how to use Linux, that's also a feature. If your goal is to have a stable server, not so much.

Like the original parent commenter, I was playing with Gentoo back in the early 2000's, so much has probably changed. But I definitely learned a lot back then.


Configure output isn't compiler output, so I guess we've got to the bottom of this mystery.

> With Gentoo, you could configure the system exactly as you wanted, down to the compiler flags.

This doesn't give you the control you think it does. Most of the customization you refer to is basically adding a USE flag to make.conf and running "emerge whatever" again, which I maintain isn't much of a teaching tool.

You end up learning about Gentoo, not software, compilers, operating systems, or computers.

> Instead of targeting a well-known arch (ex: i686), Gentoo let you set your compiler flags for the entire system to match your exact CPU.

This is a good example. So many people ended up thinking (incorrectly!) that this benefited them in some meaningful way, and thought that they were learning and customizing, when they still don't know, even a decade on, that '-O2' and '-O3 -march=native' are for almost all tasks indistinguishable from a performance standpoint or how to even go about measuring the difference.

Gentoo is like a show on the History Channel: it sure feels like you're learning!


Compiling and installing large amounts of system software, a la `emerge world` or `make buildworld`, is great exposure to many system components. `make menuconfig` introduces one to various features of the Linux kernel, and yes, even a humble `./configure` illustrates how the software in question depends on libraries and hardware. I wouldn't casually dismiss the educational value of these experiences, nor the curiosity of those partaking. They're certainly more expository than the digests displayed in a `docker pull`.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: