Выпуск новостей ReactOS №54 | Participants
|
- Statistics
- Participants
- Translate into Russian
- Translation result
- Translated in draft, editing and proof-reading required.
If you do not want to register an account, you can sign in with OpenID.
ReactOS Newsletter #54 | ||
Memory Usage | ||
The minimum required memory for ReactOS has been creeping up for some time now, mainly due to the installer. In general, the developers knew that the memory required by ROS after the install was nowhere as high as during the install. Most assumed there was some kind of memory leakage happening, whether it be in the installer or even in the memory manager. It was an issue many people wanted addressed but it wasn't until Alex Ionescu took a look that the problem was resolved. Alex first changed the display in the installer to show the kernel cache and kernel pool instead of paged and nonpaged pool to make it possible to see where the memory leaks were originating. He also removed a hack that stalled the installer whenever memory usage rose above 40%. He then proceeded to fix up part of the memory manager and common cache, which reduced the memory requirement to 24MB. Usage by the OS after it first boots up is now down to about 20MB. I'm sure I'm not the only one that greatly appreciates these fixes. | Минимальный объём памяти, требуемый ReactOS, на протяжении некоторого времени рос, в основном, из-за требований программы установки. Вообще, разработчики знали, что после установки ReactOS требовалось значительно меньше памяти, чем во время самого процесса. Многие полагали, что существует некоторая утечка памяти, либо в самом установщике, либо в диспетчере памяти. Это была проблема, которая беспокоила многих, но она не была решена до тех пор, пока Алекс Ионеску (Alex Ionescu) не разрешил её. Алекс первым изменил вывод программы установки для отображения кеша ядра и пула ядра вместо страничного и нестраничного пулов, чтобы определить, где происходит утечка памяти. Он также убрал хак, который останавливал программу установки при уровне использования памяти более 40%. Затем он исправил часть диспетчера памяти и менеджер кеш-памяти, в результате чего объем требуемой памяти уменьшился до 24 мегабайт. Объем памяти, требуемый операционной системе после загрузки теперь снизился до 20 мегабайт. Я уверен, что я не единственный, кто высоко ценит эти исправления. | — Может быть лучше начать последнее предложение "Уверен, что я не...." — Leency |
CSR | — Client/Server Runtime Subsystem — bz00mmer | |
The CSRSS component manages the console and is a remnant of earlier times when ReactOS code was pretty much a jumble. Timo Kreuzer spent a few days going through it, trying to fix the CSR_API_MESSAGE data structure. This data structure is needed for CsrClientConnectToServer and proper initialization of user32, which handles message passing, windows, and other things necessary for Windows to function. The original version written in ROS is incorrect and thus also used incorrectly by CsrClientConnectToServer. | Компонент CSRSS (Client/Server Runtime Subsystem, клиент-серверная среда выполнения) управляет консолью и является пережитком тех времен, когда код ReactOS был чрезмерно запутанным. Тимо Крейцер (Timo Kreuzer) потратил на работу с ним несколько дней, пытаясь исправить структуру данных CSR_API_MESSAGE. Эта структура данных требуется для функции CsrClientConnectToServer и правильной инициализации модуля user32, который работает с передачей сообщений, окнами и другими необходимыми для работы операционной системы вещами. Исходная версия этой структуры в ReactOS является неправильной, в результате чего неправильно используется функцией CsrClientConnectToServer. | |
However, somewhere in the ROS codebase some component is using a hardcoded size for that data structure, so any attempts to add or remove members to it results in a crash. Timo attempted to trace this but to no avail. He's currently given up on the component for the time being and looking through the code, I honestly can't blame him. There are lines where someone did multiple casts, first to a generic pointer type, then incrementing that pointer address by the size of a data structure, and then casting to another pointer type for whatever was the intended use. Any person with a modicrum of C knowledge would immediately cringe at such code, as it's both ugly and error prone. | Так или иначе, где-то в недрах кода ROS какой-то компонент использует константно заданный размер этой структуры данных, поэтому любые попытки удалить или добавить в нее новые переменные приводят к падению системы. Тимо попытался отследить то место, где это происходит, но, увы, безрезультатно. Сейчас он приостановил работу над компонентом и, если поглядеть на код, его нельзя винить за это. Там есть строчки, где кто-то использовал множественное приведение типов - сначала к указателю на базовый тип, потом этот адрес увеличивался на размер структуры, и потом приводился к другому типу, который требовалось использовать. Любой человек, знающий язык C, поморщился бы при виде такого кода, поскольку он одновременно уродлив и с большой вероятностью может содержать ошибки. |

— да заипали спамить ящик — Gargo
— Это личные настройки каждого: http://translated.by/accounts/settings/ — bz00mmer