CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
19.03.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки

Ками-терминал, или как "бархатно" уползти от "окон"

Сюжет этой заметки выкристаллизовался спонтанно - занесло меня на днях в фирму Kami, просто так, поговорить на взаимно интересные темы, имеющие отношение к Linux и Open Source. Однако в процессе дружеской беседы я увидел такое, о чем, как профессиональная гиена пера, просто не мог промолчать... Однако начну издалека.

Время от времени на всяческих форумах, имеющих отношение к Linux и Open Source вообще, раздаются пламенные призывы: "Даешь Linux в корпоративе!" и им подобные. Правда, при ближайшем рассмотрении обычно оказывается, что авторы таких призывов подразумевают примерно следующее: "Ребята, бросайте свои дела и сделайте так, чтобы я мог зарабатывать на Linux". Никаких реальных действий за такими призывами, как правило, не стоит.

Тем не менее, корпоративные решения на базе Linux и Open Source на Руси (сиречь в России и Украине) существуют. Просто они а) не очень афишируются их разработчиками, и б) используются в достаточно специфических сферах человеческой деятельности. На первом факторе заострять внимание не буду (sapienti sat, как говаривали древнегреческие римляне). А вот причины второго явления рассмотрения заслуживают.

Действительно, любой современный дистрибутив Linux общего назначения (и даже, скажем, такая ОС, как FreeBSD) содержат в своем составе почти все, что необходимо для организации внутрикорпоративного документооборота и коммуникаций с внешним миром. За двумя важными исключениями: средств векторной графики (и, особенно, CAD-систем) и ведения финансовой документации. Если первый фактор играет роль лишь в отдельных случаях (далеко не все фирмы и организации испытавают необходимость в векторных "рисовалках" и, тем более, системах автоматического проектирования), то без бухгалтерского учета и сопряженных с ним материй, как без воды - "ни туды и ни сюды). А когда мы говорим слова "бухгалтерский учет", под ними молчаливо подразумевается продукция фирмы 1C - так уж исторически сложилось в Государстве Российском. А продукция эта, как известно, функционирует исключительно под одной операционной системой - и вы знаете, под какой. Так что получается, что и "без винды, как без воды"...

Решить проблему с запуском жизненно важного Windows-софта под Linux можно - и даже не одним способом. Во-первых, существуют так называемые виртуальные машины - системы, обеспечивающие запуск, например, Windows (и, разумеется, ее приложений) под Linux или какой-либо BSD (как, впрочем, и наоборот). Наиболлшей известностью из средств такого рода пользуется VMWare - она же является и наиболее развитой. Но увы - это совсем не свободная программа (хотя, при некоторых условиях, и может использоваться бесплатно). А ее открытый аналог - Xen - лишь недавно приобрел достаточную устойчивость.

Тем не менее, использование любой виртуальной машины наталкивается на два ограничения - а) весьма высокие требования к ресурсам компьютера и б) необходимость в приобретении лицензий не только на прикладной софт, но и на саму ОС Windows - в количестве требуемых рабочих мест.

Другой путь использования Windows-софта в среде Linux - запуск его под эмуляторами, типа WINE. Правда, именно для прдукции 1C, защищаемой аппаратными ключами, это сопряжено с определенными трудностями (эмуляторы реагируют на аппаратные ключи весьма неадекватно), но, насколько мне извсестно, трудности эти преодолимы - примером чему разработки фирмы Этерсофт (http://etersoft.ru/). Однако и WINE не избавляет от необходимости лицензий - теперь уже только на приложения, но все равно в количестве рабочих мест.

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

Для начала - на чем все это работает. Очевидно, что клиент-серверная архитектура предполагает наличие "железного" сервера и "железных" клиентов. О первом компоненте говорить особо не придется - это самый обычный сервер на базе Intel-совместимого процессора (процессоров), конфигурация которого определяется потребностями и возможностями организации. Замечу только, что он выступает и как сервер приложений, и как хранилища пользовательских данных (конечно, разделение этих ипостасей на отдельные сервера не возбраняется).

А вот предлагаемые фирмой Kami аппаратные решения с клиентской стороны (то есть собственно терминалы) заслуживают отдельного разговора. Это - классические "тонкие клиенты", то есть машины на базе материнских плат формата ITX с процессорами VIA (в ряде случаев не требующих активного охлаждения). Собственных средств хранения информации они не имеют, но снабжены внутренними винчестероподобными носителями, призванными обеспечить загрузку системы и подключение ее к сети. Впрочем, это можно проделать и с обычного флэш-драйва, подключаемого к USB-разъему.

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

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

Потому что главным составляющим терминального комплекса является, конечно же, не "железо", а софт. Что же представляет из себя он?

В двух словах, это - самый обычный Linux. Хотя нет - обычный, да не совсем... Начать с того, что управляющая система распадается на две части - клиентскую и серверную. Клиентская часть сделана на основе Slackware, только вот ядро и модули пересобраны так, чтобы одинаково успешно запускаться на всем потенциальном "зоопарке" терминального "железа". Однако запуск этого мини-Linux'а - удел только клиентстких машин. А, как уже было сказано, клиентское "железо" весьма разнообразно и специфично. Подчеркну еще раз - клиентская сторона софта обеспечивает только начальную загрузку терминальной станции и ее подключение к сети, все остальные заботы - об интерфейсе пользователя, запуске системных сервисов, обеспечивающих доступ к ресурсам, работе собственно пользовательских приложений, - берет на себя сервер.

А вот в качестве серверной ОС может выступать практически любой дистрибутив Linux (ALT, ASP, RedHat EL, SuSE etc - есть крамольная мысль, а не прикрутить ли туда какую-либо из BSD-систем?), куда спокойно "укладывается" серверная часть предлагаемого решения или в виде RPM-пакетов, или из тарболла. В результате могло бы получиться забавно - зоопарк "железа", наложенный на зоопарк софта, в том числе и системного. И потому разработчиками принято унифицирующее решение - использовать на серверной стороне Red Hat Enterprise Linux, как он нынче официально называется (сокращенно RHEL). Цель чего - оградить пользователей от всех "радостей" разнообразия интерфейсов. Ибо теперь интерфейс их рабочего стола предоставляется серверной стороной (о чем - чуть ниже).

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

Как выглядит в реале функционирование терминального комплекса? Подготовка к работе клиентской станции сводится к подключению ее к сетевому кабелю, обеспечению наличия загрузочного носителя (если он - внешний) и нжатию кнопки Power. После этого за дело последовательно берутся BIOS клиентской машины и ее системный загрузчик, завершая свою работу переходом в режим ожидания действий пользователя, длящийся 7 секунд. Под действиями пользователя подразумевается возможность настройки и обновления системного софта терминала. Однако это - отдельная история, о которой в настоящей заметке речи не будет.

Так что просто отказываемся от каких-либо действий и, по истечении 7 секунд, наблюдаем продолжение загрузки системы - то есть ядра Linux, виртуального диска initrd и необходимых модулей, подключение серверу, а в финале - запуск графического интерфейса пользователя.

В качестве терминального интерфейса пользователя выстпает не что иное, как "легкий" оконный менеджер Fluxbox, несколько модифицированный разработчиками Kami. В частности, его изначально аскетичная инструментальная панель снабжена дополнительной кнопкой, носящей имя (да простят меня читающие это дамы) Старт, выводящей системное меню терминала (оно же вызывается и щелчком правой кнопкой мыши на рабочем столе).

Системное меню позволяет запустить с терминала пользовательские сеансы различных типов доступа к Linux- и Windows-системам (сами они исполняются, разумеется на сервере). Так, работа в среде Linux возможна через клиенты OpenSSH, X11 и VNC. Первый обеспечивает авторизацию пользователя на сервере (разумеется, для этого соответствующий аккаунт должен быть там создан администратором) по одноименному защищенному (шифруемому) протоколу и дальнейшую работу в режиме командной строки - практически также, как на виртуальной консоли обоычной персоналки. Однако основная задача SSH-клиента - запуск на рабочем столе пользователя графических приложений (браузер, почтовый клиент и т.п.), "завернутых" в страхующу SSH-обертку. Причем это делается администратором прозрачно для пользователя (с помощью ключей авторизации), и не требует ради отдельного приложения "тащить" на терминал отдельную сессию Linux.

Кстати говоря, виртуальные консоли имеют место быть и на самом терминале. На одной из них запущен тот самый Fluxbox, который обеспечивает доступ ко всему остальному серверному богачеству, остальные же и служат для его отображения.

При запуске клиента X11 происходит авторизация пользователя на сервере в графическом режиме, после чего следует запуск (опять-таки на сервере) самого обычного сеанса работы в оконной систме X - и снова никаких отличий от работы за локальной машиной обнаружить не удастся. Точно также Иксовый сеанс отображается на отдельной виртуальной консоли терминала.

Ну а сеанс VNC - это запуск cистемы удаленного доступа к компьютеру (сиречь обратно же нашему серверу), использующей специальный протокол RFB (Remote FrameBuffer). Каковой обеспечивае передачу клавиатурных и "мышиных" манипуляций с терминала на сервер и вызванных ими обновлений экрана - в обратном направлении по сети. Подобно Иксовому сеансу, он отображается в графическом режиме, однако может быть запущен не только в полноэкранном режиме, но и в окне приложений.

В общем, пользователь Linux (или любой другой Unix-подобной системы), сев за Ками-терминал, не обнаружит для себя ничего неожиданного или непривычного. Кроме одного: параллельно с любым из перечисленных выше Linux-сеансов он может запустить еще и сеанс работы с Windows - и, более того, свободно переключаться между ними посредством своеобычной комбинации клавиш Alt+Control+F#.

Открыть Windows-сессию можно двумя способами - посредством Citrix-клиента и клиента RDP. К сожалению, разницы между ними объяснить не могу, так как, подобно д'Артаньяну, забыл о Windows даже то, чего не знал... Однако с точки зрения пользователя в любом случае это будет выглядеть также, как пользовательский сеанс в Windows XP на локальной машине. В котором можно открывать любые Windows-приложения, включая сакраментальные программы бухгалтерского учета и прочей бюрократии. Причем для этого достаточно иметь всего одну копию и самой ОС, и требуемых под нее софтин - ибо все это хозяйство все равно исполняется на сервере.

Таким образом, терминальный комплекс Ками и дает ту самую возможность "бархатной" миграции с Windows на Linux, о которой столько говорят на форумах адепты конецепции "Linux в корпоративе". Остается добавить только, что команду разработчиков возглавляет Леонид Уточкин - а до неданего времени он был и единственным ее представителем.

И в заключение: обсудить эту статью (и сам терминальный комплекс) можно в соответствующем трейде на форуме http://posix.ru. Ну и его непосредственный разработчик не откажет в дополнительной информации - с ним можно связаться так: leux@yandex.ru.

2006.05.23





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds