Linux and it’s History

The Philosophy and History of Linux


Introduction

This article explores the concept of Open Source, the initiatives behind it, the origins of Linux, and the principles that guide its development.


Open Source

The Open Source Initiative

Open Source software is characterized by:

  • Free availability and distribution of the software and its source code.
  • The freedom to modify the source code and create derivative works.
  • The requirement for changes to the code to be provided in patch form to maintain the integrity of the original author’s work.
  • The inheritance of the license, ensuring those who receive the distribution are subject to the same terms.
  • The license being nondiscriminatory with respect to individuals, groups, or fields of endeavor, and free of restrictions that can limit the license.

The Free Software Foundation

The Free Software Foundation advocates for:

  • The freedom to execute the software for any purpose.
  • The availability of the source code for others to study its workings.
  • The freedom to redistribute the software.
  • The freedom for everyone to modify the software.

Linux Origins

The Free Software Foundation (FSF) initiated the GNU Project in 1984 to develop a UNIX-like operating system. The project began by creating replacements for UNIX utilities (such as bash, ls, etc.), eventually developing a complete set of tools, libraries, and other materials. To promote their ideas of software freedom, they created the General Public License (GPL), a license that enforces the Four Freedoms espoused by the FSF. Today, most utilities and applications included with Red Hat Linux are also covered by the GPL.

In 1991, Linus Benedict Torvalds, a graduate student at Helsinki University in Finland, created an Open Source UNIX-like kernel, which was released under the GPL.

Today, the combination of the Linux kernel and GNU utilities forms a complete open source UNIX-like operating system.

A kernel is the most fundamental part of an operating system, providing services to other user-level commands, such as the ability to communicate with hard disk and other hardware components.


Linux Principles

  1. Everything is a file – including hardware: Linux and UNIX systems have many powerful utilities designed to create and manipulate files. The security model of these systems is based around file security. By treating everything as a file, a consistency emerges, allowing hardware access to be secured in the same way as document access.
  2. Small single-purpose programs: Linux and UNIX provide many small utilities that perform one task very well. When new functionality is required, the general philosophy is to create a separate program rather than extending an existing utility with new features.
  3. Ability to chain programs together to perform complex tasks: A core design feature of Linux and UNIX is that the output of one program can be the input for another program. This gives users the flexibility to combine many small programs together to perform larger, more complex tasks.
  4. Avoid captive user interface: Interactive commands are rare in Linux and UNIX. Most commands expect their options and arguments to be typed on the command line when the command is launched. Interactivity is reserved for programs where it makes sense, for example, text editors (though there are non-interactive text editors too).
  5. Configuration data stored in text: Text is a universal interface, and many Linux and UNIX utilities exist to manipulate text. Storing configuration in text allows an administrator to easily move a configuration from one machine to another. There are several revision control applications that enable an administrator to track changes made at a particular date and time.

Comments

Leave a Reply