[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]
On Thursday 20 January 2005 10:35 pm, Simon Waters wrote:
Tom Brough wrote: | Then you need utilities (Ahh GNU)
No, Tom. This is a crucial difference: GNU is bigger than Linux. Not just in the obvious measure of lines of code, but in terms of PLATFORM support. You can't expect a kernel to work easily on other architectures, you CAN expect GNU software to: 1. compile a usable kernel on a different platform 2. compile a kernel for platform B whilst running on platform A 3. run on platform A and platform B 4. configure other software to run on either A or B. *And all of this even if platform A or B isn't running a Linux kernel.* That's key - GNU provides the tools to run free software beyond Linux. Why do you think GnuPG runs on Windows? It doesn't require a Windows compiler; no byte-code interpreter or Virtual Machine is required. It uses standard Windows .dll files and compiles to a .exe as usual for that platform - all because of the GNU automake and autoconf tools that provide the environment. On MacOSX, the GNU automake tools and gcc produce a native Mac binary. In the eternal struggle of which came first, chicken or egg (and Linux or GNU), I can exclusively reveal: 1. The egg came first. (It was laid by a reptile/dinosaur ancestor and the embryo in the egg was sufficiently different to it's parent to be classed as the first chicken). 2. The kernel came second. GNU came first - you have to have a compiler (and an editor) to write a kernel. Without a free software GNU environment, Linus wouldn't have had exclusive rights to give away the first kernel. :-)) GNU will run without Linux - it does on MacOSX - Linux would probably not exist as we know it without GNU. No other project has such a claim.
You seem to have omitted things like libc, shells and binutils, which I regard as somewhat closer to what I perceive as an operating system than file utilities. Last I looked the libc project itself was huge, but no one talks about it much.
Except those who are programming with it! libc is both my saviour and my nemesis, depending on whether I'm dealing with strings or dates respectively! (Why can't we have ONE time type? WHY do we need time_t struct tm AND then complicate things further by using routines that take a pointer but return a reference when they need to be used in another function that needs that reference turned back into another pointer!!!) Aaaaaaaaaaaaaaaaagghh!
If Neil comes across as enthusiastic for GNU, consider his perspective, he is working on a GNU project (gnucash), for a GNU environment (GNOME), written in C, preprocessed and compiled by GNU C compiler suite, configured for each platform it runs on (Macos X, BSD, Solaris, HP-UX, AIX, any others?, oh and GNU/Linux) by GNU autoconf tools, and an OS called "Debian GNU/Linux".
Absolutely.
He includes largely
(I do try to make that exclusively - off-hand I can't think of a single non-GNU header file in my own code.)
GNU include files, in his source, and links against an extensive range of libraries many (most?)
again, I would say it's 100% GNU. The probable exception is the Perl bindings.
of which are part of the GNU project. The restraints of writing portable code preclude him from being directly involved in much "Linux" specific code (for this project) unless it is part of the macro suite (usually written in m4 handled by the GNU m4 processor).
I have had to use some new m4 macros, but these aren't kernel stuff, they are package discovery / configuration tools that handle libraries installed in non-privileged folders. i.e. simple shell stuff handled via bash type logic. I haven't got a single bit of code that relies on Linux - not a single line, anywhere. All my code would compile (and does) under any GNU compatible kernel. After all, the project WILL run on MacOSX and other non-Linux platforms. I don't take any credit for that, I joined three running projects that independently configured automake etc. to allow their software to compile on other GNU platforms. As Simon describes, I don't write Linux software, I write GNU software.
It is fairly challenging these days to separate out GNU and Linux from an end user, perspective, as a lot of system software has been written, or re-written, primarily for the GNU/Linux combination.
As Debian shows, the power of GNU is that nearly ALL that stuff can be recompiled for non-Linux kernels WITHOUT changes to the source code itself. All it needs is a few tweaks to the Makefile.am files. Outside the world of device drivers, /dev/, /proc/ and /boot there is precious little on your Linux systems that even *requires* a Linux kernel. This is why it is so frustrating to find people getting the wrong side of the story and thinking that I'm being petty or generating confusion. The vast majority of your system is GNU, NOT Linux. On the majority of systems, if I came along and took Linux out of your machine and slapped in some future version of Hurd or some other GNU-compatible kernel, you would not even know. A single reboot and Linux would be replaced. Don't get me wrong, I like the Linux kernel and there is no direct equivalent as yet - but the kernel, in many ways, is just another application that uses GNU, the *system* is GNU.
from GNU su, and such like, and as a result are under the GNU GPL (which is the really clever invention).
Absolutely. We would not be here today without licences like the GPL. Those who make a fuss about the use of the 'G', consider if you would be still using Windows if there was no GPL. -- Neil Williams ============= http://www.dcglug.org.uk/ http://www.nosoftwarepatents.com/ http://sourceforge.net/projects/isbnsearch/ http://www.williamsleesmill.me.uk/ http://www.biglumber.com/x/web?qs=0x8801094A28BCB3E3
Attachment:
pgp00055.pgp
Description: PGP signature