Выпуск новостей ReactOS №73 | Participants
|
- Statistics
- Participants
- Translate into Russian
- Translation result
- Translation complete.
If you do not want to register an account, you can sign in with OpenID.
ReactOS Newsletter: Newsletter 73 | ||
A word of advice to everyone, traveling through six different cities in the span of two weeks requires a careful balance between changes of clothes brought and lightness of luggage, though a willingness to hand wash will also go a long way. | Хочу дать всем небольшой совет — поездка через шесть городов за две недели требует соблюдения баланса между сменами взятой с собой одежды и весом багажа, и даже не смотря на это желание вымыть руки будет преследовать вас всю дорогу. | |
Timers and Messages | ||
Several years back when I first joined the ReactOS team as a release engineer, which I technically still am, the team ran into an odd bug where when downloading something in Firefox they needed to move the mouse to see any progress. Jim Tabor traced the cause to the nature in which timers were implemented in ReactOS, meaning the fix would be nontrivial. Years later he had completed most of the code for a new implementation and Michael Martin has applied a few additional fixes to make it operational. | Несколько лет назад, когда я присоединился к команде ReactOS в качестве специалиста по выпуску релизов (технически, я до сих пор им являюсь), команда столкнулась со странной ошибкой. Для того, чтобы загружались web-страницы в Firefox, необходимо было двигать мышь. Джим Табор (Jim Tabor) выяснил, что причина проблемы заключается в том, как в ReactOS реализованы таймеры, из чего следовало, что решение, скорее всего, будет непростым. Несколько лет спустя он закончил основную часть кода новой реализации таймеров, а Михаэль Мартин (Michael Martin) внёс несколько дополнительных исправлений, чем обеспечил её функционирование. | |
Previously the only time the system would check for the expiration of a Win32k timer was when an application retrieved a message from the message queue. These messages are basically the notifications the operating system sends to the application to inform it of some kind of event such as a mouse moving. This meant if there were no messages or events the system would never check if a timer had expired. Firefox exposed this issue because it was trying to be clever and avoid the polling that usually happens in a Win32 application by using a timer to basically put itself to sleep. Jim's fix involved using a kernel timer that on expiration would force the system to check existing Win32k timers for expiration. | Ранее, система могла проверить истечение таймера Win32k только получив системное сообщение от приложения из очереди сообщений. Эти сообщения обычно являются уведомлениями, посылаемыми операционной системой приложению, чтобы проинформировать его о каких-либо событиях, например, о перемещении мыши. Это означает, что система никогда не проверяла, истекло ли время таймера, если не было никаких сообщений или событий. Firefox выявил эту ошибку, поскольку предусмотрительно пытался избежать опроса, происходящего обычно в приложениях Win32, переходя в спящий режим и пробуждаясь по таймеру. Исправления Джима связаны с использованием таймера ядра, который по истечении времени заставляет систему проверить на истечение существующие таймеры win32k. | |
Consoles and Blue Screens | ||
Perhaps due to the lack of applications that actually use this feature, consoles on Windows are capable of having multiple screen buffers. This is akin to how the less program on various Unix derivatives load the contents of a file in a new buffer and upon exit the user is dropped back to where he or she was originally. Previously in ReactOS consoles and screen buffers had separate bookkeeping and there was nothing that linked an inactive screen buffer to its parent console. This created a curious situation where the mere concept of switching between screen buffers did not make any sense. In addition, when a console was closed through FreeConsole, the screen buffers that it may have created were not cleaned up and a new console that was created through AllocConsole could pick them up. Besides being a resource leak, it also had the potential to be a security problem if used creatively. | Консоли в Windows одновременно могут иметь несколько экранных буферов, однако, возможно, из-за того, что количество приложений, реально использующих эту возможность, не велико, о ней часто забывают. Также, как и на различных производных Unix, приложение загружает содержимое файла в новый буфер и при выходе пользователя перемещает его туда, где он находился изначально. Ранее, консоли и буферы экрана в ReactOS учитывались отдельно, и не было ничего, что связывало бы неактивный буфер экрана и породившую его консоль. Это создавало любопытную ситуацию, когда простое переключение между несколькими буферами экрана одной консоли не имело никакого смысла. Хуже того, если консоль была закрыта при помощи функции FreeConsole, буферы экрана, которые могли быть ей созданы, не очищались, поэтому новая консоль, созданная при помощи функции AllocConsole, могла подключиться к ним. Помимо утечки ресурсов, эта проблема при соответствующем использовании может стать стать потенциальной угрозой безопасности. | — Согласен. Общепринятый перевод BSOD - синий экран смерти. — Keloraen |
© ReactOS Team.

— Нафик он это написал? Это к ROS не имеет отношения... Да и завидно же! Я вот всё лето так и проторчу в городе ;( Ремонт, ёклмн... — evilslon
— Предлагаю в перевод на сайте это не вставлять,устроил тут ЖеЖешечку, е-мае. — mister-fog
— Поддерживаю! — evilslon
— Типа, мы тут переводчики, а не редакторы. — unxed
— почему тире, а не двоеточие? — aspotashev