и еще SD-карточки не забыть
в этом случае видится 2 проблемы
1) надо где-то хранить таблицы соответствия: путь монтирования - папка монтирования, при этом на каждую смонтированную папку может потребоваться максимум 255*2=510 байт плюс еще несколько байт параметры монтирования(только для чтение и т.д) -
где брать память - заранее резервировать не получиться,т.к. не известно сколько надо смонтировать файловых систем,т.е
надо добавить механизм выделения памяти - на случай,
если юзер захочет смонтировать например 7 папок (диск А,рамдиск сдром и еще 4 раздела на винте
2)как обеспечить взаимодействие оболочки с ядром?
вот если у Вас все функции в одном файле,можно смонтировать винты и флопы,и походить по папкам туда- сюда,а потом надо запустить прогу, Ваша оболочка исчезает из памяти, а ядро системы должно знать что куда примонтровано, и при вызове
функции загрузить каталог например /mnt, показывать
не пустую папку, а содержимое того раздела винта (или папки на разделе),которые туда примонтированы
т.е. надо что - в ядро добавить 2 новые функции - смонтировать/отмонтировать файловую систему
а оболочка будет эти функции вызывать
я у себя планирую упрощенно - про дискеты сказал,
а про винты хочу сделать вот так:
h1 - первый основной раздел на винте
h2 - второй основной раздел на винте
h3 - третий основной раздел на винте
h4 - четвертый основной раздел на винте
h5 - первый дополнительный(логический) раздел на винте
h6 - второй дополнительный(логический) раздел на винте
h7 - третий дополнительный(логический) раздел на винте
h8 - четвертый дополнительный(логический) раздел на винте
c0 - cd/dvd - master
c1 - cd/dvd - slave
для винта не указываем мастер/slave так как он будет один, а второе устройство - это cd/dvd (отдельно настраиваеться кто из них мастер а кто slave, а для двух
винтов еще надо допридумать - например второй винт
будет hb1,hb2 и т.д
для SD-карт можно просто s
и команду монтирования надо mo, т.е.
mo h5 /text - смонтировать первый дополнительный раздел в папку text для чтения и записи
mo h5 /text r - то же самое, только для чтения
а отмонтировать umo
и длинные команды тоже обрабатывать - если кто-то будет по привычке набирать mount/umount
и предлагаю никаких fdd0 - не более чем f0,f1,f2,f3
или fa,fb,fc,fd
ну это не ко мне - хотя в моём существующем ( для DNA OS) варианте sh я и использую несколько номеров функций и регистры(типа Е,символ) как в CP/M - но это мне не удобно,может, придется переделывать






Ответить с цитированием