Introduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSI
1. Introduction to
GNU, Free Software, FSF, Copyleft,
GNU/Linux System,
Open Source, OSI
Author:
Varun Mahajan
<varunmahajan06@gmail.com>
2. Contents
●
Operating System Definition
●
Computer System Structure
●
UNIX System Architecture (1969)
●
Free Software
●
The GNU Project (1984)
●
Free Software Foundation (FSF) (1985)
●
Making a Program Free Software: Copyleft
●
Copyleft Implementation
●
GNU GPL
●
Related Terms
●
Monolithic Kernel Vs Microkernel
●
GNU Hurd (1990)
●
Linux (1991)
●
GNU/Linux System
●
Open Source Initiative (OSI) (1998)
●
Comparison of Free s/w and Open Source s/w
3. Operating System Definition
In general, there is no universally accepted definition of what is a part of the
Operating System
●
A simple viewpoint is that it includes everything a supplier ships when
you order 'The Operating System'
●
A more common definition is that the Operating System is the one program
running at all time (usually called the Kernel which performs the
functions of controlling and allocating resources), with all else being
System Programs and Application Programs
Application/System
The latter one is generally followed Programs
Operating System
(Kernel)
H/W
5. UNIX System Architecture (1969)
UNIX System:
●
Development started in 1969 at AT&T
●
Proprietary Software
6. Free Software
'Free software' is a matter of liberty, not price. To understand the concept,
one should think of 'free' as in 'free speech' not as in 'free beer'
It means that the program's users have the four essential freedoms:
●
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 distribute copies of your modified versions to others (freedom 3).
By doing this you can give the whole community a chance to benefit from your changes.
Access to the source code is a precondition for this
Since “free” refers to freedom, not to price, there is no contradiction
between selling copies and free software. In fact, the freedom to sell
copies is crucial: collections of free software sold on CD-ROMs are important
for the community, and selling them is an important way to raise funds for
free software development
7. The GNU Project (1984)
●
The name “GNU” is a recursive acronym for “GNU's Not Unix!”; — it is pronounced g-noo,
as one syllable with no vowel sound between the g and the n
●
The GNU Project was launched in 1984 by Richard Stallman, to develop a complete
Unix-like System called GNU which is free software. Unix-like Systems are built from a
collection of libraries, applications and developer tools — plus a program to allocate resources
and talk to the hardware, known as a kernel
●
An Excerpt form Richard Stallman's Initial Announcement: (September 27, 1983
http://www.gnu.org/gnu/initial-announcement.html)
“Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for
Gnu's Not Unix), and give it away 'free' to everyone who can use it. To begin with, GNU will be a kernel plus
all the utilities needed to write and run C programs: editor, shell, C compiler, linker, assembler, and a few
other things. After this we will add a text formatter, a YACC, an Empire game, a spreadsheet, and hundreds
of other things. We hope to supply, eventually, everything useful that normally comes with a Unix system,
and anything else useful, including on-line and hardcopy documentation.”
Applications,
libraries, Developer
Tools
Unix-like
System Kernel
8. Free Software Foundation (1985)
The Free Software Movement (FSM) is a social and political movement
with the goal of ensuring software users' four basic freedoms (Definition of
'Free Software')
The Free Software Foundation (FSF) is a nonprofit founded by Richard
Stallman in 1985 to support the Free Software Movement
The core work:
• Maintains historic articles covering Free Software Philosophy and maintains the
Free Software Definition
●
Sponsors the GNU Project
●
The FSF holds copyright on a large proportion of the GNU system, and other free
software
●
The FSF publishes different licenses e.g. GNU GPL,etc
●
The FSF campaigns for free software adoption and against proprietary software
●
The FSF also provides important resources (s/w, h/w) to the community
GNU/LinuxOffline
9. Making a Program Free Software
The simplest way:
Put it in the public domain, uncopyrighted. This allows people to share the
program and their improvements
The Problem:
It also allows uncooperative people to convert the program into proprietary
software. They can make changes, many or few, and distribute the
result as a proprietary product. People who receive the program in that
modified form do not have the freedom that the original author gave them;
the middleman has stripped it away
The Intention:
Anyone who redistributes the software, with or without changes, must pass
along the freedom to further copy and change it
10. Copyleft
Copyleft is a general method for making a program (or other work) free
and requiring all modified and extended versions of the program to be
free as well
To copyleft a program:
●
State that it is copyrighted
●
Add distribution terms, which are a legal instrument that gives everyone the rights
to use, modify, and redistribute the program's code, or any program derived from it,
but only if the distribution terms are unchanged. Thus, the code and the freedoms
become legally inseparable
Copyleft is a way of using of the copyright on the program. It doesn't mean
abandoning the copyright; in fact, doing so would make copyleft impossible.
The 'left' in 'copyleft' is not a reference to the verb 'to leave'—only to the
direction which is the inverse of 'right'
11. Copyleft Implementation
Copyleft is a general concept, and you can't use a general concept directly;
you can only use a specific implementation of the concept
The FSF defines the following implementations:
• GNU General Public License (GNU GPL): Used for most software in the GNU
Project
●
GNU Lesser General Public License (GNU LGPL): Applies to a few (but not all)
GNU Libraries
●
GNU Affero General Public License (GNU AGPL): Specifically designed to
ensure cooperation with the community in the case of network server software
●
GNU Free Documentation License (GNU FDL): Intended for use on a manual,
textbook or other document to assure everyone the effective freedom to copy and
redistribute it, with or without modifications, either commercially or noncommercially
All these licenses are designed so that you can easily apply them to your own
works, assuming you are the copyright holder. You don't have to modify the
license to do this, just include a copy of the license in the work, and add
notices in the source files that refer properly to the license
12. GNU GPL
The GNU General Public License is a free, Copyleft license for software and
other kinds of works
Highlights:
●
Developers that use the GNU GPL protect user's rights with two steps:
●
Assert copyright on the software
●
Offer the user this License giving him legal permission to copy, distribute and/or modify it
●
If the user distributes the copies of such a program, whether gratis or for a fee, he must pass
on to the recipients the same freedoms that he received. He must make sure that they,
too, receive or can get the source code. And he must show them these terms so they know their
rights
●
For the developers' and authors' protection, the GPL clearly explains that there is no warranty
for this free software. For both users' and authors' sake, the GPL requires that modified
versions be marked as changed, so that their problems will not be attributed erroneously to
authors of previous versions
●
Every program is threatened constantly by software patents. States should not allow patents to
restrict development and use of software on general-purpose computers, but in those that do,
we wish to avoid the special danger that patents applied to a free program could make it
effectively proprietary. To prevent this, the GPL assures that patents cannot be used to
render the program non-free
●
The GPL does not permit incorporating your program into proprietary programs. GPL
for a library makes it available only for free programs
13. Related Terms
Copylefted Software:
Copylefted software is free software whose distribution terms ensure that all copies
of all versions carry more or less the same distribution terms
●
There are many possible ways to write copyleft distribution terms, so in principle there can
be many copyleft free software licenses. Two different copyleft licenses are usually
'incompatible' (it is illegal to merge two codes with different copyleft licenses)
●
However, in actual practice nearly all copylefted software uses the GNU General Public
License
●
It has to be Copyrighted
Non-Copylefted Free Software:
Non-copylefted free software comes from the author with permission to redistribute
and modify, and also to add additional restrictions to it
●
If a program is free but not copylefted, then some copies or modified versions may not
be free at all
●
A software company can compile the program, with or without modifications, and distribute
the executable file as a proprietary software product
●
It may or may not be Copyrighted
14. Related Terms
Public Domain Software:
'Public domain' is a legal term and means, precisely, 'not copyrighted'. So, the
Public Domain Software is the software that is not copyrighted
●
If the source code is in the public domain, that is a special case of non-copylefted
free software, which means that some copies or modified versions may not be free at all
●
In some cases, an executable program can be in the public domain but the source
code is not available. This is not free software, because free software requires
accessibility of source code
GNU Software:
GNU software is software that is released under the auspices of the GNU Project. If a
program is GNU software, we also say that it is a GNU program or a GNU package
●
Most GNU software is copylefted , but not all
●
All GNU software must be free software
16. GNU Hurd (1990)
By 1990 almost all of the important System/Application programs which were
required for the GNU System had been written. The only important program
that was missing was the 'Kernel'
The GNU Hurd is the GNU project's replacement for the Unix kernel
(Development started in 1990)
●
Microkernel Based Operating system
●
It is a collection of servers that run on the Mach microkernel to implement file
systems, network protocols, file access control, and other features that are
implemented by the Unix kernel
Project Mach was an operating systems research project of the Carnegie
Mellon University School of Computer Science from 1985 to 1994
The Hurd still lacks some important features, so it is not widely used
17. GNU System
The GNU System is the Unix-like System, which is entirely free software,
that has been developed in the GNU Project since 1984
• Operating System: GNU Hurd Kernel
• System/Application Programs: GNU Software and some Non-GNU
Software
Other packages
GNU Software
which are not
(binutils (ld, as, etc), bash, gcc, g++,
GNU software (X
glibc, gdb, gtk+, make, GNOME,
Window System,
EMACS, etc)
TeX, etc)
GNU Hurd kernel
18. Linux (1991)
In 1991 Linus Torvalds started a personal project to implement a new
kernel called 'Linux' for his Intel 80386 PC, which was released under GNU
GPL (1992)
●
Monolothic Kernel
Soon it became very popular and filled the gap in the GNU System: The
Kernel
19. GNU/Linux System
• Operating System: Linux (Kernel)
• System/Application Programs: GNU Software and some Non-GNU
Software
Most of the users wrongly refer to this whole system as 'Linux'
(http://www.gnu.org/gnu/why-gnu-linux.html)
Other packages
GNU Software
which are not
(binutils (ld, as, etc), bash, gcc, g++,
GNU software (X
glibc, gdb, gtk+, make, GNOME,
Window System,
EMACS, etc)
TeX, etc)
Linux
20. Open Source Initiative (1998)
Open source:
It is a development method for Software
●
People can collaborate on software development without being burdened by the
problems of Intellectual Property, Contracts negotiations while buying software, etc
●
Sacrifice some of the Intellectual property rights for the sake of Co-operation
Open Source Initiative (OSI):
It is a non-profit corporation formed by Eric Raymond and Bruce Perens in 1998
and is dedicated to promoting Open Source Software
It reviews and maintains a list of Open Source Licenses which comply with the Open
Source Definition
21. Open Source Definition
Defined by Bruce Perens
• Free Redistribution: The license shall not restrict any party from selling or giving away the software as a
component of an aggregate software distribution containing programs from several different sources. The
license shall not require a royalty or other fee for such sale
• Source Code: Must include source code
• Derived Works: The license must allow modifications and derived works, and must allow them to be
distributed under the same terms as the license of the original software
●
Integrity of The Author's Source Code: The Authors can maintain their honor. For example,
changes made by another programmer can be marked in his name so that they don't reflect on the author
●
No Discrimination Against Persons or Groups
●
No Discrimination Against Fields of Endeavor: The license must not restrict anyone from making
use of the program in a specific field of endeavor (business or school, etc)
●
Distribution of License: The rights attached to the program must apply to all to whom the program is
redistributed
●
License Must Not Be Specific to a Product: The rights attached to the program must not depend
on the program's being part of a particular software distribution
●
License Must Not Restrict Other Software: The license must not place restrictions on other
software that is distributed along with the licensed software. For example, the license must not insist that all
other programs distributed on the same medium must be open-source software
●
License Must Be Technology-Neutral
22. Comparison of Free S/w and Open Source S/w
Basic difference in the philosophy of Richard Stallman and Bruce Perens:
●
Richard Stallman: All Software to be free
●
Bruce Perens: Free and Non-Free Software should co-exist
Free Software Movement and the Open Source movement
23. References
●
http://www.gnu.org/
●
http://www.fsf.org/
●
http://www.opensource.org/
●
Operating System Principles, 7th ed, Silberschatz, Galvin, Gagne
●
The Design of the UNIX Operating System, Maurice J Bach
●
Monolithic kernel vs. Microkernel, Benjamin Roch, TU Wien
●
Documentary: Revolution OS