3 ms·
I've probably read this a dozen times. I used to read it for motivation. "Trying to learn to hack on a Microsoft Windows machine or under any other closed-sour
by henning 19y ago
I've probably read this a dozen times. I used to read it for motivation.
"Trying to learn to hack on a Microsoft Windows machine or under any other closed-source system is like trying to learn to dance while wearing a body cast."
I never agreed with this. The only time it's possibly a problem is if you want to learn about operating systems, and in that case the source to a current release of the Linux kernel is probably too complex. You'd be better off running Minix under a virtual machine, which you can do in Windows (or Mac OS X, or other proprietary OS) just fine.
A much more compelling argument is it's much easier to experiment with and install open source software on systems that have package management systems like apt-get. Certain excellent pieces of software run best on Unix-like OSes: Emacs, the MATLAB clone Octave, numerical libraries like ATLAS and GSL, Intel's LAPACK implementation, etc.
Whether you have the source to your kernel in particular is irrelevant in all of this and has everything to do with the open source community and traditions surrounding free software instead.
I view things this way because I've always cared more about making enduser applications/solutions instead of libraries and systems packages.
- cstejerean 19y agotry installing something like LFS (Linux from scratch) and see how much you learn about Linux. Maybe I'm just old school but even on Windows I was always studying the OS internals, the specs of the various protocols and the details of the filesystem. The difference is in Linux I have access to the sourcecode so in addition to reading a book on the specs I can study the implementation ad well. Does this really make me a better programmer? I hope so. But it might be just an extreme form of procrastination.
- xirium 19y agoThere's a big difference between operating systems which provide a C compiler by default and those that don't. About 10 years ago, the distinction wasn't the type of operating system but the vendor. Windows and Irix didn't have a C compiler by default. Linux distros did have a C compiler. Other languages, such as Perl, PHP, Java, Python and Ruby, weren't available by default on most platforms or didn't exist. So, you got a C compiler, if you were lucky. You got Perl if you were very lucky. Of course, you can install interpreters and compilers on operating systems but, because there is no default, the userbase is instantly split. For example, those using Sun's C compiler versus those using gcc. Hardware was also more diverse. So, you could have a programming problem which was specific to a subset of processor, hardware, operating system type, operating system version, language and choice of compiler. Nowadays, there's a fairly consistent base of gcc installs with a fairly consistent base of Perl, PHP, Java, Python and Ruby built on top. So, someone else is much more likely to have already solved a problem that you have encountered. Anyhow, a closed-source operating system is less likely to be supplied with programming languages and you'll be more likely to encounter further barriers as you proceed.