The Tao of Linux
The Tao of Linux
Author: Unknown
Something forms itself from the silent void of the empty mailing lists and the noisy chaos of the crowded mailing lists. It shapes and protects us, it entertains and challenges us, it aids us in our journey through the ether world of software. It is mysterious; it is at once source code and yet object code. I do not know the name, thus I will call it the Tao of Linux.
If the Tao is great, then the box is stable. If the box is stable, then the server is secure. If the server is secure, then the data is safe. If the data is safe, then the users are happy.
In the beginning there was chaos in Unix.
Tanenbaum gave birth to MINIX. MINIX did not have the Tao. MINIX gave birth to Linux 0.1 and it had promise. Linux gave birth to v1.3 and it was good. v1.3 gave birth to v2.0 and it was better.
Linux has evolved greatly from its distant cousins of the old. Linux is embodied by the Tao.
The wise user is told about the Tao and contributes to it. The average user is told about the Tao and compiles it. The foolish user is told about the Tao and laughs and asks who needs it. If it were not for laughter, there would be no Tao. Wisdom leads to good code, but experience leads to good use of that code.
The master Cox once dreamed that he was a Kernel. When he awoke he exclaimed: "I don't know whether I am Cox dreaming that I am a Kernel, or a Kernel dreaming that I am Cox!" The master Linus then said: "The Tao envelopes you. You shall create great code for Linux." "On the contrary," said Cox, "The Tao has already created the code, I will only have to find it and write it down."
A master was explaining the nature of the Tao to one of his students: "Is the Tao in the VM subsystem?" he asked. "Yes," replied the master. "Is the Tao in the scheduler?" he queried again. "The Tao is in the scheduler." "Is the Tao even in the modules?". "It is even in the modules," said the master. "Is the Tao in the Low-Latency Patch?" The master frowned and was silent for much time. "You fail to understand the Tao. Go away."
The Tao is the yin and the yang. It is the good and the evil, it is everything and yet it is nothing, it is the beginning and the end.
The Tao was there at the kernel compile, and it will be there when the kernel panics.
A novice user once asked a master: "Why compile in C when C++ is more popular?" "Why a monolythic kernel when Mach is more popular?" "And why use ReiserFS when ext2 is more popular?" The master sighed and replied: "Why run Unix when NT is more popular?" The user was enlightened.
A frustrated user once asked a master: "My kernel has panicked, should I post to lkml?" "No," replied the master, "You will only bother the Tao." "Should I rm -rf?" "No, you will have wasted the Tao's time." "Well should I search the web?" "You will search for all eternity," said the master. "Perhaps I should try FreeBSD?"
"Then you will have disgraced the Tao." "I suppose I could try gdb," said the user. The master smiled and replied: "Then you will have made the Tao stronger."
A stubborn user once told a master: "I run version 2.2. I always have, and I always will." The master replied: "You are foolish nd do not understand the Tao. The Tao is dynamic and ever changing. Linux strives for the perfection that is the Tao. It flows from version to version with peace." "So my Linux does not have the Tao, so what?" said the foolish user. "Oh your Linux is of the Tao," said the master. "However, the Tao of Linux follows the Tao of the C library. One day the C library will change, and your Linux will be left behind." The user was silent.
An angry user once yelled at a master: "My Linux has panicked! What lousy software it is, I hate it so!" "You are insulting the Tao," said the master. "The Tao is everywhere bringing order to hundreds of networks, aiding thousands of users, and fighting that of which we call the 'lame.' Do not disrespect the Tao; however, the Tao will forgive you." "I apologize," said the user, "And I will be more forgiving the next time the Tao fails me." "The Tao has not failed you, it is you that has failed the Tao," said the master. "The Tao is perfect." The Tao decides if a kernel shall compile, or if it shall abort. The Tao decides if a kernel shall boot, or if it shall freeze. The Tao decides if a kernel shall run, or if it shall panic. But, the Tao does not decide if a box will have no hardware failures. That is a mystery to everyone.
A young master once approached an old master: "I have a LUG for Linux help. But, I fail to answer my students' problems; they are above me." The master replied: "Have you taught them of the Tao?" he asked. "How it brings together man and software, yet how it distances them apart; how if flows throughout Linux and transcends its essence?" "No," exclaimed the apprentice, "These people cannot even get the source untarred." "Oh, said the master, "In that case, tell them to RTFM."
A master watched as an ambitious user reconstructed his Linux. "I shall make every bit encrypted," the user said. "I shall use 2048 bit keys, three different algorithms, and make multiple passes." The master replied: "I think it is unwise." "Why?" asked the user. "Will my encryption harm the mighty Tao, which gives Linux life and creates the balance between kernel and processes? The mighty Tao, which is the thread that binds the modules and links them with the core? The mighty Tao, which safely guides the TCP/IP packets to and from the network card?" "No," said the master, "It will hog too much cpu."
The core is like the part of the mind that is static. It is programmed at a child's creation and cannot be changed unless a new child is made; unless a new kernel is compiled. The modules are like the part of the mind that is dynamic. It is reprogrammed every time one learns new knowledge; every time one learns better code. One is yin, the other yang. Each is nothing without the other.
A novice came to lkml and inquired to all the masters there: "I wish to become a master. Must I memorize the Linux header files?" "No," replied a master. "Must I submit code to Bitkeeper?" "No," replied the master. "Must I meditate daily and dedicate my life to Linux?" "No," replied the master again. "Must I go on a quest to ponder the meaning of the Tao?" "No. A master is nothing more than a student who knows something of which he can teach to other students." The novice understood. And thus said the master: "It is the way of the Tao."
A user came to a master who had great status in lkml. The user asked the master: "Which is easier: implementing new features to the kernel or documenting them?" "Implementing new features," replied the master. The confused user then exclaimed: "Surely it is easier to write a few sentences in the man page than it is to write pages of code without error?" "Not so," said the master. "When coding, the Tao of Linux opens my eyes wide and allows me to see beyond the code, to let the source flow from my fingers, to implement without flaw. When documenting, however, all I have to work with is a C in high school English."
He who compiles from the stable tree is stubborn and unwilling to change, but is guaranteed reliability. He who compiles from the current tree is wise but perhaps too conformist, but is guaranteed steadiness. He who compiles from the unstable tree is adventurous and is guaranteed new innovations: some good, some bad. He who compiles straight from Bitkeeper is brave but guaranteed turbulence. They are all of the Tao. One shall respect the old, and debug the new; none shall argue over which is greatest.
There once was a user who scripted in Perl: "Look at what I have to work with here," he said to a master of core, "My code is interpreted dynamically, the syntax is unique and simple, I have sockets, strings, arrays, and everything I could ever need. Why don't you stop meddling in C and come join me?" The C programmer described his reasoning to the scripter: "Script is to C as ebonics is to Latin. If the scripter does not grow beyond that of which he scripts, he will surely die. Besides, without C, how can there be script?" The scripter was enlightened, and the two became close friends.