Как стать автором
Поиск
Написать публикацию
Обновить
49.85
Фонд ReactOS
Операционная система

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

Время на прочтение3 мин
Количество просмотров64K
Вот есть же на свете люди, которые в одиночку пилят свои гениальные долгострои, бросают, снова продолжают… А об их проектах никто не знает. 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
Теги:
Хабы:
Всего голосов 98: ↑89 и ↓9+80
Комментарии46

Публикации

Информация

Сайт
reactos.org
Дата регистрации
Численность
51–100 человек
Местоположение
Россия