Рубрика «философия Unix»

Почему работать в консоли настолько приятно? Так задумано отцами-основателями Unix - 1
Кен Томпсон и Деннис Ритчи

Unix. Легендарная операционная система оказала огромное влияние на разработку программного обеспечения и всю информатику в целом. Из неё выросли целые семейства Unix-подобных ОС, которыми все мы пользуемся.

Язык программирования Си, Ричард Столлман и GNU, движение Open Source, Линус Торвальдс с ядром Linux, маки, айфоны и Android. Почти всё в системном программировании 21 века можно отследить до истоков — до Unix.

Unix — это фундаментальная база. Но что же в ней такого особенного? Есть один секрет. Точнее, два.
Читать полностью »

Моё хобби — открыть «Философию UNIX» Макилроя на одном мониторе, одновременно читая маны на другом.

Первый из принципов Макилроя часто перефразируют как «Делайте что-то одно, но делайте хорошо». Это сокращение от его слов «Создавайте программы, которые делают одну вещь хорошо. Для новой работы создавайте новые программы, а не усложняйте старые добавлением новые "функций"».

Макилрой приводит пример:

Для посторонних кажется удивительным тот факт, что компиляторы UNIX не выдают листинги: печать лучше осуществляется и более гибко настраивается с помощью отдельной программы.

Если вы откроете справку для ls, то она начинается с

ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]

То есть однобуквенные флаги для ls включают все строчные буквы, кроме {jvyz}, 14-ти прописных букв, @ и 1. Это 22 + 14 + 2 = 38 только односимвольных вариантов.
Читать полностью »

Настоящий Unix — не есть приемлемый Unix - 1Командная строка Unix полна сюрпризов. Например, вы знали, что инструмент ls, который чаще всего используется для получения списка файлов в текущем каталоге, в версии OS X распознаёт не менее 38 разных флагов?

Я не знал, так что затвитил этот факт. И получил парочку ответов, один из которых заставил меня задуматься: действительно ли саму Unix нужно винить в этом?

Насколько я знаю, ни Linux, ни OS X не были спроектированы в строгом соответствии с философией Unix. Будет лицемерием основывать критику “Unix” только на этих производных от Unix, которые есть у нас сегодня.

Но я всё-таки попробую показать, как много проблем с интерфейсами командной строки в современных наследниках Unix восходят к корням самой Unix. В частности, я попытаюсь объяснить свой скепсис относительно идеи, что окружение командной строки Unix могло когда-либо поддерживать экосистему программ, каждая из которых хорошо выполняет одну функцию.

Но я немного опережаю события. Прежде чем я начну говорить об этом, давайте более пристально посмотрим на команду ls и попробуем выяснить, что конкретно она делает не так.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js