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

Z98, “ReactOS Newsletter 82”, public translation into Russian from English More about this translation.

Translate into another language.

Participants

evilslon 1081 points
serrox 266 points
seven_ro 5 points
And others...
Join Translated.by to translate! If you already have a Translated.by account, please sign in.
If you do not want to register an account, you can sign in with OpenID.
Pages: ← previous Ctrl next
1 2 3

ReactOS Newsletter 82

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

History of edits (Latest: seven_ro 6 years, 3 months ago) §

NewCC Status

Состояние NewCC

History of edits (Latest: evilslon 6 years, 3 months ago) §

A while back Art Yerkes merged in a significant part of his new common cache implementation into trunk. This merge was intended to lay the foundation for the eventual replacement of the current common cache, which will happen once Art clears up some inconsistencies in how the sections data structure is treated by the memory manager and the common cache. Sections management is the responsibility of the memory manager but provide functionality the common cache relies on. The old Cc had the tendency to reach in and directly manipulate sections directly instead of asking the memory manager for the resources it needed. This was extremely brittle and the difficulty of untangling this interdependency is one cause for the delay in integrating NewCc. This brittleness is currently manifesting itself in problems with ReactOS crashing while running unit tests, an issue Art wants to resolve before the next merge into trunk.

Недавно Арт Йеркс (Art Yerkes) произвёл слияние разработанного им кода новой реализации диспетчера кэша (NewCC) с основной ветвью кодовой базы проекта. Это слияние должно заложить основу для обеспечения возможности замены текущего диспетчера, которая произойдёт сразу, как только Арт разрешит некоторые проблемы в обработке структур данных разделов диспетчером памяти и диспетчером кэша. Диспетчер памяти отвечает не только за управление разделами, но и предоставляет набор функций, необходимых диспетчеру кэша. У старой реализации диспетчера кэша имелась склонность напрямую управлять разделами вместо того, чтобы запрашивать необходимые ресурсы у диспетчера памяти. Было крайне непросто разобраться в перекрёстных зависимостях этих двух модулей, что и стало одной из причин задержки интеграции NewCC. Эти проблемы в настоящее время проявляются в критических сбоях во время выполнения юнит-тестов в системе, скомпилированной с использованием NewCC, и Арт решил разрешить их до следующего слияния с транком.

History of edits (Latest: evilslon 6 years, 3 months ago) §

Conceptually, the common cache is supposed to ask the memory manager for resources to use in order to cache files. It receives these resources in the form of section objects and is not supposed to make any assumptions about the underlying pages that make up the resources the memory manager provides. The section object mentioned above and the code for interacting with its members was rewritten to avoid NewCc trying to manipulate it directly, as this created a circular dependency with the memory manager suddenly needing the common cache to help maintain a data structure that it was supposed to provide to the common cache.

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

History of edits (Latest: evilslon 6 years, 3 months ago) §

Another limitation in the old Cc implementation has to deal with mapping offsets. This limitation is actually filesystem dependent as the layout of a filesystem's datastructure on disk dictates whether one encounters the problem. Specifically, the old Cc could not map offsets greater than 4GB. For filesystems like FAT that keeps all of its data structures at the start of a disk, running into this problem required having a partition large enough that more than 4GB of filesystem metadata was needed. For something like ext3 that spreads file metadata across the disk, just having a partition larger than 4GB will break things. NewCc resolves this issue and Art used Matt Wu's ext3 driver to confirm the fix. Art's branch is actually capable of installing and booting on an ext3 formatted partition, something many people have asked for in the past. This and other improvements will start benefiting the rest of us once the crash exposed by the unit tests are resolved and Art does the next merge of his code.

Ещё одно ограничение старой реализации диспетчера кэша заключалось в обработке смещений при проецировании файлов. Это ограничение зависимо от файловой системы, поскольку возникновение этой проблемы зависит от размещения структур данных файловой системы на диске. В частности, старый диспетчер не мог спроецировать смещения больше, чем 4 Гбайт. Для файловых систем подобных FAT, где все структуры данных находятся в начале диска, для возникновения этой проблемы необходимо иметь достаточно большой раздел, чтобы потребовалось более 4 Гб метаданных файловой системы. Для файловых систем типа ext3, метаданные файлов в которых распределены по всему диску, для возникновения проблемы необходимо лишь иметь раздел объёмом более 4 Гбайт. С использованием новой реализации диспетчера кэша проблема была решена, и для подтверждения правильности работы диспетчера Арт воспользовался драйвером файловой системы ext3, написанным Мэттом Ву (Matt Wu). Ветвь программного кода Арта на настоящий момент обеспечивает установку и загрузку системы с раздела, отформатированного в ext3, это именно то, чего многие из нас очень хотят от системы в течение уже довольно длительного периода времени. Это и другие улучшения начнут приносить пользу всем нам, как только удастся найти и устранить причины критических сбоев, и Арт сделает следующее слияние его кода.

History of edits (Latest: evilslon 6 years, 3 months ago) §
Pages: ← previous Ctrl next
1 2 3