Вот есть же на свете люди, которые в одиночку пилят свои гениальные долгострои, бросают, снова продолжают… А об их проектах никто не знает. Alter, автор драйвера UniATA один из них.
Подготавливая очередной топик с новостями из жизни команды ReactOS, я изумлением осознал факт, что такая гениальная разработка как UniATA не только ни разу не упоминалась на хабре, но так и пользуется незаслуженным забвением в интернете. UniATA — это универсальный во всех смыслах этого слова драйвер ATA-устройств, разрабатываемый с 2002 года. Ключевой особенностью является то, что драйвер не требует переустановки OS при смене IDE контроллера или мaтеринской платы.
Проект остро нуждается в тестерах!
UniATA на данный момент обеспечивает поддержку:
- NT3.51 (в т.ч. на i386), NT4, 2000, XP, 2003, 2005, Vista, 7, ReactOS
- всей линейки режимов DMA, UDMA0-UDMA6 (ATA-16/25/33/44/66/100/133) на известных контроллерах и базового DMA — на совместимых
- жестких дисков объемом больше 128Gb (LBA-48, EnableBigLba)
- SerialATA (SATA, SATA-2, SATA-3), AHCI rev. 0.95 — 1.30
- большого списка IDE controllers, а также любых других ATA/ATAPI совместимых контроллеров.
- горячая замена IDE устройств в OS младше w2k
- внутреннюю очередь команд и исполнение операций чтения/записи в более оптимальной последовательности
- user-mode утилиту atactl для управления ATA/ATAPI устройствами. Можно находу менять режим передачи данных (PIO/DMA/UDMA).
- настройки кеширования, скорости и многого другого в Registry
- список плохих/ненадежных блоков, чтобы драйвер не мучал диск, а сразу возвращал ошибку (Nikolai Vorontsov).
Зачем и кому нужен такой драйвер? Рассказываю: UniATA имеет смысл поставить, если к новой материнской плате не прилагаются драйвера для вашей старой операционки. Или наоборот — есть старая плата, на которую нужно водрузить новую винду. Конечно, есть стандартные встроенные драйвера, которые наверняка это железо опознают и будут с ним работать. Но как… В PIO режиме, т.е. 0.5-3 Мб/сек. А UniATA будет работать в DMA или UltraDMA режиме, что существенно (иногда даже в 10 раз) быстрее. А вот еще одна проблема — новые винты объемом больше 128 Гб (LBA-48 или BigLba). В старых операционках их поддержка не предусмотрена вообще, а новые требуют последних Service Pack'ов. Поддержка таких винтов в UniATA встроена. И наконец — ситуация смены материнской платы. Обычно это нетривиальная задача. Если просто сделать замену, драйвера от предыдущей платы не опознают новый IDE контроллер и система не загрузится. Придется возвращать плату назад, принудительно менять драйвера на стандартные, снова менять плату и устанавливать новые. О том, чтобы ходить со своим загрузочным винчестеров к друзьям в гости (или на работу) можно забыть (либо довольствоваться скоростью 0.5-3 Мб/сек). Поскольку UniATA поддерживает большой список контроллеров и в дополнение к списку понимает почти любые стандартные (обычные onboard primary/secondary), такая проблема тоже оказывается решенной. UniATA также понимает новые SATA и AHCI контроллеры. Ниже можно почитать более подробный (и более технический) список полезностей.
Скачать сам драйвер, исходники, посмотреть историю версий можно по ссылке
alter.org.ua/ru/soft/win/uni_ata/
Автор: Jeditobe