Linux Philosophy and
principles
Unix philosophy
The Unix philosophy, originated by KenThompson, is a set
of cultural norms and philosophical approaches to
developing small software's.
Linux philosophy
1) Everything is a file.
2) Small, single-purpose programs.
3) Ability to chain programs together to perform complex tasks.
4) Avoid captive user interfaces.
5) Configuration data stored in text.
Everything is a
file:
UNIX
systems
have many
powerful
utilities
designed to
create and
manipulate
Small, single
purpose
programs
UNIX provides
many small
utilities that
perform one
task very well.
Chaining programs together
A core design feature of UNIX is
that the output of one program
can be the input for another.
Avoid captive
users interfaces:
Interactive
commands are
rare in UNIX.
Most commands
expect their
options and
arguments to be
typed on the
Configuration data stored
in text.
Text is a
universal
interface,
and many
UNIX
utilities exist
to
Origi
n
Doug McIlroy attributes the philosophy of combining "small, sharp
tools "to accomplish larger tasks to KenThompson, one of the creators
of Unix.
Unix
programing
environmentEven though the UNIX system introduces a
number of innovative programs and
techniques, no single program or idea makes
it work well.
Program
design
Much of the power of the
UNIX operating system
comes from a style of
program design that
makes programs easy to
use and easy to combine
with other programs.
Eric Raymond’s 17 Unix Rules
 Rule of
Modularity
 Rule of Clarity
 Rule of
Composition
 Rule of
Separation
 Rule of Simplicity
 Rule of Parsimony
 Rule ofTransparency
 And more….
Rule of
ModularityThis rule aims to save
time on debugging code
that is complex, long, and
unreadable.
Rule of Clarity
This rule aims to make code readable and
comprehensible for whoever works on the
code in future.
Rule of
Compositio
nThis rule aims to allow developers to break down projects
into small, simple programs rather than overly complex
monolithic programs.
Rule of Separation
This rule aims to let
policies be changed
without destabilizing
mechanisms and
consequently
reducing the number
of bugs.
This rule aims to
discourage
developers’
affection for
writing “intricate
and beautiful
complexities” that
are in reality bug
prone programs.
Rule of Parsimony
This rule aims to prevent overinvestment of
development time in failed or suboptimal
approaches caused by the owners of the
program’s reluctance to throw away visibly large
pieces of work.
Rule of
Transparency
This rule aims to
reduce debugging
time and extend the
lifespan of programs.
https://linuxtutorials4u.wordpress.com/2011/09/
03/linux-principles/
https://en.wikipedia.org/wiki/Unix_philosophy

Unix philosophy and principles