Books, there are many; There aren’t many books that can change a person’s mind.

For me, The Programming Practice was a book that changed my thinking. Before reading this book, I was more concerned about how to implement a feature, but this book opened up a whole new world for me.

Through this book, I know that the original good program not only realize the function, there are a lot of things to consider, from code style to algorithm data structure, from interface design to performance tuning. Even today, these contents have deeply influenced me. Fortunately, I read this book before I entered the workforce.

In addition to the contents of the book, this book opened a door for me, through which I learned about Unix, I learned about Bell LABS, and I found a direction worth following for the rest of my career. I kept moving forward.

Twenty years later, Brian Kernighan, one of the authors of Programming Practice, has written a book called Unix Legends, which tells the story of the development of Unix. My excitement and excitement can be imagined.

The beauty of the Unix

Unix is self-evident in the position of the entire computer industry, from the IT industry known Linux, to the common people familiar with the Android system, its behind have Unix shadow. Unix is a treasure trove of things for a programmer to learn:

  • Taking it as a sample operating system, we can learn its design and implementation
  • Thinking of it as a programming interface, we can learn from the various apis it provides
  • Using it as a programming environment, we can learn how to use the command line interface and various tools

But there’s something more important about Unix, and it’s not a direct technology, it’s more of a style:

  • Understanding that Unix treats a lot of things like files, and that almost everything can be done with a few simple apis, surprises us with the power of abstraction
  • We saw how different commands could be piped together so that each command could be designed to be small, and we marveled at the power of composition
  • When we accept text as a standard data format, tools of all ages can be used, and we marvel at the power of simplicity

For me, this style of Unix is more of a taste, a beauty of simplicity. I have always believed that a programmer must understand this beauty in order to be a good programmer, so learning Unix is a shortcut to being a good programmer, and a way to improve his taste.

I remember once, a kid who just started working asked me how to improve my programming skills. He is a kid with very good personal ability. He has been working in a team all over Danniu since graduation. Within a short time, he has developed good programming habits and can write programs like flying. I recommend the Art of Unix Programming, Eric Raymond’s book on Unix programming ideas, and the first book that elevated my understanding of Unix from a tool to an idea.

To learn a technology, in my opinion, there are two important points, one is to know the core idea of the technology, the other is to understand the ins and outs of the technology. If Unix Programming Arts taught me the core of Unix, Unix Legends taught me the ins and outs of Unix from a hands-on perspective. From the point of view of us ordinary people, it was a legend.

Unix legend

Unix, is a “hacker” legend

A hacker is someone who has a passion for computers and a deep understanding of them, and the legacy of Unix began with the passion of one hacker, Ken Thompson.

Before that, Bell LABS had just gone through a failed project: Multics. After a successful CTSS (Compatible Time-sharing System) System, MIT intends to do a better System, which is Multics. MIT enlisted the help of General Electric and Bell LABS. A promising system, under the “think too much” guidelines, eventually failed, and Bell LABS opted out. Ken Thompson was one of those who failed. Although Bell LABS dropped Multics, Ken Thompson did not abandon the operating system.

All legends have an exciting beginning.

Ken Thompson wrote a disk drive for the PDP-7. At one point, he found himself three weeks away from an operating system, and he had three programs to write: an editor to create code, an assembler to generate machine code, and an outer layer of the kernel, one week each. At the same time, his wife took three weeks off to visit her in-laws with their one-year-old son.

So Ken Thmopson had three weeks. Week after week, Unix was born.

Unix is an “open source” legend

Unix was born before the concept of open source. But the way Unix is produced, it has an “open source” quality. A group of people with a common interest, one day you contribute a new idea, the next day I have a new idea, and that’s how Unix grew out of the work of Ken Thompson.

Unix Legends tells the story behind the birth of Unix features such as:

  • Why are Unix commands so short? Because they initially used a Model 33 teletype machine, typing was very difficult, so fewer letters saved time.
  • Why are there so many commands for processing text on Unix? Since their machine was purchased with the budget of the patent department, they had to help the patent department with some text processing tasks.
  • Why is Core Dump used in Unix? Because to locate the error, you needed a file to hold the contents of main memory, and back then, main memory used a magnetic Core, or Core. Cores are gone, but Core Dump is not.

Today, many ingenious solutions are created by solving one problem after another.

If Unix had stayed inside Bell LABS, it would not have become what it is today. What really metamorphosed Unix was that it spread beyond Bell LABS, just as someone open-source a project on Github today. As long as it is a truly worthwhile project, it will soon get enough attention. The value of Unix is self-evident, so it’s getting a lot of attention and contributions from all sides:

  • Someone wrote a new branch, like BSD
  • Some people contribute new technologies, like TCP/IP
  • Somebody wrote a new tool, like VI
  • Someone analyzed the code, for example, The Lyons UNIX Source Code Analysis.

Unix even went one step further and entered the commercial arena with distributions similar to Linux distributions today. In fact, Linux is also a descendant of Unix, and its commercialization is also a continuation of Unix commercialization.

Unix is an unreplicable legend

Unix, derived from Bell LABS, and Bell LABS itself is a legendary existence. Claude Shannon, the founding father of information theory, worked at Bell LABS, as did Arno Penzias and Robert Wilson, who won Nobel Prizes for their work at Bell for discovering the cosmic microwave background radiation.

Bell LABS had a stable environment, secure funding, challenging problems, and most importantly, the top talent in the industry. On Kernighan’s first day as an intern at Bell LABS, the man who called him to lunch was Richard Hamming, a Turing Award winner in 1968. It is the convergence of these top talents that leads to the constant collision of thinking sparks and the endless emergence of new ideas.

For these top talent, Bell LABS gives them the most relaxed management, Kernighan repeatedly mentioned that many people do not want to do management, but prefer to face challenging problems. Even as managers, they understand their subordinates and create the best environment for collaboration and development.

After its peak, Bell LABS was no longer the best in the war for talent, either because of the break-up of its parent company, AT&T, or because of the emergence of new giants.

Unix used a group of brilliant minds to solve the problems of its time.

When The Times are gone, even the same group of people cannot show the maximum value. The failure of Plan 9 fully illustrates this point. Plan 9 is an attempt to further refine Unix, which has far less impact on our world today. The most widely used of these technologies today is the UTF-8 encoding of Unicode.

Unix is an unrepeatable legend, but fortunately, the programming ideas that come from Unix have influenced generations of programmers to create new legends.

summary

The Unix legacy of that generation is over for now, but the legacy of Unix is here to stay, deeply embedded in the entire IT industry.

A programmer should learn Unix, it is a shortcut to become a good programmer, a programmer should read the Unix Legend, it is a shortcut to a deep understanding of Unix.