49443 (666266), страница 2
Текст из файла (страница 2)
Библиотеки — наборы процедур, используемых программами для обработки данных. Существует некоторое количество стандартных библиотек, используемых одновременно более чем одним процессом. В старых системах такие библиотеки включались в каждый исполняемый файл, одновременное выполнение которых приводило к непродуктивному использованию памяти. В новых системах (в частности, в Linux), обеспечивается работа с динамически и статически разделяемыми библиотеками, что позволяет сократить размер отдельных приложений.
Динамическое кеширование диска
Кеширование диска — это использование части оперативной памяти для хранения часто используемых данных с диска, что существенно ускоряет доступ к часто используемым программам и задачам. Пользователи MS-DOS работают со SmartDrive, который резервирует фиксированные области системной памяти для кеширования диска. Linux использует более динамичную систему кеширования: память, зарезервированная под кеш, увеличивается, когда память не используется, и уменьшается, если системе или процессу пользователя требуется больше памяти.
100%-ное соответствие стандарту POSIX 1003.1. Частичная поддержка возможностей System V и BSD
POSIX 1003.1 (Portable Operating System Interface — интерфейс мобильной операционной системы) задаeт стандартный интерфейс Unix-систем, который описывается набором процедур языка Си. Сейчас он поддерживается всеми новыми ОС. Microsoft Windows NT также поддерживает POSIX 1003.1. Linux 100%-но соответствует POSIX. Дополнительно поддерживаются некоторые возможности System V и BSD для увеличения совместимости.
System V IPC
Linux использует технологию IPC (InterProcess Communication) для обмена сообщениями между процессами, использования семафоров и общей памяти.
Возможность запуска исполняемых файлов других ОС
Linux не является первой в истории операционной системой. Для ранее разработанных ОС, включая DOS, Windows 95, FreeBSD или OS/2, разработана масса различного, в том числе очень полезного и очень неплохого программного обеспечения. Для запуска таких программ под Linux разработаны эмуляторы DOS, Windows 3.1 и Windows 95. Более того, фирмой Vmware разработана система "виртуальных машин", представляющая собой эмулятор компьютера, в котором можно запустить любую операционную систему. Имеются аналогичные разработки и у других фирм. ОС Linux способна также выполнять бинарные файлы других Intel-ориентированных Unix-платформ, соответствующих стандарту iBCS2 (intel Binary Compatibility).
Поддержка различных форматов файловых систем
Linux поддерживает большое число форматов файловых систем, включая файловые системы DOS и OS/2, а также современные журналируемые файловые системы. При этом и собственная файловая система Linux, которая называется Second Extended File System (ext2fs), позволяет эффективно использовать дисковое пространство.
Сетевые возможности
Linux можно интегрировать в любую локальную сеть. Поддерживаются все службы Unix, включая Networked File System (NFS), удалeнный доступ (telnet, rlogin), работа в TCP/IP сетях, dial-up-доступ по протоколам SLIP и PPP, и т. д.. Также поддерживается включение Linux-машины как сервера или клиента для другой сети, в частности, работает общее использование (sharing) файлов и удаленная печать в Macintosh, NetWare и Windows.
Работа на разных аппаратных платформах
Хотя ОС Linux первоначально была разработана для ПК на базе Intel 386/486, сейчас она может работать на всех версиях Intel-овских микропроцессоров, начиная с 386 и кончая многопроцессорными системами на Pentium III (с Pentium IV возникли определенные трудности, но, судя по сообщениям в Интернете, они были вызваны ошибками в реализации процессора). (Примеч.3) Так же успешно Linux работает на различных клонах Intel от других производителей; в Интернете встречаются сообщения о том, что на процессорах Athlon и Duron от AMD Linux работает даже лучше, чем на Intel. Кроме того, разработаны версии для других типов процессоров — ARM, DEC Alpha, SUN Sparc, M68000 (Atari и Amiga), MIPS, PowerPC и других (отметим, что в настоящей книге рассматривается только вариант для IBM-совместимых компьютеров).
Количество частных пользователей различных версий Linux'а точно оценить невозможно — ведь дистрибутивы этой системы, в отличие от полностью коммерческих программ, можно совершенно безвозмездно получить у друзей или некоммерческих дистрибуторов, а также скачать с FTP-серверов тех же самых фирм, которые успешно торгуют Linux'ом. Совершенно немыслимая в понятиях обычного капитализма схема работает и устраивает всех участников.
Скоро сказка сказывается, да не скоро дело делается. Операционная система Linux стала известна широкой публике не более двух лет назад. Те, кто давно интересуется новостями из мира высоких технологий и общается время от времени с представителями породы «сумасшедший программист» (в англоязычном варианте — geek или nerd), знакомы со словом Linux года эдак с 95-го. Неудивительно, что сегодняшний успех Linux на многих фронтах — от коммерческого до «идеологического» — многим кажется поразительно, невероятно быстрым. Наберите в окошке запроса на altavista.com слово Windows — и получите 8 670 139 ссылок. На слово Linux их выскочит 2 989 363. Восемь месяцев назад соотношение было примерно равно 6 500 000 на 900 000. Вполне примечательно, не правда ли? Так откуда этот Linux взялся и почему он успешен? Кто дернул за веревочку? Чему и почему мы рукоплещем? Давайте на секунду вернемся на тридцать лет и возьмем разбег — так будет проще. Вся эта история началась задолго до того, как мир узнал о Линусе Торвальдсе, создателе самого, пожалуй, успешного программистского проекта последнего десятилетия. В 1971 году молодой программист и исследователь Ричард Столлмен начал работать в знаменитом Массачусетском Технологическом институте. В те времена, в эпоху «больших компьютеров», программное обеспечение зачастую разрабатывалось свободными объединениями программистов и бесплатно передавалось другим нуждающимся в нем пользователям. Нередко этим занимались даже крупные фирмы. Такой фирмой, например, была AT&T, а точнее, Bell Labs. Ей было запрещено вести коммерческую деятельность в компьютерной области, и поэтому разработчики операционной системы Unix Кен Томпсон (Ken Thompson) и Деннис Ричи (Dennis Ritchie) высылали желающим магнитные ленты с «исходниками» Unix со своего места работы только за стоимость расходных материалов. К 1983 году положение изменилось — наступила эра персональных компьютеров, коммерческие программы и операционные системы (в частности, DOS от Microsoft) начали свое победное шествие по миру, и ржа корыстолюбия проникла в мир «больших» машин и «серьезного» программирования. И потому Столлмен, опечалившись в сердце своем, основал проект GNU (www.gnu.org), целью которого было вернуть старые добрые времена. GNU – это UNIX-совместимая система, включающая в себя набор «свободного» (или «открытого») программного обеспечения .
На основополагающем понятии «свободного» программного обеспечения стоит остановиться подробнее. В манифесте GNU отличию «свободных» программ от «бесплатных» уделено очень много места — по-русски же это можно сказать гораздо короче, поскольку эти понятия не обозначаются, как в английском, одним словом «free». Получив в пользование или купив «свободную» программу, вы можете:
сколько угодно копировать, как угодно широко ее распространять;
изменять или совершенствовать ее исходный код (программа, распространяемая по «публичной лицензии» GNU, всегда поставляется вместе с исходным кодом разработчика — этой самой строго охраняемой и никогда не раскрываемой частью коммерческих программ);
наконец, вы можете свободно распоряжаться измененной версией — хоть раздавать ее даром, хоть запрашивать за нее миллиард.
Но на одну вещь пользователь такого программного обеспечения не имеет права ни в коем случае. Он не может при дальнейшем распространении скрыть исходный код программы, объявив себя его «владельцем», и остановить таким образом ее, программы, свободное совершенствование и развитие. Специально для таких программ проект GNU ввел в обиход понятие «copyleft» (в отличие от «copyright», когда создатель продукта сохраняет на него практически все авторские и имущественные права при любых обстоятельствах — даже если и распространяет его совершенно бесплатно). Очевидно, что проблемы пиратства в случае со «свободными» программами просто не существует.
GNU успешно существует до сих пор. Не менее успешно существует и изобретенная Столлменом лицензия GPL (General Public Licence), благодаря которой придуманный Линусом Торвальдсом Linux завоевал за четыре года своего существования более 20 миллионов пользователей.
К концу прошлого года количество веб-серверов, «крутящихся» под управлением этой операционной системы, превысило количество серверов на Windows-платформе. Количество же частных пользователей точно оценить невозможно — ведь дистрибутивы Linux, в отличие от полностью коммерческих программ, можно совершенно безвозмездно получить у друзей или некоммерческих дистрибуторов, а также скачать с FTP-серверов тех же самых фирм, которые успешно торгуют Linux'ом. Совершенно немыслимая в понятиях обычного капитализма схема работает и устраивает всех участников. Сам Линус Торвальдс три года назад переселился из Финляндии в США, в город Санта-Клара в Калифорнии, поступив на работу в загадочную компанию Transmeta (ее микропроцессоры — тема для отдельного рассказа). Но работу над ядром Linux'а Линус не оставляет, новые версии выходят с завидной регулярностью, только теперь ему помогают в совершенствовании Linux'а — в полном соответствии с принципами GNU — не десятки, а тысячи разработчиков по всему миру.
Биллом Гейтсом Линусу не бывать. Да он и не стремится — его не привлекают ни власть, ни деньги (по крайней мере, в таком объеме). Впрочем, на нарождающемся — да что там, уже родившемся — рынке «свободного» программного обеспечения получить сверхприбыли в стиле Microsoft вряд ли кому удастся. Нет, скажем так — сверхприбыли по-прежнему возможны, поскольку спрос на программное обеспечение только растет. Но вот распределяться они будут несколько иначе.
Итак, настала пора вплотную, почти под микроскопом (насколько позволяют рамки этого издания) рассмотреть бизнес-модель производства и распространения «свободного» программного обеспечения. На первый, «замыленный», взгляд, она кажется вовсе невозможной или, по крайней мере, совершенно бездоходной для участников производственного процесса. На самом же деле в ней нет абсолютно ничего коммунистического. Порывы энтузиазма разработчиков, которые на первый взгляд кажутся абсолютно альтруистическими, и вопли восторга со стороны потребителей, которые кажутся проявлением бездумного фанатизма, на деле основаны на трезвом экономическом расчете. И мы сейчас это продемонстрируем. Для начала придется еще раз подчеркнуть, что никакого отдельного «феномена Linux» в природе не существует. Успех Linux — лишь частный случай кардинальной и, вполне возможно, бесповоротной смены бизнес-модели в программной сфере. Ведь Линус был не единственным, кто раздавал свою программу совершенно бесплатно и получил взамен 20 миллионов пользователей. Можно припомнить некоего системного администратора, работавшего в компании, производившей веб-серверы, — он всего лишь создал список рассылки «заплаток» к бесплатному серверу Apache, который его создатели перестали поддерживать. Прошло несколько лет, этот сервер — по-прежнему бесплатный, у него до сих пор нет «хозяина», ответственного за его техническую поддержку (и не будет!), — однако он обслуживает более чем 60 процентов веб-сайтов планеты. А компании, тратившие на рекламу и продвижение своих коммерческих веб-серверов сотни миллионов долларов, и не чают отвоевать долю рынка, сравнимую с долей «ничейного» сервера Apache. Таких примеров можно набрать целую охапку — ведь практически все программные стандарты, на которых зиждется Интернет, основаны на программах с «открытыми текстами». Так, никому не принадлежащий транспортный протокол TCP/IP давно победил «закрытые» и принадлежащие разным корпорациям DECNET'ы, XNS'ы и прочие IPX'ы. Да что далеко ходить — самый важный в мире комитет по компьютерным стандартам состоит из всех и любых желающих присоединиться к спискам рассылки, собирающихся (кто может) трижды в год на специальные встречи.
Всего лишь года полтора назад бесполезно было спрашивать у руководителя крупной западной компании, использует ли он «свободное» программное обеспечение с открытыми исходными текстами. Вот бы он возмутился! «Оно недостаточно отлажено», «для него нет никакой технической поддержки», «у него нет коммерческой ценности». Российский руководитель скажет и сейчас ровно то же самое (автор этих строк знаком с этим по личному опыту). А вот западный — уже нет.
Первой ласточкой стала в январе 1998 года компания Netscape Communications, опубликовавшая исходные коды своего главного продукта — броузера Navigator (www.mozilla.org). Напомню, что к тому моменту компания Microsoft, куда позже своего соперника обнаружившая коммерческий потенциал Интернета, начала оказывать мощное давление на Netscape, стремительно вытесняя ее с рынка. Решение руководителей Netscape тогда казалось многим последним, продиктованным отчаянием шагом. Позже оказалось, что это было единственно верным решением. Правда, сама компания теперь принадлежит корпорации AOL, но рыночная доля продуктов Netscape — что серверов, что броузеров — осталась практически неизменной и по-прежнему приносит AOL прибыль.
Несколько месяцев спустя большие корпорации, столпы компьютерного бизнеса (Corel, Informix и Oracle), объявили о переносе своих продуктов под операционную систему Linux. Сразу вслед за этим могущественная IBM включила «открытый» сервер Apache в состав одного из своих пакетов. Наконец, в сентябре 98 года Intel, Netscape и несколько венчурных капиталистов вложили деньги в Red Hat Software, распространяющую дистрибутивы Linux (десять месяцев спустя Red Hat станет одним из самых ошеломляющих коммерческих успехов года). Наблюдающие за этими переменами журналисты вдруг вспомнили о том, что большинство почты в Интернете пересылается с помощью «открытого» и бесплатного sendmail, на самых крупных сайтах Повсеместно Протянутой Паутины используются «открытые» языки программирования Perl, Tcl и Python. А самые любознательные обозреватели надоумили читателей, что и весь Интернет в целом первоначально был создан для того, чтобы сообщество независимых разработчиков могло быстро и с удобством обмениваться текстами программ. Так что лишь сам термин «open source» («открытые исходные тексты») является относительно молодым (его ввел в обиход два года назад известный разработчик и апологет «открытых» программ Эрик Рэйнольдс), а вот модель присутствия такого программного обеспечения на рынке отнюдь не нова.