I'm a little confused about this topic myself, particularly, what exactly is GNU? Saying that
GNU's
Not
Unix isn't entirely helpful. : (
I understand so far that GNU intends to make Free Software™ alternatives to commercial and proprietary software. I'm a little confused about where to draw the lines.
If I get the "GNU system" (or package or whatever), I understand that the shell, command line apps, C compiler, etc. etc. are all GNU. But, for example, GIMP and LilyPond are listed as
GNU software, yet both of those are available for Windows. (I personally use have both LilyPond and a modified version of GIMP on my Windows machine.) Are the Windows versions also GNU?
GIMPshop is a modified version of GIMP. Is that also GNU? To take a third (admittedly frivolous) example, the C compiler that comes with the "official" GNU system is obviously GNU. But suppose I modify the compiler, say, because I want to #include <stdio.h> in every file and I don't want to always have to type that in every single time (I know it's stupid; it's just for the sake of example). I distribute my modified C compiler with the same license agreement as the original. Is my modified compiler also GNU?
With Windows, we would say, for example, that Windows is the actual operating system. The Registry is not Windows, but it is a Very Important File™ that Windows
uses and that other programs also use, and which tends to get messed up and crash the system and so forth. A lot of the .dll files in the /windows directory might be called
components of Windows, since they are required for Windows to work properly, but other components, while perhaps nice to have, might not be required, such as the Microsoft Indexing Service or the .NET Framework 3.0. Such components are not themselves Windows, although some of them might be necessary for Windows to work.
I know what you'll say about Windows being technically inferior and whatnot; I'm just pointing out that Windows users have a convenient nomenclature. Maybe GNU users do too, and in that case I would really like to be educated. (I'm a Windows user, but I like the idea of GNU and will try it out someday when I can afford to.) But so far, my quest for understanding has led me down an infinitely recursive spiral of confusion, and I really need a way out.
I'm also confused about all the talk of kernels and microkernels and macrokernels and what exactly the difference is between GNU/Linux and GNU/Hurd, and where things like GNOME and KDE fit in, and what it means that "GNU currently uses the GNU Mach microkernel, but efforts to port Hurd to the L4 microkernel are currently ongoing". Any good introductory websites about the subject you can recommend?