• Что значит тип файла файл. Как определить тип файла без расширения

    Представьте, что вы получаете почту от своих друзей или коллег, а во вложении они отправили вам какой-то документ в виде прикреплённого к письму файла, в котором есть нужная вам информация. Вы сохраняете этот файл на свой компьютер, но видите, что вместо привычных значков какой-либо программы (Word, Excel, PDF и т.д.) никакого значка нет, а Windows считает, что это какой-то файл с неизвестным форматом. Зачастую это происходит из-за того, что файл в процессе прикрепления к письму отправителем (или при сохранении файла на компьютер получателем) теряет своё расширение, и операционная система Windows перестаёт понимать, что за тип файла перед ней, и соответственно не знает, какой программой нужно открывать такой файл. Что такое расширение файла, и как их отображать и скрывать в различных версиях Windows, вы можете прочитать в .

    Второй наиболее частой причиной потери расширения файла является неаккуратное переименование файла, когда у вас в Windows задан режим отображения расширений всех известных типов файлов, и вы при попытке переименовать файл случайно стираете расширение файла и получаете в итоге документ неизвестного происхождения, который уже не сможете открыть двойным щелчком мышки. Например, файл у вас назывался «Письмо.doc», который раньше легко открывался с помощью программы Word, а после переименования он стал называться «Письмо по работе». Обратите внимание, что у файла теперь нет расширения «.doc», которое было случайно стёрто при изменении имени файла, и теперь этот файл не будет открываться двойным щелчком мышки, а попытается спросить у вас, какой именно программой нужно открывать этот файл.

    Хорошо, если вы точно знаете, какой тип файла перед вами, и можете просто добавить ему нужное расширение, например, doc или xls, чтобы он автоматически открывался с помощью двойного щелчка мышки по нему. В отдельной статье вы можете прочитать о . Но что делать, если перед вами файл, тип которого вы не знаете? Есть как минимум два способа узнать, какой перед вами тип файла, и задать ему правильное расширение.

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

    В нашем эксперименте будут участвовать несколько файлов:

    1. Bonnie Tyler — Turn around.mp3 — песня в формате mp3
    2. bonus.mp4 — небольшое видео в формате mp4
    3. KeePass-2.28.exe — установочный файл программы KeePass (об этой замечательной программе я расскажу вам в одной из следующих статей)
    4. math.zip — архив zip
    5. Point Break.avi — небольшое видео формата avi
    6. Tulips.jpg — картинка с тюльпанами
    7. Доклад.ppt — презентация, сделанная в MS PowerPoint 2003
    8. Материалы к совещанию.pptx — презентация, сделанная в MS PowerPoint 2007
    9. Письмо.doc — текстовый файл, сделанный в редакторе MS Word 2003
    10. Приказ.docx — текстовый файл, сделанный в редакторе MS Word 2007
    11. Приложение 4.rar — архив rar
    12. резолюция.pdf — файл в формате pdf
    13. Таблица соответствия.xlsx — файл с данным, сделанный в табличном редакторе MS Excel 2007
    14. Табличные данные.xls — файл с данным, сделанный в табличном редакторе MS Excel 2003

    На картинке ниже у всех файлов стоят свои расширения (выделены рамочками с красными краями):

    Удаляем все расширения файлов, и после этого пропадают все значки программ, с помощью которых можно открывать эти файлы. В Windows XP это выглядит так:

    В Windows 7 это выглядит немного по-другому, но смысл тот же — операционная система не знает, какой программой открывать эти файлы.

    Теперь при попытке открыть любой файл Windows предложит нам сначала выбрать программу, которой нужно открывать этот файл:

    И здесь надо быть аккуратным, поскольку неправильный выбор программы для данного типа файла приведёт к тому, что файл не откроется, и программа выдаст ошибку, а за данным файлом закрепится неправильная ассоциация программы его открытия.

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

    Итак, перед нами куча файлов с неизвестными форматами и расширениями, и нам надо понять, что это за файлы.

    Первый способ узнать, что за тип файла перед нами — это посмотреть содержимое этих файлов с помощью простых текстовых редакторов, например, Блокнота, а лучше — либо с помощью встроенных программ просмотра различных файловых менеджеров, таких, как Total Commander или Far, либо с помощью бесплатного усовершенствованного текстового редактора Notepad++. Рекомендую вам скачать и установить его, поскольку у него есть множество преимуществ перед обычным блокнотом.

    Берём первый файл «Bonnie Tyler — Turn around», в списке программ для открытия выбираем Notepad++ (если не установили его — используйте обычный Блокнот, но лучше всё-таки Notepad++, поскольку при открытии больших файлов Блокнот просто зависает), и видим какие-то кракозябры:

    Смущать это не должно, поскольку для определения типа файла достаточно посмотреть первую строчку содержимого файла. Здесь видно, что файл начинается с букв «ID3″.

    Итак, запоминаем, что если внутри файла его содержимое начинается на «ID3 «, то это музыкальный файл формата mp3, и именно это расширение необходимо ему прописать. После указания расширения файл будет распознан системой как музыкальный, и вы сможете его прослушать.

    Открываем второй файл «bonus» той же программой Notepad++ и смотрим его содержимое:

    Как видим в первой строчке содержимого файла, в ней неоднократно упоминается, что это видеофайл формата mp4 (выделил красным на скриншоте выше). Да и в целом, если вы видите внутри файла текст вроде «ftypmp42 «, то, как правило, это видеофайл формата mp4.

    Проделывая ту же самую операцию по просмотру содержимого со всеми остальными файлами, получаем следующую информацию:

    1. При открытии содержимого файла KeePass-2.28 видно, что файл начинается с букв MZ — это признак того, что перед нами исполняемый файл exe.
    2. При открытии содержимого файла math.zip видно, что файл начинается с букв PK — это говорит нам о том, что данный файл представляет собой архив. Учитывая, что архивы Rar имеют другую запись в содержимом файла, скорее всего это архив Zip, но при этом будьте внимательны и обратите внимание на пункт 6 ниже.
    3. При открытии содержимого файла Point Break в первой же строчке видим подсказку, что перед нами видеофайл формата avi.

    1. При открытии содержимого файла Tulips видим два определяющих формат файла слова — в начале строки «яШя» и затем — «Exif». Эти слова определяют графический формат файла, в частности jpg, и в данном случае мы точно уверены, что перед нами файл-картинка.

    1. Касательно файлов MS Office 2003 «Доклад», «Письмо» и «Табличные данные» — все они во внутреннем содержании начинаются с «РП», поэтому определить сразу, какой из них сделан в Word, Excel или PowerPoint, достаточно сложно. Единственное, в чём можно быть точно уверенным — это то, что данные файлы относятся к одному из приложений MS Office версии 2003 и ниже. Поэтому для открытия таких типов файлов можно использовать перебор трёх расширений, начиная с «doc», затем «xls», затем «ppt». Как правило, одно из них подойдёт.
    2. С файлами «Материалы к совещанию», «Приказ», «Таблица соответствия» немного сложнее — поскольку они сделаны в приложениях MS Office 2007, то по сути они представляют собой архивы, и поэтому в начале их содержимого вы увидите те же буквы, что и в архиве Zip — это буквы «PK». Тем не менее, далее в этой же строке можно увидеть строчку .xml, именно она нам подскажет, что перед нами не просто архив, а документ из серии MS Office Так же, как и в предыдущем пункте, можно использовать последовательный перебор трёх расширений «docx», затем «xlsx», затем «pptx». Одно из них должно подойти.
    1. При открытии содержимого файла «Приложение 4″ видим, что он начинается со слова «Rar» — это самое простое указание на то, что перед нами архив формата rar.
    2. При открытии содержимого файла «резолюция» с самого начала видно указание, что это за файл, поскольку он начинается со строчки «%PDF-1.3″. Цифры могут меняться, но тем не менее аббревиатура pdf обычно присутствует, и указывает на формат файла.

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

    Нажимаем мышкой на кнопку «выберите файл», указываем наш файл для анализа (я попробую проанализировать один из сложных файлов «Материалы к совещанию», чтобы увидеть, сможет ли этот анализатор справиться и понять, что этот файл был создан в MS PowerPoint 2007 (у него было расширение pptx, и мы его удалили при нашем эксперименте). После выбора файла нажимаем кнопку «Analize» и получаем следующий результат:

    Как видим, сервис с 97%-ой вероятностью определил, что это файл PowerPoint с расширением pptx. И поскольку этот файл также является архивом-контейнером, содержащим внутри себя другие файлы, анализатор также указал трёхпроцентную вероятность, что это может быть архив zip.

    Попробуем также проверить, сможет ли этот сервис определить тип нашего файла «резолюция», у которого мы стёрли расширение pdf. Загружаем файл на сервис, нажимаем кнопку «Analize» и видим, что сервис отлично справился с поставленной задачей:

    Как я уже говорил, недостатком данного сервиса может быть то, что для анализа файла ему необходимо его полностью загрузить, и если у вас файл большого размера, то этот процесс может затянуться надолго, а то и вовсе не дойти до конца. Поэтому при больших размерах неопознанных файлов попробуйте сначала воспользоваться первым способом определения его типа, а именно — просмотр содержимого файла через файловый менеджер или редактор Notepad++.

    Можно конечно воспользоваться специальными программами для определения типа файла, например, File Type Verificator, но на мой взгляд, гораздо проще и быстрее будет воспользоваться одним из двух предложенных выше способов.

    Итак, уважаемые посетители сайта, сегодня мы с вами разобрали, как можно определить формат (тип) файла, если было утеряно его расширение. Если у вас появятся какие-либо вопросы, прошу задавать их в комментариях к этой статье.

    Навигация записи

    Формат – спецификация структуры данных, записанных в компьютерном файле. Формат файла иногда указывается в его имени, как часть, отделённая точкой (обычно эту часть называют расширением имени файла, хотя, строго говоря, это неверно). Например, окончание имени (расширение) «.txt» обычно используют для обозначения файлов, содержащих только текстовую информацию, а «.doc» – содержащих текстовую информацию, структурированную в соответствии со стандартами программы Microsoft Word. Файлы, содержимое которых соответствует одному формату (реже – одному семейству форматов), иногда называют файлами одного типа . Так как общепринятая в вычислительной технике концепция файла – неструктурированная последовательность байтов, компьютерные программы, сохраняющие в файлах структурированные данные, должны как-то преобразовывать их в последовательность байтов и наоборот (в ООП эти операции называются, соответственно, «сериализацией» и «десериализацией»; для текстовой информации последнее также называется «разбор» или «парсинг»). Алгоритм этого преобразования, а также соглашения о том, как различные фрагменты информации располагаются внутри файла, и составляют его «формат». Различные форматы файлов могут различаться степенью детализации, один формат может быть «надстройкой» над другим или использовать элементы других форматов. Например, текстовый формат накладывает только самые общие ограничения на структуру данных. Формат HTML устанавливает дополнительные правила на внутреннее устройство файла, но при этом любой HTML-файл является в то же время текстовым файлом.

    Спецификации

    Для многих форматов файлов существуют опубликованные спецификации, в которых подробно описана структура файлов данного формата, то, как программы должны кодировать данные для записи в этот формат и как декодировать их при чтении. Большинство таких спецификаций свободно доступны, некоторые распространяются за плату. Иногда компании могут считать определённые форматы файлов своей коммерческой тайной и не публиковать их. Хорошо известный пример – форматы файлов пакета Microsoft Office. В некоторых случаях компания, выпустившая приложение, просто не считает нужным тратить время на написание подробной спецификации. Если спецификация формата недоступна, то для обеспечения совместимости программы с данным форматом приходится заниматься обратной разработкой. В большинстве или во всех странах форматы файлов не защищены законами об авторских правах. Однако в некоторых странах патентами могут быть защищены алгоритмы, используемые для кодирования данных в какой-либо формат. Например, в широко распространённом формате GIF использовался патентованный алгоритм (срок действия патентов в разных странах истек в 2003-2004 гг.), что привело к разработке альтернативного формата PNG.

    Определение типа файла

    Тип файла – это информация для быстрой идентификации содержимого файла операционной системой и пользователем без необходимости считывания всего содержимого файла. Благодаря этой информации, пользователь приблизительно знает, тип содержащейся информации в файле, а в операционной системе может быть сопоставлена программа для обработки файлов данного типа. Для того, чтобы правильно работать с файлами, программы должны иметь возможность определять их тип. По историческим причинам, в разных операционных системах используются разные подходы для решения этой задачи.

    Расширение имени файла

    Некоторые операционные системы, например, CP/M, DOS, и Microsoft Windows используют для определения типа файла часть его имени, т. е. «расширение имени файла». В старых операционных системах это были три символа, отделённые от имени файла точкой (в файловых системах семейства FAT имя и расширение хранились отдельно, точка добавлялась уже на уровне ОС); в более новых системах расширение может являться просто частью имени, и тогда его длина ограничена только неиспользованной длиной имени (которая может составлять, например, 255 символов). Например, HTML-файлам может соответствовать расширение «.htm» или «.html». Пользователь может свободно изменить расширение файла. Поскольку многие оболочки пользователя используют расширение, чтобы определить программу, с помощью которой нужно открыть файл, это может сделать последний недоступным для работы или вообще «потерять», если пользователь забудет исходное расширение. Поэтому Windows Explorer по умолчанию скрывает расширения. Эта практика имеет и обратную сторону: так как расширение файла не видно, можно обмануть пользователя, заставив его думать, что, например, файл с расширением.exe – изображение с другим расширением. В то же время, опытный пользователь может использовать возможность изменить назначенный файлу тип, просто сменив расширение, чтобы открыть его в другой программе, не указывая её напрямую. Это может быть полезно, если в программе не предусмотрено открытие файлов с каким‑то расширением, а пользователь знает, что их формат подходит для обработки в данной программе.

    Магические числа

    Другой способ, широко используемый в UNIX-подобных операционных системах, заключается в том, чтобы сохранить в самом файле некое «магическое число» (сигнатуру) – последовательность символов, по которой может быть опознан формат файла. Первоначально этот термин использовался для специального набора 2-байтовых идентификаторов, сохраняемых в начале файла (эта практика перекочевала и в другие ОС, например, MZ в MS-DOS), однако, любая последовательность символов, характерная для данного формата, может быть использована как «магическое число». Для определения формата файла служит команда file, которая использует файл /usr/share/misc/magic

    Метаданные

    Некоторые файловые системы позволяют сохранять дополнительные атрибуты для каждого файла, т. е. «метаданные». Эти метаданные можно использовать для хранения информации о типе файла. Такой подход используется в компьютерах Apple Macintosh. Метаданные поддерживаются такими современными файловыми системами как HPFS, NTFS, ext2, ext3 и другими. Недостатком этого метода является плохая переносимость – при копировании файлов между файловыми системами разных типов метаданные могут быть потеряны.

    Типы данных, определённые стандартом MIME, широко используются в различных сетевых протоколах, однако в файловых системах они пока применяются редко.

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

    Расширения файлов

    Форматы

    • Deb (Debian Pakage Manager-Archive)

      Freeze/melt (.F) QNX4 Archive format

      IMG, ISO (виртуальный диск)

      RPM (Red Hat Pakage Manager-Archive)

      SMC System Management Console Format

    Форматы архивных файлов

    Installation file

      deb Debian Package Manager

      MSI Windows Installer (в прошлом Microsoft Installer)

      pkg BeOS SoftwareValet

      RPM используется в Red Hat

      sis, sisx используется в Symbian OS

      APK используется в ОС Android

      CAB используется в Windows Mobile

    Исполняемые форматы (форматы программных файлов)

      текстовый файл (.txt)

      AmigaGuide (.guide)

      Rich Text Format (.rtf) (принятый Microsoft формат для хранения форматированного текста)

      OpenDocument Text (.odt) (вариант открытого текстового формата)

      OpenOffice.org/StarOffice Writer (.sxw) (также открытый текстовый формат)

    • WordPerfect (.wpd)

      Microsoft Word (.doc, .docx, .docm) (защищённый Microsoft-формат)

      Lotus Word Pro (.lwp) (не документированный текстовый формат для Lotus SmartSuite)

      DjVu (формат для хранения сканированных книг – удобен, когда распознание недопустимо из-за сложной вёрстки или если надо сохранить особенности документа)

      FictionBook (полностью открытый формат)

      Mobipocket (для карманных компьютеров)

      PDF (зачастую книги «печатают» в PDF после вёрстки)

      RB (формат Rocket eBook)

      Таб (табуляция, ASCII код 09)

      Microsoft Excel (.xls, .xlsx, .xlsm) (распространённый Microsoft-формат, квази-стандарт)

      OpenDocument Spreadsheet (.ods) (формат используемый открытым табличным процессором от OASIS, универсальный стандарт использующий XML и Zip)

      dif (для обмена таблицами между табличными процессорами)

      Microsoft Excel 2007 (.xlsx) (новый Microsoft-формат)

      123, WK? - Lotus 1-2-3

      AWS - Ability Spreadsheet

      CLF - ThinkFree Calc

      OpenOffice.org/StarOffice Calc (.sxc) [открытый формат на (XML, ZIP) используется программами Calc из StarOffice и поддерживается OpenOffice.org

      WKS - Microsoft Works

      gnumeric - GNU gnumeric

    Текстовые форматы

      BMP (Windows or OS/2 bitmap)

      cpt (Corel PHOTO-PAINT bitmap)

      GIF (Graphics Interchange Format)

      HDR (High Dynamic Range)

      JPEG, JPG, JPE (Joint Photographic Experts Group)

      JPEG 2000 (.jp2)

      PCX (ZSoft PaintBrush)

      PDN (Paint.NET Image)

      PNG (Portable Network Graphics)

      PSD (Photoshop document)

      TGA (Truevision Targa) (.TGA, .tpic)

      TIFF, TIF (Tagged Image Format)

      WDP, HDP (Windows Media Photo)

    • APNG (Animated PNG)

      Autodesk Animation (.fli/.flc)

    • Adobe Flash (.swf), векторная графика

      SMIL, презентации (открытый аналог Flash)

      MNG (Multiple-image Network Graphics)

      SVG (Scalable Vector Graphics, .svg) - презентационный формат, ориентированный на векторную графику

      Windows Animated Cursor (.ani)

      WLMP (Windows Movie Maker)

    Графические форматы

      AA – Audible Audio Book File

      AAC – Advanced Audio Coding

      AMR – Adaptive Multi-Rate

      APE – Monkey"s Audio

      CDA – CD Digital Audio

      FLAC – Flat C Audio

      MT9 – Music 2.0

      Ogg – Vorbits

      VOC – Creative SoundBlaster

      WAV – Windows PCM/ADPCM

      WMA – Windows Multimedia

    Звуковые фонограммы, аудиозаписи

      ASF (Advanced Streaming Format)

      AVI (Audio Video Interleave)

      BinkVideo (.bik)

      FLV (Flash Video)

    • MXF (Material eXchange Format)

      Ogg (для Tarkin и Theora)

      QuickTime (.mov, .qt)

    • SWF (ShockWave File)

      VOB (DVD-Video File)

      WMV – Windows movie

    Видео форматы

      Статические

      • HTML - (.html, .htm) - язык разметки гипертекста (HyperText Markup Language)

        XML - (.xml) - расширяемый язык разметки (eXtensible Markup Language)

        XHTML - (.xhtml, .xht) - расширяемый язык разметки гипертекста (eXtensible HyperText Markup Language)

        MAF - (.maff) - архивированный HTML (веб-архив), содержащий одну или несколько веб-страниц с изображениями и др. загружаемым контентом, сжат по стандарту ZIP

        MHTML - (.mht, .mhtml) - архивированный HTML (веб-архив), хранит все данные веб-страницы (текст, изображения и проч.) в одном большом файле, упакованном по стандарту MIME (MIME HTML)

      Динамически генерируемые

      • ASP - (.asp) - активные серверные страницы от Microsoft (Active Server Page)

        ASPX - (.aspx) - активные серверные страницы на основе.NET от Microsoft (Active Server Page .NET)

        ADP - AOLserver Dynamic Page

        BML - (.bml) - Better Markup Language (templating)

        CFM - (.cfm) - интерпретируемый скриптовый язык программирования ColdFusion

        CGI - (.cgi) - Common Gateway Interface - «общий интерфейс шлюза»

        iHTML - (.ihtml) - Inline HTML

        JSP - (.jsp) - JavaServer Pages

        Lasso - (.las, .lasso, .lassoapp)

        PL - (.pl) - язык программирования Perl

        PHP - (.php, .phtml) - аббревиатура от PHP: Hypertext Preprocessor , первоначально была аббревиатура от Personal Home Page

        SSI - (.shtml, .stm, .shtm) - HTML вместе с Server Side Includes

    Интернет

    Список литературы.

      Конституция Российской Федерации. Комментарий. М.: Юрид.лит., 1994г.

      Комментарий к Конституции Российской Федерации. «Юридическая литература». М.: 1994г.

      Федеральный конституционный закон “ Об арбитражных судах в Российской Федерации”, Арбитражный Процессуальный кодекс Российской Федерации. М.: “ Ось-89” , 1995г.

    На жёстких дисках современного компьютера, а также на других накопителях и носителях информации обычно хранится одновременно много различных данных, и эти данные представлены в двоичном коде. Для того чтобы получить доступ к той или иной информации (например, чтобы прочитать текст, записанный в электронном виде, или запустить программу, которая записана на носителе), требуется указать, с какого конкретного места на диске следует считывать данные. Другими словами, для того чтобы компьютер «знал», где расположена нужная в данный момент информация на диске, ему требуется указать точный её «адрес» - для дискового накопителя, например, это номер сектора диска, номер дорожки и т. п.

    Согласитесь, что запоминать местоположение данных в таком виде, особенно, когда данных много, весьма неудобно. Поэтому данные при записи на диск объединяют в поименованные последовательности. Эти последовательности и называются файлами. Файлом может являться и программа, которую можно запустить, и текст, набранный пользователем, и оцифрованный звуковой фрагмент, и любая другая последовательность данных. При этом в первых секторах каждого диска хранится информация о соответствии имени файла адресу его физического расположения на диске.

    (adsbygoogle = window.adsbygoogle || ).push({});

    Теперь вместо того чтобы запоминать, например, что программа-редактор текстов записана на дорожке 10, сектора 12 и 13 и для её запуска нам нужно обратиться к этим секторам, мы присваиваем файлу этой программы имя kwriter. Этому имени ставятся в соответствие данные сектора на диске, о чём делается запись в начале диска. Теперь при обращении к этому файлу по имени компьютер будет искать это имя в своём списке. Найдя его, он автоматически обратится к нужным секторам, чтобы считать с них данные. Для удобства желательно, чтобы имя файла отражало его содержимое. Например, файл стандартной программы-редактора текстов «Блокнот» из операционных систем семейства Windows носит имя notepad (блокнот). Таким образом, пользователю становится легко ориентироваться в записанных на диске данных.
    Итак, пользователь указывает только имя файла, а конкретное место его расположения на диске определяет операционная система (об операционных системах см. в гл. 5). В некоторых старых операционных системах, например DOS, имя файла ограничивалось восемью символам и могло состоять только из латинских букв и некоторых специальных символов (например, подчёркивание или восклицательный знак).

    В современных системах имя файла может быть очень длинным - например, до 255 символов в современных версиях Windows. При этом в имени файла могут использоваться самые разные символы, в том числе пробелы и даже русские буквы. Однако мы не рекомендуем злоупотреблять русскими буквами в названиях файлов. Дело в том, что, во-первых, такие «русские» файлы могут не читаться в некоторых системах (а мало ли, что может понадобиться!), а во-вторых, в неко­торых аварийных ситуациях извлечь или спасти такие файлы бывает значительно труднее, чем файлы, в именах которых использованы только латинские буквы. Иногда это и вовсе невозможно.

    Ну вот, скажете вы, только начался рассказ о хранении данных в файлах, как автор уже пугает аварийными ситуациями... Автору, конечно, никого пугать не хочется. Однако непредвиденные аварийные ситуации могут возникнуть в любой области, в том числе и в компьютерной системе. Поэтому всегда лучше заранее принять меры предосторожности, тем более, что в данном случае это совсем нетрудно.
    Считается, что в полное имя файла ещё входят путь к нему (path) и расширение (extension). Речь об этом и пойдёт далее

    Какие бывают файлы

    Когда пользователь начинает работу с каким-либо файлом, системе необходимо «знать», с помощью какой программы этот файл можно открыть и в каком формате он записан. Например, если файл содержит обычный текст, то он может быть прочитан в любой текстовой программе («Блокнот», WordPad, kwriter и т. п.). Если файл является звуковым фрагментом, то его можно открыть в программе-проигрывателе (Winamp, XMMS и пр.) или в каком-нибудь звуковом редакторе (Sound Forge, Adobe Audition, Samplitude и т. п.).

    Таким образом, программа, которая открывает файл, должна «понимать» формат, в котором этот файл записан. Если же, например, попробовать открыть текстовый файл в звуковом редакторе, то последний, скорее всего, выдаст сообщение об ошибке («неверный формат файла»), а если вы откроете звуковой файл в виде текста, то увидите на экране полную бессмыслицу.

    Расширение в имени файла. Чтобы программы и операционные системы могли «с первого взгляда» определять тип файла, к имени файла добавляют так называемое расширение. Оно обычно состоит из небольшого количества символов. В старых системах вроде DOS оно ограничивалось тремя символами. В современных системах, в том числе в Windows XP или Linux, такого ограничения нет, однако большинство файлов всё равно оканчивается трёхбуквенными расширениями. От собственного имени файла расширение отделяется точкой.

    Во многих современных системах и в Интернете принят ряд стандартных расширений имён файлов. Некоторые из них приведены в табл. 3.1.

    Стандартные расширения имён файлов

    Сжатый музыкальный файл формата mp4 audio
    .аас
    Файл архива

    Векторный рисунок формата популярной программы Adobe Illustrator
    .ai
    Звуковой файл (как правило, на Macintosh)

    Aiff
    Анимированный указатель мыши

    Ani
    Файл архива

    Arj

    Потоковый звуковой или видеофайл
    .asx
    Звуковой файл (формат Sun Audio)

    Видеофайл стандартного для Windows формата
    .avi

    Старая (предыдущая) копия какого-либо файла
    .bak

    «Командный файл» - содержит ряд команд операционных систем DOS или Windows, которые будут выполняться последовательно
    .bat

    Двоичный файл
    .bin
    Растровый рисунок

    Bmp
    Файл архива

    Bz
    Файл архива

    Код программы на языке С или С++
    .c

    Установки для какой-либо программы
    .cfg

    Программа (апплет), написанная на языке Java
    .class

    Исполняемый файл (программа, которую можно непосредст­венно запустить)
    .com
    Файл конфигурации какой-либо программы (обычно в Linux)

    Conf
    Музыкальный проект популярной программы Cubase

    Файл стиля для веб-страниц
    .ess

    Указатель мыши
    .cur

    Видеоклип
    .dat

    Файл базы данных
    .db

    Динамическая библиотека связей (обычно компонент какой-либо программы)
    .dll

    Документ, как правило, формата Microsoft Word
    .doc


    .eps

    Исполняемый файл (программа, которую можно непосредс­твенно запустить)
    .ехе

    Рисунок (сжатый файл)
    .gif

    Файл справки
    .sр


    .htm

    Гипертекстовый файл, обычно для веб-страниц
    .html

    Значок
    Лео

    Сведения для установки какой-либо программы
    .inf

    Файл настроек программы (обычно в Windows или DOS)
    .ini

    Файл образа компакт-диска
    .iso

    Файл шрифта
    .fon

    Файл архива
    .gz

    Файл архива
    .gzip

    Исполняемая программа на языке Java
    .jar

    Рисунок (сжатый файл)
    .jpeg

    Рисунок (сжатый файл)
    jpg

    Скрипт на языке JavaScrpipt
    .js

    Музыкальный файл с текстом (для караоке)
    .kar

    Файл архива
    .zip

    «Протокол» действий, совершённых какой-либо программой (обычно при установке)
    .log

    Листинг
    .1st


    .m3u

    MIDI-файл (музыкальный файл, который исполняется через синтезатор звуковой карты)
    .mid


    .mov

    Сжатый музыкальный файл формата трЗ
    .трЗ

    Сжатый видеофайл формата mpeg
    .mpg

    Файл установки программы для Windows
    .msi

    Нотный файл формата популярной программы Finale
    .mus

    Системный файл ActiveX
    .осх

    Сжатый музыкальный файл формата Ogg Vorbis
    .ogg

    Старая копия какого-либо файла
    .old

    Документ формата Adobe Acrobat
    .pdf

    Скрипт на языке РНР
    .php

    Скрипт на языке РНР
    .phtml

    Скрипт на языке PERL
    .pi

    Стандартный список воспроизведения
    .pis

    Файл вёрстки в формате Adobe Pagemaker
    .pmd

    Рисунок сжатого формата
    png

    Графический файл полиграфического формата PostScript
    .ps

    Рисунок формата популярной растровой программы Adobe Photoshop
    .psd

    Зашифрованный пароль и другие сведения о пользователе
    .pwl

    Видео или звуковой файл формата Apple Quick Time
    qt

    Файл Real Audio
    .ra

    Файл архива
    .rar

    Сведения для внесения в системный реестр Windows
    .reg

    Файл установки программы для Linux
    .rpm

    Текстовый файл со шрифтовой разметкой
    .rtf

    Нотный файл формата популярной программы Sibelius
    .sib

    Файл установки программы для мобильного телефона
    .sis

    Файл фильма популярного формата Shokwave Flash
    .swf

    Документ в формате OpenOffice.org
    .sxw

    Системный файл
    sys

    Файл архива
    .tar

    Рисунок
    .tif

    Файл шрифта TrueType
    .ttf

    Текстовый файл
    .txt

    Драйвер виртуального устройства - один из системных ком­понентов Windows
    .vxd

    Стандартный звуковой файл в Windows
    .wav

    Сжатый музыкальный файл формата Windows Media
    .wma

    Рисунок (стандартный Windows-формат)
    .wmf

    Сжатый видеофайл формата Windows Media
    .wmv

    Текстовый документ в формате Write или WordPad
    .wri

    Документ, размеченный в соответствии со стандартом XML
    .xml

    Конечно, здесь перечислены далеко не все расширения и типы файлов, их слишком много Дело в том, что каждая вновь создаваемая программа может использовать уже имеющийся стандартный тип для своих рабочих файлов, а может иметь и свой собственный. Так, например, графический редактор Adobe Photoshop может работать со стандартными форматами рисунков (bmp, jpg, tif и пр.), но в то же время имеет свой собственный файловый формат (psd). Музыкальная программа Cubase может работать со стандартными MIDI-файлами (mid) или звуковыми файлами (wav), однако при работе чаще используется оригинальный формат (срг).

    Более того, поскольку программ существует очень много, то легко может случиться так, что две или более программы будут «стараться» использовать одинаковое расширение для файлов своего формата. Например, расширение mus традиционно используется для нотных файлов формата Finale, однако это же расширение mus имеют и нотные файлы совершенно другого формата MusicTime.

    Вообще говоря, в некоторых системах тип файла определяется не только по расширению, и в этом случае файлы могут вообще не иметь расширений. Например, исполняемые файлы в Linux определяются не по расширению (ехе или com), а по специальному файловому атрибуту. Однако для совместимости с традиционно сложившейся ситуацией большинство программ в этих системах сегодня также оперирует файлами с расширениями.

    Открытие файлов. В современных системах, таких как Windows XP или Linux с графической оболочкой это обычно осуществляется с помощью двойного щелчка мыши на имени или значке файла. Получив команду «Открыть файл», система прежде всего определяет тип файла по его расширению. Если файл окажется исполняемым (программа), то его содержимое загружается в память и передаётся процессору для исполнения. Если же файл имеет другой известный тип, то система сначала открывает ту программу, которая работает с этим типом файлов, и затем файл будет открыт уже из этой программы. Если тип файла системе неизвестен, то пользователю будет предложено выбрать рабочую программу самому. Эта ситуация в операционных системах Windows показана на рис. 3.1.

    Каталоги

    Итак, теперь вы знаете, что такое файл. Если бы файлов на диске было не больше одного-двух десятков, запомнить, что означают их имена, и разобраться в них не предоставляло бы труда. Однако их уже очень много на новом диске, и в дальнейшем их количество растет с ураганной скоростью. Например, на жёстких дисках моего компьютера расположено около тридцати тысяч различных файлов. Откуда они вообще берутся и как в них разобраться?
    Рис. 3.1 Выбор программы для открытия файла (в Windows и Linux)

    Во-первых, в состав современных программ (за редким исключением) входят от нескольких десятков до сотен вспомогательных файлов. К примеру, система Windows XP состоит из почти 10 000 файлов. Чтобы облегчить жизнь, решили все файлы, относящиеся к одной программе, объединять в группу. В результате на диске будет несколько таких групп.

    Полезно также разделить файлы по типам и назначению (для работы, для развлечения, для детей и др.). Если компьютером пользуется несколько человек, следует объединить в одну группу файлы одного пользователя.

    Такие группы файлов принято называть каталогами, директориями или, в новой терминологии, папками (folders). Все каталоги, как и файлы, имеют свои имена. Внешне имена каталогов ничем не отличаются от имён файлов, но обычно не имеют расширений (хотя и могут иметь их).

    Итак, файлы (все или часть) распределили по каталогам (папкам). Но процесс продолжается, и вот уже внутри одного каталога может располагаться другой каталог, в нём ещё один и так далее, как в русской матрёшке.

    Теперь, чтобы указать точное местоположение файла, кроме имени файла и расширения, необходимо указать ещё и путь к файлу. Путь (path) состоит из имён всех каталогов, внутри которых файл расположен. В системах DOS и Windows это выглядит так: в начале пути к файлу ставится буквенное имя диска (логического раздела), после которого всегда ставится двоеточие, и далее следует перечисление имён каталогов, в которых расположен данный файл. При этом имена каталогов разделяются обратной косой чертой (\). Например, если вы записали звуковой файл и назвали его MySound.wav, а затем поместили его в каталог Sounds, который, в свою очередь, вложен в каталог MyFiles на жёстком диске D:, то полное имя файла (включающее путь) будет выглядеть так:

    D:\MyFiles\Sounds\MySound.wav

    В системе Linux и других с подобной организацией имён файлов, имена каталогов разделяются обычной косой чертой (/). Ею же обозначается корневой раздел. Например, если вы поместили звуковой файл MySound.wav в свой домашний каталог под названием Ivanov, который находится в каталоге home, то полный путь к файлу будет выглядеть так:

    /home/Ivanov/MySound.wav

    Файловые системы. Иногда возникает ситуация, когда файлы (а точнее - целые логические диски), которые прекрасно «видны» из-под одной операционной системы, бесследно исчезают в другой. Как правило, это бывает, когда операционные системы используют разные файловые системы. Файловая система - это формат, в котором записана информация о расположении файлов на диске. Существует универсальная файловая система на PC, которая называется FAT или FAT16. С ней могут работать DOS, Windows, OS/2, Linux, BeOS и т. п. Универсальной является и файловая система FAT32, но она к тому же разрешает использование больших жёстких дисков. При файловой системе FAT16 размер раздела не должен превышать 2 Гбайт. С FAT32 могут работать практически все операционные системы, кроме DOS.

    Существует и другие же файловые системы, но они не столь универсальны. Например, систему HPFS могли понимать только OS/2 и Windows NT ранних версий. Файловую систему NTFS, которая используется в Windows NT/2000/XP, не «понимают» Windows 95/98/ME, а в Linux её лучше использовать только для чтения, но не для записи. Характерная для Linux файловая система ext3 обычно не читается из Windows.Если по разным причинам на компьютере работает несколько операционных систем, то автор рекомендует пользоваться наиболее универсальной файловой системой FAT32.

    Программные пакеты

    Современные программы, как правило, состоят не из одного исполняемого файла, а из множества, или компонентов пакета. Для работы программ бывает необходимо подготовить систему, т. е. произвести определённые настройки и дать знать системе о существовании программ. С этой целью программные пакеты поставляют в «запакованном» виде, и к ним прилагают небольшую программку, обычно именуемую Setup или Instal. Эта программка распаковывает файлы-компоненты программы, помещает их в нужные каталоги, записывает или изменяет системные установки и т. д. Этот процесс называется установкой программы, а запакованный программный пакет с программой установки называется дистрибутивом.

    Например, дистрибутив нотно-графической программы Finale 2004 содержит файл Setup.exe. При запуске он создаёт специальный каталог для программы Finale 2004, помещает туда десять необходимых файлов, создаёт внутри него ещё десять каталогов (для библиотек установок, шаблонов, учебных файлов, подключаемых модулей и пр.) и наполняет их содержимым. Кроме того, устанавливает в системе «нотные» шрифты (Maestro, Petrucci и пр.) и несколько PostScript-шрифтов (специальных шрифтов для полиграфических работ).

    Иногда вместо установочного файла или сценария, который совершает подобную работу, дистрибутив программы содержит несколько команд для стандартного инсталлятора системы. Эти указания могут быть запакованы вместе с необходимыми для работы программы данными в один файл со стандартным расширением msi (для Windows) или rpm (для Linux). Для установки такой программы достаточно открыть этот файл, а всё остальное система сделает сама.




    ЛЕКЦИЯ 19. СИСТЕМЫ ФАЙЛОВ

    Понятие файла

    Файл (file) – это смежная область логического адресного пространства. Как правило, файлы хранятся во внешней памяти.

    Немного о терминологии. Слово файл уже несколько десятков лет используется как русское – один из многочисленных примеров программистских неологизмов. Первоначально, когда около 50 лет назад появился данный английский термин, в русскоязычной литературе специалисты пытались ввести другую терминологию – слово file переводили как фонд и даже тека (в смысле хранилище ). Однако исторически сложилось иное решение – слово файл стало русским. В английском языке слово file имеет много других значений: например, подшитый в папку бумажный документ и даже стадо (например, слонов) – в последнем случае, как можно предположить, размер "файла" может быть очень велик. У всех в памяти название легендарного сериала " X files" (в вольном русском переводе – "Секретные материалы").

    Фирма IBM в документации по своей системе IBM 360 в 1960-х гг. использовала иной термин – набор данных (data set) – для обозначения этого же понятия, однако он не пережил операционную систему, в которой использовался.

    Каждый файл имеет свой тип , определяющий, какая информация хранится в файле. Основные типы файлов – программа (код) или данные . Данные подразделяются на числовые, символьные (текстовые) идвоичные ( произвольная информация ).

    Структура файла

    В различных системах приняты различные точки зрения на структуру файлов. В ряде систем структура файла привязывалась к типу устройства, на котором он находится. В некоторых других системах структура файла была искусственно усложнена. Однако наиболее простую и унифицированную точку зрения из них предложили авторы системы UNIX : файл – это последовательность слов или байтов . Казалось бы, это очевидно, но преимущество данного подхода к файлам в том, что базовое представление файла и базовые операции над ним (read , write ) не зависят от типа устройства. В свое время для программистов нашего поколения такой подход к файлам был откровением, после сложностей системы файлов IBM 360, а затем – "Эльбруса". Можно сказать, что файлы в своем развитии прошли путь , аналогичный развитиюархитектур компьютеров – сначала в сторону значительных усложнений, затем – упрощения и унификации .

    Файлы можно условно подразделять на файлы простой и сложной структуры (хотя точка зрения на структуру файла зависит от той программы, которая его обрабатывает).

    Файлы простой структуры состоят из последовательности записей (records) – элементарных единиц, в терминах которых выполняются операции обмена с файлом. Записи могут быть:

    · строками , если это текстовый файл ;

    · двоичными данными фиксированной длины ;

    · двоичными данными переменной длины .

    Файлы сложной структуры могут быть самого разного вида, например:

    · отформатированным документом Microsoft Office (такой файл, кроме собственно текста, содержит управляющие символы переключения шрифтов, цветов и т.д.);

    · загрузочным модулем реального или виртуального двоичного кода, например, portable executable (PE) -файлом для платформы.NET; class-файлом для платформы Java; подобные файлы состоят из нескольких секций, содержат внутренние ссылки и таблицы и т.д.

    Сложная структура файла может быть смоделирована записями путем добавления соответствующих управляющих символов .

    Файлы интерпретируются операционной системой или программами их обработки.

    Атрибуты файла

    Практически в любой системе файлов можно считать, что файл состоит из заголовка и памяти .В заголовке файла хранятся его атрибуты – общие свойства, описывающие содержимое файла, память файла – это его записи, строки, секции и т.д., содержащие собственно хранимую в нем информацию.

    Различаются следующие основные атрибуты файла :

    Имя (Name) – название файла в символьной форме, воспринимаемое пользователем.

    Тип (Type) – тип хранимой в файле информации. Отдельный атрибут тип необходим для систем, которые поддерживают различные типы файлов. Например, в системе "Эльбрус" значением атрибута тип файла является число, кодирующее тип: 0 – данные, 2 – код, 3 – текст и т.д. Однако более общепринятым подходом является подход, принятый в системах MS DOS , Windows , UNIX : тип файла кодируется расширением имени , например, book.txt – текстовый файл (.txt), содержащий текст книги.

    Размещение (Location) указатель на размещение файла на устройстве.

    Размер (Size) – текущий размер файла .

    Защита (Protection) – управляющая информация , задающая полномочия чтения, изменения и исполнения файла.

    Время и дата . Например, во всех системах хранится дата создания файла и дата последней модификации файла. Последняя играет важную роль при компиляции (сборке) больших программных проектов, так как утилиты для сборки проектов (например, make ) определяют по соотношению дат последней модификации файлов исходного кода и двоичного кода, следует ли перекомпилировать исходный файл .

    В ОС UNIX дату модификации файла можно изменить командой touch f, где f – имя файла . Touch дословно означает потрогать . Кроме изменения времени модификации, больше никаких действий над файлом не производится.

    Идентификация пользователя .В любой системе поддерживается понятие хозяин (создатель) файла (owner) .Именно хозяин вправе задавать другим пользователям полномочия для работы с файлом.

    Информация о файлах хранится в структуре директорий ( или справочников - directories) ,иногда, например, в системе Windows , называемых также папками (folders) – структурами во внешней памяти, содержащими символьные имена файлов и ссылки на них. Важнейшая концепция директории подробно рассматривается далее в данной лекции.

    Операции над файлами

    Хотя набор операций над файлами и особенно их обозначений различается от системы к системе, можно выделить следующие основные операции над файлами.

    · Создание файла (Create ). Создается заголовок файла; первоначально его содержимое (память) пусто.

    · Запись в файл (Write ). Как правило, происходит записями (records) или блоками – более крупными логическими единицами информации, объединяющими несколько записей, с целью оптимизацииопераций ввода-вывода .

    · Чтение из файла (Read ). Обычно также выполняется записями или блоками.

    · Поиск позиции внутри файла (позиционирование) (Seek ). Позиция задается номером записи или блока, либо специальными именами, обозначающими начало файла (позиция перед первой записью) или конец файла (позиция после последней записи).

    · Удаление файла (Delete ). В зависимости от реализации системы файлов, ошибочное удаление файла может быть фатальным (UNIX) или исправимым (MS DOS).

    · Сокращение файла (Truncate ).

    · Открытие файла (Open ) – поиск файла в структуре директорий по его символьному имени (пути) и считывание его заголовка и одного или нескольких смежных блоков в буфера в основной памяти.

    · Закрытие файла (Close ) – запись содержимого буферов в блоки файла; обновление файла во внешней памяти в соответствии с его текущим состоянием; освобождение всех структур в основной памяти, связанных с файлом.

    Для выполнения операций обмена с файлом (read, write ), как правило, файл необходимо открыть. Закрытие файла является обязанностью пользовательского процесса ; однако, если он по какой-либо причине этого не выполняет, то закрывает все файлы, открытые процессом, операционная система после завершения или прекращения процесса.

    Типы файлов – имена и расширения

    В таблица 19.1 приведены некоторые наиболее употребительные типы файлов и соответствующие им расширения имен.

    Таблица 19.1. Типы файлов – имена и расширения
    тип файла расширение имени функциональность
    исполняемый код (загрузочный модуль) exe, com, bin или отсутствует готовая к выполнению программа в бинарном машинном коде
    обьектный модуль obj , о откомпилированная программа в бинарном коде, но не слинкованная
    исходный код на языке программирования с, сс, Java, pas, asm , а исходный код на различных языках (Си, Паскаль и др.)
    командный файл bat, sh файл с командами для командного интерпретатора
    текст txt, doc текстовые данные, документы
    документ для текстового процессора wp, tex, rtf , doc документ в формате какого-либо текстового процессора
    библиотека lib, a, so, dll, mpeg, mov, rm библиотеки модулей для программирования
    файл для печати или визуализации arc , zip, tar ASCII или бинарный файл в формате для печати или визуализации
    архив arc , zip, tar несколько файлов, сгруппированных в один файл, для архивации или хранения
    мультимедиа mpeg, mov, rm бинарный файл , содержащий аудио- или видео информацию

    Смысл их ясен из приведенной таблицы. Следует заметить, что унифицированных расширений имен, принятых в различных ОС, очень мало – по -видимому, только .txt (текст) и расширения для исходных кодов на языках программирования, например, .c – Си , .p или. pas – Паскаль и др. Объектные модули называются по -разному (в Windows .obj , в UNIX - .o ), библиотеки – тоже: статически линкуемые в Windows - .lib , вUNIX - .a ; динамически линкуемые в Windows - .dll , в UNIX – .so .Интересно отметить, что для исполняемого кода в Windows есть стандартное расширение - .exe ,а в UNIX – нет, зато есть весьма экзотическое полное стандартное имя: a.out (assembler output) .Унифицированы расширения имен для различных текстовых процессоров: . doc - Microsoft Word , .pdf – Adobe Acrobat и др.

    Методы доступа к файлам

    Традиционно различаются файлы последовательного доступа и прямого доступа .Файл последовательного доступа – это файл , доступ к которому возможен только позиционированием на начало и конец и затем операциями обмена вида считать или обновить следующую (предыдущую ) запись . Файл прямого доступа – это файл , для которого возможен непосредственный доступ по номеру записи и операция обмена с явным указанием номера записи. В любом случае, при выполнении обмена с файлом всегда существует некоторая текущая позиция по файлу, указывающая на некоторую запись , на позицию перед началом или после конца файла. В операциях над файлом последовательного доступа произвольная установка позиции не допускается, а разрешены только операции , автоматически передвигающие текущую позицию на следующую (предыдущую) запись .

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

    По -видимому, последовательный доступ используется чаще: именно так происходит ввод данных, вывод результатов на печать или на экран.

    Типичные :

    reset – установка на начало файла для чтения

    rewrite – установка на начало файла для записи.

    Типичные операции прямого доступа:

    position to n – позиционирование на запись с номером n

    rewrite n, где n - относительный номер блока (записи).

    Описанная трактовка последовательных файлов и операций над ними иллюстрируется рис. 19.1.

    Рис. 19.1. Файл последовательного доступа.

    При необходимости можно смоделировать операции последовательного доступа для файла с прямым доступом. Способ моделирования показан в таблица 19.2.

    Указатель на текущую позицию, характерный для последовательного доступа , для файла прямого доступа моделируется переменной cp , а операции последовательного доступа – операциями прямого доступа с указанием cp в качестве номера блока.

    Для ускорения доступа к файлу большого объема может использоваться индексный файл , содержащий ссылки на записи основного (относительного ) файла. рис. 19.2 изображен пример основного файла, содержащего упорядоченные по фамилиям анкетные данные людей. Индексный файл для данного основного файла содержит ссылки на первые логические записи анкет с заданной фамилией, например, Smith.


    Рис. 19.2. Индексный файл и основной файл.

    Директории

    Директория (directory, folder) - узел, содержащий информацию о файлах – их имена и ссылки на файлы и на другие директории во внешней памяти. Таким образом, возможна организация иерархии директорий или их более сложных взаимосвязей, вплоть до произвольных графов. Как структура директорий, так и файлы хранятся на диске. С помощью директорий поддерживается именование файлов с помощью путей (paths) – многослоговых имен, состоящих из имени корневой директории (или логического диска) и последовательности имен директорий последующих уровней. Например, в системе Windows c:\doc\plan.txt путь доступа к файлу, задающий его расположение – на логическом диске C: ,в директории doc (документы), и имя файла plan.txt .Имя содержит расширение, указывающее на тип файла .

    Резервное копирование (back-up) файлов и директорий выполняется на специальные предназначенные для этого носители – например, на ленту (стример ), flash-память , внешний переносной жесткий диск , компакт-диск (CD , DVD ). Настоятельно рекомендуется регулярно копировать на внешний носитель (или на несколько внешних носителей) наиболее важные директории.

    Особенности системы файлов в "Эльбрусе"

    Говоря о структуре директорий и именовании файлов, нельзя не упомянуть столь экзотическую систему файлов, как в МВК "Эльбрус". Это будет полезно читателям, чтобы сравнить и лучше оценить разнообразие подходов к системам файлов.

    Основные концепции системы файлов МВК "Эльбрус" – это файлы , контейнеры , справочники . Понятие контейнера в "Эльбрусе" близко к современным понятиям тома и контейнера в системах Windows и Solaris: контейнер – это хранилище файлов на одном или нескольких дисках. Понятие справочника близко к понятию директории в традиционных файловых системах.

    Файл в "Эльбрусе" состоит из заголовка и памяти. В заголовке хранятся атрибуты файла , число которых – порядка 100 (!).

    Существенным отличием файловой системы "Эльбруса" является то, что возможно создание файла и управление им без присваивания ему имени , т.е. без отображения его в справочниках (директориях). Такой временный файл создается в программе, ссылка на файл хранится в глобальной или локальной переменной, и по окончании выполнения программы файл уничтожается, если на него не была сохранена ссылка в справочнике на диске. Кроме того, файлы могут ссылаться друг на друга (по прямой "физической" файловой ссылке, а не c помощью символьных путей) через справочники внешних ссылок (СВС) .СВС имеется у каждого файла. Его элементы адресуются по номерам, а не по именам. Типичный пример: файл объектного кода (ФОК) ссылается через свой СВС на файл дополнения к файлу объектного кода (ДФОК) ,содержащий в унифицированном виде таблицы именованных сущностей, определенных в программе и ее процедурах. Выражаясь современным языком, ДФОК содержит метаданные . Эта взаимосвязь используется при диагностике ошибок времени выполнения и для многих других целей.

    К недостаткам файловой системы "Эльбруса" можно отнести усложненную структуру файлов, большое число атрибутов, зависимость логической структуры файла и набора операций над ним от типа внешнего устройства , на котором он расположен. По сравнению с системой файлов "Эльбруса", система файлов в UNIX гораздо проще и удобнее, но нисколько не уступает по функциональности.

    Типичная организация файловой системы изображена на рис. 19.3.


    Рис. 19.3. Организация файловой системы.

    Файловые системы организуются на дисках . Каждый диск поделен на разделы (partitions) – смежные области дисковой памяти, имеющие свои логические имена (обычно в виде первых букв латинского алфавита). Однако возможна и организация раздела, занимающего несколько дисков. Для деления диска на разделы рекомендуем утилиту Partition Magic . В разделах хранятся директории и файлы. Каждый раздел имеет корневую директорию , у которой при необходимости могут быть организованы поддиректории , на которые она ссылается.

    Следует иметь в виду, что в разных разделах могут быть установлены различные операционные системы, использующие разное форматирование и разные файловые системы для своей работы. Даже если на компьютере установлена только одна ОС, различные разделы могут использовать различные типы файловых систем, например, в Windows раздел A может использовать файловую систему FAT32 , а раздел B – файловую систему NTFS . В разделе C может быть инсталлирована ОС Linux, использующая свою собственную файловую систему Ext2Fs .


    ©2015-2019 сайт
    Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
    Дата создания страницы: 2016-04-11

    Тема: Файловая система ОС.

    Часть операционной системы, работающей с файлами, называется файловой системой (ФС)

    Аспекты ФС (с точки зрения пользователя) является ее внешнее представление, т.е.

      именование и защита файлов;

      операции с файлами;

    Именование файлов :

    При создании файла процесс дает файлу имя. Когда процесс завершает работу, файл продолжает свое существование, и по его имени к файлу могут иметь доступ другие процессы.

    Все современные ОС в качестве имен файлов используют 8-ми символьные текстовые строки. Также в именах файлов также разрешается использование цифр и специальных символов. Многие файловые системы поддерживают имена файлов до 255 символов.

    В некоторых файловых системах есть различие между прописными и строчными буквами (например, Unix). В ОС MS-DOS такого различия нет.

    Многие ОС, например, Windows 95 , Windows 98 используют ФС ОС MS - DOS , и наследуют многие ее свойства, включая именование файлов. ОС Windows NT , Windows 2000 также поддерживают ФС MS - DOS и наследуют ее свойства. Однако у последних двух ОС имеется своя ФС ( NTFS ) , обладающая своими свойствами (например, именами файлов в кодировке Unicode ).

    Во многих ОС имена файлов могут состоять из 2-х частей, разделенных точкой

    (имя файла. расширение файла) и обычно означает тип файла.

    В MS - DOS имя файла содержит 8 символов + 3 символа отводится на расширение файла. В некоторых ОС (например, Unix ) расширения файлов являются просто соглашениями , которые могут придерживаться пользователи.

    Способы структурирования файлов:

      Неструктурированная последовательность байтов .

    В этом случае ОС не интересуется содержимым файла . Все что она видит, это байты. Значения этим байтам придается программами уровня пользователя. Такой подход используется в ОС Windows , Unix . Такой подход обеспечивает максимальную гибкость .

      Последовательность записей

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

      Третий вариант – файл представляет собой дерево записей , не обязательно одной и той же длины.

    Каждая запись в фиксированной позиции содержит поле ключа. Дерево сортировано по ключевому полю, что обеспечивает быстрый поиск заданного ключа. Такой вариант представления файловых систем широко применяются на больших мэйнфреймах, которые используются для коммерческой обработки данных.

    Типы файлов:

      Регулярные файлы – к ним относятся все файлы, содержащие информацию пользователя.

      Каталоги – системные файлы, обеспечивающие поддержку структуры ФС.

      Символьные специальные файлы – имеют отношение к вводу-выводу и используются для моделирования последовательных устройств ввода-вывода, таких, как терминалы, принтеры, сети.

      Блочные специальные файлы – используются для моделирования дисков.

    Регулярные файлы в основном являются либо ASCII-файлами, либо двоичными файлами. ASCII-файлы состоят из текстовых строк. В некоторых ОС каждая строка завершается символом возврата каретки. В некоторых (unix) используется символ перевода строки . В ОС MS-DOS используются оба символа. Строки не обязаны иметь одну и ту же длину.

    Остальные файлы называются двоичными файлами, т.е. они не являются ASCII-файлами. Обычно у них есть некая внутренняя структура, известная программе, использующей их (рисунок 6.2).

    Доступ к файлам:

    В старых ОС предоставлялся только один доступ к файлам – последовательный. При последовательном доступе к файлу процесс может читать байты файла или его записи только последовательно.

    Файлы, байты которых могут быть прочитаны в произвольном порядке, называются файлами произвольного (прямого ) доступа. Используются например для приложений БД.

    Атрибуты файла:

    Дополнительные сведения о файле (дата, время создания) называют атрибутами файла. Список атрибутов может быть разным в зависимости от ОС.

    Атрибут Значение

    Защита Кто и каким образом может получить доступ к файлу

    Пароль Пароль для получения доступа к файлу

    Создатель Идентификатор пользователя, создавшего файл

    Владеделец Текущий владелец

    Флаг «Только чтение» 0 –для чтения/записи; 1- только чтение

    Флаг «Скрытый» 0 – нормальный, 1 – не отображать в перечне файлов каталога

    Флаг «Системный» 0 – нормальный; 1- системный

    Флаг «Архивный» 0 – заархивирован; 1 – требуется архивация

    Флаг ASCII/двоичный0 – ASCII ; 1- двоичный

    Флаг произвольного доступа 0 – только последовательный доступ; 1 – произвольный доступ

    Флаг «временный» 0 – нормальный, 1- для удаления файла по окончании процесса

    Флаги блокировки 0 – неблокированный; отличный от нуля для блокированного

    Длина записи Количество байтов в записи

    Время создания Дата и время создания файла

    Время последнего

    доступа Дата и время последнего изменения файла

    Текущий размер Количество байтов в файле

    Максимальный размер Кол-во байтов до которого можно увеличивать размер файла

    Операции с файлами

    Для работы с файлами могут использоваться в ос следующие системные функции:

      Create (Создание). Файл создается без данных. Этот системный вызов объявляет о появлении нового файла и позволяет установить некоторые его атрибуты.

      Delete (Удаление). Удаление файла.

      Open (Открытие) – перед работой с файлом, необходимо его открыть. Данный системный вызов позволяет системе прочитать в оперативную память атрибуты файла и список дисковых адресов для быстрого доступа к содержимому файла при последующих вызовах.

      Close (закрытие).

      Read (чтение). Чтение данных из файла.

      Write (запись). Если текущая позиция находится в конце файла, размер файла автоматически увеличивается. В противном случае запись производится поверх существующих данных, которые теряются навсегда

      Append (добавление). Усеченная форма Write. Может добавлять данные только в конец файла.

      Seek (поиск). Для файлов произвольного доступа. Устанавливает файловый указатель в определенную позицию в файле. После выполенения этого системного вызова данные могут читаться или записываться в этой позиции.

      Get attributes (получение атрибутов).

      Set attributes (Установка атрибутов)

      Rename (переименование) – изменение имени файла.

    Типы файловых систем (форма каталога):

      Одноуровневая ФС. Наличие корневого каталога.

      Двухуровневая система каталогов. Наличие корневого каталога - каталоги пользователей.

      Иерархическая (многоуровневая) каталоговая система – множество каталогов и подкаталогов.

    Системные вызовы для работы с каталогами:

      Create – создание каталога.

      Delete – удаление каталога.

      Opendir – открытие каталога.

      Closedir – закрытие каталога.

      Readdir – чтение следующего элемента открытого каталога.

      Rename – переименование каталога.

      Link – Установление связей.

    Структура файловой системы (разработчик)

    Файловые системы хранятся на дисках. Большинство дисков могут делиться на несколько разделов с независимой ФС на каждом разделе.

    Сектор 0 диска называется главной загрузочной записью (MBR , Master Boot Record ) и используется для загрузки компьютера.

    В конце главной загрузочной записи содержится таблица разделов. В этой таблице хранятся начальные и конечные адреса (номера блоков) каждого раздела. Один из разделов помечен в таблице как активный.

    При загрузке компьютера BIOS считывает и исполняет MBR – запись, после чего загрузчик в MBR-записи определяет активный раздел диска, считывает его первый блок, называемый загрузочным, и исполняет его.

    Программа, находящаяся в загрузочном блоке, загружает ОС, находящуюся в этом разделе.

    Каждый дисковый раздел начинается с загрузочного блока, даже если в нем не содержится загружаемой ОС.

    Часто ФС содержат некоторые из элементов, показанных на рис. 6.8. Один из таких элементов, называемый суперблоком , содержит ключевые параметры ФС и считывается в память при загрузке компьютера или при первом обращении к ФС. Типичная информация, хранящаяся в суперблоке, включает магическое число, позволяющее различать системные файлы, количество блоков в ФС, а также ключевую административную информацию.

    Следом располагается информация о свободных блоках файловой системы, например в виде битового массива или списка указателей . За этими данными может следовать информация об i -узлах , представляющих собой массив структур данных, по одной структуре на файл, содержащих всю информацию о файлах.

    Следом может размещаться корневой каталог , содержащий вершину дерева ФС. Остальное место дискового раздела занимают все остальные файлы и каталоги.

    Структура ФС MS - DOS

    Жесткие диски предназначены для постоянного хранения информации.

    Диск имеет равномерное покрытие, в котором запоминаются данные. DOS располагает данные последовательностями по 512 байт , которые называются секторами , но в принципе операционная система может организовывать данные на диске как угодно.