Page 12 of 18

Posted: Tue Jan 09, 2007 12:50 pm
by diamond
Ядро у нас 32-разрядное...
Код работы с FAT корректно обрабатывает 64-битные смещения и размеры, а именно, поскольку на FAT-томе не может быть файлов больше 4G, то старший dword размера всегда 0, а при запросе смещения >4Gb возвращается ERROR_END_OF_FILE=6. Как и в случае NTFS-файлов размером меньше 4Gb. Причём это было изначально запланировано.

Posted: Tue Jan 09, 2007 9:42 pm
by Serge
Есть проблема с чтением NTFS файлов и папок. Иногда поток зависает с загрузкой 100%. Доступ к диску блокируется намертво. У многих файлов при просмотре вместо правильного содержимого выдается набор каких-то структур с тегами ICS1. Атрибуты у файлов обычные без сжатия и шифрования.

Posted: Thu Jan 11, 2007 12:29 am
by Serge
Похоже что баг связан с дефрагом. Пострадали файлы которые давно не изменялись. Если их перекопировать то они читаются нормально. Теперь можно слушать музыку с NTFS. Хорошая работа.

Posted: Thu Jan 11, 2007 8:27 am
by Mario79
diamond
NTFS работает без пролем. Хорошая работа!
Остается еще доделать ISO9660, сделать поддержку Ext2 и UDF (вроде так называтся еще одна файловая система для CD и DVD). И систему можно считать устоявшейся.

Posted: Thu Jan 11, 2007 5:48 pm
by diamond
Спасибо.
Мёртвая блокировка доступа к диску даже после прибивания приложения, работавшего с диском, - это проблема не в коде NTFS. Глюки с чтением некоторых файлов и папок бывают (сам видел, уже после заливания на svn) и будут исправляться.

Posted: Sat Jan 13, 2007 3:59 pm
by diamond
Глюки с зависанием при чтении исправлены. Наиболее вероятное объяснение появления структур ICS1 (которые не имеют отношения к структуре NTFS) - наличие именованных NTFS-потоков в файле. Я, кстати, понятия не имею, как можно проверить (без просмотра диска на физическом уровне) наличие нескольких потоков на пользовательском уровне. На WinAPI это делается через FindFirstStreamW/FindNextStreamW, но эти функции появились только в Win2003 Server. Ревизия 273 работает корректно на файлах с несколькими потоками (читая только главный).

Posted: Mon Feb 05, 2007 5:49 pm
by diamond
Добавлена функция 70, подфункция 9 - создание папки. (Естественно, не работает для NTFS-томов).

Posted: Tue Feb 13, 2007 12:38 pm
by Heavyiron
В последнее время все чаще возникает вопрос, почему в эмуляторах не удается сохранить РАМ-диск на дискету. В vmware доступ к /fd/1/ есть. Kfar-ом попробовал удалить и скопировать несколько файлов - все работает, а при вызове функции 16/1 возвращается ошибка :( В qemu не удалось даже получить доступ к /fd/1/ из kfar-a

Posted: Wed Feb 14, 2007 9:51 pm
by halyavin
На сколько я знаю qemu использует hardware-level от bochs, а разработчики bochs в упор не хотят исправлять багов в своей эмуляции дискеты (хотя я им детально писал в чем дело). Точнее пишут, что баги исправлены, хотя на самом деле все работает по-прежнему неправильно.

Posted: Fri Feb 16, 2007 4:09 pm
by Serge
Похоже что ф.70.5 виснет если ей передать несуществующий путь на CD. Если запустить такой файл через run придётся перегружать ядро, загрузчик определяет через 70.5 размер файла.
По этой причине andrew_programmer не смог запустить Doom с CD

Posted: Mon Feb 19, 2007 5:31 pm
by diamond
Исправлено. Ревизия 364.

Posted: Fri Feb 23, 2007 10:38 pm
by andrew_programmer
Выяснил интересные вещи.

Если включить поддержку DMA, то фалы в KFAR копируются правильно.Так как на моём компьютере DMA код работает некоректно, то копируемые файлы естественно портятся.Но факт тот, что копирование происходи успешно и без глюков.

Если выключить поддржку DMA( тоесть работать будет через PIO), то при копировании файллов размером больнше нескольких сотен килоюбайт происходит ошибка в работе кода и файл не копируется.Я попробовал скопировать файл из некоторого каталога жёсткого диска в корень жёсткого диска.Файл не скопировался, а вот в корне диска появились какие-то странные файлы.У этих файлов вместо букв в названии символы(рожицы и т.д.).И после этого перестала грузиться винда(пишу из линукса).

Также я проводил тестирования разных версий FASM-ов(очень старые версии и самые новые).Я компилировал ими тестовую программу, которая после компиляции подвешивает Тинипад.Разные фасмы одинаково подвешивали Тинипад.Я так и немогу понять в чём дело - в FASM-е или в ядре.

Posted: Sun Feb 25, 2007 10:42 am
by Maxis
Нашел ошибку в работе драйвера файловой системы: при просмотре определённого каталога его содержимое отображается, как совокупность бессмысленных файлов и каталогов. В тоже время этот же самый каталог в досе и винде отображается корректно.

Posted: Sun Feb 25, 2007 4:46 pm
by Mario79
Maxis
Дай я угадаю - папка находится на диске с файловой системой NTFS?
Тогда нет ничего удивительного - NTFS поддержан только на чтение и не полностью, так как это пока незаконченный драйвер.

Posted: Sun Feb 25, 2007 5:10 pm
by Maxis
Mario79
Нет. Папка находится на FAT32 разделе.