9. Unix philosophy

Joone Hur
F/OSS Comics
Published in
3 min readOct 1, 2023

IT technology has been evolving every day. However, Unix is an exception; its philosophy and code continue to live on in Unix-based operating systems.

“When can I retire?”

Today, when we use Android, we are using the Linux kernel. When we use our iPhones or MacBook, we are using the macOS. Both of these systems are based on Unix.

See this following link for more details https://en.wikipedia.org/wiki/History_of_Unix#/media/File:Unix_history-simple.svg

Minix and Linux did not use Unix code, but implemented the POSIX APIs natively.

Minix was developed by Professor Tanenbaum to teach students. Perhaps he referred to Lion’s commentary on Unix?

Should I try to create an operating system for my class?

Linus Torvalds also created Linux by studying Professor Tannenbaum’s Minix book and source code.

Let’s read the Minix book over the long winter break.
More than 50 years later, how is Unix still used today?

To find the answer, we need to understand Unix philosophy. Of course, when Unix was first written, there was no such thing as a grand philosophy. If you ask me, “Keep it Simple, Stupid.”

“Keep it Simple, Stupid[1].”
“No, please explain the real philosophy, not a joke.”
“Hmmm, I just created it…”
“If I have to explain it, I would say that the Unix philosophy encompasses a cultural and philosophical approach to software development that emphasizes minimalism and modularity. It draws from the collective experience of leading Unix developers who have always championed these principles[1].”
I still don’t understand.

The Unix philosophy is officially documented by Doug McIlroy in the Bell System Technical Journal from 1978:[1]

  1. Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new “features”.
  2. Expect the output of every program to become the input to another, as yet unknown, program. Don’t clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don’t insist on interactive input.
  3. Design and build software, even operating systems, to be tried early, ideally within weeks. Don’t hesitate to throw away the clumsy parts and rebuild them.
  4. Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you’ve finished using them.
“It’s too long”

It was later summarized by Peter H. Salus in A Quarter-Century of Unix (1994)[1]:

  • Write programs that do one thing and do it well.
  • Write programs to work together.
  • Write programs to handle text streams, because that is a universal interface.
Like building Lego

In this way, Unix allowed us to easily create new functionalities by connecting the inputs and outputs of programs together like Lego bricks. Above all, it was written in a high-level language like C rather than assembly language, making it easy to port to other computers.

“Back then, the OS kernel was naturally developed in assembly language. It’s really amazing to develop C and rewrite the OS kernel code with C
“Of course, there is another reason why Unix is still around today, some might say it is piracy. I’ll talk about this later when I get chance…” “Ken, where are you going?
“It’s a secret (a tape with Unix source code)”

References:

[1] https://en.wikipedia.org/wiki/Unix_philosophy

--

--