вопрос отпадает....
вопрос отпадает....
Последний раз редактировалось Sayman; 15.01.2010 в 06:15.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
(๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ
меня тоже в полследние лет пять угнетают "буквы дисков". если есть желание, то делай через дерево файлов, с монтированием дисков по папкам. да и некоторое подобие скриптов тоже весчь порой необходимая.
раз такая пьянка - делайте юникс на спеке да и всё.
1.Если речь идет о монтировании дисководов A,B,C,D то лучше просто их автоматически монтировать (при обращении к ним) в специально заготовленные для них папки типа /a /b /c /d.
не виже смысла монтировать их куда-нибудь типа /mnt/disk/a, а потом набирать этот длинный путь каждый раз,лично мне удобнее для перехода на диск А набирать
cd a (находясь в корневом каталоге) или
cd /a (находясь где угодно на любом диске/папке)
обрабатываеть в программе такой вариант проще и паамяти нужно меньше.
2 Если речь идет о монтировании разделов винчестера то тут нужно обсуждать подробнее
это всё пофигу чё тут было. юзайте дна и издос...
Последний раз редактировалось Sayman; 15.01.2010 в 06:15.
и еще 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 - но это мне не удобно,может, придется переделывать
Zet9, "2 проблемы" имеют одно решение - виртуальная файловая система. а все остальные монтируются к ней через трансляторы. я про это писал когда-то в закрытом разделе, но до реализации дело не дошло.
но поскольку не было рализовано, может уже можно рассекретить текстик - а мы полюбопытствуем, что же это за трансляторы такие, возможно, чтоВаш способ годится для системы, разрабатываемой с нуля
А для решение этих 2-х проблем для существующих систем можно предложить например такие:
1) Как я уже говорил надо изменять ядро системы.
Вот Saymon если захочет, может внести изменения в ядро CP/M (или Профидос или Q-DOS - или как правильно?) - но как это изменение повлияет на совместимость (он уже про это говорил)
Я вносить изменение в ядро DNA OS не хочу, мне больше нравится второй способ:
2) Сделать надстройку над ядром системы (в любом виде), которая будет делать то, что нам нужно (монтировать/размонтировать) - или в виде подключаемого драйвера.
А программа будет при обращении к ядру получать требуемую функцию
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)