DOS: Зеркала на файлы, подобие lnk
Начнём с того, что в DOS lnk-ярлыки бесполезны. Поэтому я вспомнил о таких утилитах, как pu_1700 и pctool...
pu_1700: размер утилиты был несколько больше, чем указывалось в свойствах файла. Копировалась она не полностью. А недостающие блоки считывала сама;
pctool: когда я ещё осваивался в DOS3.11, мне попалась дискета с именем каталога ВРЕМЯ. Так-как поддержки кириллицы у меня не было, с помощью PC Tool я переименовал каталог в TIMES прямой модификацией содержимого дискеты. Классная утилита!
Вопрос: Имеются ли утилиты или простые способы для создания зеркал на файлы? Например:
C:\MY_FILE.TXT - Оригинальный файл,
C:\TEST\ABC.BIN - Низкоуровневый "ярлык"-зеркало на файл MY_FILE.TXT
А теперь поясню. Редактируем FAT так, чтобы ABC указывал на кластеры MY_FILE, да ещё усекал/раздувал его размер и имел свои флаги.
Т.е. MY_FILE свободно редактируется, но скрыт. А ABC отражает содержимое MY_FILE, не скрыт, но с флагом "только чтение"...
Для чего это надо?
Варианты применения:
В случае, когда диск имеет много партиций, а чистый DOS видит только основную, чтобы не копировать огромные архивы на C:, можно создать зеркала на файлы партиций D: и т.д.;
FTP в локальной сети с такими файлами-обманками для защиты от взлома;
DVD-диск с кучей скрытых файлов-зеркал на один файл, чтобы раздуть размер диска до сотен терабайт;
и многое другое...
Знаю, ScanDisk и пр. утилиты будут страшно сердиться на подобные фокусы. Но тема, по крайней мере для меня, очень интересна!
Да, бесполезны. Зачем их нужно вводить? В винде они тоже бесполезны, это приблуда именно explorer-а. Никто не запрещает добавить в DN или VC поддержку LNK, только зачем? Во всех оболочках есть удобные пользовательские меню.
Система не видит дополнительные разделы не потому, что они дополнительные. Предел для адресации функциями БСУВВ, используемыми ДОС (PC DOS, MS-DOS) есть 8 Гб. После 8 Гб нужно переходить на DR-DOS или FreeDOS, заодно будет поддержка FAT32.
А отслеживать перемещение файлов и запись в них как будете? Тогда это получится другая операционная система.
Как вы защитите файловый сервер от взлома с помощью файлов?
На дисках достаточно поправить заголовок раздела, чтобы "раздуть" его размер.
Можно, конечно, создать два заголовка файла в одном или разных каталогах, которые будут указывать на одну и ту же цепочку кластеров. Но сказать, во что ревратится один файл после редактирования другого довольно затруднительно.
А ссылки на другой раздел - вообще утопия: таблица FAT своя для каждого из разделов.
Можно, конечно, создать два заголовка файла в одном или разных каталогах, которые будут указывать на одну и ту же цепочку кластеров. Но сказать, во что ревратится один файл после редактирования другого довольно затруднительно.
А ссылки на другой раздел - вообще утопия: таблица FAT своя для каждого из разделов.
Эм-ммм... А Вам не кажется, что дурацкие идеи отражают недостатки технологий?
Ведь есть утилиты для поддержки "длинных имён" в чистом DOS, в режиме только чтение, как и поддержка NTFS. Фактически, на уровне драйвера файловой системы возможно сделать всё, что хочешь. Если руки, конечно, из мозгов растут...
И ссылки на другой раздел - не сколько утопия, сколько упущение технологий. Просто, если сесть и подумать, можно увидеть огромные перспективы у таких "фокусов"...
А началось всё тогда, когда я установил ACID'2000 - программу-АОН с автоответчиком. Компьютер дежурил. А когда кто-то из членов семьи приходил или уходил, я нажимал соответствующую кнопку и одна утилита копировала в папку АОНа звуковой файл с записью "Такого-то нет дома, оставьте сообщение", либо "Одну минутку, такой-то сейчас подойдёт"...
Именно тогда, вместо того, чтобы копировать целые wav-файлы, я решил просто обновлять ярлыки на них. Но, ACID не поддерживал ярлыки на звук и выдавал ошибку. Тогда я по настоящему осознал недостаток файловой системы! Виноват не ACID и не Windows, а именно сама технология файловых систем...
Просто кто не сталкивался с подобными задачами, тому не понять множество перспектив "гнилых" идей. А началось же всё с разработчиков pu_1700 с их защитой от копирования! ;)
Такое может позволить себе Микрософт - усовершенствовать СОБСТВЕННУЮ операционную систему.
Если тебя не устраивает DOS - пиши собственную ОС или выбирай из существующих. Это - нормально. А пытаться надругаться над DOS - идея изначально порочная.
Нужен тебе ярлык для какой-то конкретной цели - сделай его в виде файла, который, кстати, может указывать куда угодно, хоть на IP-адрес. И будет тебе счастье - в конкретной программе. Притом такой ярлык будет независим от ФС, что само по себе хорошо.
Хороших идей - масса. Только надо найти им благоприятную почву для применения. DOS таковой не является.
Такое может позволить себе Микрософт - усовершенствовать СОБСТВЕННУЮ операционную систему.
Если тебя не устраивает DOS - пиши собственную ОС или выбирай из существующих. Это - нормально. А пытаться надругаться над DOS - идея изначально порочная.
Нужен тебе ярлык для какой-то конкретной цели - сделай его в виде файла, который, кстати, может указывать куда угодно, хоть на IP-адрес. И будет тебе счастье - в конкретной программе. Притом такой ярлык будет независим от ФС, что само по себе хорошо.
Хороших идей - масса. Только надо найти им благоприятную почву для применения. DOS таковой не является.
Не знаю. DOSки как жили, так и проживут ещё лет 25. А ярлыки для конкретной программы не канают: Нужно для всех.Свою операционную систему я придумал, хотите - смейтесь. Но, файлов, папок и системных библиотек, а также функций там нет в концепции и в принципе. Смешно? Читайте о трудах Девида Гелернтнера с его концепциями файловых систем...
Просто DOS - как паровоз: Дубовый, но без него не обойтись при аварии или когда просто охото тупо посмотреть клипы Quick плеером, а клипы на других разделах и не доступны...
Как ты думаешь, сколько еще будет жить CP/M-80?
В DOS - не нужно. А в тех ОС, гдк нужно, они есть.
Отчего же смеяться?
Это вполне закономерный шаг каждого второго программиста на определенном этапе его развития.
Просто DOS - как паровоз: Дубовый, но без него не обойтись при аварии или когда просто охото тупо посмотреть клипы Quick плеером, а клипы на других разделах и не доступны...
Отчего же не обойтись?
У DOS'а есть один очень существенный недостаток - 640 Кбайт на все про все. А некоторые ФС требуют держать в памяти гораздо бОльшие объемы.
Но там где хватает:
1. Однозадачного режима.
2. 640 Кбайт оперативной памяти.
3. 16-разрядной адресации.
4. Стандартных периферийных устройств.
5. Файловой системы FAT.
DOS очень даже неплохо может работать.
Для большинства разработчиков неприемлемыми оказываются п.п. 2 или 4. Для тебя, очевидно, 5. Поэтому DOS конкретно тебе не подходит.
Я не говорю, что его вообще нельзя использовать, я лишь утверждаю, что он не подходит для твоей задачи.
Я тоже так думал. Но задача не для моего уровня. Я привык разрабатывать идеи, а не реализовывать их конечный результат.
Я понимаю. Сейчас собственные операционные системы пытается писать каждый, кому не лень. При том, что сам смутно представляет, что она должна из себя представлять и как устроена. Поэтому, здесь смеяться - благородное дело...
Не хочу выглядить выскочкой, но я свою концепцию операционной системы начал разрабатывать в далёком 1997 году. Применительно для других машин и с другими процессорами. И лишь в 2007 понял, что персоналка с Пентиумом её осилит.
Отличие системы в том, как я уже сказал, что там нету системных библиотек и функций. Некое подобие Main Frame:
Приложение запускается на основном компьютере, графика строится другим компьютером, компилирует листинги - третий, работает с файловой системой - четвёртый, является консольным терминалом - пятый. И т.д.
Если повис или упал основной компьютер - всё перешло в режим аварийного ожидания. Если полетело что-то в остальных - их подменяют дублёры.
Короче, все компьютеры связаны сетью и каждый жёстко настроен выполнять только свою специфичную работу. Короче, это старо, как и Cray...
Но. Я открыл способ перенести этот принцип на PC. Все PC-системы имеют одно общее упущение: они не используют один потенциальный прорыв, который появился в 1985 году у IBM-PC. Я просто нашёл способ создать операционку для ПК с надёжностью, сравнимой со стратегическими разработками.
Как я сказал, в технологиях ФС я плохо разбираюсь. Но я готов предложить принципиально новую концепцию ОС, которая восполнит пробел 23 годовалого периода.
Ни прерываний, ни системных функций, ни библиотек в моей ОС нету. Однако сцена из OpenGL сферы строится приложением из 40 байтов. Причём приложение способно работать и в Windows/Linux простым запуском на них диспетчера.
Характеристики моей ОС:
Версия - 32-бита;
Объём памяти под каждое приложение - от 4Гб до 64Тб;
Количество устройств, которые одновременно могут быть доступны - 61440 (61440 из миллионов; подобие палитры);
Из них: Консоль; Оконный менеджер и OpenGL; Доступ к файлам и сетевым ресурсам; Архиваторы и компиляторы; Кодеки аудио/видео; Отладчики и т.п...
Эмулятор ОС мною написан и практика показала, что вирусы и атаки становятся просто бесполезны. Она - как монолит, не свалишь. Возможно, но экспериментальные попытки не свалили.
Ну тут помочь ни чем не могу..
Дюже не уверен. Кто смутно представляет, у того мало что получится. Я семь лет назад записал свой код в бутсектор, описался от радости и дальше двигаться не стал - мне интересней как это делают другие и меня все устраивает
Распределенная ОС. Такой термин существует давно, с самого начала создания ОСей. Почитайте книжки вумные, могу порекомендовать Танненбаума, статьи поищите..
Вот именно что ничего принципиально нового.
Как я сказал, в технологиях ФС я плохо разбираюсь.
Способ нашли, а с технологиями разбираетесь плохо? Надо восполнять пробелы! ФС - это неотъемлимая часть ОС. Неотъемлимая часть действующих СУБД, приложений, ну и т.д. Свою (если другие не устраивают) ФС писать все-равно придется. Если устраивают другие - придется разбираться в них
Надо только найти: 1. кому 2. для чего. Тем более прошлые пробелы восполнять не надо - надо будущие.
Здорово смахивает на виртуальные машины с байт-кодами. В принципе, также ничего особенного. Можно и 1 байтом обойтись, а можно и вообще без оных.
Объём памяти под каждое приложение - от 4Гб до 64Тб;
Рекомендую переходить на 64. А как 32-х битное приложение будет использовать > 4Гб? По хендлам блоков? Медленно.
Количество устройств, которые одновременно могут быть доступны - 61440 (61440 из миллионов; подобие палитры); Из них: Консоль; Оконный менеджер и OpenGL; Доступ к файлам и сетевым ресурсам; Архиваторы и компиляторы; Кодеки аудио/видео; Отладчики и т.п...
Это все устройства? Оригинально, интересно почему так
Эмулятор ОС мною написан и практика показала, что вирусы и атаки становятся просто бесполезны. Она - как монолит, не свалишь
Она и есть монолит. Как Windows Mobile. Делай хард-ресет и все будет опять в порядке. У монолитов другие недостатки.
ПыСы. Хочу особо отметить что я не смеюсь и не издеваюсь, если это вдруг кому-то покажется. Свои идеи - это всегда хорошо. И я не специалист по разработке ОС, но пару слов сказать могу, что и делаю пользуясь случаем.
Здорово смахивает на виртуальные машины с байт-кодами. В принципе, также ничего особенного. Можно и 1 байтом обойтись, а можно и вообще без оных.
Рекомендую переходить на 64. А как 32-х битное приложение будет использовать > 4Гб? По хендлам блоков? Медленно.
Это все устройства? Оригинально, интересно почему так
Смахивает. Хм. 1 байт - шутка. Моя реализация посеръёзнее будет: Гибкая, наращиваемая...
32-битное приложение может адресовать до 16Гб без страниц или хэндлов с помощью режима многомерных ячеек. Выше 16Гб предоставляют уже страницы и параграфы. Кратко не опишешь технологию...
Что имеется в виду под "всеми устройствами"? Или здесь слово "всё устройства"? Если да, то Вы наверно сталкивались со службами удалённой он-лайн архивации или конвертации видео? Кажется, есть 3D-рендеринг он-лайн... В таких случаях разве сервер - не удалённое устройство?
Просто если в Линуксе всё - файл, в моей наоборот - устройство. Почему? В целях гибкости и устойчивости.
Тогда это проблема.
Идеи сегодня ничего не стоят. Потому что их масса.
Реальный интерес представляют исключительно те идеи, у которых есть реализация.
Pentium появился в 1993 году.
Если понимание пришло спустя 14 лет...
Ни прерываний, ни системных функций, ни библиотек в моей ОС нету.
Эта система обладает минимум одним существенным недостатком - отсутствием обратной совместимости с многомиллиардным багажом знаний, вопложенных в программных продуктах.
Кстати, совершенно очевидное решение.
Поскольку компьютер 32-разрядный, просто глупо адресовать что-либо короче 32-разрядного слова. А это как раз и соответствует 16 Гбайтам адресного пространства.
Но, несмотря на 64- а то и 128-разрядную внешнюю шину, младшие ее разряды предпочитают не использовать. Как ты думаешь, почему? А именно из-за совместимости.
Идей о том, как создать идеальную ОС - масса. Тем более, идей, НЕ ИМЕЮЩИХ РЕАЛИЗАЦИИ.
Реализованных ОС существенно меньше, но также немало. Но, не смотря на их бесспорняе преимущества, они не имеют популярности исключительно из-за отсутствия написанного под них прикладного программного обеспечения.
Если понимание пришло спустя 14 лет...
i80386 появился в 1985 и все 23 года не используются для альтернативных ОС.
MenuetOS - Разрабатывается многими людьми разных стран, если не ошибаюсь. Но, мне не понравился там особенный акциент на мультимедиа: Графические функции, звуковые - индексируются первыми номерами. А INT - DOS-подобие уже...
Ну, почему же? По сути, любое приложение в среде этой ОС запускается как на отдельном виртуальном компьютере. 100 приложений - 100 компьютеров. Инкапсуляция. Связь через сетевые устройства (виртуальные). А кто мешает для совместимости запустить там эмулятор Линукс/Виндовс? Специальные правда, эмуляторы среды с библиотеками и т.д., а не всей ОС. Тормоза? Нет. Какрас-таки восполнено то упущение, которым не воспользовались с 1985 года.
Реализованных ОС существенно меньше, но также немало. Но, не смотря на их бесспорняе преимущества, они не имеют популярности исключительно из-за отсутствия написанного под них прикладного программного обеспечения.
Масса - да. А много ли из них разрабатывались с нуля? Линукс? хм... Фундамент для всех ОС - ЮНИКС 1970.01.01... А тогда процессоры были не такими, как сейчас...
Хотите построить дом? Сделайте это сами! Вот вам библиотека GDI и OpenGL. Прыгайте по функциям сколько можете, как чернорабочий. Допрыгались? Сломали ногу? Мы облегчим Ваши страдания - убъём... --- Это - Виндовс с окном "программа совершила...", как Вы догадались.
Недостаток в том, что приложение САМО выполняет системный код. При ошибке уже не вернёшь всё в исходную позицию.
Хотите построить дом? Заполните бланк, получите абонентский ящик. Все свои запросы и описания будете вписывать в бланк, а на ящик будут приходить ответы. Если кто-то из работников покалечился, на Вас это никак не отразится. Вас направил к нам пользователь, а значит Ваше слово - закон. Живите спокойно. --- Это принцип моей ОС.
Звучит нереально? Или утопийно? Просто скажите тогда "Система - есть сервер, приложение - есть клиент". Помогло? Никаких системных функций, потомучто приложение всегда замкнуто в себе, а система следит, куда приложение и что пишет/меняет. Список сфер или сокетов... Меняется список сфер - система уведомляет сервер OpenGL. Задеты сокеты - сервер сети...
Поэтому в моей системе всё - устройства. Объявляешь область памяти так или эдак, а система назначает такое-то устройство (программу-диспетчер) следить за этим окном памяти (вписывает хэндл приложения и границы окна памяти в список такого-то сервера).
И всё чисто. Никаких там Create/Destroy со стороны приложения. Просто объявление сегмента таким-то классом...
Я помню времена, когда видеоконтроллер стоял на ISA шине. Это были тормоза.
Затем шина сменилась сначала на VLB, а затем - на PCI. У PCI тоже были претензии на то, чтобы стать универсальной шиной, но на системных платах слот AGP появился раньше, чем исчез последний ISA.
Теперь на то же самое претендует PCI Express, однако здесь, учтя ошибки прошлого, уже выделяют на видеоконтроллер 16 линий, тогда как на остальные устройства - по одной. Надолго ли этого хватит - не знаю.
Только, слава Богу, оперативную память после ISA уже никто не пытается посадить на общую шину.
И даже теория говорит, что оперативная память - это одно, а периферийные устройства - совсем другое.
И заботиться о сомнительных теоретических "красивостях" в ущерб производительности никто не будет.
Если уж высокая производительность не нужна, обычно предпочитают поставить какой-нибудь низкочастотный АРМ, чем греть воздух при помощи изящной унифицированной, но прожорливой архитектуры.
Начнём с того, что в DOS lnk-ярлыки бесполезны. Поэтому я вспомнил о таких утилитах, как pu_1700 и pctool...
<...>
Вопрос: Имеются ли утилиты или простые способы для создания зеркал на файлы? Например:
C:\MY_FILE.TXT - Оригинальный файл,
C:\TEST\ABC.BIN - Низкоуровневый "ярлык"-зеркало на файл MY_FILE.TXT
А теперь поясню. Редактируем FAT так, чтобы ABC указывал на кластеры MY_FILE, да ещё усекал/раздувал его размер и имел свои флаги.
Т.е. MY_FILE свободно редактируется, но скрыт. А ABC отражает содержимое MY_FILE, не скрыт, но с флагом "только чтение"...
<...>
Знаю, ScanDisk и пр. утилиты будут страшно сердиться на подобные фокусы. Но тема, по крайней мере для меня, очень интересна!
ЗАЧЕМ это нужно?! Файловая система FAT, используемая в DOS, НЕ поддерживает файловые ссылки! Нужно использовать другую файловую систему, в которой есть ссылки (например, Ext3 или ReiserFS) и ОС, которая поддерживает эту систему (например, Linux или FreeDOS с соотв. драйверами).