Friday, April 20, 2007

THE UNIX PHILOSOPHY

UNICES are beautiful operating systems, in every sense. They truly represent the freedom and independence of human intelligence and knowledge, as to it is no one's property; but human knowledge belong to society.
There is much more to unix than what i can describe here, but with such meager amount of shallow knowledge, i cannot say everything about their greatness.

I will rather start with 3 basic principles of unixes:
1. No captive interfaces:
Now this the thing, which is loveliest of all. The very assumption that the user knows what he is doing, makes me feel great about myself. This gives a feeling of power and control.
Every time, i do
#rm /tmp/file
I am not bugged, by the obvious, that whether was that an intension or not. Yes, off course i mean to do it; why the hell are you asking?

The simplicity of interfaces leaves me awe stuck elegant interfaces like menuconfig are clean and thrifty and still very very powerful. And again they do not bother for doubly conforming every move of yours, just clean.

2. KISS(Keep it simple stupid).
All unix utilities are meant to do just one thing and they do it well. Entire philosophy of unix surrounds around making simpler utility, which just does one task.And for every other task rather than loading the program with multiple enhancement, which makes it difficult to use and leaving the user wondering about the result, they would rather make an another simple program.
grep is one such simple, yet powerful tool, it just searches string, but it does it so well, that i consider it most handy tool for many of my searches.
There are numerous examples of such utilities, but I think "grep" will suffice here.

3. Everything is a file.
This is what i call a pure work of genius. I bow before all you lords of Unices, who have such a great vision. Now look at this: you know every thing is written in form of text file and your most utilities and apis have a symmetric and simple method of manipulating the file. You simply do not worry what kind of file it is. By that, i do not mean you treat all kinds of file in same manner, off course there is a semantic for different kind of files. But the very fundamental that behavior of file system and related utilities are transparent makes file system management very easy.
Now one such extension of this concept is device files, a hard disk or a cd rom is a special file, which is manipulated in different manner than other files, but still stored and listed in same manner as any other file. Gosh! Unix is just great.

Not although fundamental principle of Unices, but yes they are the adopted conventions that leaves me speechless in the way they are implemented. First thing is clean file system, everything lies here my boy ---> "/". You just can mount anything to everything, under this very "root".
Unices provides immensely potential environment for software development, they just have prefect editor, perfect debbuger, perfect compiler. What else do i need? Can anyone beat that?

Lets consider security. By the very nature of their existence, unixes and networking has been so close and been developing together that networking support in Unices is seem less. With such strong networking support, the security becomes an important aspect. And on this front also, unices are much more secure than other operating systems.
Unices are safe, secure, stable, simple, clean, powerful for all sorts of applications and yet they are flexible, portable and scalable. Shall i need to say more.



No comments: