What is Linux? What is Free Software?
This blog entry is to help answer two questions: "What is Linux?" and "What is Free Software?"
These two questions are often not asked directly. Instead people ask questions like "What is so different about Linux?".
These are great questions and are all extremely important to understand, but the answers to them touch on subjects that may be seemingly unrelated; I have only an idea of where to begin answering them. If this post seems a bit stretched it is because all of these points really do need to be taken in together to understand the basics of GNU/Linux, and Free Software.
What Is Linux?
First of all, on this website we refer to the "Linux" operating system by a much more accurate name, GNU/Linux. You see, the Linux is actually the name of the Kernel running at the heart of the operating system. Every operating system has a kernel. Microsoft has a name for theirs, and I bet so does Apple. Well, Linux runs at the heart of this O.S., underneath a ton of software helper programs and applications. The GNU in GNU/Linux is there because only the kernel is named "Linux" while the rest of the software that makes up the operating system are written by people and projects that publish their work under a Free Software license. The GNU Project was the single original maker of Free Software replacement programs, and lots of the original GNU members quit their jobs to write Free Software full-time; starting with Richard Stallman in 1985.
The team working on the early kernel with Linus Torvalds(the original author) knew about the GNU software and in fact used it's compiler and tools to create Linux. When they were ready for release of their kernel, they grabbed the rest of the GNU stuff off of the internet, plugged their kernel into it and the GNU/Linux operating system was born. They of course called it Linux since that was the name of their project, and the name stuck.
In the years before Linus even started writing the Linux kernel, Richard Stallman created the GNU-General Public License(GNU-G.P.L.) to allow the GNU Project as well as others that they hoped would follow their lead, in creating Free Software. Most of the time the GNU-G.P.L. is used to publish Free Software used in GNU/Linux, but there are others. The Apache license is a good example. The important part of this is that even though the GNU Project is responsible for a smaller amount of software in GNU/Linux these days due to the massive growth of GNU/Linux, all of the software projects currently going on follow in their footsteps. The GNU Project blazed the trail for everyone else to follow, provided the tools, and proved what can be done. Because of their original position, their enormous contribution over time with the GNU-G.P.L. and their creation of the Free Software Foundation to serve as an anchor for Free Software worldwide, we refer to the operating system as a whole as GNU/Linux.
There are those that argue the Linux kernel IS the operating system, and I respectfully say they are fully wrong. The Kernel is without a doubt the heart of the operating system, and without it, no work gets done. However it is a very small amount of code compared to the rest of the OS. Without drivers, services, libraries, and applications, no work gets done either. Plus the Debian project now has a working prototype of an operating system using the kernel from BSD Unix. So you see it is in fact a component of the operating system and can be replaced. But the G.P.L. license, and all the machinery in place such as the Free Software Foundation to allow Free Software to flourish is there as a direct result of the GNU Project in general and specifically Richard Stallman.
Therefore more accurate name for “Linux” is GNU/Linux.
Regarding the Technical aspects of GNU/Linux:
GNU/Linux is a Unix-Like operating system that is designed around security, handling multiple processes simultaneously, and solid engineering. Programs written for GNU/Linux are encouraged to do one thing, and do it well. This philosophy has taken hold among the developers of GNU/Linux software and serves to create an environment where it is more important for your code to work well, than for your code to do many functions.
Regarding the Free aspects of GNU/Linux:
GNU/Linux is published under what is called the GNU - General Public License, or GPL for short. This license is used by the Linux kernel, as well as most of the applications and additional components used to turn an installation of GNU/Linux into various types of servers, or workstations with various loadouts of major applications. The conditions of
the GPL are expressed in the 4 freedoms specified by the Free Software Foundation.
What Is Free Software?
The following is taken directly from GNU.ORG and addresses all the technical questions of What is Free Software.
Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
A program is free software if users have all of these freedoms. Thus, you should be free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission.
You should also have the freedom to make modifications and use them privately in your own work or play, without even mentioning that they exist. If you do publish your changes, you should not be required to notify anyone in particular, or in any particular way.
The freedom to run the program means the freedom for any kind of person or organization to use it on any kind of computer system, for any kind of overall job and purpose, without being required to communicate about it with the developer or any other specific entity. In this freedom, it is the user's purpose that matters, not the developer's purpose; you as a user are free to run a program for your purposes, and if you distribute it to someone else, she is then free to run it for her purposes, but you are not entitled to impose your purposes on her.
The freedom to redistribute copies must include binary or executable forms of the program, as well as source code, for both modified and unmodified versions. (Distributing programs in runnable form is
necessary for conveniently installable free operating systems.) It is ok if there is no way to produce a binary or executable form for a certain program (since some languages don't support that feature), but you must have the freedom to redistribute such forms should you find or develop a way to make them.
In order for the freedoms to make changes, and to publish improved versions, to be meaningful, you must have access to the source code of the program. Therefore, accessibility of source code is a necessary condition for free software.
As you can see, this pretty much means that the only perquisite to this is that if you decide to use GPL licenced software as a base for a project you are doing, and then you choose to release your own version of that software, you must also release the source code for your new version. After all, you borrowed from the community for your needs, it's your responsibility to give back to the community.
(next blog: "How do you make money with Free Software") - thanks Andy

Recent comments
14 weeks 1 day ago
14 weeks 3 days ago
2 days 20 hours ago
15 weeks 3 days ago