Базы данных
Вопреки распространенному мнению, под Linux разработано и перенесено большое количество серверов данных – от настольных до уровня предприятия. В их числе IBM DB2, Informix, Oracle, Sybase SQL Anywhere, Interbase, PostgreeSQL, MySQL. Причем последние три – бесплатные, с открытым исходным кодом. Остальные, при определенных условиях, можно получить бесплатно или пользоваться бесплатно определенное время.
Эмуляторы Windows
Существует немало эмуляторов Windows в среде Linux: Citrix MetaFrame, Mainsoft's MainWin, Win4Lin, VMWare, WINE и др. Они различны по функциональным возможностям: одни обеспечивают работу приложений для Windows 9.v, другие способны запускать еще и продукты для Windows NT/2000. Есть здесь и сложность – отсутствие поддержки DirectX. Прекрасно запускаются под Linux игры, разработанные в расчете на OpenGL, но большинство самых современных игр, которые выпускаются в расчете на DirectX, пока не работают под эмуляторами. Однако, по заявлениям разработчиков, эта проблема может быть вскоре преодолена. Особняком стоит VMWare. Это не эмулятор Windows, это эмулятор компьютера! Благодаря чему под VMWare работает практически любая программа, но взамен потребляется много ресурсов.
Средства разработки программ
Для Linux, как и для UNIX, «родным» языком является, естественно, C/C++, но это совершенно не означает, что кроме них, никаких других компиляторов (или интерпретаторов) языков не существует. Большего разнообразия языков на одной платформе встретить невозможно. Настоящее вавилонское смешение! Трудно найти какой-либо язык, компилятора или интерпретатора которого не существует для Linux: C/C++, Pascal, Perl, Java, Lisp, Rexx, Fortran и т. д., и т. п. Не обойдены стороной и интегрированные среды разработки. Событием стал выпуск фирмой Borland интегрированной среды Kylix – Linux-аналога Delphi (Windows).
Kylix
Приложения, написанные в Delphi 6 с использованием специальной библиотеки, можно практически без переделок перенести в Linux. Наряду с коммерческой версией Kylix существует и версия для разработки программного обеспечения с открытым исходным кодом, скачать которую можно бесплатно с Web-сайта фирмы Borland. Разработчики обещают обеспечить совместимость и с С Builder. Впрочем, и здесь есть своя ложка дегтя. Во-первых, при работе Kylix использует эмулятор Windows – Wine. Это понятно, программисты из Borland облегчили себе перенос Delphi в Linux, но поскольку Wine – программа, не до конца реализовавшая в себе Windows-совместимость и постоянно модернизируемая, Kylix временами работает нестабильно. И во-вторых, совместно с вновь созданным в Kylix приложением необходимо распространять некоторые специфические библиотеки.
Develop
Программа предназначена для разработки приложений под KDE с использованием библиотеки Qt. Можно разрабатывать консольные приложения. Обладает интерфейсом, похожим на MS Visual С++. Требует много сторонних приложений типа a2ps, Khexedit, KTranslator и т. д. Встроен достаточно удобный интерактивный отладчик.
Рис. 2.8. Интегрированная оболочка разработки программного обеспечения KDevelop
Glade
Визуальная среда для разработки приложений для GNOME. Достаточно неплоха, поддерживает несколько языков программирования. По сравнению с коммерческими средами оставляет ощущение незавершенности. Входит в состав GNOME.
Рис. 2.9. Визуальная среда для разработки приложений Glade
VDK Builder
По интерфейсу напоминает Borland Delphi/Borland С Builder, является развитием Glade. Позволяет разрабатывать приложения для GNOME. VDK – классы, позволяющие программисту получать GNOME-интерфейс, применяя только С++. Есть возможность создания консольных приложений. Нет полноценной системы справки.
Motor
Редактор с подсветкой синтаксиса, менеджер проектов, генератор makefile, интегрирован с gcc и gdb. Поддерживает CVS. Умеет генерировать проекты из шаблонов. Полезная возможность – генерация RPM из проекта.
Rhide
Написана на перенесенной из DOS библиотеке Turbo Vision. Поддерживает С, С++, Assembler, Pascal и Fortran. Оболочка для gdb выделена в отдельное приложение, благодаря этому ее можно использовать как Turbo Debugger. Можно настраивать цвета, компилятор и его опции, языки.
SNiFF+ Penguin IDE
Качественный продукт, основан на коммерческой разработке. Включает в себя анализатор кода. Просмотр кода и навигация по коду производятся по дереву проекта. Поддерживает CVS и RCS. Имеет встроенный редактор документации, можно связывать пункты документации и исходный код. Сгенерированная документация для дальнейшей публикации может конвертироваться в различные форматы. Поддерживает командную разработку. Возможно использование внешних редакторов. Есть версии для Windows NT/2000, Linux, Solaris и других операционных систем.
Code Forge
Платное программное обеспечение. В этой среде можно программировать на значительном количестве языков (С, С++, Assembler, Perl, GTK, TCL, TK, Tkl++, Python, Java, Basic, Fortran, Prolog, SGML, HTML и др.). Имеет настраиваемую подсветку синтаксиса, позволяет использовать любой компилятор (для С++ предлагает три разных), любые отладчики, вести версии, создавать документацию. Однако не имеет визуальных средств.
CodeWarrior
Профессиональная, мощная среда разработчика IDE, интегрированная с EGCS/GNU. Редактор поддерживает подсветку синтаксиса, многооконность, быстрый доступ к функциям и многое другое. Имеется менеджер проектов с настройкой компилятора, линкера, отладчика и редактора. Можно использовать внешний редактор. Умеет запускать скрипты на этапах компиляции и линковки. Хорошо документирована. Кроме версии для Linux, имеются версии для Java, Mac OS, Windows и Solaris. Также указывается, что есть инструменты разработчика для PlayStation, Palm OS, PowerPC, MIPS.
CRiSP
Работает как в X Window, так и в консоли. По внешнему виду напоминает HomeSite. Редактор поддерживает настраиваемую подсветку синтаксиса, работу с тэгами, многооконность. Имеется набор шаблонов языковых конструкций для Ada, С, С++, SQL, HTML, Latex и других. Встроен клиент FTP. Есть версии для Windows, BSD, SGI.
Как видите, выбор обширен, и всегда можно найти продукт, удовлетворяющий самому требовательному вкусу.
Мультимедиа-приложения
Аудио
Звуковые средства должны воспроизводить, как минимум, WAV– и MIDI-файлы, MPEG-3, а также обычные аудио-CD.
Времена сложного ручного конфигурирования этих устройств (достаточно подробно описанные в литературе), похоже, закончились. По крайней мере, в Red Hat и его клонах поддержка звука предполагается по умолчанию. Поддерживаются почти все мало-мальски распространенные устройства. В том числе дешевые ISA– и PCI-карты. Обычно после инсталляции дистрибутива звуковая карта уже сконфигурирована и вполне работоспособна. Впрочем, иногда все же ее приходится настраивать. Для этого достаточно запустить в командной строке программу sndconfig. Она проведет тестирование звукового устройства и в случае благоприятного результата выдаст примеры WAV– и MIDI-звуков.
С аудиодисками также все просто. В состав KDE входит вполне нормальный (и несложный в использовании CD-плейер), аналогичный таковому из комплекта Windows. Кроме того, имеется еще несколько похожих средств как графических, так и консольных, например, несколько проигрывателей входят в состав GNOME.
Для управления звуком, как и в других операционных средах, используется микшер. Микшеров под Linux также очень много, существуют микшеры консольные и графические. Для примера, в составе KDE и GNOME имеется микшер, позволяющий регулировать громкость и баланс при воспроизведении звуков разного типа.
Рис. 2.10. Микшер GMIX, один из многих
KDE и GNOME также включают штатный проигрыватель для воспроизведения WAV-звука. Имеется несколько программ для проигрывания MPEG-3. Во-первых, это mpgl23 – консольный проигрыватель, который потребляет очень мало ресурсов. Несколько простеньких MP3-проигрывателей входят в KDE и GNOME, имеются также XI lamp (полный функциональный аналог известного Winamp для Windows) и KJukeBox. А если требуется преобразовать аудиодиск в MP3-файлы – есть программы, которые сделают и это, причем можно выбрать различные кодеки, качество оцифровки, получить названия треков из базы данных аудиодисков (при подключении к Интернету). Динамично развивается Vorbis – неплохой кодек для музыки.
Видео
Начнем этот обзор с телевидения, которое принимается на компьютер с помощью TV-тюнера. Наиболее распространенные их модели поддерживаются Linux, правда не совсем понятна ситуация с USB TV-тюнерами. А для воспроизведения видеофайлов, как обычно, выбор достаточно большой. Во-первых, для KDE есть штатный видеоплеер широкого назначения – aKtion. Считывает форматы AVI, MPEG, Quick Time, а также FLI/FLC-анимации. Позволяет масштабирование (оригинальный размер, удвоенный, максимальный), а также полноэкранное воспроизведение, любой из вариантов может быть установлен по умолчанию. Имеет регулятор громкости. Есть возможность захвата кадров (в формате BMP и еще нескольких). Довольно много всяких настроек.
Для воспроизведения видео-CD специально предназначены программы mtv и Xtheater. Для воспроизведения видео, записанного в получающем все большее распространение формате MPEG-4 (DivX), можно воспользоваться программой Mplayer.
Однако поддержкой специальных плат нелинейного монтажа Linux похвастаться пока не может. Есть драйверы, написанные для плат серии Miro, однако они постоянно совершенствуются и поэтому не до конца стабильны. Маловато и программного обеспечения для нелинейного видеомонтажа. Остается надеяться, что положение постепенно исправится.
Игры
С играми, наверное, хуже всего. Одно из основных применений домашнего компьютера помимо мультимедиа – это игры. Зачастую только из-за них приобретается четверть всех домашних компьютеров. Проблема с разнообразием и качеством игр напрямую вытекает из технологии их создания. Для Linux есть большое количество небольших игр типа тетриса, пасьянсов, шахмат, нардов, го и реверси. То есть таких, которые не требуют огромной работы по программированию, написанию сценария, разработке трехмерных моделей и невообразимого количества текстур и рисунков. Как только дело доходит до серьезных игр – сразу образуется вакуум. Фирмы-разработчики игр почему-то не считают рынок Linux перспективным. Игры разрабатываются в расчете на Sony Play Station, Nintendo или Windows. А на рынок Linux с играми они выходить не спешат. Тем не менее (вот парадокс) программ-серверов, рассчитанных на Linux для игры через Интернет, достаточно много (те же Quake, Unreal). До недавнего времени только фирма Id Software выпускала Linux-версии своих игр. Фирма Loki Entertaiment разработала специальную библиотеку и перенесла из Windows в Linux достаточно много популярных игр. Кроме коммерческих игр, есть несколько игр с открытым исходным кодом, хотя, в основном, это Linux-реализации давно известных коммерческих игр мира Windows. Самыми яркими представителями здесь являются FreeCiv и FreeCraft Так что, если вы требовательны к разнообразию и качественности игр, к сожалению, Linux пока не для вас.
Итоги
Как следует из материалов этой главы, Linux отлично справится со всякими серверными приложениями и сервисами. С точки зрения администрирования тоже особых проблем нет. Миф о том, что Linux – чисто серверная платформа, и решать на ней офисные задачи невозможно, – только миф. Буквально на днях вышла русская редакция OpenOffice 1, причем, как под Linux, так и под Windows. Помимо этого, динамично развиваются офисы KDE и GNOME. В части домашнего применения картина складывается противоречивая. С одной стороны, отличная поддержка мультимедиа, с другой стороны, практически полное отсутствие современных игр под Linux. Остается надеяться, что с увеличением пользователей Linux производители игр будут выпускать и версии для Linux.
Ссылки
• www.freshmeat.net – сайт, содержащий большое количество программ для Linux и не только.
• www.openoffice.org – официальный сайт OpenOffice.
• www.sun.com – сайт фирмы Sun.
• koffice.kde.org – официальный сайт Koffice.
• www.gnome.org/gnome-office – официальный сайт GNOME-Office.
• www.kdevelop.org – официальный сайт KDevelop.
• www.codeforge.com – официальный сайт Code Forge.
• www.borland.com – официальный сайт фирмы Borland, разработчика Kylix.
• www.gnome.org – официальный сайт GNOME.
• www.kde.org – официальный сайт KDE.
• www.mozilla.org – официальный сайт Mozilla.
• www.opera.com – сайт фирмы-разработчика Opera.
• www.xlmian.com – сайт фирмы Ximian, внесшей весомый вклад в разработку GNOME, а также почтового клиента Evolution.
• www.linuxdocs.org – одно из наиболее полных собраний документации о Linux.
• www.linux-ve.chat.ru – электронная библиотека, посвященная Linux.
• www.citforum.ru – большое собрание русскоязычной документации и книг, в том числе посвященных Linux.
• www.linux.org.ru – один из основных русскоязычных сайтов, посвященных Linux.
• www.applix.com – сайт фирмы-разработчика Applixware.
• www.mysql.org – официальный сайт MySQL.
• www.interbase.com – официальный сайт Interbase.
• www.idsoftware.com – разработчик игр Doom, Quake, Quake II, Quake III.
• www.lokigames.com – сайт фирмы, которая переносит Windows-игры для Linux.
• www.linuxgames.org.ru – сайт, посвященный играм для Linux.
Часть II
Базовая информация о Linux
Глава 3
Работа в сети. Основные понятия
В этой главе будут рассмотрены базовые понятия, лежащие в основе всего последующего изложения. Как уже упоминалось, «компьютер – это сеть». С рассмотрения основных сведений о работе в сети мы и начнем.
Модели сетевых взаимодействий
Как и любая сложная система, сеть должна опираться на стандарты, без которых невозможно нормальное ее функционирование. За последние двадцать лет было создано множество концепций сетевых взаимодействий, однако наибольшее распространение получили всего две:
• модель взаимодействия открытых систем (OSI);
• модель сетевого взаимодействия TCP/IP.
Терминология
Для облегчения понимания содержимого этой главы приведем основные термины (табл. 3.1).
Таблица 3.1. Базовые сетевые термины
Модель взаимодействия открытых систем (OSI)
Еще в 1983 году Международная организация по стандартизации (International Organization for Standardization, ISO) разработала стандарт взаимодействия открытых систем (Open System Interconnection, OSI).
В результате получилась семиуровневая модель:
1. Физический уровень (Physical Level).
2. Уровень данных (Data Link Level).
3. Сетевой уровень (Network Level).
4. Транспортный уровень (Transport Level).
5. Уровень сессии (Session Level).
6. Уровень представления (Presentation Level).
7. Уровень приложения (Application Level).
Первый уровень самый элементарный, последующие – все более и более абстрагируются от особенностей физической среды передачи информации.
Каждый уровень модели OSI решает свои задачи, использует сервисы, предоставляемые предыдущим уровнем и, в свою очередь, предоставляет сервисы следующему уровню. Согласно этой модели, уровни не могут перескакивать через соседей, например, транспортный уровень не может непосредственно пользоваться сервисом физического уровня, он обязан пройти по цепочке: Сетевой уровень → Уровень данных → Физический уровень. В табл. 3.2 приведено описание уровней сетевой модели OSI.