The post has been translated automatically. Original language: Russian
By 1998, I already knew about Unix and wanted to get to know this system not only from books. I printed out one of the books about Unix entirely for myself, because it was almost impossible to find it on sale at that time. I studied the commands and the structure of the system, but reading was still theory.
I wanted to see real Unix at work, write programs, try commands, and figure out the system on my own. Therefore, the opportunity to work with Unix has become an important step in my professional development.
French Zenith on Intel 486
My first real Unix machine was a French Zenith computer running on Intel 486. SCO Unix was installed on it, and the system distribution was stored on magnetic tape.
Today, the combination of Intel 486, magnetic tape, and a text terminal looks almost museum-like. In 1998, it was a working computing system that solved completely real problems.
I was especially pleased when a C compiler was found inside the system. Now Unix could not only be studied as a user, but also explored from a programmer's point of view.
The book has become a working system.
Before that, Unix existed for me mainly on the pages of a printed book. Now almost every idea could be tested by yourself.
Files, directories, processes, rights, devices, and the command shell are no longer just terms. They became parts of the same working model. The more I worked with it, the clearer the internal logic of the system became.
Unix gave the impression of a system that could be gradually understood. Start with a few commands, then figure out the shell, write a program in C, look at the system functions, and go down step by step.
A computer as a system, not a device
Before that, it was easy to think of a computer as a set of programs that you need to use. Unix showed a different picture.
The program here was just one part of the system. She worked with files, started processes, interacted with other programs, received data and passed the result on. All of this was interconnected by a relatively small set of common mechanisms.
It was this integrity that I particularly liked. Having mastered a few basic ideas, it was possible to apply them over and over again in a variety of tasks.
The command line turned out to be no limitation
The graphical interface usually tries to suggest possible actions to a person in advance: buttons, menus, windows. The command line looks poorer at first because it offers practically nothing on its own.
But gradually the downside is revealed. Commands can be combined, transfer the result of one program to another, and assemble more complex work from simple actions.
This greatly changed the attitude towards the computer. Instead of a set of ready-made scenarios, you were faced with building blocks from which you could create your own.
Later, I came across these ideas already formulated as Unix principles, but for the first time I felt them behind that machine.
The C compiler opened up the next level
Historically, C and Unix are very closely related. A significant part of Unix was rewritten in C at the beginning of its development, and the language allowed it to work quite close to the operating system.
Therefore, the presence of a compiler transformed the machine from a ready-made workplace into an environment for research. You could write a small program and see how it interacts with files, processes, and other system features.
It was especially interesting for me. I wanted to understand not only Unix commands, but also what is underneath them.
Information had to be obtained differently
Today, almost any question on Unix or Linux can be asked to a search engine or artificial intelligence and answered in a few seconds. In the late nineties, knowledge spread in a completely different way.
Books were hard to find. The documentation was read carefully. Useful materials were saved, printed, and passed on to each other. If there was a good book, it was really valuable.
That's probably why technical literature was treated differently back then. The book was not just scanned in search of a ready-made command, but was consistently studied, because another source of explanation could not appear for a long time.
First there was practice, then Raymond
I read "The Art of Unix Programming" by Eric Raymond much later. Therefore, my introduction to the Unix philosophy happened in the opposite order.
First there was Unix itself: Zenith, Intel 486, SCO, magnetic tape, command shell, and the C compiler. And only then did texts appear that explained why this system was built in this particular way.
Many of Raymond's ideas were therefore perceived as a description of an already familiar experience. Simple tools, small programs, clear boundaries, a combination of tools — all this first came across to me in the system itself.
A year later, Linux appeared
In 1999, the story continued on my own computer. Linux allowed you to go much further: you could download the source code of the kernel, customize it for a specific machine, and build it yourself.
But the first machine was this one, the French Zenith on Intel 486 with SCO Unix.
From there, Unix ceased to be a name from a book for me and became a way to look at the structure of software systems.
К 1998 году я уже знал об Unix и хотел познакомиться с этой системой не только по книгам. Одну из книг об Unix я распечатал себе целиком, потому что найти её в продаже тогда было практически невозможно. Я изучал команды и устройство системы, но чтение всё равно оставалось теорией.
Мне хотелось увидеть настоящий Unix в работе, писать программы, пробовать команды и разбираться в системе самостоятельно. Поэтому возможность работать с Unix стала для меня важным шагом в профессиональном развитии.
Французский Zenith на Intel 486
Моей первой настоящей Unix-машиной стал французский компьютер Zenith на Intel 486. На нём был установлен SCO Unix, а дистрибутив системы хранился на магнитной ленте.
Сегодня сочетание Intel 486, магнитной ленты и текстового терминала выглядит почти музейным. В 1998 году это была рабочая вычислительная система, на которой решались совершенно реальные задачи.
Особенно меня обрадовало, когда внутри системы обнаружился компилятор языка C. Теперь Unix можно было не только изучать как пользователь, но и исследовать с точки зрения программиста.
Книга превратилась в работающую систему
До этого Unix существовал для меня в основном на страницах распечатанной книги. Теперь практически каждую идею можно было проверить самому.
Файлы, каталоги, процессы, права, устройства, командная оболочка перестали быть просто терминами. Они стали частями одной работающей модели. Чем больше я с ней работал, тем яснее становилась внутренняя логика системы.
Unix производил впечатление системы, которую можно постепенно понять. Начать с нескольких команд, затем разобраться с оболочкой, написать программу на C, посмотреть системные функции и шаг за шагом спускаться ниже.
Компьютер как система, а не устройство
До этого компьютер легко было воспринимать как набор программ, которыми нужно пользоваться. Unix показывал другую картину.
Программа здесь была лишь одной частью системы. Она работала с файлами, запускала процессы, взаимодействовала с другими программами, получала данные и передавала результат дальше. Всё это было связано между собой сравнительно небольшим набором общих механизмов.
Именно эта цельность мне особенно понравилась. Освоив несколько основных идей, можно было применять их снова и снова в самых разных задачах.
Командная строка оказалась не ограничением
Графический интерфейс обычно старается заранее предложить человеку возможные действия: кнопки, меню, окна. Командная строка сначала выглядит беднее, потому что практически ничего не предлагает сама.
Но постепенно обнаруживается обратная сторона. Команды можно соединять, передавать результат одной программы другой и собирать из простых действий более сложную работу.
Это сильно меняло отношение к компьютеру. Вместо набора готовых сценариев перед тобой оказывались строительные блоки, из которых можно было создавать собственные.
Позже я встретил эти идеи уже сформулированными как принципы Unix, но впервые почувствовал их именно за той машиной.
Компилятор C открывал следующий уровень
Язык C и Unix исторически очень тесно связаны. Значительная часть Unix была переписана на C ещё в начале его развития, и язык позволял работать достаточно близко к операционной системе.
Поэтому наличие компилятора превращало машину из готового рабочего места в среду для исследования. Можно было написать небольшую программу и посмотреть, как она взаимодействует с файлами, процессами и другими возможностями системы.
Для меня это было особенно интересно. Я хотел понимать не только команды Unix, но и то, что находится под ними.
Информацию приходилось добывать иначе
Сегодня почти любой вопрос по Unix или Linux можно задать поисковой системе или искусственному интеллекту и получить ответ за несколько секунд. В конце девяностых знания распространялись совсем иначе.
Книги было трудно найти. Документацию читали внимательно. Полезные материалы сохраняли, распечатывали и передавали друг другу. Если находилась хорошая книга, она действительно имела ценность.
Наверное, поэтому к технической литературе тогда относились иначе. Книгу не просто просматривали в поисках готовой команды, а последовательно изучали, потому что другого источника объяснения могло долго не появиться.
Сначала была практика, потом Реймонд
«Искусство программирования в Unix» Эрика Реймонда я прочитал значительно позже. Поэтому моё знакомство с философией Unix произошло в обратном порядке.
Сначала был сам Unix: Zenith, Intel 486, SCO, магнитная лента, командная оболочка и компилятор C. И лишь потом появились тексты, которые объясняли, почему эта система была построена именно таким образом.
Многие идеи Реймонда поэтому воспринимались как описание уже знакомого опыта. Простые средства, небольшие программы, понятные границы, соединение инструментов — всё это сначала встретилось мне в самой системе.
Через год появился Linux
В 1999 году история продолжилась уже на собственном компьютере. Linux позволял идти намного дальше: можно было скачивать исходные тексты ядра, настраивать его под конкретную машину и собирать самостоятельно.
Но первой была именно эта машина — французский Zenith на Intel 486 с SCO Unix.
С неё для меня Unix перестал быть названием из книги и стал способом смотреть на устройство программных систем.