PDA

Просмотр полной версии : небольшой вопрос...



Sayman
08.07.2009, 11:54
вопрос отпадает....

Zet9
08.07.2009, 14:06
поскольку потихоньку добираюсь к командному процессору (сср) в профидосе (переделываю многие вещи в системе, а то ка кто криво местами работает и выглядит вообще), возник вопрос...большей частью для меня лично он решён (частично как бы), но вот хочется услышать мнение со стороны.
на данный момент вся так называемая консоль сидит в одном файле - cmd.com. там есть и стандартные команды для работы с теми же файлами/папками (типа как copy rename del mkdir и прочие) и другое всякое. сама система изначально работает с логическими именами типа a: b: c: и т.д. как это было везде (в цпм, дос, в виндах, в трдос и во многих других). но...поскольку я малость сроднился с фрибсд, то мне уже привычно работать не с дисками как таковыми, а скорее с точками монтирования. там жэ мы не указываем логическое название диска, а просто напрмер, создали папку other смонтировали туда какой то винт и всё. и посути в одном просьтранстве сидит он. перемистица туда можно легко и не надо писать всякие d: cd туда то туда то. и там есть могучая весч - SH....я и подумал, а могет кусками перенять эти никсовые фишки в профинскую систему? т.е. команды всякие в виде отдельных файлов (програм), свой (или подобный сх) скриптовый язык (скорее язычёк), работа с дисками так же - смонтировали куда надо и всё...детали пока не проработал...только отчасти...но в общих чертах идея примерно именно такая. что скажите, уважаемые?
идеи есть...
я вот для DNA OS делаю подобную штюку (типа ком строки с *nix-коммандами) и это вопрос тоже обдумывал
расскажу позже - сейчас немного занят,sorry

breeze
08.07.2009, 17:16
что скажите?

делай как удобно! имхо A, B, C атавизм:rolleyes:

James DiGreze
09.07.2009, 07:28
меня тоже в полследние лет пять угнетают "буквы дисков". если есть желание, то делай через дерево файлов, с монтированием дисков по папкам. да и некоторое подобие скриптов тоже весчь порой необходимая.

psb
09.07.2009, 11:52
раз такая пьянка - делайте юникс на спеке да и всё.

Zet9
10.07.2009, 17:19
1.Если речь идет о монтировании дисководов A,B,C,D то лучше просто их автоматически монтировать (при обращении к ним) в специально заготовленные для них папки типа /a /b /c /d.
не виже смысла монтировать их куда-нибудь типа /mnt/disk/a, а потом набирать этот длинный путь каждый раз,лично мне удобнее для перехода на диск А набирать
cd a (находясь в корневом каталоге) или
cd /a (находясь где угодно на любом диске/папке)

обрабатываеть в программе такой вариант проще и паамяти нужно меньше.
2 Если речь идет о монтировании разделов винчестера то тут нужно обсуждать подробнее

Sayman
10.07.2009, 19:32
это всё пофигу чё тут было. юзайте дна и издос...

Zet9
10.07.2009, 23:08
и флопы и винты изначально предпологается монтирование вообще в любую "папку". :cool:
и еще SD-карточки не забыть

в этом случае видится 2 проблемы

1) надо где-то хранить таблицы соответствия: путь монтирования - папка монтирования, при этом на каждую смонтированную папку может потребоваться максимум 255*2=510 байт плюс еще несколько байт параметры монтирования(только для чтение и т.д) -
где брать память - заранее резервировать не получиться,т.к. не известно сколько надо смонтировать файловых систем,т.е
надо добавить механизм выделения памяти - на случай,
если юзер захочет смонтировать например 7 папок (диск А,рамдиск сдром и еще 4 раздела на винте

2)как обеспечить взаимодействие оболочки с ядром?
вот если у Вас все функции в одном файле,можно смонтировать винты и флопы,и походить по папкам туда- сюда,а потом надо запустить прогу, Ваша оболочка исчезает из памяти, а ядро системы должно знать что куда примонтровано, и при вызове
функции загрузить каталог например /mnt, показывать
не пустую папку, а содержимое того раздела винта (или папки на разделе),которые туда примонтированы
т.е. надо что - в ядро добавить 2 новые функции - смонтировать/отмонтировать файловую систему
а оболочка будет эти функции вызывать


тут просто надо прикинуть, чё да как. определение сменности устройства (т.е. определение флоп это или винт) можно как и раньше (сейчас) по 7му биту. как бы вот выбрать алгоритм обозначения разделов, для их монтирования, в том числе и самих дискет?! можно чтото типа mount fdd0 /a и получим что диск А смотрировали в папку А.
основной винт, с которого грузились, должен смонтироватся ессесно в / т.е. в рут. а вот другие разделы например, или уже другие винты,
mount hdd1 /указать_папку. т.е. если на винте несколько разделов, то hddx где х номер указывающий на раздел. в данном случае предпологаю ещё одно удобство - последняя цыфра посути указывает на номер раздела в таблице разделов. меньше поидее волокиты должно быть.
:cool:

я у себя планирую упрощенно - про дискеты сказал,
а про винты хочу сделать вот так:
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



ещё момент - совместимость с ЦПМным софтом :cool:

ну это не ко мне - хотя в моём существующем ( для DNA OS) варианте sh я и использую несколько номеров функций и регистры(типа Е,символ) как в CP/M - но это мне не удобно,может, придется переделывать

James DiGreze
13.07.2009, 11:09
Zet9, "2 проблемы" имеют одно решение - виртуальная файловая система. а все остальные монтируются к ней через трансляторы. я про это писал когда-то в закрытом разделе, но до реализации дело не дошло.

Zet9
13.07.2009, 13:38
"2 проблемы" имеют одно решение - виртуальная файловая система. а все остальные монтируются к ней через трансляторы. я про это писал когда-то в закрытом разделе, но до реализации дело не дошло.

но поскольку не было рализовано, может уже можно рассекретить текстик - а мы полюбопытствуем, что же это за трансляторы такие, возможно, чтоВаш способ годится для системы, разрабатываемой с нуля

А для решение этих 2-х проблем для существующих систем можно предложить например такие:

1) Как я уже говорил надо изменять ядро системы.
Вот Saymon если захочет, может внести изменения в ядро CP/M (или Профидос или Q-DOS - или как правильно?) - но как это изменение повлияет на совместимость (он уже про это говорил)
Я вносить изменение в ядро DNA OS не хочу, мне больше нравится второй способ:

2) Сделать надстройку над ядром системы (в любом виде), которая будет делать то, что нам нужно (монтировать/размонтировать) - или в виде подключаемого драйвера.
А программа будет при обращении к ядру получать требуемую функцию

James DiGreze
14.07.2009, 10:16
Zet9Ничего не засекречено, просто все работы были приостановлены на неопределенный срок. Не исключено, что навсегда.
По поводу получения пароля к разделу обращайся к ведущему, камраду GriV'у. Я так дума, что он не откажет.