Исследование начальной загрузки операционной системы Linux

Секция ««Информатика и вычислительная техника»

точку. В каждом прямоугольнике хранятся указатели на треугольники, с которыми он пересекается. Затем в локализованной области используется поиск из простого итеративного алгоритма [1].

Алгоритм «Разделяй и властвуй». Трудоемкость данного алгоритма составляет O(NlogN) в лучшем и в среднем случае. Данный алгоритм входит в группу алгоритмов слияния. Принцип алгоритмов слияния заключается в разделении всех точек на области. Из точек каждой области строится триангуляция, а затем выполняется слияние всех триангуляций. В нашем случае все точки делятся пополам. В получившихся группах точки опять делятся поровну, итак до тех пор, пока не будут получены группы с количеством точек 3 или 4. Наиболее простым методом слияния триангуляций является метод «удаляй и строй».

Метод «удаляй и строй». Для двух триангуляций находятся две общие касательные, первая из которых становится базовой линией, от нее начинается построение треугольников в промежутке между сливаемыми подмножествами. Ищется ближайший к базовой линии внешний узел, строится треугольник, вер-

шинами которого являются концы базовой линии и новый узел. При этом иногда требуется удалить уже существующий треугольник. Открытая сторона построенного треугольника становится новой базовой линией[2].

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

Библиографические ссылки

1. Скворцов А. В. Триангуляция Делоне и ее применение. Томск : Томск. ун-та, 2002.

2. Попов С., Попов Ю. Триангуляция : Ийр://гат. ifmo.ru/cat/data/theory/math/triangulation-2008/агЫс1е.рё/.

© Николаев А. А., Зотин А. Г., 2011

УДК 004.9

Д. С. Новиков, Д. С. Лазарев Научный руководитель - О. Н. Моргунова Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

ИССЛЕДОВАНИЕ НАЧАЛЬНОЙ ЗАГРУЗКИ ОПЕРАЦИОННОЙ СИСТЕМЫ LINUX

Рассматриваются проблемы, которые могут возникнуть в ситуации установки на компьютер двух или более ОС. Предлагаются рекомендации по решению этих проблем.

В данный момент перспективным направлением развития нашего вуза в области информатизации является внедрение системы «Сетевой университет» на базе операционной системы (ОС) Linux. В связи с этим является важным рассмотрение различных аспектов использования данной ОС. В первую очередь следует остановиться на проблеме начальной загрузки ОС Linux.

Пока ОС еще не запущена, функционирование ПК контролируется программой, записанной в памяти, доступной только для чтения (prom), называется эта программа BOIS. BIOS осуществляет базовую самопроверку машины и считывает необходимые параметры из энергонезависимой памяти (nvram). Если BIOS удается получить доступ к загружаемому устройству, он активизирует первичный загрузчик, который хранится в первом секторе загружаемого устройства (MBR). Управление передается первичному загрузчику.

Так как MBR у ПК очень мала (ее размер составляет 512 байт), поместить туда полноценный загрузчик невозможно. Поэтому основная обязанность первичного загрузчика ОС состоит в том, чтобы найти на диске вторичный загрузчик. В случае если удается найти вторичный загрузчик, управление передается ему, и он загружает ядро ОС. Вторичные загрузчики нередко обладают большим количеством дополни-

тельных функций, таких как возможность выбирать загружаемое ядро, передавать ему некоторые параметры, настраивать оформление экрана и т. д. [1].

В качестве начального загрузчика ОС Linux обычно используется LILO (Linux LOader) или GRUB (GRand Unified Bootloader). LILO может загружать только ядра Linux, а GRUB является универсальным загрузчиком. Каждый из них может быть установлен либо как вторичный загрузчик (роль первичного в MBR будет выполнять загрузчик DOS), либо как загрузчик из двух частей: первичный и вторичный. Первая часть загрузчика запишется в MBR и будет содержать загрузочный код второй части, записанной в корневом разделе [2].

Когда ядро ОС уже загружено, оно инициализирует устройства (с помощью их драйверов), запускает swapper (это процесс ядра, который называется kswapd в современных ядрах Linux) и монтирует корневую файловую систему. Далее запускается процесс init, он считывает файл /etc/inittab, где и находит свои дальнейшие инструкции. Процесс init является родителем всех процессов. Файл /etc/inittab определяет, что должно быть запущено и на каком уровне запуска (run-level).

Такая схема предоставляет администратору системы удобный механизм настройки, в котором каждый уровень запуска ассоциируется с набором предостав-

Актуальные проблемы авиации и космонавтики. Информационные технологии

ляемых служб (например, на втором уровне запуска обычно инициализируются сетевые службы). Администратор может изменять текущий уровень запуска с помощью команды init и узнать текущий уровень запуска с помощью команды runlevel [3].

Основной проблемой начальной загрузки является различие особенностей загрузки различных ОС. Как показывает практика, начальные загрузчики Microsoft Windows не определяют ядер Linux, а загрузчики для ОС Linux не могу загружать последние версии Microsoft Windows (Vista, 7).

Проведенная исследовательская работа выявила несколько основных проблем использования начальных загрузчиков для одновременной работы с ОС различных семейств. Одной из основных проблем является устойчивое нежелание начальных загрузчиков ОС семейства Windows прописывать в загрузчик любые ОС, отличные от Windows. Кроме того, в ОС Windows вообще не существует стандартных средств для добавления сторонних ОС в начальный загрузчик, тогда как в UNIX-подобных системах пользователь может прописать загрузчик Windows вручную. Но здесь мы сталкиваемся с проблемой иного рода - относительно устаревшие начальные загрузчики UNIX-подобных ОС вообще не способны загружать некоторые новые ОС Windows, такие как Windows7 или Vista, что требует обязательного обновления таких загрузчиков в случае установки указанных ОС.

Основной причиной возникновения проблем с начальными загрузчиками различных ОС является тот факт, что при установке очередной ОС на компьютер новый загрузчик ставится поверх старого, полностью затирая его из памяти. При этом, как уже было упомянуто выше, зачастую новый загрузчик несовместим со старой ОС, вследствие чего доступ к ней пользователю оказывается закрытым. В качестве решения данной проблемы предлагается внимательно подходить к

очередности установки операционных систем на компьютер.

Для примера рассмотрим алгоритм установки операционных систем Windows Seven и FreeBSD. Обрисуем две возможные ситуации:

1. В первый раздел жесткого диска устанавливаем ОС FreeBSD. Затем, используя дистрибутив Windows7, устанавливаем на все оставшееся место Windows7. В результате мы лишаемся загрузочного меню, и, как следствие, возможности загрузить ОС FreeBSD (т.е. возникает проблема). Тогда с помощью дистрибутива FreeBSD начинаем инсталляцию FreeBSD, но не повторяем ее полностью, а только восстанавливаем начальный загрузчик, используя утилиту fdisk. Проблема отсутствия меню начальной загрузки решена.

2. В первый раздел жесткого диска устанавливаем ОС Windows7. На все оставшееся место устанавливаем FreeBSD. В результате при запуске компьютера отображается загрузочное меню из которого можно выбрать нужную систему.

Библиографические ссылки

1. Kohli J. S. Инсталляция и конфигурация загрузчика GRUB (linux grub boot lilo) // Информационный ресурс OpenNET. URL: http://www.opennet.ru/base/ sys/grub_info.txt.html.

2. Загрузчик Grub. Материал из Википедии - свободной энциклопедии. URL: http://ru.wikipedia.org/ wiki/GRUB.

3. Официальный сайт загрузчика Grub. Информационный ресурс GNU Grub. URL: http://www.gnu.org/ software/grub.

© Новиков Д. С., Лазарев Д. С., Моргунова О. Н., 2011

УДК 004.932.2

А. В. Носов, Д. В. Бузаев Научный руководитель - А. Г. Зотин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

СРАВНЕНИЕ МЕТОДОВ СЕГМЕНТАЦИИ КОЖИ В РАЗНЫХ ЦВЕТОВЫХ МОДЕЛЯХ

Рассмотрены методы сегментации изображений по цвету кожи в различных цветовых пространствах. Проанализированы преимущества и недостатки различных цветовых моделей.

В последнее время актуальны задачи распознаванию лиц в различных сферах, одной из таких сфер является охранная сфера. Наиболее важным этапом при решении такой задачи является обнаружение и локализация лиц людей, с дальнейшим отслеживанием изменений их положения или формы с течением времени. Для локализации лиц обычно используют подход в основе которого лежит обнаружение областей, имеющих цвет кожи [1, 2]. В зависимости от цветовой модели цвет кожи может иметь различные представления в различных цветовых пространствах. Наиболее перспективным является использование

цветовых моделей с выраженной яркостной компонентой и хроматическими компонентами, например HSV, HSL, YCrC [3].

Цветовая модель HSV - модель, в которой координатами цвета являются: цветовой тон (Hue); насыщенность (Saturation); значение цвета (Value). Чем больше параметр насыщенность, тем «чище» цвет, а чем ближе этот параметр к нулю, тем ближе цвет к нейтральному серому. Поэтому параметр насыщенность иногда называют чистотой цвета. Модель HSL по существу сходна с цветовой моделью HSV и отличается последним параметром и способом перевода