Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: В начале была командная строка... (In The Beginning Was The Command Line) - Нил Стивенсон на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Нил Стивенсон (Neal Stephenson)

В начале была командная строка... (In The Beginning Was The Command Line)

В начале была командная строка...

***

Предисловие технического редактора: по нашим компьютерным меркам данное эссе было опубликовано давным-давно, в 1999 году — в то время, когда все знали, что такое MS-DOS, когда одними из основных операционок были Windows 95, MacOS версии 9, Linux 2.2, когда ещё существовала (и даже активно развивалась) BeOS... Интересное было время... Но самое интересное, что Нилу Стивенсону удалось показать некоторые вещи, которые не меняются.

Вступление

Лет двадцать назад дерзкие мечтатели Джобс и Возняк решились на очень необычный шаг — они стали продавать компьютеры обычным пользователям. Как ни странно, дело пошло на лад, основатели Apple заработали кучу денег и прославились на весь мир. В то же время Билл Гейтс и Пол Аллен пошли ещё дальше — они стали продавать операционные системы. И вот это уже не лезло ни в какие ворота. Компьютер хотя бы физически существует в природе — его приносят домой в коробке, распаковывают, подключают, на мониторе появляется картинка. А что такое операционная система, как не сплошная иллюзия? Да, конечно, она записана на диске, но диск, по сути своей, никакого отношения к операционной системе не имеет. Как таковая ОС — это длинная строка нулей и единиц, которая, должным образом установленная и используемая, позволяет управлять другими бесконечно длинными строками нулей и единиц. Даже те немногие избранные, кто действительно понимает, что же такое операционная система, склонны считать её чудом сакральной инженерной мысли наподобие ядерного реактора или самолета–разведчика U-2, а никак не (выражаясь научно–технологическим языков) «продуктом для реализации».

А теперь учрежденная Гейтсом и Аленом корпорация продаёт операционные системы как горячие пирожки. Новые операционные системы выходят с такой же помпой, как и новоиспечённые голливудские боевики — те же «звезды» на экранах телевизоров, те же рекламные компании и мировые туры. Операционных систем уже так много, что беспокоиться о монополизации их одной компанией просто смешно. Сегодня даже самый отсталый в техническом плане человек имеет хотя бы смутное представление о том, чему служит операционная система и какими качествами обладает. Более того, даже самые простодушные и невежественные компьютерные пользователи понимают, насколько бессмысленно запускать программное обеспечение, работающее на Macintosh, под Windows. С таким же успехом можно попробовать подковать «бьюик».

Если бы человек, допустим, впал в кому двадцать лет назад и очнулся в наши дни, то, раскрыв утреннюю New York Times он понял бы всё, кроме, пожалуй, следующего:

Статья: богатейший человек в мире сколотил состояние не на железной дороге, не на торговых операциях и даже не на нефти, а на операционных системах.

Статья: Министерство юстиции США, пользуясь дедовскими методами правосудия, предъявляет корпорации Microsoft обвинение в нарушении антимонопольного законодательства.

Статья: Моя подруга недавно порвала виртуальные отношения с молодым человеком и больше ему не пишет. Поначалу он казался таким умным и интересным, а потом вдруг «стал наезжать на меня, словно у него Mac, а у меня — Windows».

Да что ж тут происходит, ради всего святого? Есть ли у операционных систем будущее? Я попытаюсь ответить на оба вопроса. Сразу оговорюсь — мнение моё абсолютно субъективное, однако как человек, потративший достаточно времени не просто на использование, но и программирование Macintosh, Windows, Linux и BeOS, я всё‑таки знаю, о чём говорю. Далее представлен мой личный, субъективный взгляд на проблему, и эта книга — скорее обзорная статья, чем исследовательская работа, а потому не стоит сравнивать её с рецензиями и критическим разборами, размещёнными на страницах компьютерных журналов. Но с тех самых пор, как вышёл первый Mac, наши операционные системы зиждутся на метафорах, а любое нечто, состоящее из метафор, — это здорово. По крайней мере, я в этом убеждён.

Автомобили, автомобили… А также танки

В то время, когда Джобс, Возняк, Гейтс и Аллен претворяли в жизнь свои невероятные мечты, я был подростком и жил в городе Эймсе штата Айова. У отца одного моего приятеля была старая спортивная машина, ржавевшая в гараже. Иногда её всё‑таки удавалось завести, и нас приглашали покататься по городу. Отец друга пребывал на седьмом небе от счастья — думаю, он воображал себя каким‑нибудь беспечным ездоком, несущимся навстречу судьбе по бескрайнему полотну дороги. А вот мы считали его попросту сумасшедшим — кому ещё доставит удовольствие трястись на глохнущей рычащей колымаге и глотать пыль да выхлопные газы.

Однако впоследствии именно эти поездки помогли мне кое‑что понять в отношении человека и высоких технологий. Во–первых, фантастический образ и внешний дизайн оказывают на людей магическое действие. Не верите? Пообщайтесь (если вам некуда девать время) с любым владельцем Macintosh — вот уж кто поведает вам о нелёгкой судьбе горстки изгоев, угнетаемых только из‑за того, что посмели приобрести продукцию Apple.

Во–вторых — и тут я ступаю по тонкому льду — интерфейс играет важнейшую роль. Бесспорно, старая спортивная машина была сплошным недоразумением: норовистой, ненадёжной, хилой. Но при всём при том она была манёвренной, водить её было истинное наслаждение. Ты чувствовал каждый камешек на дороге, каждая рытвина отдавалась в твоём теле. По урчанию мотора можно было определить, что с ним не так. Руль беспрекословно повиновался держащей его руке. Для нас, ёрзающих на заднем сиденье, езда не представляла никакого интереса, она казалось такой же бессмысленной, как китайские иероглифы. Зато для водителя это было настоящее приключение. Он словно бы получал ещё одно тело, которым мог управлять, ещё пару чувств впридачу. Ему открывались возможности, недоступные обычному пешеходу и праздному пассажиру.

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

Представьте себе перекресток, а на нём четыре конкурирующих центра по продаже автомобилей. Один из них (Microsoft) – большой, намного больше остальных, когда‑то начинал с продаж трехскоростных велосипедов (MS‑DOS), не безупречных, но довольно шустрых и неприхотливых.

Соседи (Apple) тоже начинали с велосипедов, пока в один прекрасный день не выставили на продажу моторизированное средство передвижения – дорогую красивую и стильную машину с запаянными наглухо багажником и капотом, чтобы никто не смог разгадать, как же она работает.

Ответ конкурента не заставил себя ждать – на рынок поспешно выбросили мопед (Windows). Хитроумное устройство в стиле великого иллюзиониста Гарри Гудини, болтами прикручённое к упоминавшемуся выше трехскоростному велосипеду, позволяло ему (хоть и не без труда) держаться вровень со сверкающими изделиями Apple. Пользователи Windows носили защитные очки и выковыривали из зубов мелких насекомых, а владельцы Apple, насмешливо ухмыляясь, проносились мимо в герметично запакованных машинах. Однако мопеды подкупали дешевизной, да и починить их, в отличие от изобретения Apple, ничего не стоило, поэтому продажи Microsoft неуклонно ползли вверх.

Вскоре гигантский дилер тоже выпустил полнофункциональный автомобиль – исполинских размеров универсал (Windows 95). Страшный, как архитектура соцреализма, с подтекающим топливным баком и глохнущим мотором он произвёл небывалый фурор. Чуть позже за ним последовал неуклюжий внедорожник, предназначенный для промышленных потребителей (Windows NT), — такой же уродливый, но чуть более надёжный.

С тех пор много воды утекло, но по существу мало что изменилось. Небольшой центр продаёт элегантные, радующие глаз седаны и тратит уйму денег на рекламу. Таблички «ПРОДАЁТСЯ!» всё так и висят на их окнах, изрядно пожелтевшие и потрепанные от времени. Большой центр продолжает выпускать громадные универсалы и массивные внедорожники.

Недавно по другую сторону дороги открылось ещё два центра.

Первый (корпорация Be) продаёт полностью работоспособные бэтмобили (Be OS). По красоте и дизайну они превосходят даже стильные седаны, плюс, они более совершенны с технической точи зрения и надёжнее всего, что представлено на рынке, и, кроме того, — они дешевле остальных.

За одним исключением – Linux, компании–соседа, которую язык не повернётся назвать «коммерческим предприятием». Это группа автофургонов, юрт, вигвамов и геодезических куполов, поставленных в открытом поле, где люди живут в мире и согласии. И сваривают танки. Не отжившие свой век старые советские образцы, а скоростные, мощные, надёжные боевые модели из сверхновых материалов, используя современные технологии. И эти танки лучше армейских. Они настолько легки и маневренны, что могут ездить по городским улицам, почти никогда не ломаются и потребляют бензина, как обычные малолитражки. Они штампуются один за другим прямо на поле и выстраиваются в ряд на обочине, маня ключами в замке зажигания. Любой желающий может вскарабкаться в кабину и поехать, куда глаза глядят совершенно бесплатно.

День и ночь снуют на пересечении дорог покупатели. Девяносто процентов из них сразу устремляется к самому большому дилеру и покупает универсалы или внедорожники. На других продавцов они даже не глядят.

Из оставшихся десяти процентов большинство тратит деньги на роскошные седаны. Падкие на универсалы и внедорожники обыватели вызывают у них высокомерную ухмылку. Они язвительно подшучивают над чудаками и сумасшедшими, продающими дешевые, превосходные в техническом отношении средства передвижения.

Бэтмобили приобретают случайные покупатели, например, сумасбродные коллекционеры, которым одного универсала мало.

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

Хакер с мегафоном: Деньги останутся при вас! Бесплатные танки! Неуязвимые, им не страшны огонь, вода и медные трубы! Девяносто миль в час! Галлон на сто миль!

Предполагаемый покупатель универсала: Конечно, в ваших словах есть доля истины, но, хм…. Я ведь понятия не имею, как управляться с танком!

Мегафон: Можно подумать, вы знаете, как управляться с универсалом!

Покупатель: Но у продавца универсалов есть механики. Если что‑то сломается, я возьму отгул на работе, привезу им универсал, заплачу за работу и подожду в приёмной пару–тройку часов под звуки какой‑нибудь ненавязчивой музыки.

Мегафон: Но если вы купите танк, наши волонтёры придут к вам домой, пока вы спите, и всё починят!

Покупатель: Да я их на порог не пущу, идиот несчастный!

Мегафон: Но…

Покупатель: Не видишь, что ли, все покупают универсалы!

Норовистый бит

Вряд ли я усмотрел бы связь между автомобилями и компьютерами, если бы меня в своё время не взяли прокатиться на старой спортивной развалюхе. Тогда я только–только записался на компьютерный курс в школе родного города Эймса. После пары вступительных лекций нас допустили в святая святых — крошечную комнатку с телетайпом, телефоном и стареньким модемом, представлявшим собой металлическую коробку с двумя резиновыми чашечками наверху (примечание: возможно, многих читателей после этого предложения обуяет невыносимый страх, они испугаются, что вот–вот, и мой рассказ превратиться в скучные заумные воспоминания, какими крутыми мы когда‑то были; другие же решат, что я таким образом собираюсь с духом, чтобы приступить к описанию какой‑нибудь новомодной, «хитовой» теме типа Open Source Software). Телетайп был именно тем, чем он всегда и был — устройством для отправки и получения телеграмм. По сути — шумная, печатающая только ЗАГЛАВНЫМИ БУКВАМИ пишущая машинка. Рядом с ним примостился аппарат поменьше с толстым рулоном бумаги и прозрачным пластиковым лотком.

Чтобы соединить этот прибор (который вовсе не был компьютером) с «Мэйнфреймом» — головной вычислительной машиной государственного университета Айовы, находящемся на другом конце города, вы снимали телефонную трубку, набирали номер компьютера, слушали странные шумы и помехи, затем смачно опускали трубку на резиновые чашечки. Если вы не промахивались, одна каучуковая манжета обхватывала мембрану микрофона, вторая — громкоговорителя. Такой вот изощрённый секс информационных технологий, поза 69. Телетайп трясся, словно удалённый «Мэйнфрейм» заразил его пляской святого Витта, и выстукивал шифрованные послания.

Так как компьютерного времени было в обрез, мы использовали некое подобие пакетной обработки данных. Перед тем, как набрать номер, мы включали ленточный перфоратор (вспомогательный аппарат, прикрученный к стенке телетайпа) и печатали программы. Каждый раз, когда мы нажимали клавишу на клавиатуре, телетайп со стуком пробивал на бумаге набранную нами букву, и мы видели, что печатали. В то же время он преобразовывал эту букву в набор из восьми двоичных символов, битов, и штамповал на перфоленте соответствующее количество дырок. Бумажные кружочки, выбитые из продырявленной ленты, плавно опускались в пластиковый лоток, который медленно заполнялся настоящими, истинными битами. В последний день нашего пребывания в школе, самый одарённый парень класса (не я), возможно, в шутку, возможно, от переизбытка чувств, выпрыгнул из‑за парты и вывалил на голову преподавателя мусорную корзинку этих битов. Это единственное воспоминание о школе, которое я никогда не забуду, – замерший в оцепенении учитель, багровеющий от сдерживаемой ярости, и миллионы битов (мегабайты)[1], осыпавшие его с головы до ног.

Одним словом, моё взаимодействие с компьютером носило строго организованный характер и имело четкое разделение на несколько стадий, а именно: 1) сидя дома перед листом бумаги с карандашом в руках, в нескольких милях от ближайшего компьютера, я усиленно думал, что же я хочу от компьютера и как перевести мои желания на понятный компьютеру язык – буквенно–цифровую последовательность; 2) я нёс этот лист бумаги через, так сказать, информационно–санитарный кордон (три мили пешком через снежные завалы) в школу и заносил последовательность в некое устройство (не компьютер), которое преобразовывало символы в двоичные числа и наносила их видимое обличье на перфоленту; 3) затем, при помощи модема с резиновыми чашечками, я пересылал эти числа университетскому «Мэйнфрейму», который 4) производил с ними арифметические действия и отправлял обратно на телетайп результаты вычислений (другие двоичные числа); 5) телетайп трансформировал их обратно в буквы и со стуком распечатывал на странице; 6) я, пристально в вглядываясь в набор букв, истолковывал их как значимые символы.

Разделение обязанностей вышеописанного процесса ясно как божий день: компьютеры производят арифметические действия над битами. Люди истолковывают биты как значимые символы. Однако сейчас, с выходом в свет новейших операционных систем, которые, ради доступности широким массам пользователей, употребляют, а чаще — злоупотребляют силой метафоры, всё стало несколько более запутанным и сложным. Вдобавок – возможно, потому что из‑за метафор операционные системы воспринимаются, как некая разновидность магии и искусства, — люди начинают эмоционально привязываться (как когда‑то отец моего друга привязался к спортивной машине) и становиться зависимыми от этих частей программного обеспечения.

Людей, взаимодействующих с компьютерами посредством графического пользовательского интерфейса MacOS или Windows (то есть почти каждого первого), наверное, смутят и обескуражат описания телетайпа, который я использовал в 1973 году для связи с компьютером. Но каждой технологии – свой срок. Люди могут общаться друг с другом разными способами – с помощью музыки, искусства, танца, мимики, жестов. Какие‑то из данных способов общения проще представить в виде сроки символов, какие‑то сложнее. Не составит труда переложить на машинный язык письменную речь, так как письмо само по себе не что иное, как строка символов. Если символьные знаки принадлежат фонетическому алфавиту (а не идеографическому письму), то преобразовать их в биты не составит никакого труда, что и доказывают появившиеся в начале девятнадцатого столетия азбука Морзе и различные виды телеграфа.

Человеко–компьютерное взаимодействие возникло несколько сот лет тому назад, задолго до появления самого компьютера. Когда, приблизительно во время Второй мировой войны, появились первые ЭВМ, люди (что вполне естественно) общались с ними посредством привычных, уже известных им устройств, переводящих буквы в биты и наоборот, то есть с телетайпами и перфораторами.

Эти устройства олицетворяли собой два принципиально разных подхода к обработке данных. Работая с перфоратором, вам приходилось пробивать целую стопку карт и прогонять их всем скопом через устройство ввода. Это называлось пакетной обработкой. То же самое можно было сделать и на телетайпе с помощью устройства ввода с перфоленты, и именно такой способ работы и поощрялся нашими школьными учителями. Однако, как бы они не старались держать нас в неведении, телетайп позволял делать и нечто большее, то, что перфоратору было не под силу. Подключив модем и установив канал связи, в телетайпе можно было набрать строку и нажать клавишу «Enter». Телетайп отправлял строку компьютеру, тот в ответ присылал (или не присылал) несколько своих строк, которые телетайп не спеша выстукивал на ленте, предоставляя расшифровку вашей переписки с машинами. Поначалу данный способ общения не имел даже названия, лишь годы и годы спустя, когда ему на смену пришли более современные средства обмена информацией, задним числом его нарекли интерфейсом командной строки (Command Line Interface).

В колледже, куда я поступил, в огромных, давящих объемами комнатах размещались чуть более усовершенствованные типы всё тех же приёмо–передающих аппаратов, перед которыми сидели десятки студентов и писали программы. И хотя эти устройства работали по типу матричного принтера, с программистской точки зрения, они ничем не отличались от старых добрых телетайпов. Кроме одного – в режиме разделения времени эти компьютеры работали на порядок лучше. То есть «Мйэнфреймы» оставались «Мэйнфреймами», но одновременно они уже могли общаться с довольно внушительным количеством терминалов. Ненужные более перфокарты заполнили коридоры и подсобки, а пакетной обработкой данных теперь пользовалась крошечная группа полностью свихнувшихся энтузиастов, и в конце концов от неё остались лишь овеянные зловещей тенью воспоминания. Мы же сбросили оковы пакетной обработки и вверили себя интерфейсу командной строки, даже не подозревая, что тем самым сделали первый шаг по направлению к парадигме операционных систем.

Груды смятой гармошкой бумаги устилали пол под хвалеными телетайпами, неисчислимые рулоны бумаги наматывались на валики. Почти вся бумага – чистая, нетронутая пером безжалостно выбрасывалась или пополняла кипы макулатуры. Подобное невиданное варварство подняло волну возмущении в среде экологов, и вскоре телетайпы заменили на видеотерминалы или, как их ещё называли, «стеклянные телетайпы» — почти бесшумные, не тратящие почём зря бумагу. Хотя, опять же, с программистской точки зрения, они тоже почти ничем не отличались от телетайпов эпохи Второй мировой войны. Короче говоря, мы общались с компьютерами на древнеанглийском языке вплоть до 1984 года, когда Macintosh явил миру графический пользовательский интерфейс (Graphical User Interface). Но даже во времена расцвета графического пользовательского интерфейса (или ГПИ, как я собираюсь его теперь называть) командная строка продолжала жить глубоко–глубоко в недрах большинства современных компьютерных систем, словно неискореняемый, данный от природы инстинкт. И живёт до сих пор.

ГПИ

Первое, что необходимо понять разработчику нового программного обеспечения – каким образом перевести некое количество информации (пиксели, если он работает над графическим приложением, цифры, если создает электронную таблицу) в линейную последовательность байтов. Обычно такие последовательности называются файлами, но если вы хотите быть «в теме», зовите их «потоками» (streams)[2]. Как человек, по сути своей, всё тот же кроманьонец, так данные последовательности, по сути своей, всё те же телеграммы – та же фигня, только вид сбоку. То, что вы видите на экране монитора – Лара Крофт из «Расхитительницы гробниц», сообщения голосовой почты, факсы, документы, напечатанные с использованием тридцати семи различных шрифтов – просто–напросто телеграммы, только более длинные и требующие более сложных арифметических операций.

Чтобы лучше понять, о чем идет речь, запустите веб–браузер, зайдите на какой‑нибудь сайт и выберите в Меню пункт «Вид» / «Исходный код страницы» (View/Document Source). Вы увидите несколько страниц программного кода:

<HTML>

<HEAD>

<TITLE>Welcome to the Avon Books Homepage</TITLE>

</HEAD>

<MAP NAME="left0199">

<AREA SHAPE="rect" COORDS="16,56,111,67" HREF="/bard/"><AREA SHAPE="rect" COORDS="14,77,111,89" HREF="/eos/"><AREA SHAPE="rect" COORDS="17,98,112,110" HREF="/twilight/"><AREA SHAPE="rect" COORDS="18,119,112,131" HREF="/avon_user/category.html? category_id=271"><AREA SHAPE="rect" COORDS="19,140,112,152" HREF="http://www.goners.com/"><AREA SHAPE="rect" COORDS="18,161,111,173" HREF="http://www.spikebooks.com/"><AREA SHAPE="rect" COORDS="2,181,112,195" HREF="/avon_user/category.html? category_id=277"><AREA SHAPE="rect" COORDS="9,203,112,216" HREF="/chathamisland/"><AREA SHAPE="rect" COORDS="7,223,112,236" HREF="/avon_user/search.html"></MAP>

<BODY TEXT="#478CFF" LINK="#FFFFFF" VLINK="#000000" ALINK="#478CFF" BGCOLOR="#003399">

<TABLE BORDER="0" WIDTH="600" CELLPADDING="0" CELLSPACING="0">

<TR VALIGN=TOP>

<TD ROWSPAN="3">

<A HREF="/cgi‑bin/imagemap/maps/left.gif.map"><IMG SRC="/avon/images/home/nav/left0199.gif" WIDTH="113" HEIGHT="280" BORDER="0" USEMAP="#left0199"></A></TD><TD ROWSPAN="3"><IMG SRC="/avon/images/home/homepagejan98/2ndleft.gif" WIDTH="144" HEIGHT="280" BORDER="0"></TD><TD><A HREF="/avon/about.html"><IMG SRC="/avon/images/home/homepagejan98/aboutavon.gif" ALT="About Avon Books" WIDTH="199" HEIGHT="44" BORDER="0"></A></TD><TD ROWSPAN="3"><A HREF="/avon/fiction/guides.html"><IMG SRC="/avon/images/home/feb98/right1.gif" ALT="Reading Groups" WIDTH="165" HEIGHT="121" BORDER="0"></A><BR><A HREF="/avon/feature/feb99/crook.html"><IMG SRC="/avon/images/home/feb99/crook_text.gif" ALT="The Crook Factory" WIDTH="165" HEIGHT="96" BORDER="0"></A><BR><A HREF="http://apps.hearstnewmedia.com/cgi‑bin/gx.cgi/AppLogic+APPSSURVEYS Questionnaire? domain_id=182&survey_id=541"><IMG SRC="/avon/images/home/feb99/env_text.gif" ALT="The Envelope Please" WIDTH="165" HEIGHT="63" BORDER="0"></A></TD></TR>

<TR VALIGN=TOP><TD><IMG SRC="/avon/images/home/feb98/main.gif" WIDTH="199" HEIGHT="182" BORDER="0"></TD></TR><TR VALIGN=TOP><TD><A HREF="/avon/feature/jan99/sitchin.html"><IMG SRC="/avon/images/home/jan99/sitchin_text.gif" WIDTH="199" HEIGHT="54" BORDER="0"></A></TD></TR><TR VALIGN=TOP><TD COLSPAN="4"><IMG SRC="/avon/images/home/jan99/avon_bottom_beau.gif" WIDTH="622" HEIGHT="179" BORDER="0" USEMAP="#bottom"></TD></TR><TR><TD ALIGN=CENTER VALIGN=TOP COLSPAN="4"><FONT SIZE="2" FACE="ARIAL, COURIER"><PRE>



Поделиться книгой:

На главную
Назад