Pull to refresh
59.56
Rating
Фонд ReactOS
Операционная система

Универсальный драйвер, твой выход из сумрака

Фонд ReactOS corporate blog Open source *
Вот есть же на свете люди, которые в одиночку пилят свои гениальные долгострои, бросают, снова продолжают… А об их проектах никто не знает. Alter, автор драйвера UniATA, один из них.

Подготавливая очередной топик с новостями из жизни команды ReactOS, я с изумлением осознал факт, что такая гениальная разработка как UniATA не только ни разу не упоминалась на хабре, но так и пользуется незаслуженным забвением в интернете. UniATA — это универсальный во всех смыслах этого слова драйвер ATA-устройств, разрабатываемый с 2002 года. Ключевой особенностью является то, что драйвер не требует переустановки OS при смене IDE контроллера или мaтеринской платы.

Проект остро нуждается в тестерах!
UPD Alter обнаружил этот топик и получил +10 к морали, в результате вышла
Версия 0.42h
  • Первые тесты AHCI ATAPI прошли успешно.
  • SATA и AHCI ATAPI теперь не переключаются в PIO-режим для исполнения команд отличных от чтения и записи.
  • Добавлена поддержка эмуляции SCSI-команд READ16/WRITE16/VERIFY16/READ_CAPACITY16. Это нужно для расширения адресного пространства LBA до 64 бит, что дает возможнлсть работать с дисками более 2Тб, которые используют более 32 бит для LBA. Note: дисковые драйверы верхнего уровня тоже должны поддерживать эту возможность.



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
Tags:
Hubs:
Total votes 98: ↑89 and ↓9 +80
Views 60K
Comments Comments 46

Information

Location
Россия
Website
reactos.org
Employees
51–100 employees
Registered