ROS Newsletter45

Материал из Русский WINE
Перейти к: навигация, поиск

Выпуск новостей ReactOS №45

Отчёт о LinuxWorld

На прошлой неделе Арт Йеркес (Art Yerkes) представлял ReactOS на выставке LinuxWorld, в Калифорнии. К сожалению он единственный из разработчиков, который смог там присутствовать, но кажется всё прошло не плохо. Во время подготовки к выставке, Артом была найдена ошибка, которую я опишу позже. Эта неприятность вынудила его использовать для презентации ReactOS эмулятор QEMU. Проектом заинтересовалось множество людей, среди которых были и пользователи Линукс. Вот несколько программ, работа которых была продемонстрирована: Abiword, Firefox (с html-файлами, т.к. отсутствовало интернет подключение на стенде), WinRAR, 7zip, игры the LMarbles и xemacs.

Арт встретил несколько журналистов из Ars Technica и из Alternageek. Результатом стал видеорепортаж, который можно посмотреть по ссылке: http://alternageek.com/linuxworldexpo/art-yerkes-reactos-linuxworld-2008/. Кроме этого, Арт познакомился с Hans Peter Anvin, который заинтересовался нашим загрузчиком winldr, для использования его в SYSLINUX.

Common cache

Работа над Cc (Common cache, кэш-менеджер) уже упоминалась раньше, когда я рассказывал о намерениях Алексея относительно NoCc. С тех пор Арт Йеркес взялся за дело и практически завершил отделение Cc от Mm (Memory Manager, менеджера памяти). Основной проблемой была общая для них структура данных, которая связывала Mm и Cc. Потому что они оба имели доступ к этой структуре и работали с ней, хотя её не должно быть в Mm. Разделение Cc и Mm позволяет Арту начать переписывать кэш, так чтобы он зависел только от интерфейсов, экспортируемых Mm. Сейчас Cc использует объекты секций Mm, для построение своего кеша.

Кэш, над которым работает Арт, остаётся достаточно простым и будет работать по схеме "часы". Поясню для людей, не знакомых с алгоритмами управления памятью, "часы" реализуются так: элементы кэша хранятся в виде списка, по которому указатель перемещается каждый раз, когда нужно найти свободный участок. Сами записи помечаются флагом, определяющим используется запись или нет. Каждый раз, когда указатель находит запись с флагом, он сбрасывает флаг, чтобы при следующем проходе запись могла быть освобождена. Освобождение записи кэша возможно только при не установленном для неё флаге, поэтому, указатель проходит по списку записей, пока не обнаружит запись без флага, после полного прохода по списку - начиная с его начала, по кругу, вследствие чего алгоритм и получил свое название. Это упрощённое объяснение, но позволяет уловить общую идею. Существует много вариантов этого алгоритма, как с несколькими указателями, так и с различным приоритетом для каждой записи.

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

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

Проблемы с установкой

При установке ReactOS ведет себя не корректно в следующих случаях: не проверяет объём диска, на который будут скопированы файлы с CD; выбирает не тот раздел, если на диске их несколько; использует даже те области диска, которые не предназначены для этого. Упомянутые выше ошибки связаны с тем что буква раздела для CD отличается от той, которую ожидает ROS. При этом, ReactOS продолжает работать, хотя сбой был бы предпочтительнее в данном случае, потому что свидетельствовал бы о том, что что-то идёт не так. Во время попытки установить ReactOS на машину для демонстрации, Арт столкнулся именно с этими ошибками, из-за того что на его машине был раздел Ext2. Описанные проблемы, очевидно, проявятся и в других ситуациях, но сложности с установкой будет первое, с чем вы столкнётесь, если ваша система сконфигурирована подобным образом. Исправление второй проблемы частично устранит первую, в то время как решить третью из проблем должно быть проще всего.

Newsletters
30-39 #30#31#32#33#34#35#36#37#38#39
40-49 #40#41#42#43#44#45#46#47#48#49
50-59 #50#51#52#53#54#55#56#57#58#59
60-69 #60#61#62#63#64#65#66#67#68#69
70-79 #70#71#72#73#74#75#76#77#78#79
80-89 #80#81#82#83#84#85#86#87#88#89
90-99 #90#91#92#93#94#95#96#97#98#99