Page 1 of 1

Прямой доступ к жёсткому диску.

Posted: Wed Sep 16, 2020 6:57 pm
by turbocat
Здравствуйте! Подскажите пожалуйста как я могу получить прямой доступ к харду в кос. Мне хотелось бы записать на диск сырые данные(определённую последовательность байтов например).
Смотрел в сторону этого http://wiki.kolibrios.org/wiki/SysFn57/ru и этого http://wiki.kolibrios.org/wiki/SysFn43/ru
Если с 43 вызовом всё ясно. То 57 вообще не понятно как юзать . Может быть есть другой способ?

Re: Прямой доступ к жёсткому диску.

Posted: Wed Sep 16, 2020 7:53 pm
by dunkaist
If I understand this post correctly, direct disk access depends on "Возможность вынесения собственно дисковых операций в отдельный драйвер, не знающий ничего об уровне файловых систем" which nobody implemented.

Sysfn57 (PCI BIOS) doesn't help because e.g. you may want to run kolibri on a PC with UEFI, i.e. without PCI BIOS service available.
Sysfn43 (Port IO) doesn't help because e.g. you may have a device that isn't controlled via ports.
Anyway, a program must not access a device that is being controlled by its driver.

So, kernel-side/driver work is needed.

Re: Прямой доступ к жёсткому диску.

Posted: Wed Sep 16, 2020 8:13 pm
by turbocat
Спасибо за ответ! Я нашёл документ в котором есть описания функции для работы с диском, но к сожалению я не могу найти заголовочные файлы

Re: Прямой доступ к жёсткому диску.

Posted: Wed Sep 16, 2020 8:52 pm
by maxcodehack
будет подробней описана пррблема будет помощь

Re: Прямой доступ к жёсткому диску.

Posted: Wed Sep 16, 2020 8:59 pm
by turbocat
http://websvn.kolibrios.org/filedetails ... rs_api.txt.
Здесь есть описаны функции работы с диском. Но заголовочных файлов нет. Последний коммит кстати сделан именно dunkaist. dunkaist, вы об этом что нибудь знаете?

Re: Прямой доступ к жёсткому диску.

Posted: Wed Sep 16, 2020 9:04 pm
by maxcodehack
Так ты на си хочешь?

Re: Прямой доступ к жёсткому диску.

Posted: Wed Sep 16, 2020 9:29 pm
by dunkaist
I don't expect there are any header files for C since the kernel is written in fasm.
Well, there are a few headers for sound and syscall wrappers in repo, but not for block layer afaik.

The only driver for a storage device in C I remember is ahci driver by Serge. He never shared its source.

It's not hard to write these header files. Nevertheless, you can't avoid writing some/most of code in assembly for this task.
superturbocat2001 wrote:http://websvn.kolibrios.org/filedetails ... rs_api.txt.
Здесь есть описаны функции работы с диском. Но заголовочных файлов нет. Последний коммит кстати сделан именно dunkaist. dunkaist, вы об этом что нибудь знаете?
The file describes the interface between the kernel and a storage device driver. The information is useful to understand how things work, but what you need to implement is not another device driver.
May be CleverMouse, the author, could elaborate on a high-level architecture needed to implement direct disk access.

Re: Прямой доступ к жёсткому диску.

Posted: Wed Sep 16, 2020 9:52 pm
by turbocat
Thanks for the comprehensive answer.