Page 2 of 2

Re: Ядро - концепция работы

Posted: Sun Jan 18, 2009 11:26 pm
by Pavia
Есть еще маленький недостаток дело в том, что виртуальная файловая система посути отсутствует и передает код напрямую файловой системе того устройства к которому идет обращение. А та в свою очередь использует прямое чтение с диска используя свои функции. Так что NFTS не знает ничего о DMA с его кэшами. Тоже самое и для сд-дисков там ISO.

Так что пост выше относиться по большей части к FAT 32 и жестким дискам.

Полное отсутствие структуры.

Это не препядствие для введение SATA, но прежде всего необхадимость ввести структуру и начать все переписывать. Так как в противном случии SATA будет рабоать местами.

PS. Возможно мои данные устарели.

Re: Ядро - концепция работы

Posted: Mon Jan 19, 2009 2:13 am
by diamond
Насчёт того, что вышеприведённое относится только к жёстким дискам, а код поддержки iso на CD/DVD напрямую обращается к физическому чтению с CD/DVD (аналогичная ситуация с FAT12 на дискетах) и совершенно никак не связан с жёсткими дисками, согласен. А вот то, что код поддержки NTFS ничего не знает о DMA, неверно и никогда (если брать временные рамки существования и того, и другого) не было верно - всё-таки для жёстких дисков некоторая абстракция есть и все вызовы от кода поддержки файловых систем NTFS и FAT32 проходят через две конкретные процедуры (hd_read/hd_write), уже внутри которых осуществляется перенаправление на нужные физические процедуры (PIO/DMA/V86).
Ну а вещи насчёт SATA и vfs обсуждаются здесь: viewtopic.php?f=1&t=1101

Re: Ядро - концепция работы

Posted: Wed Dec 23, 2009 1:49 am
by art_zh
diamond wrote:...начальный кусок системных адресов [OS_BASE, OS_BASE + a), где OS_BASE = 0x80000000 (const.inc), маппится на начало физической памяти [0,a) "почти тривиально" - вычитанием OS_BASE; в этот кусок входит само ядро и все системные таблицы ...
А как маппится самая верхняя зона физической памяти, куда BIOS обычно конфигурирует адреса MMIO-блоков PCI-устройств (видеопамяти, аудио- и сетевых буферов, SATA, USB и т.п.)?

В init.inc этого нет. Возникают 2 наивных предположения:
1) используется еще более тривиальный маппинг (phys = virt) для всего пространства выше [0,a)
или
2) ядро вообще не производит инициализации страниц для MMIO, оставляя это хлопотное дело драйверу
?

Re: Ядро - концепция работы

Posted: Wed Dec 23, 2009 11:09 am
by diamond
art_zh
Второе. Для этих целей ядро экспортирует функцию MapIoMem (это имя для драйверов, реализация в map_io_mem из core/memory.inc), которая выделяет память ядра и маппит туда указанный диапазон физической памяти с указанными флагами. Как вариант, то же самое можно сделать через AllocKernelSpace и MapPage.

Re: ВАЖНО!!! Ядро - концепция работы

Posted: Mon Sep 26, 2011 9:51 pm
by Mario
Надо бы эту информацию на WIKI перенести, а то каждый раз чертыхаясь ищу эту тему, когда вновь приходящие люди начинают фундаментальные вопросы задавать. Может кто перенесет?

Re: ВАЖНО!!! Ядро - концепция работы

Posted: Mon Sep 26, 2011 11:39 pm
by art_zh
Уже полтора года там

http://wiki.kolibrios.org/wiki/Kernel/ru

Re: ВАЖНО!!! Ядро - концепция работы

Posted: Tue Sep 27, 2011 1:58 am
by Mario
Замечательно. Просто иногда начинаешь рефлексивно вспоминать что и где (не так уж часто новички задают фундаментальные вопросы) и никак не можешь вспомнить. Вроде еще не старый (в ноябре 32 года будет), но забываешь напрочь - хорошо хоть что-то в виде зацепки в голове остается.

Re: ВАЖНО!!! Ядро - концепция работы

Posted: Tue Sep 27, 2011 1:48 pm
by XVilka
Это, кстати, проблема связности вики. По-идее не должно быть страниц без ссылок на них, и даже больше чем одна, ну и все в таком роде. Я уже часто сталкивался с подобной проблемой.

Re: ВАЖНО!!! Ядро - концепция работы

Posted: Wed Apr 01, 2020 9:49 pm
by Гордон Фримен
Кто-то может написать статью про механизм распределения ОЗУ между приложениями в Колибри ОС?