Глава 1.

Что такое BeOS?

Logo Be, Inc.    BeOS - это новая, перспективная операционная система, заточенная специально для быстрой обработки видео- и аудиоинформации, за что её и прозвали "МедиаОС". Символ компании Be, Incorporated - это совмещённые ухо и глаз, что является эмблемой операционной системы, предназначенной для работы в основном с этими органами чувств.
Операционная система - набор программ, включающий в себя всё необходимое для обеспечения работы компьютера в соответствии с желаниями пользователя. Говоря простыми словами, операционная система (или ОС) получает от пользователя план действий на ближайшее время (открыть какую-то программу, подключиться к Интернету и т.п.) и заботится о том, чтобы этот план был выполнен. Способы получения вышеупомянутого плана могут быть разными - ввод с клавиатуры, клик мышкой, чтение файла особого типа (иначе называемого скриптом , или - в Windows - бат-файлом, от английского batch-file), или даже приказы, отданные голосом - в операционной системе OS/2. Примеры наиболее популярных операционных систем - MS-DOS, Windows, MacOS, Linux, OS/2, AmigaOS, FreeBSD, OpenBSD, BSDi, Solaris, Minix, PC-DOS... Более-менее полный список операционных систем и Интернет-страниц, к ним относящихся, Вы можете получить здесь.

История.

    BeOS для платформы x86 (IBM-compatible), выпускаемая фирмой (сюрприз!) "Be, Incorporated", появилась во второй половине 1990-х, после пяти лет разработки.
    До этого BeOS работала только на специально разработанном компьютере "BeBox", который имел весьма стильный дизайн, выполненный в синих тонах. Компьютер был передовым для 1992-го года, имел в первой модификации пять процессоров (Hobbit и 3210 DSP компании AT&T), однокнопочную мышку и 14-дюймовый экран. Однако компания AT&T, производившая процессоры, на которых строился BeBox, прекратила выпуск процессора Hibbit, и потому разработка компьютера "BeBox" тоже прекратилась.
BeBox.
Так выглядел блаженной памяти BeBox
    После того, как AT&T кинула "Be, Inc.", операционную систему надо было спасать. Инженеры "Be, Inc." перевели BeOS на аппаратную платформу Макинтош, а точнее, на процессор "Power PC". Новый BeBox выпускался начиная с 1995-го года и имел 7 процессоров. Их было выпущено всего 2000 штук.
    Далее Be, Inc. пришлось портировать BeOS на компьютеры Macintosh, чтобы иметь возможность демонстрировать свою систему на MacWorld Expo со стоек Apple.
    Однако потом Apple купила операционную систему NeXTStep и разорвала все связи с Be, Inc. - включая информацию о новых процессорах PowerPC 603. С тех самых пор Apple не передаёт "Be, Inc." данные о своих новых разработках, и по этой самой причине BeOS невозможно установить на iMac или на PowerMac G4 Cube.Таким образом, BeOS не могла развиваться далее на платформе Macintosh, и для выживания пришлось перенести её ещё и на платформу "x86" (IBM-compatible) - наиболее популярную на сегодняшний день. Так что BeOS работает на двух платформах - PowerPC (компьютеры до версии PowerPC G3) и x86 (то есть, IBM-compatible, к которым относятся, в частности, Intel, IBM и AMD).
 
Как узнать, какой у Вас компьютер? Очень просто: если Вы купили его не у специализированного дилера фирмы Apple, если на нём нет красивых цветных пластмассовых накладок, если Microsoft Windows ставится на нём без предварительной установки специальной программы-эмулятора - это компьютер с архитектурой x86. Иначе - это Макинтош. Есть ещё другие архитектуры, типа Sparc Alpha, Silicon Graphics и т. п., но стоят они столько и встречаются так редко, что если Вы встретились с таким компьютером, Вы наверняка об этом знаете.

    "Be, Inc." выпускала новую версию операционной системы примерно раз в год. На сей момент самой последней версией BeOS была версия 5.0.3, выпущенная в середине лета 2000 года.
    К сожалению, из-за финансовых трудностей компания "Be, Inc." прекратила своё существование зимой 2001-2002 года. Права на исходный код операционной системы, как и вообще на всю интеллектуальную собственность фирмы "Be, Inc" были проданы компании Palm, Inc. за 11 миллионов долларов (грабёж средь бела дня). Palm собирается выпустить собственную операционку, с широкой поддержкой мультимедиа, которая должна будет вернуть ему лидирующие позиции в продажах своих персональных компьютеров-PDA.
    Развитие операционной системы BeOS теперь зависит от успеха проектов типа BlueOS, OpenBeOS и BeUnited. BlueOS занимается созданием новой операционной системы, совместимой с BeOS и с Linux. OpenBeOS собирается постепенно выпускать элементы операционной системы и заменять ими оригинальные элементы BeOS, как, например, это было сделано с mail_daemon - программой автоматической проверки, получения и отправления электронной почты. BeUnited собирается выкупить исходные коды операционной системы, или получить лицензию на их использование. Так что надежда на то, что BeOS будет продолжать развиваться, не является необоснованной.
    (Дополнение: в середине января 2002 г. Palm, Inc. заявили, что они не собираются в обозримом будущем лицензировать исходные коды BeOS ни группе BeUnited, ни кому-либо ещё. Что это значит для будущего операционной системы? - только то, что её развитие пойдёт теперь, скорее, в сторону стихийной замены системных модулей собственными, написанными не какой-либо организованной группой, а программистами-одиночками. Но это ещё не означает смерть операционной системы! Ведь работают же пользователи OS/2 с операционной системой Warp 4, выпущенной в 1996-м году! Правда, IBM уже выпустила для неё 134 всевозможных FIXPAK`а...)
    (Ещё одно дополнение: стихийной замены системных модулей собственными не получится. Группа BeUnited, координируя свои действия с группой OpenBeOS, набрали достаточно большой штат добровольцев-разработчиков (около полутора сотен человек), которые будут заниматься тщательно спланированной, а не стихийной, разработкой операционки. Сейчас они планируют выпустить первый релиз операционной системы OpenBeOS. Дополнительную информацию (на английском языке) можно получить на сайтах OBOS и BeUnited, линки на которые даны выше).

Технические характеристики и достоинства.

    BeOS - система, выделяющаяся из общего ряда благодаря целому набору качеств, отсутствующих в других операционных системах.
    Одно из основных её положительных качеств - 64-битная индексированная журнализированная файловая система, работающая по принципу базы данных. В общих чертах журнализирование означает, что любой изменение в файловой системе немедленно отмечается в постоянно ведущемся журнале. В случае отключения питания (например, если Ваш кот, играя, выдернул шнур питания из компьютера) BeOS проверит текущее состояние файловой системы, сравнит его с последними записями в журнале и приведёт файловую систему в соотвестствие с журналом. Обычно это означает просто вернуться на одну операцию назад.
    Разберём это на примере:
    Допустим, Ваш компьютер в момент случайного выключения переписывал файл windows.sucks с диска BeOS3 на диск BeOS1. В журнале существование файла windows.sucks на диске BeOS1 ещё не было отмечено, (новая запись всегда появляется в конце текущей операции). Если бы копирование файла было окончено, то в журнале появилась бы новая запись, отмечающая появление нового файла. При первой же загрузке BeOS проверит состояние файловой системы (по файлу-списку, который представляет из себя точную копию файлового дерева диска, и изменяется приначале каждой операции - существование этого файла отмечает слово "индексированная" в начале предыдущего абзаца) и заметит несоответствие: на диске BeOS1 существует какой-то кусок информации, не зарегистрированный в журнале. Этот кусок информации будет попросту удалён. С точки зрения пользователя, надо будет только выполнить операцию копирования заново. Но это надо было бы сделать в любом случае, потому что файл всё равно не был переписан до конца.
    При подобной ситуации Windows начинает проверку диска, которая включает в себя проверку всех блоков и секторов, с целью выяснить, есть ли занятые блоки, на которые (или с которых) не ведёт никаких указателей на другие блоки информации. Помимо этого, выполняется проверка файла виртуальной памяти win386.swp на предмет очистки его от останков информации. Помимо этого, проверяются временные файлы Windows, использовавшиеся в работе. Неудивительно, что загрузка Windows занимает порою несколько минут.
    Linux при схожей ситуации соображает, что диски не были корректно отключены (unmounted), и запускает fsck - проверку файловой системы, аналогичную Scandisk в Windows. Тоже довольно болезненный и достаточно долгий процесс. Иногда такого рода шутки (отключение питания в середине работы Linux) приводят к серьёзным повреждениям в файловой системе - вплоть до того, что Linux перестаёт загружаться.
    Macintosh при случайном отключении питания должен восстановить рабочий стол (rebuild desktop) и проверить файловую систему. Тоже не слишком быстрое дело.
    В любом случае, BeOS, выполняя практически ту же самую работу, справляется с ней за несколько секунд, в отличие от всех других операционных систем. Достаточно серьёзное достоинство.

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

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

    Строение этого файла (назваемого индекс-файлом) таково:

(Cамо собой разумеется, что все данные, приведённые в таблице - выдуманные. Не существует ни упоминаемых файлов, ни, может быть, даже каталогов, в которых они "находятся". Сама таблица неточна и не содержит и половины атрибутов упомянутых типов. Все эти данные приведены только для того, чтобы дать представление о структуре индекс-файла).
Имя файла и путь к нему
Тип файла
(MIME)
Пикто-
грамма
Дополнительные атрибуты
Контакты
Почта
MP3
Имя
Адрес
E-mail
Отпра-
витель
Тема
Дата
Группа
Песня
Длина
/boot/home/My/beoscool.txt text/html
/boot/home/people/Zina application/x-person Зина Moscow zina@mail.ru
/boot/home/mail/in/Вечеринка text/x-email zina@mail.ru Вечеринка 2.4.01
/boot/home/mp3/Amor1.mp3 audio/x-mpeg Amorphis Elegy 7:10
/boot/home/mp3/AMor1.mp3 audio/x-mpeg <...> Amorphis Tuonela
/Personal Edition/home/emaillog text/plain

    Как Вы видите, для каждого файла записан как миниум его тип. Иногда добавляются такие атрибуты, как пиктограмма, или имя программы, которая будет открывать этот файл. У некоторых типов файлов есть наборы дополнительных атрибутов, (например, у сообщений электронной почты информация об отправителе, теме письма и т. д. записана в атрибутах). Атрибуты можно добавлять, убирать и изменять - это будет рассмотрено в главе о файлах и работе с Tracker`ом.
    Их использование существенно укорачивает поиск и позволяет значительно усложнять критерии поиска. Например, можно искать все MP3-файлы, в названии группы-исполнителя которых встречаются буквы "A" и "z", и чья длина меньше трёх минут (при условии, что атрибуты "имя группы-исполнителя" и "длина" проиндексированы). При этом для поиска приходится просматривать содержимое только одного файла, а не переползать по всему диску, как это делает, например, Windows 98. Скорость поиска просто потрясающая - поиск по пятнадцатигигабайтному диску занимает около 5 секунд.
    (Некоторые другие операционные системы также используют журнализирование и индексирование файловой системы. В качестве примера могу привести AtheOS и Microsoft Windows 2000, файловые системы которых AtheFS и NTFS5 индексированы и журнализированы).

    Другое качество, заслуживающее упоминания - это многозадачность и многопоточность. BeOS автоматически распределяет задачи, которые надо решить, уделяя большее время тем, которые более нужны системе, и заранее производя вычисления, которые могут понадобиться в будущем, (угадывая в 70 % случаев и экономя таким образом время). Кроме того, BeOS разделяет сложные задачи на потоки более простых, подобно тому, как канат свит из тонких ниток, и заботится о каждой простой задаче-нити отдельно (эта задача так и называется - thread). Одновременно может выполняться достаточно большое количество "нитей", что даёт нам, к примеру, три одновременно проигрываемых фильма, каждый - со звуком (звук в BeOS может проигрываться одновременно несколькими программами, накладывась друг на друга), плюс открытое окно FTP-клиента, где перекачиваются пять файлов одновременно. Верно, что другие операционные системы делают то же самое, (или, по крайней мере, стараются), но попробуйте запустить в Windows 98 программу Scandisk и продолжать работать с чем-нибудь ещё! В Windows, в целях совместимости с предыдущими версиями MS-DOS, работа с дисками - как жёсткими, так и гибкими - занимает попросту все свободные ресурсы.

    Ещё одно немаловажное качество - это девяностопроцентная POSIX-совместимость. Теоретически, это означает, что если взять исходный код программы для Linux, UNIX, Windows NT или Windows 2000 и откомпилировать его в BeOS, то программа будет работать, даже не заметив смены обстановки. Это происходит, конечно, не всегда, потому что совместимость - не стопроцентная.
 

Разница между исходным кодом и готовой программой примерно такая же, как между некоторыми количествами муки, воды, сахара и соли и готовыми печеньями. Исходный код, на написание которого уходит 90% времени программиста - не более, чем составные части будущей программы, отмеренные в нужных пропорциях. В результате процесса, называемого компиляцией, эти ингридиенты становятся программой, готовой к работе. Суть POSIX-совместимости заключается в том, что одни и те же ингридиенты могут быть приготовлены в абсолютно одинаковые печенья вне зависимости от духовки (то есть от операционной системы).

   На деле всё не так просто, потому что обычно сложные программы используют части операционной системы, которые в других операционных системах попросту отсутствуют. Поэтому, соответственно, и программы не могут быть перенесены с одной ОС (операционной системы) на другую так безболезненно. Однако большинство программ, используемых в командной строке BeOS, были именно таким способом (в виде готовых ингридиентов) перенесены с Linux.
    Операционная система BeOS делит оперативную память на защищённые блоки, поэтому даже если какая-то программа выполняет запрещённую операцию, это никак не отражается на работе других программ и операционной системы в целом. Подобно Windows, BeOS использует преимущества вирутальной памяти, отводя место на диске для запущенных, но редко используемых программ и тем самым освобождая оперативную память для более активных приложений. Для повышения быстродействия, BeOS поддерживает весьма редкие и дорогие многопроцессорные компьютеры, - в отличие от, скажем, Windows 95 / 98.
 

Оперативная память - одно из двух устройств для хранения информации в компьютере, (второе - это жёсткий диск). В отличие от жёсткого диска, оперативная память полностью стирается каждый раз, когда компьютер выключается. Из-за особой конструкции оперативной памяти скорость её работы во много сотен раз выше, чем жёсткого диска. Абсолютно вся работа компьютера выполняется в оперативной памяти, поэтому, во-первых, она находится в постоянном обмене данными с жёстким диском, а во-вторых, увеличение количества оперативной памяти почти неизбежно повлечёт за собой увеличение быстродействия компьютера.

   Интернет-протокол TCP/IP встроен в BeOS на уровне операционной системы, что выражается в способности практически мгновенно подключиться к Internet. Кроме того, с BeOS поставляются telnet, ftp и www-сервера, что позволяет подключаться к BeOS-компьютеру через Internet.

    Распознавание файлов построено не как в Windows, по расширению, а по специально построенной системе типов MIME, (на самом деле эта система была адаптирована из электронной почты, где она служит для облегчения обмена файлами), прекрасно зарекомендовавшей себя в среде Internet. Впрочем, если этот файл без MIME типа, то BeOS пытается присвоить ему подходящий тип, исходя из расширения или из содержимого файла.

    Кроме всего прочего, BeOS специально "сглаживает" выводимые на экран символы шрифтов, добавляя в них участки полупрозрачности. По идее, это должно улучшать восприятие написанного. (Некоторые пользователи, однако, утверждают, что "сглаженные" шрифты выглядят, как грязь на экране).

    Медиа-проигрыватель в BeOS позволяет смотреть и слушать файлы, записанные в форматах MPEG-1, QuickTime и AVI. Он также поддерживает plug-ins, которые позволят ему работать с другими форматами, (например, недавно вышел кодек для формата 3vix). Кроме того, в операционной системе есть трансляторы, которые позволяют просматривать и записывать графические файлы в форматах JPEG, Targa, PNG, BMP и TIFF. Можно скачать с Интернета и поставить трансляторы и для других форматов, - например, для GIF. С версией BeOS Pro поставляется также программа RealPlayer. Воспроизведение и запись файлов проводятся с точностью до одной микросекунды, что обеспечивает точное и качественное воспроизведение.

    OpenGL для BeOS позволяет использовать воспроизводить изображение в мировом стандарте для двух- и трёхмерной графики. В основном, увы, трёхмерное ускорение программное, потому что аппаратное графическое ускорение пока что поддерживается только на небольшом количестве карт - в основном, карт 3dfx. BeOS разрешает также прямой доступ к видеокарте из памяти компьютера, что ускоряет процесс воспроизведения.

    BeOS поддерживает Unicode, что позволяет читать большинство языков мира - при условии, что соответствующие Uincode-шрифты есть в системе. Структура пользовательских добавлений (add-ons) к программе, распознающей ввод текста (input_server`у), позволяет писать на практически любом языке, для которого есть соответствующая добавка и шрифты.

    BeOS будет работать на компьютере с 1, 2, 4 или 8 процессорами без переконфигурации. (Установка на компьютер с большим числом процессоров - 16, 32, 64 и 128 - должна проходить нормально, но никогда и никем не была протестирована за отсутствием такого компьютера. Установка на компьютер с 256, 512, 1024 и большим числом процессоров не была запланирована, поэтому что произойдёт при попытке установить BeOS на такой компьютер - неизвестно, но, скорее всего, BeOS будет работать нормально; может, он просто не задействует часть процессоров вообще). Увеличение количества процессоров вдвое ускорит работу Ваших программ вдвое. Контроль возвращается к пользователю как максиум через 250 микросекунд после начала операции, так что курсора в виде песочных часов в BeOS просто не существует. Драйвера устройств подгружаются по мере надобности, как в Linux`е, чтобы ускорить быстродействие.

    Список поддерживаемого оборудования включает в себя последние разработки и достижения: поддерживаются звуковые карты Sound Blaster Live!, телекарты, карты видеомонтажа, Firewire, SCSI, USB и компьютерные видеокамеры. Программа для просмотра TV поставляется вместе с операционной системой - в отличие от Windows.

    И, наконец, два самых привлекательных для меня лично качества BeOS - быстрота и компактность. На абсолютном большинстве компьютеров BeOS поднимается в течение 12 секунд с момента включения компьютера. Сравните со временем загрузки Windows или MacOS, и вы поймёте разницу. Все программы запускаются практически мгновенно. И занимают они в десять раз меньше, чем такие же программы для Windows. После того, как к этому привыкаешь, очень сложно возвращаться в мир "больших ОС", программы под которые, видимо, поставили себе за правило занять больше места, чем конкуренты.

Недостатки.

    Ну конечно, куда ж без них. Самым основным, пожалуй, недостатком является недостаточная аппаратная поддержка BeOS: очень уж мало драйверов для неё есть.
 
Драйвер - это программа, которая служит "переводчиком" между операционной системой и "железным" устройством, являющимся частью компьютера. Например, без драйвера клавиатуры ОС не поймёт, что означает то или иное сочетание нажатых клавиш, да и на сами нажатия не обратит никакого внимания. То же самое относится к мышке, проигрывателю компакт-дисков, принтеру (его ОС просто не заметит без нужного драйвера)... Да практически ко всей аппаратной части компьютера. Само собой разумеется поэтому, что устройство, для которого нет подходящего драйвера, работать не будет.

    Известно, например, что многие производители модемов экономят на аппаратной части, создавая очень сложный драйвер, который и выполняет всю обработку данных. Такой модем (называемый software modem) весьма дёшев, но будет работать только в операционной системе, для которой были написаны его драйверы, поэтому их ещё часто называют Win-модемы. Абсолютное большинство модемов на сегодняшнем рынке относятся к Win-модемам, потому что "обычные" модемы стоят примерно в четыре раза дороже. BeOS, однако, поддерживает несколько моделей таких модемов - в частности, PC-Tel и Lucent.
 

Драйверов под BeOS нет не потому, что разработчики не умеют их писать. Просто далеко не все производители компьютерного оборудования предоставляют Be, Inc. описания своих устройств. Например, фирма nVidia, специализирующаяся на видеокартах, предъявляет такие требования к компании, которая хочет написать драйверы для этих видеокарт, что Be, Inc. просто не может их выполнить. Конечно, можно взять готовый драйвер для другой операционной системы, дизассемблировать его, а потом попытаться написать очень похожий код для BeOS, и, скорее всего, полученная программа будет работать как драйвер. Но эта техника (называемая Reverse Engineering) приравнивается к пиратству, и поэтому Be, Inc. не используют её.

    Другим недостатком является недостаточное количество программного обеспечения. Многие пользователи, пришедшие из мира Windows, будут неприятно удивлены отсутствием привычных Netscape, Internet Explorer, Adobe Photoshop или, на худой конец, любимых игр. Из собственного опыта замечу, что программ для работы на BeOS хватает. С играми на самом деле есть некоторая проблема, но постепенно решается и она, к удовольствию многих поклонников этой операционной системы. (Примечание: Netscape - а точнее, Mozilla - для BeOS уже появился, и сейчас он идёт по пути к своему первому выпуску).
    Несовместимость платформы BeOS с программами из наиболее популярных операционных систем (Windows и MacOS) не представляется инженерам компании "Be, Inc." серьёзной проблемой, потому как они уверены: чем перетаскивать программу из одной операционной системы в другую, сохраняя все проблемы этой программы и добавляя новые, уж лучше писать программу сразу под BeOS.
    Кроме того, определённые неудобства доставляет факт, что Windows не может читать файловую систему bfs, используемую BeOS. Это означает, что ни один из файлов, сохранённых на диске BeOS, в Windows виден не будет, как не будет виден и сам диск BeOS. То же самое относится и к большинству других операционных систем. Это необходимо помнить.
 

На самом деле, дистрибутив операционной системы Linux под названием Mandrake версии 8 уже может читать информацию, записанную на диске bfs. Пока что только читать. Будем надеяться, что в будущем появится драйвер, позволяющий также и запись на диск bfs. Кроме того, поскольку Linux Mandrake на 95 % совместим с Linux Red Hat, скорее всего, cейчас, когда Вы читаете эти строки, Linux Red Hat тоже уже умеет читать bfs-разделы.