Выпуск новостей ReactOS №44 Процесс разработки Любопытная ошибка, появляющаяся при создании дескриптора, вновь проявилась. Система давала сбой при создании 4100-го дескриптора. Эта ошибка была обнаружена при использовании VLC и был в конечном счёте исправлена Кристофом фон Виттич (Christoph von Wittich). Проблема заключалась в неверных вычислениях, в которых код пытался получить доступ к индексу больше 4099 в первой таблице дескрипторов. Верные значения выходят за её границы и предполагается их искать во второй таблице и выше. Теперь система упадёт не раньше создания 4186000 дескрипторов, этого должно быть достаточно для большинства случаев. Алексей Брагин работает над добавлением проверки файловой системы в ReactOS. Учитывая низкую надёжность FAT, это должно быть весьма полезным дополнением. Утилиты chkdsk, format и autochk - являются лишь обёртками к функциям библиотек файловых систем, таких как ufat.dll и untfs.dll, которые предоставляют нужные функции для форматирования и проверки дисков. Библиотеки взаимодействуют с их оболочками через fmifs.dll, интерфейс которой хорошо известен. Кроме этих трёх утилит, Алексей также окончил портирование dosfsck, начатое Стивеном Эдвардсом (Steven Edwards) и Майком Норделлом (Mike Nordell). Этот порт уже в транке и функционирует, пока Алексей добивается работы autochk и ufat.dll в своей рабочей копии. Работа идёт без особых проблем, поэтому мы должны скоро увидеть результаты. Последнее, но не по важности, Тимо Крейцер (Timo Kreuzer) работал над исправлением некоторых вычислений с плавающей точкой в ядре Win32. В архитектуре x86 данные при операциях переключения контекста не сохранялись при работе в режиме ядра. Тем не менее, по неким причинам все вычисления с плавающей точкой в win32k были написаны с использованием FPU. Тимо полностью переписал структуры данных для того, чтобы не использовать FPU и почти готов их представить. Конвенция Linuxworld Как ни удивительно, ReactOS на Linuxworld разделяет стенд с разработчиками Haiku, и мы более чем рады, поделиться местом для экспозиции именно с этим проектом. К сожалению, Арт Йеркес (Art Yerkes) - наш единственный разработчик, который там будет присутствовать, так как находится географически ближе и у него есть для этого время. Так что - уверенно ищите стенд ReactOS и составьте ему компанию. Обновления от ARM Команда ARM немало проделала с того момента, как я говорил о них в прошлый раз и теперь я один бьюсь над списком изменений для релизов, я охвачен идеей всё это завершить. Они добавили немалое количество кода, готовящего ReactOS к загрузке на ARM и внесли немало исправлений в процессе. Их работа над менеджером памяти особенно ценна, как над одним из слабых мест в коде ReactOS. На их фоне все мы (остальные) выглядим не очень впечатляюще, учитывая количество исправлений, внесённое этой командой. Шаги, предпринятые командой ARM, обеспечили, в первую очередь, уверенность, что код будет компилироваться для ARM. Здесь следует решать проблему фактической загрузки, которая требует модификации Freeloader для запуска на платформе и с процессором ARM. После обнаружения ядра (при загрузке), будет возможно получать вывод по отладочному COM-порту, чтобы можно было видеть, чего не хватает для запуска. На данном этапе, дальнейшее движение без этого невозможно. После применения неких хаков, команда ARM реализовала отладку как следует, хотя и не без жалоб и на этом этапе. Для фактического запуска, операционная система нуждается в управлении своими ресурсами, включая процессорное время и память. В основном, весь код, реализующий перехват прерываний и разделение времени должен быть переписан, чтобы ОС могла реально сообщать, когда что-либо произойдёт или когда она должна что-нибудь сделать. Что касается менеджера памяти, они находили одну запутанную ошибку за другой, тайно злорадствуя над этим. Но, так как они исправили их, мы их прощаем. Сейчас, команда ARM работает над тем, чтобы привести в рабочее состояние свой порт для возможности использовать загрузочное устройство, иначе говоря, ramdisk (виртуальный диск в оперативной памяти). Кроме написания нового драйвера для ramdisk и исправлений в CDFS и собственном FAT драйвере, они также возвращаются к менеджеру памяти, для исправления или расширения функциональности, нужной им для ramdisk. Ещё несколько новых жалоб, возникших с тех пор, вероятно, означают, что они добиваются прогресса в упрощении и исправлении кода. Следующим шагом, по которому они уже сделали некоторые предварительные работы, становится пользовательский режим загрузки и работы. Я желаю им удачи и продолжу наблюдать за их работой. Даже если это будет означать для меня потерю ещё нескольких часов на создание списка изменений, внесённых ими. Портирование на 64-разрядную архитектуру Не буду слишком обнадёживать, так как есть много препятствий, которые нужно обойти, чтобы можно было говорить о каких-либо существенных продвижениях. Тимо Крейцер совместно с Самуэлем Серафион (Samuel Serapión) занимается 64-разрядной средой ROSBE. Самуэль, теоретически, - второй автор выпусков новостей, моя копия. Сэм работает над всем, от компиляции и до ядра, freeldr, вспомогательной библиотеки C, нескольких драйверов, приложений пользовательского режима и всех заголовочных файлов, от которых зависит компиляция. Пока не удаётся компилировать Win32k, поэтому есть, куда двигаться. Сейчас freeldr должен загружать ядро, но всё проваливается на ранних этапах инициализации. Масса кода ещё просто не написана, к тому же ещё нет менеджера памяти для работы в расширенном (64-разрядном) режиме. Этот путь, наверняка, будет долгий и трудный. Больше новых людей Ну, относительно новых. Стефан Гинсберг (Stefan Ginsberg) бродил по каналу под именем Stefan100. Он крутился рядом несколько месяцев и зарывался в код ядра, докучая разным разработчикам. В процессе Стефан находил небольшие ошибки и даже несколько крупных, предоставляя к ним заплатки. Ему был дан доступ к репозиторию и он занимается, в основном, исправлением ошибок в областях, которые ему интересны. Другая личность, получившая доступ на внесение изменений это Кэмерон Гутман (Cameron Gutman), известный на канале как aircommander. Его доступ несколько отличается от доступа Стефана: ему выделена ветка репозитория для поиска и исправления ошибок в коде реализации сети. Иногда он запускает сервер на ReactOS для проверки стрессоустойчивости, хотя он не выживает и часа, если повезет. Уже были внесены некоторые исправления в транк, но они не укладываются в сроки, позволяющие оказаться в ветке 0.3.6. В заключение, всё выглядит так, что Самуэль остаётся слишком занятым, чтобы иметь возможность также заниматься написанием новостей. Как упоминалось выше, он работает над портированием на 64-разрядную архитектуру, для чего также получил доступ к отдельной ветке. Кто знает, быть может и я присоединюсь, ради интереса и действительно сделаю что-то реально работающее. ------------------------------------------------------------------------------- http://translated.by/you/reactos-newsletter-44/into-ru/trans/ Original (English): ReactOS Newsletter #44 (http://www.reactos.org/ru/newsletter_44.html) Translation: © А.Макс, Андрей. translated.by crowd