Отрывки Unix-haters handbook в переводе Александра Гагина

 
  • Отрывки Unix-haters handbook в переводе Александра Гагина
  • Глава 1. Unix.
  • Глава 2. Добро пожаловать, новый пользователь!
  • Глава 7. Бедствие X-Windows
  • X: первое полностью модульное программное бедствие.
  • Что такое файловая система?


  •       Ниже я перевожу куски книги "Unix-haters handbook" (by Simson Garfinkel et al, ISBN 1-56884-203-1, IDG Books, $16.59) для сдачи "тысяч" на аспирантском английском (поэтому перевод не очень-то литературный, но тупой и дословный). Выборка достаточно мала, чтобы не нарушать авторских прав, но показать, что это за книга. Если Вы хм... работаете с юниксом - почитайте, очень полезно. По крайней мере будете знать, на каких стульях лежат кнопки. Я положу этот файл как http://ethereal.ru/~gagin/unix-haters.russian-samples.html.
          Авторские права на перевод мои, и я не разрешаю распространение без моего ведома - хочется знать судьбу бумаги.

    Александр Гагин
    $Id: unix-haters.russian-samples.html,v 1.3 1996/05/12 19:55:03 gagin Exp gagin $



    страницы 3-4

    Глава 1. Unix.



          Первый в мире компьютерный вирус.



          "Два из наиболее известных продуктов Беркли - LSD и Unix.
          Я не думаю, что это совпадение."
          --Аноним

    Вирусы состязаются тем, что бывают настолько маленькими и приспосабливающимися, насколько это возможно. Они не очень сложные: вместо того, чтобы носить с собой багаж, необходимый для загадочных свойств, таких как дыхание, обмен веществ и передвижение, они только имеют достаточно ДНК или РНК для того, чтобы повторять себя. Например6 любой специфический вид гриппа во много раз меньше, чем клетки, которые он заражает, хотя он успешно превращается в новый вид примерно каждый новый сезон гриппа. Время от времени ядовитость увеличивается и последующая эпидемия убивает несколько миллионов людей, чьи имунные системы недостаточно проворны для того, чтобы убить захватчика до того как он убьет их. Большую часть времени они не более чем легкое раздражение - неизбежное, даже повсеместное.

    Свойства хорошего вируса следующие:

    Маленький размер
    Вирусы не делают многого, так что им не нужно быть очень большими. Некоторые люди спорят, являются ли вирусы живыми созданиями или всего лишь кусками разрушающей ядерной кислоты и белка.
    Переносимость
    Один вирус может захватить много разных типов клеток, и, с небольшими изменениями, даже больше. Вирусы животных и приматов часто изменяются для того, чтобы атаковать людей. Доказательства показывают что вирус СПИДа начался как обязьяний вирус
    Возможность управлять ресурсами хозяина
    Если хозяин не обеспечил вирус надежной крышей и энергией для размножения, вирус умрет
    Резкие мутации
    Вирусы часто мутируют во много разных форм. Эти формы разделяют общую структуру, но различаются ровно настолько, чтобы обмануть защитные механизмы хозяина

    Unix обладает всеми отличительными признаками весьма успешного вируса. В своем первоначальном рождении, он был очень маленьким и имел мало свойств. Ограниченность конструкции была первостепенной. Поскольку он не имел свойств, которые сделали бы его настоящей операционной системой (таких как отраженные в память файлы, высокоскоростной ввод/вывод, здравая фаловая система, запирание записей, файлов и устройств, рациональное взаимодействие процессов, и т.д. и т.п.), он был переносим. Более функциональная операционная система была бы менее переносима. Unix съедает энергиюсвоего хозяина; без системного администратора, высиживающего Unix, он обычно паникует, роняет кору и виснет. Unix часто мутирует: обходные пути и исправления, сделанные для того, чтобы одна версия работала, не работают на другой версии. Если вирус Andromeda был бы программой, он был бы Unix'ом.

    Unix - компьютерный вирус с пользовательским интерфейсом.



    страницы 17-18

    Глава 2. Добро пожаловать, новый пользователь!



          Как русская рулетка с заряженными шестью пулями


          У Кена Томпсона есть автомобиль, который он помогал сконструировать.
          В отличие от большинства автомобилей, у него нет ни спидометра,
          ни указателя бензина, никаких из тех многочисленных лампочек, которые
          отравляют жизнь современному водителю. Взамен, если водитель делает
          ошибку, гиганский вопросительный знак загорается в центре приборной
          доски. "Опытный водитель", говорит Томпсон, "обычно узнает, что не
          так".

          --Аноним

    Новые пользователи компьютерной системы (и даже опытные пользователи) требуют определенную степень гостеприимства от системы. Как минимум, снисходительная компьютерная система предлагает следующие удобства своим гостям:


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

    На протяжении большинства своей истории Unix был исследовательской повозкой для университетских и промышленных исследователей. С взрывом дешевых рабочий станций Unix вступил в новую эру, эру распространяемой платформы. Это изменение легко датировать: это случилось, когда поставщики рабочих станций выделили свои компиляторы языка C из своего стандартного комплекта программного обеспечения для того, чтобы понизить цены для не-разработчиков. Точная запись границ этого изменения слегка неясна, но в основном это произошло в 1990. Таким образом, это только в течение последних нескольких лет поставщики на самом деле заботились о потребностях и желаниях пользователей, скорее чем программистов. Это объясняет, почему компании пытаются сейчас написать графические интерфейсы пользователя с тем, чтобы "убрать" потребность в командной строке. Мы не завидуем этим компаниям в их работе.



    страницы 123-124

    Глава 7. Бедствие X-Windows



          Как заставить рабочую станцию в 50-MIPS работать как IBM PC в 4.77MГц


          Если бы конструкторы X Windows строили машины, было бы не меньше
          пяти ведущих колес, спрятанных под кабиной, ни одни из которых не
          следуют одним принципам - но Вы могли бы менять колеса, используя
          автомобильную стерео-систему. А это очень полезное свойство."
          --Маркус Дж.Ранум
          Digital Equipment Corporation

    X Windows - это Иран-Контра графических пользовательских интерфейсов: трагедия политических компромиссов, запутанных альянсов, рыночного шума и просто-напрсто жадности. X Windows относится к памяти как Рональд Рейган относился к деньгам. Годы "Эргономики Вуду" привели к беспрецендентной нехватке памяти гигантских пропорций. Аналитические зависимости, распределенные замки и партизанские пртоколы уплотнили заторы, усугубили гоночные условия и продвинули двойные стандарты.

    X получил свою долю недо-компьютеров за $5000 - как Sun'овская программа часов Open Look, которая заглатывает 1.4 мегабайта настоящей памяти! Если Вы пожертвуете всю память компьютера 22 Commodore 64 программе часов, этого еще не будет достаточно чтобы она сказала Вам время. Даже первоначальная программа xclock из X11R4 потребляет 656K для работы. И использование памяти иксами увеличивается.

    X: первое полностью модульное программное бедствие.


    X Windows начался как проект одного человека в офисе на пятом этаже лаборатории компьютерной науки МТИ. Могучий хакер, который был знаком с W, оконной системой, написанной в Стэнфордском университете как чать проекта V, решил написать распределенный графический сервер-дисплей. Идея была в том, чтобы позволить программе, назваемой клиентом, работать на одном компьютере, и позволить ей отражаться на другом компьютере, на котором работает специальная программа под названием оконный сервер. Эти два компьютера могут быть VAX'ы или Sun'ы, или каждый по одному, если только эти компьютеры соединены сетью и каждый реализует протокол X.

    Сноска 1: Мы пытались избежать сносок длинной в параграф в этой
    книге, но X победил нас, переключив понятия клиент и сервер. ВО всех
    прочих отношениях клиент/сервер, сервером является удаленная машина,
    на которой работает приложение (т.е. сервер обеспечивает услуги, такие
    как база данных или счетный сервис). ПО какой-то извращенной причине,
    которую лучше оставить воображению, X настаивает на именовании
    программы, работающей на удаленной машине, "клиентом". Эта программа
    отображает свои окна на "оконном сервере". Мы собираемся следовать
    терминологии X, обсуждая графических клиент/серверы. Так чтокогда Вы
    видите "сервер" понимайте "локальная машина, которая отображает вывод
    и принимает ввод от пользователя".
    

    X начался в вакууме. В это время, не существовало установившегося графического стандарта Unix. X обеспечила такой -- стандарт, пришедший со свой свободной реализацией. X подняла уровень игры: для большинства приложений; чье-либо железо стало только настолько хорошо, насколько свободный Х-сервер МТИ может поддержать.

    Даже сегодня, X-сервер все еще превращает быстрые компьютеры в тупые терминалы. Вам нужен весьма шустрый компьютер чтобы застваить Х работать быстро - это то, что любят поставщики железа.



    страницы 262-263

    Что такое файловая система?


    Файловая система - это часть операционной системы компьютера, которая управляет хранением файлов на устройствах массового хранения, таких как гибкие диски и жесткие диски. Каждый фрагмент информации имеет имя, называемое именем файла, и уникальное место (мы надеемся) на жестком диске. Задача файловой системы заключается в том, чтобы переводить имена такие как /etc/passwd в положения на диске такие как "блок 32156 на жестком диске номер 2". Она также поддерживает чтение и запись блоков файла. Хотя она концептуально является отдельной частью операционной системы, на практике почти каждая операционная система, использующаяся сегодня, приходит со своей своеобразной файловой системой.

    Столкнитесь с относительностями


    В последние два десятилетия злая мачеха Unix выбросила не одну, не две, но четыре различных файловых системы. Эти сводные сестры все ведут себя слегка различно при работе одной и той же программы в одних и тех же обстоятельствах.


    Seminal файловая система Unix (UFS), старейшая сводная сестра, была рождена в ранних 1970х исходной командой юникс в лаборатории Bell. Ее наиболее выдающейся чертой были ее свободные соглашения о именах файлов: она не накладывала ограничений на символы в имени файла других чем запрещение символа наклонной черты и символа ASCII Ноль. В результате, имена файлов могли содержать множество непечатных (и непишущихся) символов, "свойство", часто используемое в его приложениях к безопсаности. О, UFS также ограничивала имена файлов до 14 символов в длину.


    Быстрая (и проигрывающая) фаловая система Беркли (FFS) была генетической переработкой UFS, сделанной в университете калифорнии в Беркли. Она не была быстрой, но она была быстрее чем UFS, которую она заменила, во многом таким же образом, как черепаха быстрее слизня.


    Беркли на самом деле сделал множество узаконенных, практических улучшений UFS. Что наиболее важно, FFS прекратила непопулярное ограничение в 14 символов имени файла UFS. Она представила множество новых и несовместимых свойств. Первым среди них были символические линки - записи файловой системы, который могли указывать на другие файлы, директории, устройства, или что угодно. Тем не менее, исправления Беркли были бы замечательны, если бы они были распространены назад в лаборатории Bell. Но как классический пример симптома Изобретено-Не-Здесь, AT&T отказался от нового кода Беркли, приведя к двум совершенно расходящимся фаловым системам с полным набором взаимно несовместимой файловой семантики. В течение 1980'ых некоторые стандартные программы Unix знали, что имена могут быть длинее 14 знаков, другие - нет. Некоторые знали, что файл в файловой системе на самом деле может быть символическим линком. Другие не знали. [Сноска - Попробуйте использовать команду cp -r для того, чтобы скопировать директорию с сиволическим линком на ".." и Вы поймете идею (мы надеемся, что до того, как вы израсходуете все дисковое пространство).] Некоторые программы работали как ожидалось. Большинство - нет.


    Sun произвел сетевую файловую систему NFS. Как провозглашалось, NFS позволял различным сетевым компьютерам Unix разделять файлы "прозрачно". С NFS один компьютер представлялся "файловым сервером", а другой компьютер назывался "клиентом". Цель (несколько сомнительная) заключалась в том, чтобы файлы и файловые иерархии на сервере представлялись более или менее на клиенте более или менее тем же образом, которым они представляются на сервере. Хотя Apollo Computers имела сетевую файловую систему, которая работала лучше, чем NFS, за несколько лет до того, как NFS стала коммерческим продуктом, NFS стала преобладающим стандартом, поскольку она была "независима от операционной системы" и Sun предложил ее как "открытый стандарт". Только годами позже, когда программисты на самом деле пытались разработать серверы и клиенты NFS для операционных систем отличных от Unix, они осознали, насколько зависимой от операционной системы и закрытой является реально NFS.