Linux is a family of computer operating systems, that is, software that “manages” a computer.
Linux should really be called GNU/Linux, because Linux is the kernel – the core part of the operating system – that is supported by a vast array of other programs that help manage the computer. An operating system sequences tasks for the processing circuitry of the computer, which used to be called the CPU, but now may be several or even many processing chips. It also controls data flow into and out of memory, and to and from peripherals like disks, network interfaces, printers, scanners, cameras, microphones, speakers and, of course, keyboards and screens. While there is a lot going on to manage, an operating system is really the traffic cop for the data traffic in our computer.
If you have a computer, you need AN operating system, but there are lots of variations and versions. This is true of Microsoft Windows and Macintosh OS as well as Linux. There are other OS's as well (BSD, BeOS, PalmOS, and others). Here we'll focus on the Linux family and why you may want to choose it for your computer. In particular, later on we will tell about the way Linux is produced and the philosophy behind it, as these facets of Linux are extremely important to how people work with it.
If you hear people talking about Linux or writing about it on the Web, there are two main dimensions in which the ensemble we call Linux can vary:
1) The kernel undergoes continual development and improvement, mainly to allow more types of equipment and data structures to be dealt with. Most of these features are introduced as modules which can be selectively added and removed, though a typical user does not need to actually do the work. The kernel versions have quite a few numbers. If you are running a Linux-family operating system, the command
issued in a “terminal” screen will report the kernel version and date and some other information. For example, my computer reports
Linux acer-jn-u 2.6.20-16-generic #2 SMP Tue Feb 12 05:41:34 UTC 2008 i686 GNU/Linux
so my kernel is version 2.6.20-16. Mostly, this is irrelevant to most users who just want to run applications like word processing, playing music, browsing the Internet or doing email.
2) The many choices of the ways in which the kernel and the GNU utilities can be packaged allow different people to put together different distributions of Linux. These will all use various versions of the kernel and evolve with it, but may choose different ways to manage the screen or the handling of installation and removal of application programs. The “distro” you choose will depend on your own needs and situation. See AboutDistros for some help.
Linux is open source (??ref), meaning you can obtain the computer program code for it if you wish. You can even modify that code to your own needs, but under the terms of the license under which that code is distributed, you generally have to contribute your modifications back into the common pool of program code. A simpler way to say this is that Linux is a community development. It is like a barn raising where everyone gets together to help out. You may not be a programmer (carpenter in the barn raising example) but you may still be able to test, document or instruct others (make the lunch!). Even as a plain user, you help to enlarge the body of people familiar with the Linux family.
Generally, Linux is available as a no-cost download. However, some people prefer to have a box, a manual and a CD or DVD. Various entrepreneurs offer such packaging, and they are allowed to charge for it. This is also mentioned under AboutDistros.
As this constitutes advice, I'll point out who is giving it. NashJc is Prof. John Nash of the Telfer School of Management in the University of Ottawa. I am a long-time computer user and software developer as well as a researcher in management. I've been involved with OCLUG and been on its Board for several years. I believe the community development model for open source software and Linux are important parts of a healthy business and intellectual economy.
Separately, there is advice on how to make a machine run both Linux and Windows (dual boot). (??can someone supply this??).