The Kermit Project
|
Now hosted by Panix.com
New York City USA •
kermit@kermitproject.org
| |||||||||
|
Вторая часть аппаратных средств это центральный процессор. Каждый компьютер имеет фиксированный набор машинных команд, которые он выполняет. Машинные команды очень похожи на операции подобные таким как: скопировать содержимое ячейки 123 в ячейку 234, сложить содержимое ячейки 345 с содержимым ячейки 1, если содержимое ячейки 456 - 0, тогда перейти к ячейке 567 и выполнить команду, содержащуюся там.
Программа это последовательность машинных команд, которые загружаются во внутреннюю память компьютера и выполняются. Другими словами программные средства это программа (программы). Выполнение разнообразных программ делает компьютер наиболее полезной частью технических средств. Например, в отличии от бензопелы, компьютер буквально за долю секунды может изменить свое поведение и сущность благодаря выполнению другой программы.
Программы пишутся на языке программирования. Существуют два рода языков программирования: язык программирования Ассемблер и языки программирования высокого уровня. В Ассемблере каждый оператор представляет одну машинную команду. Программы на Ассемблере транслируются в машинные команды относительно простыми программами называемыми трансляторами. В отличии от Ассемблера языки высокого уровня в одном операторе содержат несколько операций. Языки программирования высокого уровня транслируется в машинные команды очень сложными программами называемыми компиляторами.
Ниже приводится оператор на языке "Си" [19] [язык программирования высокого уровня]:
for (i = j = 0; i < 10; i++) j += i;Это означает "установить значение i и j в 0, и тогда для каждого значения i меньше чем 10 выполнить действие - сложить значение j со значением i". Другими словами, сложить все числа от 0 до 9. "Си" компилятор транслирует этот оператор в машинные команды, подобно следующим операторам Ассемблера (для гипотетического Ассемблера):
Инструкция Комментарии CLR I очистить ячейку I, т.е. присвоить значение 0 CLR J очистить ячейку J A: MOV T,I скопировать значение I в T(помечено меткой A) SUB T,10 вычесть от 10 T BZ T,B если результат 0, перейти на метку B ADD J,I сложить значение I и J INC I увеличить значение I на 1 JMP A перейти на метку A B: .... J содержит результат вычисленийЭто предполагаемый уровень на котором работают большинство компьютеров. Ассемблер использует для представления машинных команд алфавитно-цифровые символы. Обычно, "Си" компилятор непосредственно преобразует числа в эти символы. Замечу что управление передается на следующую команду если только в команде не задано явной передачи управления куда-нибудь в другое место, или условно (подобно BZ) или безусловно (подобно JMP).
Память компьютера разбита на дискретные чурбанчики различной величины. Большие чурбанчики могут называться страницами или сегментами. Маленький чурбанчик (обычно 16 или 32 бита) называется словом (аббревиатура W). Маленький чурбанчик еще (обычно 8 бит) называется байтом (аббревиатура B). Компьютер обращается к ячейкам памяти через их адреса, которые определены как числа от 0 до некоторого максимального числа. Количество адресов компьютера называется адресным пространством. Адресом ячейки памяти может быть или байт или слово, в зависимости от архитектуры компьютера. Компьютеры имеющие встроенные инструкции оперируют или байтами, или словами или обеими.
Все данные представленные в компьютере как слово или байт заполнены 0 и 1. Отдельная последовательность бит не имеет внутреннего смысла или значения. Одна и та же строка бит может быть машинной командой, адресом, целым числом, указателем на число, строкой символов или другой разновидностью кода. Представление зависит от того, где используется эта строка битов в технических средствах или в программном обеспечении - например, строка битов 010000001010000010 может быть представлена в редакторе как ASCII символа AB, или как целое число 16706 в программе, которая выполняет вычисления, или как машинная команда для центрального процессора.
В большинстве компьютеров для представления инструкций, чисел или адресов используется слово. Размер слова в битах это степень двойки (см. Приложение E если вы не знаете что это такое). Обычно размер слова - 16 или 32 бита, но и другие размеры включая 4, 8, 12, 18, 24, 36, 48, 64, 72 и 128 (или больше) тоже могут встретиться. Размер слова определяет точность, с которой могут быть произведены арифметические вычисления, величину чисел, которые могут быть представлены, и адресное пространство машины. С другой стороны, байт также используется для хранения символов. Очень часто размер байта - 8 бит, но размер 5, 6, 7, 9 и 12 (или больше) тоже может встретиться. Большинство машин имеют фиксированный размер байта, но некоторые имеют инструкции для работы с байтами различной длины.
Машины могут адресоваться либо байтами либо словом. Машины, которые имеют дело с байтами для них очень важно чтобы числа и адреса начинались с "границы слова" - что как правило представляет адреса кратные 2 и 4. С другой стороны, машины которые имеют дело со словами должны представлять специальные инструкции для манипулирования с индивидуальными байтами внутри слова.
Операционная система выполняет вашу программу для вас. Когда вы вводите FOO, ОС ищет программу называемую FOO, загружает ее в память, и передает управление вашей программе. После этого ОС держится позади и наблюдает за выполнением вашей программы, и обеспечивает содействие как только ваша программа вызовет ее.
В некоторых системах, особенно микрокомпьютеры, ваша программа владеет совместно с ОС адресным пространством - ваша программа может читать информацию непосредственно из ОС и в некоторых случаях даже изменять ее. В других системах, операционная система имеет собственное адресное пространство и ваша программа может связаться с ней только через специальный "системный вызов".
По определению, программа ограничена собственным адресным пространством. Адресное пространство, в котором выполняется программа, называется процессом. В системах с разделением времени одновременно могут быть активны несколько процессов; ОС защищает их друг от друга и планирует их доступ к ресурсам, которые им выделены. Каждый пользователь имеет задание(или сессия), которое может содержать одно или более процессов, в зависимости от ОС. Задание создается когда пользователь откроет сеанс и выполняется до тех пор пока пользователь не закроет сеанс.
Есть одно важное различие между операционной системой и пользовательской программой. ОС может обслуживать устройства ввода/вывода, работающих в "реальном времени", как только придут данные. Ваша программа не может этого делать, так как она может вообще не работать когда придут запрошенные ей данные. Операционная система планирует выполнение некоторой другой программы. Поэтому ОС сохраняет данные, которые вы запрашивали, в буфере до тех пор пока ваша программа не будет готова прочитать их.
На микрокомпьютере, консоль является определенно специальной. Это неотъемлемая часть машины, ее лицо. Она не может быть подсоединена к микрокомпьютеру через коммуникационную линию, как это делается для обычного терминала. Это всегда полезно для пользователя, даже когда другие коммуникационные устройства активны. Дополнительные вводные устройства такие как "мышь", устройство ввода координат, световое перо, джойстик, и сенсорный экран могут быть связаны с консолью микрокомпьютера.
В система с разделением времени каждый пользователь имеет собственную консоль. Ваша консоль является единственным каналом соединяющим вас с вашим заданием, и обычно соединена с компьютером через коммуникационный канал, как терминал. С консоли вы делаете соединение, вводите команду, получаете результат ваших команд, и отсоединяетесь.
Взаимоотношение ОС с консолью отличаются от взаимоотношений с другими устройствами, так как устройство рассматриваемое в данном случае управляется человеком, а человек имеет более сложные потребности не же ли устройства ввода/вывода. Система позволяет пользователю консоли вводить определенные символы прерывающие выполнение операции. Она останавливается после каждого полноэкранного вывода пока пользователь не введет сигнал "вперед" для следующего вывода. Она передает сообщения на экран консоли. Она отображает на экране символы введенные с клавиатуры, ввод определенных символов позволяет пользователю исправлять ошибки при вводе команд. Определенные символы могут быть преобразованы в другие перед вводом или выводом. Длинные строки могут быть таким образом поделены чтобы не убегали за край экрана. Многие ОС принимают во внимание тип используемого терминала, и выполняет присущие только этому терминалу команды форматирования тем самым облегчая редактирование командной строки: удаление строки, удаление символа, очистка экрана и многие др. Некоторые комбинации этого сервиса реализованы на всех системах с разделением времени для работы терминала консоли, и обычно их можно не обнаружить на голом терминальном устройстве, через которое данные могут нормально, прозрачно проходить в обеих направлениях.
Многие ОС с разделением времени подразумевают что рабочая консоль - это терминал, а не персональный компьютер. Это очень важное отличие. Терминал передает символы так быстро, как человек может ввести их(10 символов в секунду и более), но компьютер может отобразить огромное количество данных в ответ на очень короткие запросы. По этой причине, ОС может отображать в отношении консоль вывод ввод 10 к 1 или 100 к 1. Когда в качестве консоли используется другой компьютер это соотношение может быть нарушено, что повлечет искажение или потерю данных, или еще хуже.
Консоль для систем с разделением времени спроектирована в расчете на взаимодействие с человеком, а не для прямого соединения с другим компьютером. Когда необходимо соединить машину с машиной(например передача файла) то может иметь место соединение через консоль, консоль имеет необходимый сервис для этого и особенности могут быть не доступны. Когда ОС не позволяет консоли превращаться в "raw" устройство, тогда вторая машина должна найти путь перехитрить этот специальный сервис.
Диски бывают двух основных типов: гибкий и жесткий. На микрокомпьютере жесткий диск является неотъемлемой частью системы, способный запоминать 5, 10 и более Мбайт. Гибкий диск (или дискета) - съемный, одиночная пластина, недорогой, компактный носитель данных способный запоминать от 100 Кбайт до 1 Мбайт (или около этого - эта цифра все возрастает). Диски больших машин имеют емкость 100 Мбайт и более, часто располагаются в отдельных комнатах и занимают все свободное пространство.
Каждая пластина диска разделена на ломтики, подобно ломтику пирога, называется сектором. Границы сектора пересекаются концентрическими круговыми треками. Обычная дискета имеет 40 - 100 треков и 10 - 32 секторов на одной или обеих сторонах, диск большой машины имеет очень много треков на каждой из многочисленных записывающих поверхностей. Часть треков расположенных между границами двух секторов называется блоком. Блок диска содержит фиксированное количество байт, обычно равного степени 2, от 128 до 8192.
Так же как местоположение памяти компьютера определяется адресами, так же и местоположение на диске определяется адресом. Дисковый адрес формируется при перекодировании указанной пластины, сектора и трека в желаемый блок. Блок это минимальный размер данных который может быть считан или записан за одну операцию. Дисковый адрес "грубее" адреса памяти, так как он адресует большее количество данных тем же количеством бит.
Скорость с которой данные могут быть переданы между диском и внутренней памятью называется скоростью обмена. Скорость обмена гибкого диска находится в пределах от 5 до 25 Кбайт в секунду. Скорость обмена жесткого диска находится в пределах от 2500 до 5000 Кбайт в секунду. При выполнении отдельной операции чтения или записи, дисковой голове необходимо время чтобы спозиционироваться на нужный трек и сектор, это время является самым "узким местом" при передачи данных.
Особенности техники записи информации на диск варьируется в зависимости от производителя и типа диска. И можно с уверенностью объявить как общее правило, что система не сможет прочитать диск записанный на устройстве другой фирмы. И скорее то же самое справедливо для различных моделей одного производителя. Не имеется даже общего стандарта (исключая 8" гибкие диски, которые сейчас почти не используются).
Рисунок 3-1. Упрощенная организация диска
Некоторые файловые системы разрешают наличие более чем одного каталога. В этом случае, каталог верхнего уровня может содержать список каталогов, а не файлов, а эти каталоги в свою очередь содержат список файлов. Этот механизм позволяет распределять диск между многими пользователями не нарушая их прав и надежности. Это может повторяться потенциально на всех уровнях, в зависимости от системы, с файлами и каталогами смешанными вместе в каждом каталоге. Система только с каталогом верхнего уровня называется коммунальной (flat) файловой системой (рис.3-2), система более чем с одним уровнем называется иерархической файловой системой (рис.3-3). На этих рисунках файловые системы показаны очень схематично, в действительности же, информация чаще всего располагается в соответствии с рис.3-1.
Система с множеством одиночных каталогов является достаточно специальной, но в то же время достаточно распространенным случаем. Основной целью этого построения является возможность группировать файлы вместе согласно их владельца или назначению. Когда существует множество каталогов, файлы с одними и теме же именами могут находится в одном или более каталогах одновременно, и каталоги могут иметь такие же имена как файлы в других каталогах. Это показано на рис.3-3.
Компьютер может иметь несколько дисков. Каждый диск имеет свою собственную файловую систему. Для того, чтобы идентифицировать файл однозначно, для этого может быть потребуется указывать номер диска, один или более уровней каталога, и в конце имя файла.
Новый диск пуст. Прежде чем вы сможете использовать его, он должен быть отформатирован или производителем или пользователем, с помощью программы входящей в состав системы. Частью процесса форматирования является создание таблицы распределения диска - списка дисковых адресов, которые свободны и могут быть использованы4 . Определенный дисковый адрес предназначен для ОС для начального (верхнего уровня) каталога. Когда вы создаете файл на диске, ОС просматривает ищет в таблице распределения диска свободные адреса, создает запись о файле в каталоге, и запоминает содержимое файла (саму запись в каталоге) на диске по этим свободным адресам, затем помечает каждый адрес, использованный в процессе записи как "использованный" в таблице распределения диска. Когда вы удаляете файл, запись о файле в каталоге и местоположение данных в таблице распределения диска помечается как "свободная". Формат записей каталога, данные записей, и таблицей распределения диска всем этим управляет ОС, так что вам нет необходимости вдаваться в подробности. Вы просто выдаете необходимые команды управления файлами.
Хотя форматы дисков не всегда составляют предмет интереса пользователей компьютеров, но само различие форматов и несовместимость между различными компьютерными системами вызывает интерес как только потребуется вам перенести файл из одной системы в другую: вы не сможете просто взять гибкий диск, скажем, с IBM PC и вставить в дисковод на Apple II, и ожидать чего-то.
Многие системы позволяют в имени файла использовать только буквы и цифры. Некоторые системы позволяют использовать только буквы, и если используются цифры, тогда первым символом в имени файла может быть только буква. Многие системы, но не все (UNIX хорошо известное исключение), не делает различие между заглавными и прописными буквами в имени файла.
Полная спецификация файла (обычно) включает в себя устройство, каталог и имя. Многие системы, иногда, поддерживают понятие "текущий диск" и "текущий каталог". Когда вы исключите эти поля из спецификации файла, они "по умолчанию" считаются текущие диск и каталог. Синтаксис для спецификации файла различен среди систем, но существуют несколько общих соглашений. Имя устройства оканчивается двоеточием, имя каталога заключено в квадратные скобки, точка отделяет имя файла от типа файла. Например, спецификация файла в системе VAX/VMS
DSKA:[KERMIT]FOO.BARгде, имя файла FOO.BAR в каталоге KERMIT на устройстве DSKA. Другое общее описание, в котором поля разделены прямым слешем, как в спецификации файла для системы UNIX:
/dev/dska/kermit/foo.barЗамечу, что здесь нет различия между устройством и каталогом в спецификации файла системы UNIX, и что путь через дерево каталога обозначен как просто строка имен каталогов вместе, разделенных прямым слешем.
/dev/dska/kermit/new/foo.bar
Некоторые системы смешивают предыдущие два стиля, и могут также использовать различные виды скобок или слешей:
A:\KERMIT\NEW\FOO.BAR (MS_DOS)Замечание: видно что для определения подкаталога NEW в каталоге KERMIT использованы различные методы.
DSKA:<KERMIT.NEW>FOO.BAR (DECSYSTEM-20)
Существуют системы чьи спецификации файлов коренным образом отличаются от этих главных моделей (см. табл. 3-4). Точность формата спецификации файла, ограничения по длине и содержанию каждого поля, и соглашениям по использованию ограничителей полей становится важным делом как только файл должен быть передан между различными системами. Очень большие трудности возникают когда файл должен быть перенесен из системы с очень гибкими соглашениями о наименовании файла в систему с очень ограниченными соглашениями.
Последовательный файл может быть разнообразных форматов. Текстовый файл обычно содержит одну или более строк, или "записей". Различные системы представляют границы записи различными путями. Один из путей это включение управляющих символов в конец каждой строки, обычно это символы возврат каретки(CR), перевод строки (LF), или оба (CRLF). Этот формат называется потоковым. Существует также фиксированный формат, в котором все записи могут быть некоторой длины(подобно 80 байт); все короткие записи заполняются пробелами или другими безвредными символами, и все длинные записи обрезаются или "wrapped". И существует переменный формат, в котором каждой записи предшествует поле содержащие ее длину. Иногда стиль имеет "carriage control" - первый байт каждой записи указывает формат печати записи: старт с новой страницы, с новой строки, overstrike предыдущую строку, перескочить строку и т.д. Этот формат главным образом используется для печати, но может встретиться в файле созданной FORTRAN программами.
Главное, только последовательный файл может быть передан между системами различными системами, потому что непоследовательный файл обычно имеет встроенную зависимость от устройства или системы на которой воспроизводится. Текстовые файлы могут быть полностью использованы после передачи в другую систему, для этого часто необходимо конвертировать их в распространенные форматы для требуемой системы - потоковый, фиксированный, переменный и т.д.
ASCII алфавит является 7-ми битным кодом содержащим 27 = 128 символов, пронумерованных от 0 до 127. Первые 32 (номер от 0 до 31) плюс последний символ (номер 127) являются управляющими символами. Среди управляющих символов есть форматирующие символы - возврат каретки (CR, или Control-M), перевод строки (LF, Control-J), горизонтальная табуляция (HT, Control-I), и перевод формата (FF, Control-L), которые обычно присутствуют в текстовых файлах. Оставшиеся управляющие символы используются для управления устройством или для других целей, и обычно они не присутствуют в текстовых файлах.
95 символов в пределах от 32 до 126 охватывают графику, или печатаемый набор. Существуют символы на самом деле вызывающие появление чернил на бумаге, верхних и нижних алфавитов, десятичных цифр, знаков препинания и других символов. Пустой символ рассматривается как графический символ. Таблица 3-1 показывает ASCII таким как он применяется в Америке и Канаде (Приложение Д содержит более полную информацию). Другие страны делают определенные замены: в Англии символ "#" заменен на "фунт". В Скандинавии несколько больше экзотических знаков, знак "}" был заменен на специальный символ "0".
Таблица 3-1. ASCII алфавит
Замечу, что различия между символами представляющие десятичные цифры и числовым значением десятичный цифры себя. Символ 0 (ноль) запоминается внутри компьютера как число 48 (двоичное 0110000), тогда как число 0 запоминается как двоичный ноль (0000000), который представляет в ASCII символ NUL. Числовой код каждого символа оказывается очень важен, поскольку это определяет "сравнительную последовательность" - "алфавитный" порядок вы получаете когда компьютер сортирует ASCII текст. Как вы можете ожидать, буквы являются числовой последовательностью, но поскольку заглавные буквы предшествуют прописным, "B" стоит перед "a" в ASCII сравниваемой последовательности.
Также замечу образцы в таблице. Заглавные буквы выстроены перед прописными буквами (они имеют смещение 32 = 25); управляющие символы выстроены перед их принтуемыми эквивалентами (смещение 64 = 26). Этот образец позволяет определить общее преобразование сделать арифметическим. ASCII символы воспроизводятся ASCII терминалом, который имеет клавиатуру типа пишущий машинки. Управляющие символы являются результатом нажатия специальной клавиши помеченной Control и нажатием соответствующей буквы, A для Control-A, B для Control-B и т.д. Этот метод генерации управляющих символов явился результатом сильной связи между ASCII символом номер 1 и Control-A, символа номер 2 и Control-B, и т.д. Тем не менее эти символы имеют более хорошее представление через их формальные имена, SON (начало пакета), STX (начало текста), и т.д., которые приведены в приложении Д.
Хотя производители многих популярных компьютеров используют ASCII преобразование для текста как внутреннего так и для связи с внешними устройствами, существует основное исключение (и это является основным) - IBM. IBM благоволит к своему собственному алфавиту EBCDIC (Расширенный двоично- десятичный код обмена информацией) преобразования , он содержит 256 8-ми битных символа, он используется на больших машинах и миникомпьютерах, но на персональных ЭВМ применяется ASCII. Многие производители больших машин также применяют код EBCDIC, выделяя при этом части7, которые показаны в таблице 3-2, взятые из IBM System/370 Reference Summary [29].
Замечу различия от ASCII алфавита. Непечатаемые символы не включены в список как управляющие символы, так как EBCDIC терминалы не имеют клавиши Control. Многие EBCDIC символы имеют отличные от их ASCII эквивалентов числовые значения, хотя некоторые и совпадают (SON, ETX). Существуют дыры в алфавите, очень заметные между буквами I и J, R и S, как между прописными так и заглавными буквами. В EBCDIC прописные буквы предшествуют заглавным буквам, которые являются реверсивными ASCII устройству. Сравнительные последовательности EBCDIC и ASCII очень различны.
Существование двух принципиально конкурирующих между собой кодов дает основание предположить наличие широко употребляемого стандарта для их взаимного перекодирования, но это было бы слишком просто. Многие специалисты зарабатывают себе на жизнь именно тем что такого стандарта нет, и они много своего собственного времени тратят на разработку собственного стандарта трансляции. По справедливости следует заметить, что во многом это несоответствие было заложено в те далекие времена, когда оба алфавита находились в стадии развития [23], и многие трансляции, которые сегодня кажутся сомнительными на момент своего создания были "правильными". Но проблема актуальна по сей день.
Перекодировка символа из одного набора в другой производится через таблицу перекодировки - "translate table" для краткости - которая является просто списком чисел. Число в позиции n в таблице является (62). Например число в позиции 71 в таблице ASCII-to-EBCDIC есть 199 - 71 есть ASCII значение для буквы G, а 199 есть EBCDIC значение этой буквы [Таблица 3-3]. Когда ASCII значение 71 прибывает в EBCDIC систему (скажем для ASCII терминала), перекодирование производится непосредственной заменой его на 71 элемент из этого списка.
Таблица 3-2. Выбранные части EBCDIC алфавита
Каждая таблица перекодировки должна иметь обратную таблицу; если EBCDIC является базовой системой при приеме символов от ASCII устройства, вероятно также потребуется и передавать символы обратно на это устройство. Таким образом необходимо иметь и таблицу перекодировки из EBCDIC в ASCII.
Но что будет в случае когда EBCDIC символов в два раза больше чем ASCII символов? При создании таблицы перекодировки из EBCDIC в ASCII имеет место жесткий указатель: некоторые ASCII символы могут иметь составной EBCDIC эквивалент. Что случится когда EBCDIC файл который был перекодирован в ASCII необходимо перекодировать обратно в EBCDIC? Сможет ли он стать таким же как оригинал? Вероятно нет, так как (62) . Поскольку EBCDIC имеет больше символов чем ASCII, поэтому невозможно иметь обратную таблицу перекодировки из EBCDIC в ASCII.
Но если вы только заботитесь об ASCII файлах, то вашей проблемой является проблема воспроизведения последних 128 уникальных значений из EBCDIC таблицы в соответствующие 128 ASCII значений. Перекодировка из ASCII в EBCDIC и обратно может быть сделана перестановкой хорошо описанной таблицы. Такая таблица приведена в IBM System/370 Reference Card, и в Приложении Д, и (?63).
Прежде чем закончить тему о таблицах символов, Я должен напомнить что существуют тенденции создания 8-ми битных таблиц на основе ASCII, Младшая часть является стандартной ASCII таблицей, а старшая часть содержит специальные символы. Имеются некоторые соглашения что касается какими быть этим специальным символам, хотя имеются и стандарты. Целью всего этого является обеспечение выбора диакритических символов (омляут и т.д.) для использования в Европе, или альтернативных алфавитов подобных Греческому, Древнееврейскому, или Кирилическому. Пользователи IBM или DEC микрокомпьютеров должны быть знакомы с этими специальными, так как они часто случайно появляются на экране.
Таблица 3-3. Часть таблицы перекодировки из ASCII в EBCDIC
Когда существует несколько версий некоторого файла, то передача файла становится менее рискованным делом. Конфликты с именем файла не возникают, и хранение файлов не случайное вычеркивание. Когда файловая система не может обеспечить эти возможности, тогда программе передаче файлов необходимо прилагать усилие для предотвращения коллизий имен файлов путем изобретения уникального имени для новых файлов, тем самым предотвращая нежелательное уничтожение старого.
Системы, которые записывают дину файла не точно обычно не имеют пути определить точно конец файла; в лучшем случае они могут делать это приблизительно, то есть определить последний блок, или конец последнего блока.8
Программы которые работают под управлением таких систем могут принимать соглашения для маркировки окончания данных, как включением специального символа (такого как ASCII символ - Control-Z) в соответствующее место внутри файла. Конечно такие соглашения исключают использование специальных символов внутри файла как символов данных, и это зависит от всех прикладных программ следить которые создают и читают файлы.
Некоторые хорошенькие атрибуты являются внешними записанными лакомыми кусочками не имеющими отношения к интерпретации содержимого файла: дата и время создания, имя или счетчик создателя, код защиты, и т.д. Многие коварные атрибуты описывают "метод доступа" к файлу - как интерпретировать их: фиксация против потока, ключ против родственников, и возможно даже файла который в действительности является каталогом или программа, которая должна быть выполнена. Если файл чья интерпретация зависит от таких внешних записанных атрибутов должен быть передан в другую систему и тогда напомню, что это может быть представляться бесполезным из-за потери этих атрибутов, даже если все таки данные полностью останутся неповрежденными.
В колонке "Формат спецификации файла" показано описание используемое при полной спецификации файла в нормальном случае(сетевые имена узла и другие экзотические случае исключены); DEV - имя устройства, DIR - имя каталога (в иерархической файловой системе, DIR - произвольный путь через дерево каталога). Если поле каталога указано как числовой объект и номер программы, это показано как "p,pn". Цифра показывает максимальную длину имени файла и тип файла, соответственно, и ".v" или ";v" в конце спецификации файла показывает формат для указания версии файла или номера генерации, если это возможно. В записи подобной DEV:[DIR.DIR..]9.3;v указана спецификация файла которая начинается с имени устройство, отделенного двоеточием, за ним следует имя каталога в квадратных скобках, в котором может быть множественный уровень каталога разделенных точкой, следующее имя файла, максимум состоящее из 9 символов в имени файла и 3 символа тип файла, точка разделяет имя и тип, следующий номер версии.
В колонке "Код Текста", ASCII7 - 7-ми битный код ASCII, ASCII8 - "расширенный ASCII код", и SIXBIT - 6-ти битный код включающий в себя только часть 7-ми битного ASCII кода. ASCII7- - "негативный" ASCII код, в котором старший бит каждого 8-ми битного байта установлен в 1. В большинстве других случаев, где n-битный ASCII символ запомнен в m-битном байте (и m больше чем n), старшие биты установлены в 0.
В колонках "Конец строки" и "Конец файла" показано как маркируется конец записи/строки в текстовом файле и каким образом определятся конец самого текстового файла, соответственно; CR - возврат каретки, LF - перевод строки, RCW - Управляющее слово записи, описывает каждую запись, F,V - может быть фиксированной или переменной записью в которой переменная запись должна быть описана как RCW. В колонке "Конец файла", байт - точный счетчик байт хранимый в каталоге, блок - длина файла указывается только в блоках, слово - длина файла указывается приблизительно, RCW - специальное управляющее слово записи указывающее конец файла.
Таблица 3-4. Характеристики выбранных систем