AmigaDOS является дисковой операционной системой из AmigaOS , которая включает в себя файловые системы , файлы и манипуляцию каталога, в интерфейсе командной строки и файл перенаправление .
В AmigaOS 1.x AmigaDOS основана на порте TRIPOS от MetaComCo , написанном на BCPL . BCPL не использует собственные указатели , поэтому более продвинутые функции операционной системы были трудны в использовании и подвержены ошибкам. Сторонний проект ресурсов AmigaDOS [1] (ARP, ранее проект замены AmigaDOS ), [2] проект, начатый разработчиком Amiga Чарли Хитом, заменил многие утилиты BCPL меньшими, более сложными эквивалентами, написанными на C и ассемблере , и предоставил библиотеку-оболочку arp.library
. Это устранило проблемы взаимодействия в приложениях, автоматически выполняя преобразования из собственных указателей (например, используемых C или ассемблером) в эквиваленты BCPL и наоборот для всех функций AmigaDOS.
Начиная с AmigaOS 2.x, AmigaDOS была переписана на C с сохранением совместимости с 1.x, где это возможно. Начиная с AmigaOS 4, AmigaDOS отказалась от своего наследия с BCPL. Начиная с AmigaOS 4.1, AmigaDOS была расширена поддержкой доступа к 64-битным файлам.
Приставка
Консоль Amiga - это стандартное виртуальное устройство Amiga, обычно назначаемое CON: и управляемое console.handler . Он был разработан на основе примитивного интерфейса в AmigaOS 1.1 и стал стабильным в версиях 1.2 и 1.3, когда он стал называться AmigaShell, а его исходный обработчик был заменен на newconsole.handler ( NEWCON:) .
Консоль имеет различные функции, которые считались актуальными при ее создании в 1985 году, такие как справка по шаблону команд, перенаправление на null (« NIL: ») и цветовой терминал ANSI . Новый обработчик консоли, который был реализован в версии 1.2, позволяет использовать гораздо больше функций, таких как история команд , конвейеры и автоматическое создание файлов при перенаправлении вывода . Когда TCP / IP стека , как AmiTCP были выпущены в начале 1990 - х годов, консоль может также получить перенаправление из Интернета с поддержкой обработчиков устройств Amiga (например, TCP: , скопируйте файл TO TCP: Site / Port ).
В отличие от других систем, первоначально выпущенных в середине 1980-х, AmigaDOS не реализует проприетарный набор символов; разработчики решили использовать ANSI- ISO стандарт ISO-8859-1 (Latin 1) , который включает в себя ASCII набор символов. Как и в системах Unix , консоль Amiga принимает только символ перевода строки (« LF ») в качестве символа конца строки (« EOL »). Консоль Amiga поддерживает акцентированные символы, а также символы, созданные комбинациями «мертвых клавиш» на клавиатуре.
Синтаксис команд AmigaDOS
Это пример типичного синтаксиса команд AmigaDOS:
1> Dir DF0:
- Без входа в дерево каталогов это показывает содержимое каталога дискеты, а также перечисляет подкаталоги.
1> Dir SYS: ALL
- Аргумент « ВСЕ » заставляет команду отображать все содержимое тома или устройства, вводя и раскрывая все деревья каталогов. « SYS: » - это имя по умолчанию, которое назначается загрузочному устройству, независимо от его физического имени. [3]
Перенаправление команд
AmigaDOS может перенаправлять вывод команды в файлы, каналы, принтер, нулевое устройство и другие устройства Amiga.
1> Dir > SPEAK: ALL
- Перенаправляет вывод команды " dir " обработчику синтеза речи. Символ двоеточия « : » указывает на то, что SPEAK: указывает на устройство AmigaDOS. В то время как типичное использование устройства - файловые системы , специальные имена устройств, такие как это, обычно используются в системе.
Шаблон команды
Ожидается, что команды AmigaDOS предоставят стандартный «шаблон», описывающий аргументы, которые они могут принимать. Это можно использовать как базовую функцию «справки» для команд, хотя сторонние консольные обработчики и оболочки, такие как Bash или Zshell (портированные из Unix ), или KingCON часто предоставляют более подробную справку для встроенных команд.
При запросе шаблона для команды « Копировать » получается следующий вывод:
1> Copy ?
FROM, TO/A, ALL/S, QUIET/S
- Эта строка означает, что пользователь должен использовать эту команду вместе с аргументами FROM и TO , где последний является обязательным ( / А ). Ключевые слова аргумента ALL и QUIET - это переключатели ( / S ) и изменить результаты команды Копировать ( ВСЕ вызывает копирование всех файлов в каталоге, а ТИХИЙ приведет к тому, что команда не будет генерировать выходные данные).
Читая этот шаблон, пользователь может узнать, что следующий синтаксис допустим для команды:
Copy DF0:Filename TO DH0:Directory/Filename
Прерывание команд и приостановка вывода на консоль
Пользователь может завершить программу, вызвав комбинацию клавиш Ctrl+ Cили Ctrl+ D. Нажатие spaceили любой печатный символ на клавиатуре приостанавливает вывод на консоль. Вывод может быть возобновлен нажатием ← Backspaceклавиши (для удаления всего ввода) или нажатием ↵ Enter(что приведет к тому, что ввод будет обработан как команда, как только текущая команда прекратит выполнение).
Подстановочные знаки
Как и другие операционные системы, AmigaDOS также предоставляет символы подстановки , которые заменяют любой символ или любую последовательность случайных символов в строке. Вот пример подстановочных знаков в командах AmigaDOS:
1> Dir #?.info
- ищет в текущем каталоге любой файл, содержащий ".info" в конце в качестве суффикса, и отображает в выводе только эти файлы.
Разбор этого происходит следующим образом. Знак "?" подстановочный знак означает «любой символ». Префикс "#" означает "любое количество повторений". Это можно рассматривать как аналог регулярного выражения «. *».
Сценарии
AmigaDOS также имеет функцию пакетного программирования, которую она называет "скриптовым" программированием, и имеет ряд команд, таких как Echo , If , Then , EndIf , Val и Skip для работы со структурированным программированием скриптов. Скрипты представляют собой текстовые файлы и могут быть созданы с помощью внутренней программы текстового редактора AmigaDOS, называемой Ed (не связанной с Ed Unix ), или с помощью любого другого стороннего текстового редактора. Чтобы вызвать программу-скрипт, AmigaDOS использует команду Execute .
1> Execute myscript
- выполняет сценарий под названием «myscript».
Этот метод выполнения сценариев позволяет загружать окно консоли до тех пор, пока сценарий не завершит свое запланированное задание. Пользователи не могут взаимодействовать с окном консоли до завершения сценария или его прерывания.
Пока:
1> Run Execute myscript
- Команда AmigaDOS «Выполнить» выполняет любую команду DOS или любую программу и оставляет консоль свободной для дальнейшего ввода.
Биты защиты
Биты защиты - это флаги файлов, ссылок и каталогов в файловой системе. Чтобы изменить их, можно либо использовать команду « Защитить» , либо использовать запись « Информация» в меню « Иконки» в Workbench для выбранных файлов. AmigaDOS поддерживает следующий набор битов защиты (сокращенно HSPARWED):
- H = Удержание (реентрантные команды с P битом автоматически становится резидентом в первом исполнении. Требуется E, P и R бит установлен на работу. Значит ли не серединой «Hide». См . Ниже)
- S = Script (Пакетный файл. Для работы требуются биты E и R.) Если этот бит защиты установлен, AmigaDOS сможет распознать и автоматически запустить сценарий, просто вызвав его имя. Без S-битных сценариев все еще можно запускать с помощью команды « Выполнить» .
- P = Pure (указывает на повторно используемые команды, которые можно сделать резидентными в ОЗУ и которые больше не нужно загружать в любое время с флэш-накопителей, жестких дисков или любого другого носителя. Для работы требуются биты E и R.)
- A = Архив (архивный бит, используемый различными программами резервного копирования, чтобы указать, что файл был зарезервирован)
- R = Чтение (разрешение на чтение файла, ссылки или содержимого каталога)
- W = Запись (разрешение на запись файла, ссылки или внутри каталога)
- E = Выполнить (Разрешение на выполнение файла или вход в каталог. Для всех команд требуется установить этот бит, иначе они не будут выполняться. Для работы требуется установленный бит R.)
- D = Удалить (разрешение на удаление файла, ссылки или каталога)
H-бит часто неправильно понимается как «спрятать». В интеллектуальной файловой системе (SFS) файлы и каталоги с установленным битом H скрыты от системы. Доступ к скрытым файлам по-прежнему возможен, но они не отображаются ни в каких списках каталогов.
Демонстрация H-bit в действии:
AmigaPrompt> which list Workbench: C / List AmigaPrompt> list workbench: c / list Directory "workbench: c" в четверг 30 октября 2008 г. list 6464 --p-rwed 25.02.02 22:30:00 1 файл - Используется 14 блоков AmigaPrompt> which list Workbench: C / List AmigaPrompt> защищает workbench: c / list + h AmigaPrompt> which list Workbench: C / List AmigaPrompt> list workbench: c / list Directory "workbench: c" в четверг 30 октября -08 list 6464 hp-rwed 25-Feb-02 22:30:00 1 файл - используется 14 блоков AmigaPrompt> который перечисляет список RES
- Обратите внимание, как команда list становится резидентной после выполнения, когда установлен H-бит.
Локальные и глобальные переменные
Как и любая другая DOS, Amiga имеет дело с переменными окружения, используемыми в пакетном программировании.
Существуют как глобальные, так и локальные переменные, и они обозначаются знаком доллара перед именем переменной, например $ myvar . Глобальные переменные доступны для всей системы; локальные переменные действительны только в текущей оболочке. В случае конфликта имен локальные переменные имеют приоритет над глобальными. Глобальные переменные можно установить с помощью команды SetEnv , а локальные переменные можно установить с помощью команды Set . Также есть команды GetEnv и Get, которые можно использовать для вывода глобальных и локальных переменных.
Примеры ниже демонстрируют простое использование:
1> setenv foo blapp 1> echo $ foo blapp 1> set foo bar 1> echo $ foo bar 1> getenv foo blapp 1> get foo bar 1> type ENV: foo blapp 1> setenv save foo $ foo 1> type ENV : foo bar 1> введите ENVARC: foo bar
- Обратите внимание на флаг сохранения команды SetEnv и на то, как глобальные переменные доступны в файловой системе [ требуется пояснение ]
Глобальные переменные хранятся в виде файлов в ENV : , и при желании могут быть сохранены на диске в ENVARC: на случай перезагрузки и выключения питания. ENV: по умолчанию назначается RAM: Env, а ENVARC: присваивается SYS: Prefs / Env-archive, где SYS: относится к загрузочному устройству. При загрузке содержимое ENVARC: копируется в ENV: для доступности.
При программировании скриптов AmigaDOS нужно помнить, что глобальные переменные являются общесистемными. Все внутренние переменные сценария должны быть установлены с использованием локальных переменных, в противном случае существует риск конфликта глобальных переменных между сценариями. Кроме того, глобальные переменные требуют доступа к файловой системе, что обычно замедляет доступ к ним, чем к локальным переменным.
Поскольку ENVARC: также используется для хранения других системных настроек, помимо строковых переменных (таких как системные настройки, значки по умолчанию и т. Д.), Со временем он имеет тенденцию к разрастанию, и копирование всего в ENV:, находящееся на RAM-диске, становится дорогостоящим. Это привело к альтернативным способам настройки ENV: с использованием выделенных обработчиков ramdisk, которые копируют файлы только из ENVARC: когда файлы запрашиваются. Примеры таких обработчиков: [4] и. [5]
Примером, демонстрирующим творческое злоупотребление глобальными переменными, а также Lab и Skip, является вариант печально известного GOTO для AmigaDOS . [6]
Чувствительность к регистру
В AmigaDOS регистр не учитывается . [7] Указание устройства как «Dh0:», «DH0:» или «dh0:» всегда относится к одному и тому же разделу; однако для имен файлов и каталогов это зависит от файловой системы, и некоторые файловые системы допускают чувствительность к регистру в качестве флага при форматировании. Примером такой файловой системы является Smart File System . Это очень удобно при работе с программным обеспечением, перенесенным из мира Un * x , в основном чувствительного к регистру , но вызывает большую путаницу для собственных приложений Amiga, которые предполагают нечувствительность к регистру. Следовательно, опытные пользователи обычно используют флаг чувствительности к регистру только для файловых систем, используемых для программного обеспечения, созданного на базе Un * x.
Изменение регистра имен файлов, каталогов и томов допускается обычными методами; команды "rename foo Foo" и "relabel Bar: bAr:" действительны и делают именно то, что ожидается, в отличие, например, от Linux , где "mv foo Foo" приводит к сообщению об ошибке "mv:` foo 'и "Foo" - это тот же файл "в файловых системах без учета регистра, таких как VFAT .
Соглашения об именах томов
Перегородки и физические приводы , как правило , называют DF0: (флоппи - диска 0), DH0: (жесткий диск 0) и т.д. Однако, в отличие от многих операционных систем, за пределами встроенных в физических аппаратных устройств , таких как DF0: или HD0: , то имена отдельных дисков, томов и разделов абсолютно произвольны: например, раздел жесткого диска может называться Рабочий или Системный или что-то еще во время его создания. Названия томов можно использовать вместо соответствующих имен устройств, поэтому диск разделов на устройстве DH0: называется Workbench можно получить либо с именем DH0: или Workbench: . Пользователи должны указать системе, что « Workbench » - это том « Workbench: », всегда вводя двоеточие « : » при вводе информации в форму запроса или в AmigaShell.
Если имя тома, к которому осуществляется доступ, не удается найти, операционная система предложит пользователю вставить диск с данным именем тома или позволит пользователю отменить операцию.
Кроме того, имена логических устройств можно задать с помощью команды «assign» любому каталогу или устройству; программы часто назначают имя виртуального тома их установочному каталогу (например, вымышленный текстовый процессор с именем Writer может назначить Writer: для DH0: Productivity / Writer ). Это позволяет легко перемещать установленные программы. Имя по умолчанию SYS: используется для обозначения тома, с которого была загружена система. Для обозначения важных системных местоположений предоставляются различные другие имена по умолчанию. например, S: для сценариев запуска, C: для команд AmigaDOS, FONTS: для установленных шрифтов и т. д.
Назначение меток томов также можно установить для нескольких каталогов, которые будут рассматриваться как объединение их содержимого. Например, FONTS: можно назначить SYS: Fonts , а затем расширить, включив, например, Work: UserFonts с помощью опции добавления команды AmigaDos assign . Затем система разрешит использование шрифтов, установленных в любом каталоге. Listing FONTS: покажет файлы из обоих мест.
Условные обозначения и типичное поведение виртуальных устройств
Физическое устройство DF0: имеет тот же механизм привода гибких дисков, что и PC0: виртуальное устройство CrossDOS, способное читать дискеты, отформатированные на ПК. Когда в дисковод вставляется дискета, отформатированная на ПК, DF0: значок гибкого диска Amiga изменится, показывая, что диск неизвестен обычному устройству Amiga, и на нем появятся четыре вопросительных знака. ???? как стандартное "неизвестное" имя тома, а PC0: появится значок, показывающий имя отформатированного диска ПК. Любая смена диска с дисками, отформатированными Amiga, изменит это поведение на противоположное.
Файловые системы
AmigaDOS поддерживает различные файловые системы и варианты. Первая файловая система называлась просто Amiga FileSystem и подходила в основном для гибких дисков, поскольку не поддерживала автоматическую загрузку с жестких дисков (на дискетах загрузка производилась с использованием кода из загрузочного блока). Вскоре она была заменена FastFileSystem (FFS), и, следовательно, исходная файловая система была известна под названием «Старая» файловая система (OFS). FFS был более эффективен в пространстве и значительно быстрее, чем OFS, отсюда и название.
С AmigaOS 2.x FFS стала официальной частью ОС и вскоре была расширена для распознавания кэшированных разделов, международных разделов, позволяющих использовать акцентированные символы в именах файлов и разделов, и, наконец (с MorphOS и AmigaOS 4 ), длинные имена файлов, до 108 символов. (с 31).
И AmigaOS 4.x, и MorphOS содержали новую версию FFS под названием FastFileSystem 2. FFS2 включала все функции оригинальной FFS, включая, как выразился ее автор, «некоторые незначительные изменения». В целях сохранения обратной совместимости серьезных структурных изменений не произошло. (Однако FF2 на AmigaOS 4.1 отличается тем, что он может расширять свои функции и возможности с помощью плагинов ). Как и FFS2, версия Smart FileSystem для AmigaOS 4 и MorphOS является ответвлением оригинальной SFS и не на 100% совместима с ней.
Другие файловые системы, такие как FAT12 , FAT16 , FAT32 из Windows или ext2 из Linux, доступны через легко устанавливаемые (перетаскивание) системные библиотеки или сторонние модули, такие как FAT95 [8] (функции поддержки чтения / записи), которые можно найти на Репозиторий программного обеспечения Aminet . MorphOS 2 имеет встроенную поддержку файловых систем FAT.
AmigaOS 4.1 приняла новую файловую систему под названием JXFS, способную поддерживать разделы размером более терабайта.
Альтернативные файловые системы от сторонних производителей включают Professional FileSystem , которая представляет собой файловую систему с простой структурой, основанной на метаданных , обеспечивающей высокую внутреннюю согласованность, способной к дефрагментации на лету и не требующей размонтирования перед повторным монтированием; и Smart FileSystem, которая представляет собой журналируемую файловую систему, которая выполняет журналируемые действия во время неактивности системы, и была выбрана MorphOS в качестве стандартной файловой системы.
Официальные варианты файловых систем Amiga
Старая файловая система / Быстрая файловая система
- OFS (DOS0)
- FFS (DOS1)
- OFS International (DOS2)
- FFS International (DOS3)
- Кэширование каталогов OFS (DOS4)
- Кэширование каталогов FFS (DOS5)
Быстрая файловая система 2 (AmigaOS4.x / MorphOS)
- OFS Длинные имена файлов (DOS6)
- FFS длинные имена файлов (DOS7)
И DOS6, и DOS7 имеют международные имена файлов, представленные в DOS2 и DO3, но не имеют кэширования каталогов, от которого отказались из-за ошибок в исходной реализации. По этой причине не рекомендуется использовать DOS4 и DOS5.
Достипы обратно совместимы друг с другом, но не совместимы вперед. Отформатированный под DOS7 диск не может быть прочитан на оригинальной Amiga FFS, а DOS3-диск не может быть прочитан на KS1.3 Amiga. Однако любой диск, отформатированный в DOS0 с использованием FFS или FFS2, может быть прочитан любой версией операционной системы Amiga. По этой причине DOS0, как правило, был предпочтительным форматом для распространения программного обеспечения на дискетах, за исключением случаев, когда использовались настраиваемая файловая система и загрузочный блок - обычная практика в играх Amiga. Там, где программное обеспечение в любом случае требовало AmigaOS 2, обычно использовалась DOS3.
Плагины FastFileSystem2
В июле 2007 г. с обновлением AmigaOS 4.0 в 2007 году были выпущены первые два плагина для FFS2:
- fs_plugin_cache : увеличивает производительность FFS2 за счет введения нового метода буферизации данных.
- fs_plugin_encrypt : плагин шифрования данных для разделов с использованием алгоритма Blowfish .
Расширения имени файла
AmigaDOS имеет только одно обязательное расширение имени файла: «.info», которое должно быть добавлено к имени файла каждого значка. Если существует файл с именем myprog , то его файл значков должен называться myprog.info . Помимо данных изображения, файл значка также записывает метаданные программы, такие как параметры и ключевые слова, свое собственное положение на рабочем столе (AmigaOS может «делать снимки» значков в местах, определенных пользователем) и другую информацию о файле. Информация о размере и положении окна каталога хранится в файле «.info», связанном с каталогом, а информация о значке диска хранится в «Disk.info» в корне тома.
За исключением значков, система Amiga не идентифицирует типы файлов с помощью расширений, а вместо этого проверяет либо значок, связанный с файлом, либо двоичный заголовок самого файла, чтобы определить тип файла.
Заметки
- ^ "Архивная копия" . Архивировано из оригинала на 2007-03-11 . Проверено 18 июля 2006 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ [1] [ мертвая ссылка ]
- ^ Commodore Amiga Inc. 1986
- ^ "диск / разное / HappyENV.lha" . Аминет . Проверено 15 июля 2016 .
- ^ "util / sys / envhandler.lha" . Аминет . Проверено 15 июля 2016 .
- ^ «Код Стивена Морли» . Код Стивена Морли . Проверено 5 апреля 2016 года .
- ^ Использование C-Kermit: коммуникационное программное обеспечение . п. 549. ISBN. 978-1-55558-164-0.
- ^ "диск / разное / fat95.lha" . Аминет . Проверено 15 июля 2016 .
Рекомендации
- Commodore Amiga Inc. (1986). Руководство пользователя AmigaDOS . Bantam Computer .
Внешние ссылки
- Тим Кинг. "История Амиги" . Tim-king.com . Проверено 15 июля 2016 .
- Тим Кинг. «Резюме» . Тим Кинг . Проверено 15 июля 2016 .