Post subject: AAAAH! Does not understand!
Joined: 11/26/2005
Posts: 285
GNU/Linux is an operating system. Linux is a kernel. Then WHAT THE HECK IS GNU? I checked the Wikipedia article on GNU, and it referred to it as an operating system, using the GNU Hurd kernel. Okay. But what's the piece of GNU that isn't the kernel called? The same piece of GNU that snaps onto the Linux kernel? Or more exactly: Operating system minus kernel equals what? 800x600 background
Emulator Coder, Site Developer, Former player
Joined: 11/6/2004
Posts: 833
Stupid picture aside, GNU is the brand of software that all the user mode stuff runs. Your shell? Part of the gnu software package. All the command-line tools? GNU. The compiler? GNU. The C library? GNU. Now, if you went off and made your own C library (or used something different like uclibc), Intel's C compiler, wrote your own shell and collection of apps, then go ahead and call it whatever you want. I don't care and I call it Linux freely, and anybody who insists on GNU/Linux can see figure one. An OS is nothing without programs for it to run.
Joined: 11/26/2005
Posts: 285
DeHackEd wrote:
Stupid picture aside, GNU is the brand of software that all the user mode stuff runs. Your shell? Part of the gnu software package. All the command-line tools? GNU. The compiler? GNU. The C library? GNU. Now, if you went off and made your own C library (or used something different like uclibc), Intel's C compiler, wrote your own shell and collection of apps, then go ahead and call it whatever you want. I don't care and I call it Linux freely, and anybody who insists on GNU/Linux can see figure one. An OS is nothing without programs for it to run.
I'm just wondering what word you use to refer to the part of the OS that isn't the kernel. I don't use Linux, I don't program (EDIT: just to clarify, that means I can't comprehend what you're saying about user mode and uclibc), I just wanna know the word. Also, my picture is bad-ass.
Emulator Coder, Site Developer, Former player
Joined: 11/6/2004
Posts: 833
I just call it "user-space", named after the CPU mode all that code is run in. Edit after edit of above post: the C library contains pre-written code used by all applications. uclibc is an alternative C library, optimized mainly for smaller size and supports other kinds of hardware. People making software for embedded devices (like PDAs and stuff) might be interested in it for these benefits.
Joined: 11/26/2005
Posts: 285
Okay, thanks.
pdk
Player (52)
Joined: 1/6/2007
Posts: 68
doesn't practically everyone call the non-kernel part the userland?
Joined: 11/26/2005
Posts: 285
The userland, is that mostly supposed to provide an interface so that the user can communicate with the kernel?
Joined: 12/26/2006
Posts: 256
Location: United States of America
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?
Editor, Skilled player (1939)
Joined: 6/15/2005
Posts: 3247
Deep Loner wrote:
I'm a little confused about this topic myself, particularly, what exactly is GNU? Saying that GNU's Not Unix isn't entirely helpful. : (
Think of GNU as a name, not as an acronym.
pdk
Player (52)
Joined: 1/6/2007
Posts: 68
it's simple, gnu = rewrites of unix programs + EVIL COMMUNISM
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
GNU are those GPL-licensed programs which are approved by the FSF to be called GNU programs. It is a name sticker. Basically, it means it's an "official" (as in FSF-approved) free program that has at least some merit (worthy of being offered to be installed in a free unix-like operating system). Disclaimer: This was my interpretation.
Emulator Coder, Site Developer, Former player
Joined: 11/6/2004
Posts: 833
I thought that GNU was the GPL-licenced software produced by or for the FSF. A lot of their software goes back a really long time. Not all, but a lot. But whatever. 99% of Linux systems use userland software that may be found on a GNU FTP mirror. The kernel is nothing without software for it to run. Hence the reasoning behind the name "GNU/Linux".
Joined: 12/26/2006
Posts: 256
Location: United States of America
Bisqwit wrote:
GNU are those GPL-licensed programs which are approved by the FSF to be called GNU programs. It is a name sticker. Basically, it means it's an "official" (as in FSF-approved) free program that has at least some merit (worthy of being offered to be installed in a free unix-like operating system). Disclaimer: This was my interpretation.
That makes a lot of sense: other "unofficial" forks would not be considered GNU, although they might be distributed under the GPL. Now, are GNU/Linux and GNU/Hurd compatible (as in, can a program written for one work on the other)? And which one do the folks around here use, if it does make a difference?
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Deep Loner wrote:
Now, are GNU/Linux and GNU/Hurd compatible (as in, can a program written for one work on the other)?
Mostly so, yes. There's actually a big family of BSD/POSIX operating systems where programs can be ported from one OS to another. That's the good thing in standards. I don't think anyone here uses GNU/Hurd. Hurd is still somewhat a research project. It doesn't have enough developers, so it progresses slow.
Joined: 12/26/2006
Posts: 256
Location: United States of America
Well... I certainly understand a lot more now! Thanks, guys!
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Which came first, GNU or Linux? The answer is GNU. The FSF wanted to make an independent and free alternative operating system because all the existing operating systems of the time were either commercial or very system-specific. Also, the most used "OS" (if it can even be called that) for the PC at the time was DOS, which was really ascetic and basically didn't offer anything that a full-featured robust OS should provide. Thus the FSF started developing all the necessary tools for a new Unix-style OS. All these tools were "branded" under the name of GNU software. They could test these tools in existing Unix platforms due to their compatibility. However, the GNU project lacked the most important thing in an OS: The kernel. Most of the necessary tools were there, but no kernel. Hurd was a project to develop this kernel. But then came Linus Torvalds, who had the same idea of creating a free alternative OS, and developed the linux kernel. While he didn't care about the FSF or the GPL license at first, they finally decided to join forces and make a whole OS. Linus provided the kernel and the FSF the rest. Thus GNU/Linux was born. The FSF wants to make a distinction between "GNU/Linux" and "Linux". The former is the linux kernel plus the GNU tools, while the latter is only the kernel (which, at least in theory, could be used with something else than GNU tools). Of course currently "Linux" is used for the whole thing instead of just the kernel. It's, however, a mistake to think that in GNU/Linux "everything that is not the kernel is GNU". The GNU part consists only of the software which is distributed under the GPL license and is made by or approved by the FSF. A Linux distro can come with tons of "third-party" software which is not GNU software (even if they use an OSI-approved license). I actually have no idea how many % of a typical linux distro consists of GNU software, but I would guess that at least 90% of the stuff you can find in /bin/ and in /sbin/ is GNU.