Операционная система Unix завоевала мир, чего совсем не могли представить ее создатели, творя историю на последнем этаже Bell Labs в 1969 году. Идея этой ОС оказала колоссальное влияние на разработку программного обеспечения и развитие операционных систем. Вы узнаете о том, как зарождалась система Unix, чем она примечательна и почему занимает столь важное место в компьютерном мире, а также об удивительных людях, вложивших в нее силы и душу. Книга представляет собой честный и остроумный рассказ о жизни айтишного сообщества тех времен — никакой зауми, страниц кода и ссылок. Расслабьтесь и получайте удовольствие, погрузившись в историю, полную приключений и открытий. Брайан Керниган — автор и соавтор дюжины книг по программированию, включая легендарные «Язык программирования Си» и «Unix. Программное окружение». На протяжении 30 лет был членом той самой группы UNIX в исследовательском центре Bell Labs и не только наблюдал создание UNIX.
Стиль программирования и подход к решению вычислительных задач, получивший название философии Unix, был обобщен Дугом Макилроем в 1978 году в предисловии к специальному выпуску издания The Bell Labs Technical Journal on Unix:
(i) Пусть каждая программа хорошо делает что-то одно. Для новой задачи напишите новую программу, а не усложняйте старую, добавляя туда новую функциональность.
(ii) Настраивайтесь на то, что выходные данные программы станут входными для другой, пока неизвестной программы. Не засоряйте вывод посторонней информацией. Избегайте ввода исключительно в виде столбцов или в двоичном формате. Не требуйте интерактивного ввода.
(iii) Проектируемое и создаваемое программное обеспечение нужно тестировать на ранней стадии, в идеале в течение первых недель. Без колебаний отбрасывайте плохо сделанные фрагменты и переписывайте их с нуля.
(iv) Облегчайте процесс программирования с помощью специальных инструментов, даже если сначала придется тратить время на их создание, а после завершения работы больше никогда ими не пользоваться.
Программа на Awk представляет собой последовательность шаблонов и действий. Каждая строка ввода сравнивается с каждым шаблоном, и при обнаружении совпадения выполняется соответствующее действие. В качестве шаблонов могут выступать как регулярные выражения, так и числовые или строковые относительные выражения. Действия написаны на диалекте Си. Если шаблон не указан, действие выполняется для любой записи. Если не указано действие, происходит вывод записи. Вот пример команды, выводящей все входные строки, длина которых превышает 80 символов; это шаблон, для которого не указано действие.
Книга достойна прочтения. Становится более понятным почему так ценится командная оболочка, возможность перенаправления ввода/вывода и конвейеров до сих пор. А между тем, UNIX безусловно - операционная система изменившая мир