Выпуск новостей ReactOS №71 |
- 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 #71 | ||
Newsletter 17 | — Newsletter 17 ? Походу опечатка... — evilslon | |
NT USB Stack | ||
Pre-Vista, the USB architecture started with a very low level usbport driver. This driver was the one that created device objects for each USB controller and received I/O Request Packets (IRP). Depending on which USB standard the controllers were for, usbport would call into one of three helper drivers, usbehci, usbohci, and usbuhci. The one actually sending those IRPs was usbhub, and these components constitute the lower levels of the USB stack. The majority of USB drivers distributed by companies for their various peripherals sit on top of these and take advantage of a support library called usbd. Without the lower levels, proper USB client drivers won't work and this is what is meant by the developers when the current USB drivers are referred to as somewhat hacky. | До Windows Vista архитектура USB основывалась на драйвере самого низкого уровня - usbport. Именно он создавал объекты устройств для каждого контроллера USB и получал пакеты запроса ввода-вывода (IRP). В зависимости от того, какой стандарт поддерживали контроллеры, usbport вызывал один из трёх вспомогательных драйверов - usbehci, usbohci, и usbuhci. В действительности все эти IRP отправлял usbhub, а перечисленные компоненты представляют собой низшие уровни USB-стека. Большинство драйверов USB поставляемых компаниями для своих периферийных устройств опираются на эти компоненты и пользуются преимуществами вспомогательной библиотеки под названием usbd. Без низших уровней стека нормальные клиентские USB-драйвера работать не будут, и именно это имели ввиду разработчики, называя нынешние драйвера USB "кривоватыми". | — somewhat hacky - Один сплошной хак - ежели кто-то придумает лучший вариант, буду крайне благодарен :) — evilslon — Может перевести как "чуток хромающие" (драйвера) =) На костылях и хромающие драйвера очень даже логично — Farwalker More 6 comments — В Википедии это слово также пишется через Е - http://ru.wikipedia.org/wiki/Стек — evilslon |
Michael Martin has been working to implement these lower level components. Currently he has written a basic usbehci driver and is testing it by trying to replace the usbehci driver in Windows XP. Michael is reusing some code from the pvdrivers that are part of Xen, though there is a distinct limit to how much code is out there for such low level components. Few third parties have a need to implement something like this so much of the work has to be done from scratch. So far Michael has had some success getting the XP PnP manager to interact with his driver, though as the usbehci driver is only a single piece of the stack more time will be needed to get anything close to a complete stack. | Михаэль Мартин (Michael Martin) работал над реализацией этих низкоуровневых компонентов. В настоящее время он написал базовый драйвер usbehci и тестирует его, пытаясь заменить usbehci драйвер Windows XP. Михаэль повторно использует части кода из pvdrivers, являющиеся частью Xen, однако количество кода, который можно оттуда взять для этих низкоуровневых компонентов, крайне ограничено. Мало кому когда-либо требовалось реализовывать нечто подобное, поэтому большую часть нужно написать с нуля. Пока что Михаэль добился определенных успехов в обеспечении взаимодействия менеджера PnP XP со своим драйвером, однако драйвер usbehci представляет собой лишь часть стека и нужно больше времени для того, чтобы получить что-то близкое к полному стеку. | |
Build Tools | ||
When building the objects, the GCC compiler adds an underscore to the start of function signatures, with the linker expecting that underscore. This however prevents linking with objects generated by Microsoft's C/C++ compiler, which Timo Kreuzer wanted for his x64 branch. There is a configuration flag, -fno-leading-underscore, that keeps GCC from doing this, but it must also be passed to the linker and all libraries used must also be built with this flag. ReactOS makes use of several prebuilt C++ libraries in the build engine and they were originally not built with that flag. To fully fix the issue, as the binutils and GCC itself still were not correctly behaving even with the flag passed in, required some additional patches to those tools. Kai Tietz from the MinGW-w64 project helped provide the fixes, which allowed Timo Kreuzer to remove the hacks he had started adding to compensate for the problem. | При сборке объектов, компилятор GCC добавляет нижнее подчёркивание в начало имён функций, а компоновщик предполагает его наличие. Однако, это не позволяет использовать компоновку с объектами, созданными компилятором C/C++ от Microsoft, который Тимо Кройцер (Timo Kreuzer) хотел использовать для своей ветки x64. Существует флаг конфигурации -fno-leading-underscore, запрещающий GCC это делать, но он также должен передаваться компоновщику, и все используемые библиотеки также должны быть собраны с этим флагом. ReactOS использует несколько готовых библиотек C++ в движке сборки, а они изначально не были собраны с этим флагом. Для того, чтобы полностью решить проблему, так как binutils и GCC сами по себе не могли функционировать правильно даже в том случае, если им передавался этот флаг, потребовалось несколько дополнительных патчей для этих инструментов. Кай Тиец (Kai Tietz) из проекта MinGW-w64 помог в создании исправлений, которые позволили Тимо Кройцеру удалить хаки, которые он начал добавлять, чтобы компенсировать проблему. |
© ReactOS Team. License: FDL

— Может шапочку только одну оставить, зачем повторяться — Farwalker