АмигаДОС
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2009 г. ) |
Разработчик | Корпорация Амига |
---|---|
Написано в | AmigaOS 1.x: BCPL AmigaOS 2.x и более поздние версии: C |
Семейство ОС | ТРИПОС |
Исходная модель | Закрытый исходный код |
Первоначальный выпуск | 1985 год |
По умолчанию пользовательский интерфейс | Интерфейс командной строки |
Лицензия | Собственный |
AmigaDOS — дисковая операционная система AmigaOS файловые , которая включает в себя системы , манипулирование файлами и каталогами, интерфейс командной строки и перенаправление файлов .
В AmigaOS 1.x AmigaDOS основана на порте TRIPOS от MetaComCo , написанном на BCPL . BCPL не использует собственные указатели , поэтому более расширенные функциональные возможности операционной системы были сложны в использовании и подвержены ошибкам. Сторонний проект ресурсов AmigaDOS [1] (ARP, ранее AmigaDOS Замена Project ), [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, обеспечивает множество дополнительных функций, таких как история команд , конвейеры и автоматическое создание файлов при перенаправлении вывода . Когда в начале 1990-х годов были выпущены стеки TCP/IP, такие как AmiTCP, консоль также могла получать перенаправление от обработчиков устройств Amiga с поддержкой Интернета (например, TCP: , скопировать файл в 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
- Аргумент « 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 (не связанного с Unix Ed ) или с помощью любого другого стороннего текстового редактора. Чтобы вызвать программу-скрипт, AmigaDOS использует команду Execute .
1> Execute myscript
- выполняет сценарий под названием «myscript».
Этот метод выполнения сценариев сохраняет окно консоли занятым до тех пор, пока сценарий не завершит запланированное задание. Пользователи не могут взаимодействовать с окном консоли до тех пор, пока сценарий не завершится или не прервет его.
Пока:
1> Run Execute myscript
- Команда AmigaDOS «Выполнить» выполняет любую команду DOS или любую программу и освобождает консоль для дальнейшего ввода.
Биты защиты
[ редактировать ]Биты защиты — это флаги, которые имеют файлы, ссылки и каталоги в файловой системе. Чтобы изменить их, можно использовать команду «Защитить » или использовать пункт «Информация» в меню «Значки» в Workbench для выбранных файлов. AmigaDOS поддерживает следующий набор битов защиты (сокращенно HSPARWED):
- H = Удержание (реентерабельные команды с установленным битом P автоматически становятся резидентными при первом выполнении. Для работы требуется установка битов E, P и R. Не означает «Скрыть». См. ниже.)
- S = Сценарий (Пакетный файл. Для работы требуются биты E и R.) Если этот бит защиты установлен, то AmigaDOS может распознавать и автоматически запускать сценарий, просто вызывая его имя. Без бита S скрипты все равно можно запускать с помощью команды «Выполнить» .
- P = Pure (указывает реентерабельные команды, которые можно сделать резидентными в ОЗУ и затем больше не нужно будет загружать их с флэш-накопителей , жестких дисков или любого другого мультимедийного устройства. Для работы требуется установка битов E и R.)
- A = Архив (бит архива, используемый различными программами резервного копирования для указания того, что файл был заархивирован)
- R = Чтение (Разрешение на чтение файла, ссылки или содержимого каталога)
- W = Запись (Разрешение на запись файла, ссылки или внутри каталога)
- E = Выполнить (Разрешение на выполнение файла или вход в каталог. Для всех команд должен быть установлен этот бит, иначе они не будут выполняться. Для работы требуется установленный бит R.)
- D = Удалить (Разрешение на удаление файла, ссылки или каталога)
Бит H часто ошибочно понимают как «Скрыть». В интеллектуальной файловой системе (SFS) файлы и каталоги с установленным битом H скрыты от системы. Доступ к скрытым файлам по-прежнему возможен, но они не отображаются ни в каких списках каталогов.
Демонстрация H-бита в действии:
AmigaPrompt> which list Workbench:C/List AmigaPrompt> list workbench:c/list Directory "workbench:c" on Thursday 30-Oct-08 list 6464 --p-rwed 25-Feb-02 22:30:00 1 file - 14 blocks used AmigaPrompt> which list Workbench:C/List AmigaPrompt> protect workbench:c/list +h AmigaPrompt> which list Workbench:C/List AmigaPrompt> list workbench:c/list Directory "workbench:c" on Thursday 30-Oct-08 list 6464 h-p-rwed 25-Feb-02 22:30:00 1 file - 14 blocks used AmigaPrompt> which list RES list
- Обратите внимание, как команда 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> type ENVARC:foo
bar
- Обратите внимание на сохранения флаг команды SetEnv и на то, как глобальные переменные доступны в файловой системе. [ нужны разъяснения ]
Глобальные переменные хранятся в виде файлов в ENV: и, при необходимости, сохраняются на диске в ENVARC:, чтобы выдержать перезагрузку и выключение и включение питания . ENV: по умолчанию присваивается RAM:Env, а ENVARC: присваивается SYS:Prefs/Env-archive , где SYS: относится к загрузочному устройству . При загрузке содержимое ENVARC: копируется в ENV: для доступности.
При программировании сценариев AmigaDOS следует учитывать, что глобальные переменные являются общесистемными. Все внутренние переменные сценария должны быть установлены с использованием локальных переменных, в противном случае существует риск конфликта глобальных переменных между сценариями. Кроме того, глобальные переменные требуют доступа к файловой системе, что обычно замедляет доступ к ним, чем к локальным переменным.
Поскольку ENVARC: также используется для хранения других системных настроек, помимо строковых переменных (например, системных настроек, значков по умолчанию и т. д.), со временем он имеет тенденцию разрастаться, и копирование всего в ENV:, расположенного на RAM-диске, становится дорогостоящим. Это привело к появлению альтернативных способов настройки ENV: с помощью специальных обработчиков виртуального диска , которые копируют файлы из 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 :, имена отдельных дисков, томов и разделов совершенно произвольны: например, раздел жесткого диска может называться Work или System или как-нибудь еще во время его создания. Имена томов могут использоваться вместо соответствующих имён устройств, поэтому к разделу диска на устройстве DH0:, называемому Workbench, можно получить доступ либо с именем DH0:, либо с именем Workbench :. Пользователи должны указать системе, что « Workbench » — это том « Workbench: », всегда вводя двоеточие « : » при вводе информации в форму запроса или в AmigaShell.
Если имя тома, к которому осуществляется доступ, не найдено, операционная система предложит пользователю вставить диск с заданным именем тома или позволит пользователю отменить операцию.
Кроме того, имена логических устройств можно задать с помощью команды «назначить» любому каталогу или устройству; программы часто присваивали имя виртуального тома своему установочному каталогу (например, вымышленный текстовый процессор Writer может назначить Writer: для DH0:Productivity/Writer ). Это позволяет легко перемещать установленные программы. Имя по умолчанию SYS: используется для обозначения тома, с которого была загружена система. Для обозначения важных мест в системе предусмотрены различные другие имена по умолчанию. например , S: для сценариев запуска, C: для команд AmigaDOS, ШРИФТЫ: для установленных шрифтов и т. д.
Назначение меток тома также можно задать для нескольких каталогов, которые будут рассматриваться как объединение их содержимого. Например, FONTS: может быть присвоено SYS:Fonts , а затем расширено, включив, например, Work:UserFonts с использованием опции добавления AmigaDos команды Assign . Тогда система разрешит использование шрифтов, установленных в любом каталоге. Листинг ШРИФТОВ: покажет файлы из обоих мест.
Условные обозначения и типичное поведение виртуальных устройств
[ редактировать ]Физическое устройство 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
[ редактировать ]Старая файловая система / Быстрая файловая система
- ОФС (ДОС0)
- ФФС (DOS1)
- ОФС Интернешнл (DOS2)
- ФФС Интернешнл (DOS3)
- Кэширование каталога OFS (DOS4)
- Кэширование каталога FFS (DOS5)
Быстрая файловая система 2 (AmigaOS4.x/MorphOS)
- OFS Длинные имена файлов (DOS6)
- FFS Длинные имена файлов (DOS7)
И в DOS6, и в DOS7 используются международные имена файлов, представленные в DOS2 и DO3, но нет кэширования каталогов, от которого отказались из-за ошибок в исходной реализации. По этой причине DOS4 и DOS5 не рекомендуется использовать.
Dostypes обратно совместимы друг с другом, но не совместимы вперед . Диск в формате DOS7 не может быть прочитан на оригинальной Amiga FFS, а диск DOS3 не может быть прочитан на KS1.3 Amiga. Однако любой диск, отформатированный в DOS0 с использованием FFS или FFS2, может быть прочитан любой версией операционной системы Amiga. По этой причине разработчики программного обеспечения, распространяемые на дискетах, обычно предпочитали DOS0, за исключением случаев, когда использовалась специальная файловая система и загрузочный блок - обычная практика в играх Amiga. Там, где программному обеспечению все равно требовалась AmigaOS 2, обычно использовалась DOS3.
Плагины FastFileSystem2
[ редактировать ]С июльским обновлением AmigaOS 4.0 в 2007 году были выпущены первые два плагина для FFS2:
- fs_plugin_cache : увеличивает производительность FFS2 за счет введения нового метода буферизации данных.
- fs_plugin_encrypt : плагин шифрования данных для разделов с использованием алгоритма Blowfish .
Расширения имен файлов
[ редактировать ]AmigaDOS имеет только одно обязательное расширение имени файла: «.info», которое должно быть добавлено к имени файла каждого значка. Если файл с именем myprog существует, то его файл значка должен называться myprog.info . Помимо данных изображения, файл значка также записывает метаданные программы , такие как параметры и ключевые слова, свое собственное положение на рабочем столе (AmigaOS может «сфотографировать» значки в местах, определенных пользователем) и другую информацию о файле. Информация о размере и положении окна каталога хранится в файле «.info», связанном с каталогом, а информация о значке диска хранится в «Disk.info» в корне тома.
За исключением значков, система Amiga не идентифицирует типы файлов с помощью расширений, а вместо этого проверяет либо значок, связанный с файлом, либо двоичный заголовок самого файла, чтобы определить тип файла.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Проект ресурсов AmigaDOS» . Архивировано из оригинала 11 марта 2007 г. Проверено 18 июля 2006 г.
- ^ «Индекс /Pub/Amiga/Ancient/Ex-amiga-s/Archive» .
- ^ Commodore-Amiga Inc., 1986 г.
- ^ "диск/разное/HappyENV.lha" . Аминет . Проверено 15 июля 2016 г.
- ^ "util/sys/envhandler.lha" . Аминет . Проверено 15 июля 2016 г.
- ^ «Код Стивена Морли» . Проверено 5 апреля 2016 г.
- ^ Круз, Фрэнк да; Джаноне, Кристина (1997). Использование C-Kermit: коммуникационное программное обеспечение . п. 549. ИСБН 978-1-55558-164-0 .
- ^ "диск/разное/fat95.lha" . Аминет . Проверено 15 июля 2016 г.
Дальнейшее чтение
[ редактировать ]- Коммодор-Амига Инк. (1986). Руководство пользователя AmigaDOS . Бантамский компьютер. ISBN 0-553-34294-0 .
- Коммодор-Амига Инк. (1991). Руководство AmigaDOS, третье издание . Бантамский компьютер. ISBN 0-553-35403-5 .
Внешние ссылки
[ редактировать ]- Тим Кинг. «История Амиги» . Тим-кинг.com . Проверено 15 июля 2016 г.
- Тим Кинг. "РЕЗЮМЕ" . Тим Кинг . Проверено 15 июля 2016 г.