Russian-speaking
 Python & Zope User Group

Главная |  Python |  Zope  

Python
Zope
Новости
Copyright
Ответственность  

Но, чтобы поиметь установку в американском стиле, где вы можете просто выйти и кликнуть такси (в смысле клича, а не клика, — прим. для погонщиков «мыши») и дуть своей дорогой, должен существовать целый скрытый аппарат побрякушек, инспекторов, комиссий, и так далее, — который нужен, чтоб такси были дешевы и вы могли в любое время получить одно из них. Когда система отказывается работать почему-либо, это непостижимо и возмутительно и обращает во всех остальных отношениях разумных людей в конспирологических теоретиков. Но, когда Египетская система ломается, она остается прозрачной. Вы не можете получить такси, но племянник вашего водилы прискачет на своих двоих, чтобы объяснить проблему и извиниться.

Microsoft и Apple делают вещи в манхэттенском стиле, с обширной сложностью упрятанной за стеной интерфейса. Linux делает вещи «египетским» способом, с обширной сложностью разбросанной по всему ландшафту. Если Вы только что прилетели из Манхэттена, ваш первый импульс будет вздеть длани и возгласить «Слушайте и не говорите, что не слышали! Кто-нибудь здесь будет что-нибудь делать!?» Но это не поможет вам найти друзей в стране Линуха, сколько-нибудь проще, чем это было бы в Египте.

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

Linux сам по себе — не специфический набор единиц и нулей, но самоорганизующаяся сетевая субкультура. Конечный результат ее коллективных заклинаний — обширное тело исходного кода, почти все записанное на Си (доминирующий компьютерный язык программирования). «Исходный код» просто означает компьютерную программу как набранную и отредактированную каким-нибудь хакером. Если она на Си, имя файла будет вероятно иметь окончание. c или. cpp, в зависимости от того, какой диалект был использован; если она — на некотором другом языке, то будет иметь некоторый другой суффикс. Часто файлы этого типа могут обнаруживаться в директории с именем /src, которое является хакерским «гебраическим» сокращением от «исходник». (То есть «source» — прим перев.)

Исходные файлы бесполезны на вашем компьютере, и представляют небольшой интерес для большинства пользователей, но в них гигантское культурное и политическое значение, поскольку Microsoft и «Яблочники» держат их в секрете, тогда как «линухоиды» делают их общедоступными. Они как семейные ценности. Они — типа той штуки, которая в триллерах Голливуда использована в качестве Чудо-Юдо Оружия: плутониевая начинка бомбы, совершенно секретные планы, чемодан совсекретных инструкций, бобина микрофильма. Если б исходники для «Форточек» или MacOS были сделаны общедоступными через Сеть, то эти ОСи стали бы свободными, подобно Линуху — только не настолько хорошими, из-за того, что никого не оказалось бы вокруг, чтобы «пофиксить баги» и ответить на вопросы. Linux — «открытый источник» софта, лишь в том значении, просто, что каждый может получить копии его исходников.

Вашему компьютеру исходная программа нужна не более вас самих; ему нужен объектный код. Файлы объектного кода естественно имеют суффикс. o и нечитабельны почти ни для кого, кроме некоторых очень странных пацанов, из-за того, что они состоят из единиц и нулей. Соответственно, файлы этого типа обычно валяются в директории с именем /bin, для «бинарников.»

Исходные файлы являются просто текстовыми файлами ASCII. ASCII означает конкретный способ кодировать буквы в битовые образы. В файле ASCII, на каждый символ имеет восемь битов. Это создает резерв «алфавита» на 256 отдельных символов, в этих восьми двоичных цифрах можно сформировать это множество уникальных образцов (два в восьмой степени равно 256 — т. е. число комбинаций из восьми двоичных разрядов, — прим. перев.). На практике, конечно, мы стремимся ограничить себя знакомыми буквами и цифрами. Битовые шаблоны используются, чтобы представить эти буквы и цифры такими же, как те, которые физически перфорировались на бумажную перфоленту моим телетайпом в средней школе, который в свою очередь был таким же, как те, что использовались телеграфной промышленностью в течение десятилетий. Текстовые файлы ASCII, другими словами, — те же самые телеграммы, и как у таковых у них нет всяких типографских украшалок. Но по той же причине они вечны, поскольку код никогда не меняется, и универсальны, поскольку любая из когда-либо написанных программ для редактирования и обработки текстов «в курсах» относительно этого кода. (То есть, конечно, появляются всякие монстры, типа Unicode — удвоенная таблица из 16 разрядов (65536 комбинаций), в которой можно хранить весь китайский алфавит для захвата рынка ПО на родине Мао, но ASCII понимает любой уважающий себя компьютер. Шутка в тему: как на глаз отличить письма в кодировке ASCII и Unicode? Элементарно: маленькие письма — ASCII, большие — Unicode;))) — Прим. перев.)

Следовательно, почти любая софтина может использоваться, чтобы создать, отредактировать, и прочитать файлы исходной программы. Объектные кодовые файлы, затем, создаются из этих исходных файлов специальной программулей, которая называется «компилятор», и обрабатываются до состояния рабочего приложения другим напильником, который называется «компоновщик». (Это священная троица программ, с которой начинается жизнь почти любого компьютера: редактор текстов, компилятор объектных кодов, и «редактор связей» или компоновщик — те блестящие молотки, которыми куча мертвого железа превращается в полезный универсальный инструмент. — Прим. перев.)

Триада редактора, компилятора, и компоновщика, взятых вместе, формирует сердцевину системы разработки программного обеспечения. Теперь есть возможность вбухать много денег в чистенькие системки разработки с красивенькими графическими интерфейсами пользователя и различными эргономическими расширениями (О! Как RAD каждый программист, которому дан в ощущениях процесс Быстрой Разработки Приложений. В некоторых случаях это могло даже быть хорошим и разумным способом тратить деньги. Но на этой стороне дороги, самым лучшим программным обеспечением являются обычно свободные вещи. Редактор, компилятор и компоновщик для хакеров то же самое, чем были пони, стремена, и «комплекты стрельбы из лука» для Монголов (ну, колчан со стрелами и тугой лук — это в своем роде и есть комплект джентльменского арчера, будь то древний монгол или современный энтузиаст любимого спорта английских йоменов и славных парней робин-гудов, так что мой перевод archery sets прошу считать адекватным — прим. перев). Хакеры живут в седле (то есть в Сети? а где живут монголы? — неодумение пререв.), и «хакают» своими собственными инструментами, даже когда используют их, чтобы создать новые приложения. Это в натуре непостижимо, что инструментальные средства высшей пробы могут создаваться с чистого листа инженерами продукта. Даже если они — самые яркие инженеры в мире, они просто в меньшинстве.

В «ГНУсном мире Линуха» (это разумеется, юмор: попробуйте без вопросов перевести на великий и могучий GNU/Linux world. — Прим. перев.) есть две основных проги для редактирования: минималистский vi (известный в некоторых реализациях как elvis) и максималистский emacs (плюс два лагеря непримиримых сторонников того и другого, между которыми — настоящие религиозные войны. — Прим. перев.). Я использую emacs, который можно представить как термоядерный текстовый процессор. То, что он создавался Ричардом Столлманом (Richard Stallman); говорит достаточно. Он написан на языке Лисп, который является единственным машинным языком, который красив (весьма спорное утверждение, целиком на совести автора. Мое мнение может с ним не совпадать: я не люблю Лисп, если кто-то спросит. Мне гораздо больше по вкусу CLIPS, как объектно-ориентированное развитие идей функционального программирования — Прим перев.). Он колоссален, и всего лишь навсего редактирует обычные текстовые файлы ASCII, то есть, никаких шрифтов, никаких «жирных» гарнитур, никакого подчеркивания. Другими словами, часы инженеров, которые, в случае Microsoft Word, посвящались примочкам подобно автоматическому составлению писем и способности вставлять изображения изменяемого размера в корпоративные меморандумы, были, в случае emacs, сфокусированы на маниакальной по интенсивности работе над кажущимися обманчиво простыми проблемами редактирования текста. Если Вы — профессиональный писатель — т. е., если кто-то еще получает деньги, за беспокойство о том, как ваши слова будут отформатированы и напечатаны — emacs затмевает все другие софтины для редактирования приблизительно так же, как полуденное солнце делает звезды. Он не просто большой и более яркий; он просто заставляет всех остальных побледнеть (ну, тоже в своем роде двусмысленное замечание — бледнеть можно по разным причинам, — прим. перев.). Для страничного форматирования и печати Вы можете использовать TeX: обширный объем правил печати, написанных на Си и также свободно доступных в Сети.

Я мог бы долго трепаться о emacs и TeX, но прямо сейчас я пытаюсь поведать историю о том, как в натуре установить Linux в вашей машине. Методом хардкорной проверки на выживание было бы скачать редактор подобно emacs, и инструментальные средства ГНУ — компилятор и компоновщик — которые отшлифованы и великолепны примерно в той же степени как emacs. Обеспеченный ими, некто мог бы начать скачивать файлы исходников в кодировке ASCII (/src) и компилировать их в объектные файлы двоичного кода (/bin), которые должны работать на машине. Но типа, чтобы вообще прибыть в эту точку, — чтобы заставить emacs работать, к примеру — вы должны уже иметь Linux, установленный и работающий на вашей машине. И даже минимальная линуховая ОпСистемка требует тысячи двоичных файлов, действующих в полном согласии, размещенный и связанный вместе совершенно правильно.

Различные личности, таким образом, возложили на себя самих всю грязную работу, по созданию «поставок» Linux. Если я могу немного расширить египетскую аналогию, эти парни примерно как гиды в путешествиях, которые встречает вас в аэропорту, которые говорят на вашем языке, и помогают вам пройти через начальный культурный шок. Если вы — египтянин, конечно, вы видите это с другой стороны; туристические гиды существуют, чтобы удержать британских иноземцев от разгуливания по вашим мечетям и задавания вам одних и тех же вопросов снова и снова.

Некоторые из этих «тургидов» относятся к коммерческим организациям, как например, софтины Красной Шапки (в оригинале — Red Hat Software, название фирмы-распространителя, остальное — интернациональная игра слов, — прим. перев.), которая выпускает дистрибутивы Linux названные «Красной Шапкой», что придает этому столоверчению сравнительно коммерческий блеск. В большинстве случаев вы устанавливаете CD-ROM «Красной Шапочки» (другое фамильярное название, — прим. перев.) в ваш ПиСюк, перезагружаете его, и он выполняет остальное. Так же как гид по Египту будет ожидать некой компенсации за свои услуги, коммерческие поставки должны были оплачены. В большинстве случаев они не стоят почти ничего и в этом их немалое достоинство.

Я пользуюсь поставкой, которая называется Debian (слово является сокращением от «Deborah» и «Ian») и является некоммерческой. Она была организована (или, возможно, я должен сказать «она организовала себя») примерно той же сапой, как Linux в общем смысле, то есть, она опирается на добровольцев, которые сотрудничают по Сети, каждый ответствен за поддержку своего компонента системы. Эти люди разбили Linux на множество пакетов, которые являются сжатыми файлами и могут загружаться уже функционирующей линуховой системой на основе поставки Debian, затем, открываются и распаковываются, используя свободное приложение установки. Конечно, как таковая, Debian не имеет коммерческой мощи — ни распространительного механизма. Вы можете загрузить все дебиановские пакеты по Сети, но большинство людей захочет получить их на CD-ROM. Различные другие компании возложили на себя всю возню по закачиванию дебиановских пакетов на CD-ROMы и последующей их продаже. Я купил свое в «Лаборатории Линуховых Систем». Стоимость для трехдисковой установки, содержащей Debian во всей полноте — менее чем три доллара. Но (и это — важное различие) ни единого пенни из этих трех долларов не достается никому из кодировщиков, которые создавали Linux, ни упаковщикам из Debian. Они все остаются в Лаборатории Линоховых Систем и платятся не за программное обеспечение, или пакеты, но составляют стоимость «выпекания» дисков CD-ROM.

Каждая из линуховых поставок включает некоторый более или менее умный «хак» для обхода нормального процесса загрузки и чтоб заставить ваш компьютер, когда он включится, организовать себя не как ущербный ПиСюк, выполняющий «Окна», но как реальный «хост» под управлением Unix. Это немного тревожит поначалу, когда вы видите это впервые, но полностью безопасно. Когда PC загружается, он проходит небольшую программу самотестирования, проверяя доступное дисковое пространство и запас памяти, а затем осматривается в поисках диска, с которого можно загрузится. В любом нормальном виндовом компьютере, этим диском будет жесткий диск. Но если у вас ваша система настроена правильно, она сначала проверит дисководы для флоппиков или CD-ROM, и загрузится с одного из них, если они доступны.

Linux пользуется этой фишкой в своих целях. Ваш компьютер замечает загрузочный диск в приводе для флоппиков или СиДюков, загружает некоторый объектный код с этого диска, и слепо начинает исполнять его. Но это не «мелкомягкий» или «яблочный» код, это — линуховый код, и отсюда ваш компьютер начинает вести себя намного иначе, по сравнению с тем, к чему вы привыкли. Загадочные сообщения начинают перемещаться по экрану. Если вы загрузили коммерческую OS, вы отсюда видите мультяху «Добро пожаловать в MacOS» или экран, заполненный облаками в синем небе, и логотип «Windows». Но под Linux вы получаете длинную телеграмму, напечатанную абсолютно белыми буквами на черном экране. Здесь нет сообщения «добро пожаловать!». Большинство этих телеграмм полу-непостижимы, как угрожающие граффити на стене. (Не курить! Пристегните ремни… — Прим. линухоида. Три… Два… Один…)

Dec 14 15:04:15 theRev syslogd 1.3–3#17: restart. Dec 14 15:04:15 theRev kernel: klogd 1.3–3, log source = /proc/kmsg started. Dec 14 15:04:15 theRev kernel: Loaded 3535 symbols from /System.map. Dec 14 15:04:15 theRev kernel: Symbols match kernel version 2.0.30. Dec 14 15:04:15 theRev kernel: No module symbols loaded. Dec 14 15:04:15 theRev kernel: Intel MultiProcessor Specification v1.4 Dec 14 15:04:15 theRev kernel: Virtual Wire compatibility mode. Dec 14 15:04:15 theRev kernel: OEM ID: INTEL Product ID: 440FX APIC at: 0xFEE00000 Dec 14 15:04:15 theRev kernel: Processor #0 Pentium(tm) Pro APIC version 17 Dec 14 15:04:15 theRev kernel: Processor #1 Pentium(tm) Pro APIC version 17 Dec 14 15:04:15 theRev kernel: I/O APIC #2 Version 17 at 0xFEC00000. Dec 14 15:04:15 theRev kernel: Processors: 2 Dec 14 15:04:15 theRev kernel: Console: 16 point font, 400 scans Dec 14 15:04:15 theRev kernel: Console: colour VGA+ 80x25, 1 virtual console (max 63) Dec 14 15:04:15 theRev kernel: pcibios_init: BIOS32 Service Directory structure at 0x000fdb70 Dec 14 15:04:15 theRev kernel: pcibios_init: BIOS32 Service Directory entry at 0xfdb80 Dec 14 15:04:15 theRev kernel: pcibios_init: PCI BIOS revision 2.10 entry at 0xfdba1 Dec 14 15:04:15 theRev kernel: Probing PCI hardware. Dec 14 15:04:15 theRev kernel: Warning: Unknown PCI device (10b7:9001). Please read include/linux/pci.h Dec 14 15:04:15 theRev kernel: Calibrating delay loop.. ok — 179.40 BogoMIPS Dec 14 15:04:15 theRev kernel: Memory: 64268k/66556k available (700k kernel code, 384k reserved, 1204k data) Dec 14 15:04:15 theRev kernel: Swansea University Computer Society NET3.035 for Linux 2.0 Dec 14 15:04:15 theRev kernel: NET3: Unix domain sockets 0.13 for Linux NET3.035. Dec 14 15:04:15 theRev kernel: Swansea University Computer Society TCP/IP for NET3.034 Dec 14 15:04:15 theRev kernel: IP Protocols: ICMP, UDP, TCP Dec 14 15:04:15 theRev kernel: Checking 386/387 coupling… Ok, fpu using exception 16 error reporting. Dec 14 15:04:15 theRev kernel: Checking 'hlt' instruction… Ok. Dec 14 15:04:15 theRev kernel: Linux version 2.0.30 (root@theRev) (gcc version 2.7.2.1) #15 Fri Mar 27 16:37:24 PST 1998 Dec 14 15:04:15 theRev kernel: Booting processor 1 stack 00002000: Calibrating delay loop.. ok — 179.40 BogoMIPS Dec 14 15:04:15 theRev kernel: Total of 2 processors activated (358.81 BogoMIPS). Dec 14 15:04:15 theRev kernel: Serial driver version 4.13 with no serial options enabled Dec 14 15:04:15 theRev kernel: tty00 at 0x03f8 (irq = 4) is a 16550A Dec 14 15:04:15 theRev kernel: tty01 at 0x02f8 (irq = 3) is a 16550A Dec 14 15:04:15 theRev kernel: lp1 at 0x0378, (polling) Dec 14 15:04:15 theRev kernel: PS/2 auxiliary pointing device detected — driver installed. Dec 14 15:04:15 theRev kernel: Real Time Clock Driver v1.07 Dec 14 15:04:15 theRev kernel: loop: registered device at major 7 Dec 14 15:04:15 theRev kernel: ide: i82371 PIIX (Triton) on PCI bus 0 function 57 Dec 14 15:04:15 theRev kernel: ide0: BM-DMA at 0xffa0-0xffa7 Dec 14 15:04:15 theRev kernel: ide1: BM-DMA at 0xffa8-0xffaf Dec 14 15:04:15 theRev kernel: hda: Conner Peripherals 1275MB — CFS1275A, 1219MB w/64kB Cache, LBA, CHS=619/64/63 Dec 14 15:04:15 theRev kernel: hdb: Maxtor 84320A5, 4119MB w/256kB Cache, LBA, CHS=8928/15/63, DMA Dec 14 15:04:15 theRev kernel: hdc:, ATAPI CDROM drive Dec 15 11:58:06 theRev kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Dec 15 11:58:06 theRev kernel: ide1 at 0x170-0x177,0x376 on irq 15 Dec 15 11:58:06 theRev kernel: Floppy drive(s): fd0 is 1.44M Dec 15 11:58:06 theRev kernel: Started kswapd v 1.4.2.2 Dec 15 11:58:06 theRev kernel: FDC 0 is a National Semiconductor PC87306 Dec 15 11:58:06 theRev kernel: md driver 0.35 MAX_MD_DEV=4, MAX_REAL=8 Dec 15 11:58:06 theRev kernel: PPP: version 2.2.0 (dynamic channel allocation) Dec 15 11:58:06 theRev kernel: TCP compression code copyright 1989 Regents of the University of California Dec 15 11:58:06 theRev kernel: PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. Dec 15 11:58:06 theRev kernel: PPP line discipline registered. Dec 15 11:58:06 theRev kernel: SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256). Dec 15 11:58:06 theRev kernel: eth0: 3Com 3c900 Boomerang 10Mbps/Combo at 0xef00, 00:60:08:a4:3c: db, IRQ 10 Dec 15 11:58:06 theRev kernel: 8K word-wide RAM 3:5 Rx: Tx split, 10base2 interface. Dec 15 11:58:06 theRev kernel: Enabling bus-master transmits and whole-frame receives. Dec 15 11:58:06 theRev kernel: 3c59x.c:v0.49 1/2/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html Dec 15 11:58:06 theRev kernel: Partition check: Dec 15 11:58:06 theRev kernel: hda: hda1 hda2 hda3 Dec 15 11:58:06 theRev kernel: hdb: hdb1 hdb2 Dec 15 11:58:06 theRev kernel: VFS: Mounted root (ext2 filesystem) readonly. Dec 15 11:58:06 theRev kernel: Adding Swap: 16124k swap-space (priority -1) Dec 15 11:58:06 theRev kernel: EXT2-fs warning: maximal mount count reached, running e2fsck is recommended Dec 15 11:58:06 theRev kernel: hdc: media changed Dec 15 11:58:06 theRev kernel: ISO9660 Extensions: RRIP_1991A Dec 15 11:58:07 theRev syslogd 1.3–3#17: restart. Dec 15 11:58:09 theRev diald[87]: Unable to open options file /etc/diald/diald.options: No such file or directory Dec 15 11:58:09 theRev diald[87]: No device specified. You must have at least one device! Dec 15 11:58:09 theRev diald[87]: You must define a connector script (option 'connect'). Dec 15 11:58:09 theRev diald[87]: You must define the remote ip address. Dec 15 11:58:09 theRev diald[87]: You must define the local ip address. Dec 15 11:58:09 theRev diald[87]: Terminating due to damaged reconfigure.

Единственные фрагменты этого, которые удобочитаемы, для нормальных людей, — сообщения об ошибках и предупреждения. И все что здесь заслуживает внимания, это то, что Linux не останавливает, и не падает, когда он встречает ошибку; он выдает вразумительную претензию, прекращает попытки запустить какой-то упрямый или поврежденный процесс, и катится дальше. Это было решительно не верно для ранних версий «яблочных» и «мелкомягких» ОСей, по той простой причине, что ОСь, которая неспособна ходить и жевать жвачку одновременно, возможно, не сможет восстановиться от ошибок. Поиск и обработка ошибок требует отдельного процесса, работающего параллельно с тем, который «ошибся». Типа супер-эго, если угодно, что присматривает за всеми остальными процессами, и выскакивает, когда какой-то из них теряется. Теперь, когда MacOS и «Винда» могут делать более чем одну вещь одновременно, они стали значительно лучше обрабатывать ошибки, чем обычно, но они даже не приблизились к Linux или другим Юнихам в этом отношении; и их большая сложность сделала их уязвимыми для новых типов ошибок.

Страницы:
 
 
Copyright © 2000-2024, Russian-speaking Python & Zope User Group Ответственность