Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт авг 17, 2017 4:52 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 67 сообщений ]  На страницу Пред. 1 2 3 4 5 След.
Автор Сообщение
СообщениеДобавлено: Пт сен 02, 2011 7:33 pm 
ilya писал(а):
А знаете у всех современых устройств есть прерывания, таймауты ваще не должны использоватся

Интересно является ли современным любой DVD привод, который трамвай ваще сломался ваще не генерирует прерывания при нажатии кнопки выдвижения лотка с диском.
ilya писал(а):
2 клавы - 2 драйвера клавы

Угу, 640 Кб хватит всем.


Вернуться к началу
   
СообщениеДобавлено: Пт сен 02, 2011 8:29 pm 
Не в сети

Зарегистрирован: Вт июл 26, 2011 11:03 pm
Сообщения: 62
Цитата:
Интересно является ли современным любой DVD привод, который трамвай ваще сломался ваще не генерирует прерывания при нажатии кнопки выдвижения лотка с диском.
нет не является потому как причина по которой он не вытесняется USB это невозможность порчи информации на диске без явно видимых следов и возможности замены информации.

Я пожалуй перефразирую мой предыдущий пост - А знаете у всех современых устройств есть прерывания и пропаганда таймаутов ваще не должна осуществлятся.


Вернуться к началу
СообщениеДобавлено: Пт сен 02, 2011 8:37 pm 
ilya писал(а):
А знаете у всех современых устройств есть прерывания и пропаганда таймаутов ваще не должна осуществлятся.

Все равно не канает. От одного желания чтобы все было правильно с устройствами так не становится. Есть события которые приходится отлавливать именно с использованием периодических опросов. USB клавиатура и CD\DVD (я подозреваю что и Blu-Ray - наследственность она вещь трудно истребимая) приводы явное тому доказательство.


Вернуться к началу
   
СообщениеДобавлено: Пт сен 02, 2011 9:21 pm 
Не в сети

Зарегистрирован: Вт июл 26, 2011 11:03 pm
Сообщения: 62
Serge писал(а):
3. Я считаю что имя диску должно назначать ядро, а не драйвер. Иначе непонятно как избежать коллизии имён.
Я впринципе согласен, только не имя а ID
У меня вопрос. Есть ф-ция AddDisk которую исполняет драйвер - каким образом ядро узнает что добавленый диск уникален?


Вернуться к началу
СообщениеДобавлено: Ср сен 07, 2011 7:24 pm 
Перенес часть сообщение в тему "Ночные" сборки KolibriOS


Вернуться к началу
   
СообщениеДобавлено: Пт сен 23, 2011 3:46 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Как продвигается разработка ?
Начал делать драйвер для ahci, примонтировал диск, на этом всё и закончилось.


Вернуться к началу
СообщениеДобавлено: Пт сен 23, 2011 9:38 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
В связи с работами по настройке нового сервера - никак. Сейчас вроде сервер наконец настроен.

_________________
Сделаем мир лучше!


Вернуться к началу
СообщениеДобавлено: Вт апр 10, 2012 4:25 am 
Не в сети

Зарегистрирован: Пн янв 16, 2012 5:58 pm
Сообщения: 50
На данный момент с устройствами хранения данных работают два контроллера AHCI и EHCI, для них нужно думать динамическое определение дисков, т.к. их можно менять во время работы. Файловые менеджеры должны получать от системы инфу о смене диска, система должна записать новый диск в общий массив с дисками или убрать от туда диск если например флешку вытащили. Причём диски не физические а логические. А программа проверять массив и обновлять экран.
Я в массив с дисками записываю тип в котором инфа о диске и туда же функции для работы с этим диском, благо в фасме для запуска функции нужен только её адрес и регистры забить нужной инфой. В массиве с логическими дисками идёт в основном инфа о файловой системе и адрес его физического диска.

Массива с физическими дисками у меня нету, я сраза при его появлении читаю первый сектор, смотрю его логические диски и читаю их первый сектор с инфой о файловой системе, создаю объект 'диск' и записываю туда инфу о файловой системе и ещё адрес функции чтения, записи сектора. У флешек и дисков функции чтения разные но я делаю одинаковые входные параметры и результат. На запись о диске у меня 128 байт, первый байт его тип файловой системы, а если он = 0, то это значит что дисков больше нету, если = 1 то запись пуста. Прохожу по дискам и добавляю их на экран по сообщению изменении в дисках.


Вернуться к началу
СообщениеДобавлено: Вт апр 10, 2012 10:04 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Стас
Было бы интереснее лицезреть сам код, а не одни только комментарии к нему.


Вернуться к началу
СообщениеДобавлено: Вт апр 10, 2012 12:04 pm 
Не в сети

Зарегистрирован: Пн янв 16, 2012 5:58 pm
Сообщения: 50
Сам код чтения логических дисков(fat, ntfs) с физического и их записи в массив вам не пригодятся, у вас другие записи о дисках(не знаю какие), а например функции для контроллера AHCI EHCI(инициализация и чтения с них секторов) могу дать.


Вернуться к началу
СообщениеДобавлено: Пн апр 23, 2012 12:38 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Тем временем ревизия r2643 заканчивает первый этап плана. Заодно я нашла и исправила баг с разбалансированным стеком в get_free_FAT, появившийся в r74, из-за которого ядро падало при попытке добавления новых данных на полностью заполненный жёсткий диск.

Специально для нетерпеливых, жаждущих немедленного профита: r2644 содержит исходники драйвера, который по команде от управляющего приложения добавляет или удаляет временный диск указанного размера в памяти. В файловой системе диск появляется как /tmp#/1, где # - цифра от 0 до 9, назначаемая при создании. Скомпилированный драйвер и два консольных приложения для создания и удаления я прилагаю к посту. Все желающие могут заняться написанием GUI с рюшечками, команды драйвера описаны в самом начале исходников драйвера, за взаимодействие с драйвером отвечают системные функции 68.16 и 68.17.


Вложения:
Комментарий к файлу: Управляющие программы
tmpdisk_control.7z [1.25 КБ]
92 скачивания
Комментарий к файлу: Драйвер
tmpdisk.obj [978 байт]
85 скачиваний

_________________
Сделаем мир лучше!
Вернуться к началу
СообщениеДобавлено: Пт апр 27, 2012 2:43 pm 
Начиная с r.2643-2644 производится фиктивная запись файлов на разделы FAT32. Предположительно записываются сектора с данными, а сектора с со служебной информацией FAT остаются не записанными. Следовательно записанный файл доступен только до перезагрузки. Шиндовс не видит эти файлы, Колибри после перезагрузки тоже.


Вернуться к началу
   
СообщениеДобавлено: Пт апр 27, 2012 7:42 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Да, именно так. Я не учла в r2643, что в заготовке для
Цитата:
Дополнительная мера для повышения скорости работы — это сделать так чтобы служебные данные раздела и данные директорий - которые бывают нужны часто, а обновляются редко не выбивались из кэша новыми данными. Для этого планировалось разделить кэш на две неравны части — одну меньшую часть для служебных данных, другую большую часть для данных считываемых файлов.

старая процедура записи кэша сохраняла только одну из двух частей, так что её нужно вызывать дважды. r2653 чинит проблему.

_________________
Сделаем мир лучше!


Вернуться к началу
СообщениеДобавлено: Пн июл 01, 2013 7:34 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
r3742: я перевела на новую схему оставшиеся файловые системы жёстких дисков NTFS и EXT2, а также драйвера жёстких дисков /hd* и /bd*. Могут появиться глюки. FAT12 в двух экземплярах, рамдиск, дискеты и CD пока остаются на старой, нерасширяемой схеме.

_________________
Сделаем мир лучше!


Вернуться к началу
СообщениеДобавлено: Чт ноя 21, 2013 7:44 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
r4273: я перевела на новую схему рамдиск, дискеты и объединила код FAT12 с остальными вариантами FAT. Могут появиться глюки. Жёсткие нерасширяемые зависимости остаются только у CD с собственным кэшем и iso-сколько-то-там-fs.
  • Рамдиск наконец-то получил возможность изменять размер. К сожалению, есть ещё одно наследие Menuet, мешающее полной функциональности: из-за фиксированной карты адресов память за пределами 1.44М уже используется под другие цели, поэтому рамдиск нельзя увеличить. Зато, если катастрофически не хватает памяти, теперь можно загружать рамдиск меньшего размера - лишняя зарезервированная память пойдёт в дело. Ядро определяет размер рамдиска по содержимому образа - размера файла образа оно не видит.
  • В качестве бесплатного бонуса на рамдиске может быть любая поддерживаемая файловая система. Хоть ntfs, если не нужна запись, хоть ext4. Хоть несколько разделов.
  • Сохранение рамдиска на дискету проверяет размер и сразу возвращает ошибку при несоответствии. Сохранение рамдиска в файл создаёт файл размера такого же, каков размер рамдиска. Размер дискеты полагается фиксированным 1440 Кб.
  • 58-й функции больше нет.
  • Дискеты используют тот же код кэша, что и жёсткие диски, так что автоматически кэшируется то, что нужно, с выбором размера кэша в зависимости от количества свободной памяти. Раньше для дискет кэшировались только корневой каталог и таблица FAT.
  • Политика обновления кэша дискеты такая же, как и раньше: если с момента последней операции прошло более 5 секунд, то ядро гасит мотор дисковода и считает кэш недействительным. В пределах 5 секунд перед каждой файловой операцией ядро дёргает бутсектор дискеты и сверяет метку с хранимой меткой; если они не совпадают, ядро считает кэш недействительным.
  • Вторая дискета, если есть, теперь называется /fd2/1 вместо /fd/2. /fd/2, как и для жёстких дисков, будет означать второй раздел, если кому-то в голову придёт крайне странная идея сделать MBR на дискете.
  • Я починила работу с дискетой в Bochs. Технические подробности: Bochs требует, чтобы после сброса и после команды RECALIBRATE система читала статус сброса и команды, это сбрасывает статус прерывания, без этого Bochs не хочет генерировать новые прерывания.

_________________
Сделаем мир лучше!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 67 сообщений ]  На страницу Пред. 1 2 3 4 5 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB