Unix philosophy and principles

20
Linux Philosophy and principles

Transcript of Unix philosophy and principles

Page 1: Unix philosophy and principles

Linux Philosophy and principles

Page 2: Unix philosophy and principles

Unix philosophy The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to developing small software's.

Page 3: Unix philosophy and principles

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.

Page 4: Unix philosophy and principles

Everything is a file: UNIX systems have many powerful utilities designed to create and manipulate files.

Page 5: Unix philosophy and principles

Small, single purpose programs UNIX provides many small utilities that perform one task very well.

Page 6: Unix philosophy and principles

Chaining programs together

A core design feature of UNIX is that the output of one program can be the input for another.

Page 7: Unix philosophy and principles

Avoid captive users interfaces:

Interactive commands are rare in UNIX. Most commands expect their options and arguments to be typed on the command line.

Page 8: Unix philosophy and principles

Configuration data stored in text.Text is a universal interface, and many UNIX utilities exist to manipulate text.

Page 9: Unix philosophy and principles

Origin

Doug McIlroy attributes the philosophy of combining "small, sharp tools "to accomplish larger tasks to Ken Thompson, one of the creators of Unix.

Page 10: Unix philosophy and principles

Unix programing environment

Even though the UNIX system introduces a number of innovative programs and techniques, no single program or idea makes it work well.

Page 11: Unix philosophy and principles

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.

Page 12: Unix philosophy and principles

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 of Transparency And more….

Page 13: Unix philosophy and principles

Rule of Modularity This rule aims to

save time on debugging code that is complex, long, and unreadable.

Page 14: Unix philosophy and principles

Rule of ClarityThis rule aims to make code readable and comprehensible for whoever works on the code in future.

Page 15: Unix philosophy and principles

Rule of Composition This rule aims to allow developers to break

down projects into small, simple programs rather than overly complex monolithic programs.

Page 16: Unix philosophy and principles

Rule of SeparationThis rule aims to let policies be changed without destabilizing mechanisms and consequently reducing the number of bugs.

Page 17: Unix philosophy and principles

This rule aims to discourage developers’ affection for writing “intricate and beautiful complexities” that are in reality bug prone programs.

Page 18: Unix philosophy and principles

Rule of ParsimonyThis 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.

Page 19: Unix philosophy and principles

Rule of Transparency

This rule aims to reduce debugging time and extend the lifespan of programs.

Page 20: Unix philosophy and principles

https://linuxtutorials4u.wordpress.com/2011/09/03/linux-principles/

https://en.wikipedia.org/wiki/Unix_philosophy