52)Информационное наполнение Unix
Руководство
Как уже неоднократно отмечалось, аккуратная документация - непременная составная часть проективной системы. Согласно И, все, что пользователю о системе неизвестно, должно быть доступно изучению и включено в нее. Согласно У, информация, которую придется пересмотреть в процессе изучения, должна содержать все, что относится к делу, но не более. Чтобы по всякому поводу не приниматься изучать систему целиком, надо предусмотреть средство ограничения контекста, позволяющее выбирать документацию по теме. Выходит, что документацией по какой-нибудь утилите не могут служить, скажем, технические замечания, Changelog (он же Whatsnew) и дажеREADME, включаемые в исходные тексты данной утилиты. Это, условно говоря, документация для программистов (точнее - для тех, кто будет улучшать или исправлять саму утилиту). Нас же интересует документация для пользователей (т. е. для тех, кому утилита понадобится в работе). К тому же описание утилиты и способов ее применения должно быть дополнено некоторой задающей контекст информацией: для чего утилита, чем она пользуется, что еще стоит почитать. Если речь идет о внушительных размеров пользовательском прикладном пакете, которым не пользуются другие части системы, стоит рассматривать сам этот пакет как систему, внутри которой опять-таки требуется ограничивать контекст, дабы не изучать ее целиком (так устроена, например, документация по Tcl/Tk).
Исторически первая, главная и наиболее сбалансированная система документации в UNIX называется "страницы руководства" (manual pages), или, для краткости "руководства" (manuals). (Здесь и далее мы постараемся употреблять слово "руководство" только в качестве перевода manual page, если же оно понадобится в основном значении, заранее предупредим). Страницы руководства появились уже в первой версии UNIX: не все писали утилиту, но все хотят ею пользоваться (а в начале появлялись самые нужные), и тут без документации - никуда. А поскольку некая система документирования в то время уже существовала (см. 5), ее и взяли за основу. На примере того, как организованы страницы руководства, хорошо видно, как формировались принципы построения системы, из чего они произрастали и как они работают сейчас, со всеми их достоинствами и недостатками.
Средством просмотра страниц руководства служит утилита man. Самый простой способ ею воспользоваться - написать что-нибудь в командной строке man. Например, команда man man выдаст руководство по самой этой утилите, которое можно просмотреть постранично, перелистывая страницы клавишей "пробел". Если вы пользуетесь каким-нибудь инструментом UNIX, но еще не читали его руководства, прочитайте непременно! Хотя бы для того, чтобы иметь представление обо всех его возможностях. Руководства есть не только у каждой утилиты системы, но и у многих других объектов. Согласно И, информационная подсистема должна давать достаточно сведений для самостоятельного решения любых принципиально разрешимых задач, а значит, описания нужны и структурам данных, и средствам интеграции, и простейшим приемам работы с системой. Все страницы руководства отнесены к восьми разделам:
пользовательские утилиты и прочие инструменты;
системные вызовы;
библиотечные вызовы (функции);
внешние устройства (и их представление в системе);
форматы и таблицы (типы файлов, протоколы и пр.);
игры и всевозможные "ненужные" утилиты (например, fortune);
прочее, т. е. то, что не подходит под другие разделы;
команды и инструменты системного администратора.
В некоторых версиях UNIX добавляется девятый раздел, посвященный структуре ядра системы. Если у кого-то возникнет желание исправить или развить ядро, самую ответственную часть любой системы, ему будет где искать помощи.