Saturday, November 10, 2012

gnu, linux or gnu/linux?

What is GNU? GNU is a set of tools and a license as well as a philosophy. GNU tools run on top of the Linux kernel which is published under the GPL (GNU Public License) and some even say the proper name is to say GNU/Linux instead of Linux, but I find this silly for the layperson. The kernel or more technically Linux is non-gnu, so things get strange. if you are a developer or administrator then probably the distinction is necessary, but all things must run on the kernel and that is Linux.

The GNU tools are extremely important and they allow us access to the kernel and to create programs. The compiler or the program that makes code runnable for the PC is a GNU tool, it is referred to as gcc or gnu c compiler. Many of the libraries programs need to run are of gnu creation, i.e. the gnu C libraries.

BASH the default shell that we interact with... is a GNU program. BASH can be compared to the DOS command line, but only in a few appearance similarities. They are both text based and you can run programs in each. But after this BASH has things DOS can only dream of being. In of itself BASH is extremely powerful. It is a programming language and sophisticated computer environment at the same time. You will want to become familiar with BASH if it is just to move around the file system or run programs.

One other powerful GNU program is the EMACS text editor. It too is a sophisticated extensible environment as well as the basis for text editing that many programs can employ. The PINE (now alpine) email program comes to mind. Linux users typically fall into two categories, EMACS users and vi users. I am a vi user, however I highly respect the EMACS editor.

Oddly enough, you should never see Linux nor know you are using GNU tools.  Again it is all a bit esoteric, but never-you-mind we are simply Linux users and this is fine in the grand scheme of things.

No comments: