Методическое пособие по выполнению практического занятия №3 "Программный интерфейс и файловая система ОС WINDOWS" по дисциплине "Операционные системы" для специальности 230115 Программирование в компьютерных системах
методическая разработка по теме
Методическое пособие создано для реализации основной профессиональной образовательной программы в соответствии с ФГОС по специальности СПО 230115 Программирование в компьютерных системах (базовой подготовки) и в соответствии с Рабочей программой дисциплины "Операционные системы".
Целью данной работы является ознакомление с назначением и функциями программного интерфейса Windows API, ознакомление с файловыми системами операционных систем Windows, составление сравнительной таблицы файловых систем для операционных систем Windows.
Скачать:
Вложение | Размер |
---|---|
![]() | 87.17 КБ |
![](https://nsportal.ru/sites/default/files/2015/03/13/prakt_rab_2-14.jpg)
Предварительный просмотр:
ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ
Государственное бюджетное профессиональное образовательное учреждение
Города Москвы
«Политехнический колледж им. Н.Н. Годовикова»
УТВЕРЖДАЮ Заместитель директора По учебно-методической работе _____________________И.В. Бойцова «_____»________________2014 г. |
Дисциплина: ОПЕРАЦИОННЫЕ СИСТЕМЫ
Методическое пособие по выполнению
ПРАКТИЧЕСКОГО ЗАНЯТИЯ № 3
Программный интерфейс и файловая система
ОС WINDOWS
(для специальности 230115 Программирование в компьютерных системах)
Автор: Г.Ш. Шакирова | Рассмотрено на заседании Цикловой комиссии 230113 Компьютерные системы и комплексы Протокол №____ от «_____»_____2014 г. Председатель цикловой комиссии _________________Л.Ф. Сивцева |
Москва 2014 г.
Практическое занятие № 3
Программный интерфейс и файловая система ОС Windows
Цель работы: ознакомиться с назначением и функциями программного интерфейса Windows API, ознакомиться с файловыми системами операционных систем Windows.
Задание: составить конспект «Программный интерфейс», составить сравнительную таблицу файловых систем для операционных систем Windows.
- Теоретические сведения
Программный интерфейс операционных систем Windows
Программный интерфейс - система унифицированных связей, предназначенных для обмена информацией между компонентами одной или нескольких вычислительных систем. Программный интерфейс задает набор необходимых процедур, их параметров и способов обращения.
Для программиста – разработчика программных средств программный интерфейс понимается, прежде всего, как API (англ. Application Programming Interface - интерфейс программирования приложений; по-русски чаще произносят [апи́]) — набор методов (функций), который программист может использовать для доступа к функциональности программного компонента (программы, модуля, библиотеки). API является важной абстракцией, описывающей функциональность «в чистом виде», безотносительно того, как реализована эта функциональность.
Прикладные программы – антивирусы, офисные приложения или игры – не могут напрямую обращаться к процессору или осуществлять вывод результатов на экран монитора. Если бы в код программы нужно было добавлять модули для выполнения всех таких стандартных операций, разработка программного обеспечения превратилась бы в довольно трудную задачу, а размер каждой программы был невообразимо большим. Поэтому на практике каждое приложение использует готовые функции операционной системы, которые и позволяют отображать картинку на экране или, например, выполнять распечатку текста.
Вызов этих функций происходит через специальные программные интерфейсы (API), которые связывают прикладные программы с операционной системой и устройствами компьютера. Если программе требуется записать файл на диск, она обращается к функции сохранения данных Windows. Приложение дает указание операционной системе: «Сохрани файл AБВГД на жесткий диск!», а Windows принимает эту команду и проделывает всю необходимую для записи файла работу: находит на жестком диске свободную область, резервирует это место под будущий файл и затем записывает туда информацию. Кроме того, система информирует программу о результате операции: прошло ли создание файла успешно или же возникли какие-либо проблемы. Таким образом, операционная система выступает «посредником» между программой и устройствами компьютера. В Windows функции посредника выполняет Win32 или 32-разрядный API. Для современных версий Windows самым известным графическим программным интерфейсом является DirectX – он служит для поддержки различных графических режимов.
Программы, разработанные для Windows, в большинстве случаев не будут работать под управлением других операционных систем, например, Linux или Mac OS. При этом верно и обратное, то есть программа для Mac OS не будет работать под управлением Windows. Основная причина этого кроется в том, что в системах используются уникальные API, на работу с которыми рассчитаны прикладные программы.
Для программиста – системного интегратора программный интерфейс это, прежде всего способ (правила, протокол, стандарт, язык) обмена данными между различными программами и/или информационными системами. Различные программные средства разрабатываются с помощью различных языков программирования и используют различные системы управления базами данных. В этой ситуации единственным способом организации обмена данными является их внешнее представление (экспорт) в каком-либо общепринятом формате и, соответственно, наличие средств понимания (импорта) внешних данных.
API – интерфейс прикладного программирования (иногда интерфейс программирования приложений). Другими словами, это те возможности (функции, переменные, константы, классы), которые предоставляет приложение для использования прикладными программами.
API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.
Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать, при этом ящик будет производить какие-то определенные действия понятные и необходимые пользователю, но пользователь, при этом, не имеет даже представления о их реализации.
Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию – высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.
API операционных систем
Практически все операционные системы (Unix, Windows, Mac OS, и т. д.) имеют API, с помощью которого программисты могут создавать приложения для этой операционной системы. Главный API операционных систем – это множество системных вызовов.
В индустрии программного обеспечения общие стандартные API для стандартной функциональности имеют важную роль, так как они гарантируют, что все программы, использующие общий API, будут работать одинаково хорошо или, по крайней мере, типичным привычным образом. В случае API графических интерфейсов это означает, что программы будут иметь похожий пользовательский интерфейс, что облегчает процесс освоения новых программных продуктов.
Widows API
Windows API – общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows (от Windows 3.11 до Windows 98) и Windows NT корпорации «Microsoft». Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Microsoft» выпускает SDK, который называется Platform SDK и содержит документацию, набор библиотек, утилит и других инструментальных средств.
Windows API был изначально спроектирован для использования в программах, написанных на языке C (или C++). Работа через Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model.
Win32 – 32х разрядный API для современных версий Windows. Самая популярная ныне версия. Базовые функции этого API реализованы в DLL kernel32.dll и advapi32.dll; базовые модули GUI — в user32.dll и gdi32.dll. Win32 появился вместе с Windows NT и затем был перенесён (в несколько ограниченном виде) в системы серии Windows 9x. В современных версиях Windows, происходящих от Windows NT, работу Win32 GUI обеспечивают два модуля: csrss.exe (Client/Server Runtime Subsystem), работающий в пользовательском режиме, и win32k.sys в режиме ядра. Работу же системных Win32 API обеспечивает ядро — ntoskrnl.exe
Win64 — 64-разрядная версия Win32, содержащая дополнительные функции для использования на 64-разрядных компьютерах. Win64 API можно найти только в 64-разрядных версиях Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows Server 2008 R2 и Windows 7.
Структура API-программ
Центральным понятием программирования в среде Windows является сообщение. Система посылает сообщение приложению, а то, в свою очередь, должно правильно отреагировать на него. Получателями сообщений являются функции окон приложения, на программирование которых и уходит большая часть времени при разработке API-приложений.
Классическая структура API-программы определяется четырьмя компонентами: инициализация; цикл ожидания, или цикл обработки сообщений; функция главного окна; другие функции. В простейшем случае последний компонент может отсутствовать. Два первых компонента располагаются в функции WinMain, остальные реализуются отдельными функциями.
Windows API спроектирован для использования в языке Си для написания прикладных программ, предназначенных для работы под управлением операционной системы MS Windows. Работа через Windows API — это наиболее близкий к операционной системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model.
Windows API представляет собой множество функций, структур данных и числовых констант, следующих соглашениям языка Си. Все языки программирования, способные вызывать такие функции и оперировать такими типами данных в программах, исполняемых в среде Windows, могут пользоваться этим API. В частности, это языки C++, Pascal, Visual Basic и многие другие.
Для облегчения программирования под Windows, в компании Microsoft и сторонними разработчиками было предпринято множество попыток создать библиотеки и среды программирования, частично или полностью скрывающие от программиста особенности Windows API, и предоставляющие ту или иную часть его возможностей в более удобном виде. В частности, сама Microsoft в разное время предлагала библиотеки Active Template Library (ATL)/Windows Template Library (WTL), Microsoft Foundation Classes (MFC), .Net/WinForms/WPF. Компания Borland (ныне Embarcadero, её преемник в части средств разработки) предлагала OWL и VCL. Есть кросс-платформенные библиотеки, такие как Qt, Tk и многие другие. Весомая часть этих библиотек сконцентрирована на облегчении программирования графического интерфейса пользователя.
Для облегчения переноса на другие платформы программ, написанных с опорой на Windows API, сделана библиотека Wine.
Файловые системы операционных систем Windows
Одной из важнейших характеристик операционной системы помимо управления памятью, ресурсами компьютера и задачами является поддержка файловой системы — основного хранилища системной и пользовательской информации. Каждая файловая система имеет свои достоинства и недостатки, которые мы обсудим ниже.
В различных операционных системах фирмы Microsoft поддерживаются различные файловые системы (табл. 1).
Таблица 1
Операционная система | Файловая система |
Microsoft Windows 2000 | NTFS, FAT16, FAT32 |
Microsoft Windows NT | NTFS, FAT16 |
Microsoft Windows 98 | FAT16, FAT32 |
Microsoft Windows 95 OSR2 | FAT16, FAT32 |
Microsoft Windows 95 | FAT16 |
Microsoft MS-DOS | FAT16 |
Как видно из данной таблицы, наиболее популярной и широко используемой файловой системой является FAT.
Файловые системы FAT
FAT16
Файловая система FAT16 начала свое существование еще во времена, предшествовавшие MS-DOS, и поддерживается всеми операционными системами Microsoft для обеспечения совместимости. Ее название File Allocation Table (таблица расположения файлов) отлично отражает физическую организацию файловой системы, к основным характеристикам которой можно отнести то, что максимальный размер поддерживаемого тома (жесткого диска или раздела на жестком диске) не превышает 4095 Мбайт. Во времена MS-DOS 4-гигабайтные жесткие диски казались несбыточной мечтой (роскошью были диски объемом 20-40 Мбайт), поэтому такой запас был вполне оправданным.
Том, отформатированный для использования FAT16, разделяется на кластеры. Размер кластера по умолчанию зависит от размера тома и может колебаться от 512 байт до 64 Кбайт. В табл. 2 показано, как размер кластера зависит от размера тома. Отметим, что размер кластера может отличаться от значения по умолчанию, но должен иметь одно из значений, указанных в табл. 2.
Размер тома (Мбайт) | Число секторов в кластере | Размер кластера (Кбайт) |
0-32 | 1 | 0,5 (512 байт) |
33-64 | 2 | 1 |
65-128 | 4 | 2 |
129-255 | 8 | 4 |
256-511 | 16 | 8 |
512-1023 | 32 | 16 |
1024-2047 | 64 | 32 |
2048-4095 | 128 | 64 |
Не рекомендуется задействовать файловую систему FAT16 на томах больше 511 Мбайт, так как для относительно небольших по объему файлов дисковое пространство будет использоваться крайне неэффективно (файл размером в 1 байт будет занимать 64 Кбайт). Независимо от размера кластера файловая система FAT16 не поддерживается для томов больше 4 Гбайт.
На рис. 1 показано, как организован том при использовании файловой системы FAT16.
Рис. 1. Организация томов FAT 16
В файловой системе FAT16 кластеры могут иметь различное значение. Например, это может быть свободный (неиспользуемый) кластер, кластер, занятый файлом, дефектный кластер или последний кластер файла.
Единственным различием между корневым и другими каталогами является то, что первый располагается в определенном месте и имеет фиксированное число вхождений. Каждый каталог и файл используют одно или более вхождений. Например, если число фиксированных вхождений для корневого каталога равно 512 и создано 100 подкаталогов, в корневом каталоге можно создать не более 412 файлов (512 – 100).
Для каждого файла и каталога в файловой системе хранится информация (в табл. 3 приведены данные для коротких имен файлов).
Таблица 3
Информация | Размер |
Имя файла или каталога (xxxxxxxx.yyy) | 88 бит |
Байт атрибутов | 8 бит |
Резервный байт | 8 бит |
Время создания | 24 бит |
Дата создания | 16 бит |
Дата последнего доступа | 16 бит |
Два резервных байта | 16 бит |
Время последней модификации | 16 бит |
Дата последней модификации | 16 бит |
Номер начального кластера в FAT | 16 бит |
Размер файла | 32 бит |
Итого | 32 байт |
В структуре каталогов файлу отводится первый незанятый кластер, доступный на томе. Номер начального кластера позволяет определить местонахождение файла: каждый кластер содержит указатель на следующий кластер или значение FFFF, указывающее на то, что это последний кластер в цепочке кластеров, занимаемых файлом. Расположение файлов по кластерам показано на рис. 2.
Рис. 2. Расположение файлов по кластерам
Как видно из рис. 2, в папке расположены три файла. Первый из них — FILE1.EXT занимает три кластера (файл не фрагментирован, кластеры 2, 3 и 4 расположены последовательно), второй файл — FILE2.EXT фрагментирован и располагается в кластерах 5, 6 и 8, а третий — FILE2.EXT занимает всего один кластер. Вхождение для каждого файла содержит адрес его начального кластера (2, 5 и 7 соответственно). Последний кластер каждого файла (4, 8 и 7) в качестве адреса следующего кластера содержит значение FFFF, указывающее на то, что это последний кластер для данного файла.
Так как все вхождения имеют одинаковый размер информационного блока, они различаются по байту атрибутов. Один из битов в данном байте может указывать, что это каталог, другой — что это метка тома. Для пользователей доступны четыре бита, позволяющих управлять атрибутами файла — архивный (archive), системный (system), скрытый (hidden) и доступный только для чтения (read-only) .
FAT32
Начиная с Microsoft Windows 95 OEM Service Release 2 (OSR2) в Windows появилась поддержка 32-битной FAT. Для систем на базе Windows NT эта файловая система впервые стала поддерживаться в Microsoft Windows 2000. Если FAT16 может поддерживать тома объемом до 4 Гбайт, то FAT32 способна обслуживать тома объемом до 2 Тбайт. Размер кластера в FAT32 может изменяться от 1 (512 байт) до 64 секторов (32 Кбайт). Для хранения значений кластеров FAT32 требуется 4 байт (32 бит, а не 16, как в FAT16). Это означает, в частности, что некоторые файловые утилиты, рассчитанные на FAT16, не могут работать с FAT32.
Основным отличием FAT32 от FAT16 является то, что изменился размер логического раздела диска. FAT32 поддерживает тома объемом до 127 Гбайт. При этом, если при использовании FAT16 с 2-гигабайтными дисками требовался кластер размером в 32 Кбайт, то в FAT32 кластер размером в 4 Кбайт подходит для дисков объемом от 512 Мбайт до 8 Гбайт (табл. 4).
Таблица 4
Размер раздела (Гбайт) | Размер кластера по умолчанию (Кбайт) |
Менее 8 | 4 |
8 и более, но менее 16 | 8 |
16 и более, но менее 32 | 16 |
32 и более | 32 |
Это соответственно означает более эффективное использование дискового пространства — чем меньше кластер, тем меньше места требуется для хранения файла и, как следствие, диск реже становится фрагментированным.
При применении FAT32 максимальный размер файла может достигать 4 Гбайт минус 2 байта. Если при использовании FAT16 максимальное число вхождений в корневой каталог ограничивалось 512, то FAT32 позволяет увеличить это число до 65 535.
FAT32 накладывает ограничения на минимальный размер тома — он должен быть не менее 65 527 кластеров. При этом размер кластера не может быть таким, чтобы FAT занимала более 16 Мбайт–64 Кбайт / 4 или 4 млн. кластеров.
При использовании длинных имен файлов данные, необходимые для доступа из FAT16 и FAT32, не перекрываются. При создании файла с длинным именем Windows создает соответствующее имя в формате 8.3 и одно или более вхождений в каталог для хранения длинного имени (по 13 символов из длинного имени файла на каждое вхождение). Каждое последующее вхождение хранит соответствующую часть имени файла в формате Unicode. Такие вхождения имеют атрибуты «идентификатор тома», «только чтение», «системный» и «скрытый» — набор, который игнорируется MS-DOS; в этой операционной системе доступ к файлу осуществляется по его «псевдониму» в формате 8.3.
Файловая система NTFS
В состав Microsoft Windows 2000 входит поддержка новой версии файловой системы NTFS, которая, в частности, обеспечивает работу с сервисами каталогов Active Directory, точки пересчета (reparse points), средства защиты информации, контроль за доступом и ряд других возможностей.
Как и при использовании FAT, основной информационной единицей в NTFS является кластер. В табл. 5 показаны размеры кластеров по умолчанию для томов различной емкости.
Таблица 5
Размер тома (Мбайт) | Число секторов в кластере | Размер кластера (Кбайт) |
512 и менее | 1 | 0,5 (512 байт) |
513-1024 (1 Гбайт) | 2 | 1024 |
1025-2048 (2 Гбайт) | 4 | 2048 |
Более 2049 | 8 | 4096 |
При формировании файловой системы NTFS программа форматирования создает файл Master File Table (MTF) и другие области для хранения метаданных. Метаданные используются NTFS для реализации файловой структуры. Первые 16 записей в MFT зарезервированы самой NTFS. Местоположение файлов метаданных $Mft и $MftMirr записано в загрузочном секторе диска. Если первая запись в MFT повреждена, NTFS считывает вторую запись для нахождения копии первой. Полная копия загрузочного сектора располагается в конце тома. В табл. 6 перечислены основные метаданные, хранимые в MFT.
Таблица 6
Системный файл | Имя файла | Запись MFT | Назначение |
Master file table | $Mft | 0 | Содержит одну базовую файловую запись для каждого файла или каталога на томе NTFS. Если эта информация занимает более одной записи, создаются дополнительные записи |
Master file table 2 | $MftMirr | 1 | Копия первых четырех записей MFT. Гарантирует доступ к MFT в случае, если первый сектор поврежден |
Log file | $LogFile | 2 | Содержит список действий, необходимых для восстановления NTFS. Размер зависит от размера тома. Используется Windows 2000 для восстановления файловой системы в случае системных сбоев |
Volume | $Volume | 3 | Содержит информацию о томе — метку и номер версии |
Attribute definitions | $AttrDef | 4 | Таблица имен атрибутов и описания |
Root file name index | $ | 5 | Корневой каталог |
Cluster bitmap | $Bitmap | 6 | Информация о том, какие кластеры заняты |
Boot sector | $Boot | 7 | Содержит код загрузки для загрузочных томов |
Bad cluster file | $BadClus | 8 | Информация о дефектных секторах |
Security file | $Secure | 9 | Содержит уникальные дескрипторы для всех файлов |
Upcase table | $Upcase | 10 | Используется для преобразования символов нижнего регистра в соответствующие Unicode-символы верхнего регистра |
NTFS extension file | $Extend | 11 | Используется различными службами операционной системы — службой квот, службой пересчета и идентификаторами объектов |
|
| 12-15 | Зарезервировано для будущих версий |
Остальные записи MFT содержат записи для каждого файла и каталога, расположенных на данном томе.
Обычно один файл использует одну запись в MFT, но если у файла большой набор атрибутов или он становится слишком фрагментированным, то для хранения информации о нем могут потребоваться дополнительные записи. В этом случае первая запись о файле, называемая базовой записью, хранит местоположение других записей. Данные о файлах и каталогах небольшого размера (до 1500 байт) полностью содержатся в первой записи.
Атрибуты файлов в NTFS
Каждый занятый сектор на NTFS-томе принадлежит тому или иному файлу. Даже метаданные файловой системы являются частью файла. NTFS рассматривает каждый файл (или каталог) как набор файловых атрибутов. Такие элементы, как имя файла, информация о его защите и даже данные в нем, являются атрибутами файла. Каждый атрибут идентифицируется кодом определенного типа и, опционально, именем атрибута.
Если атрибуты файла вмещаются в файловую запись, они называются резидентными атрибутами. Такими атрибутами всегда являются имя файла и дата его создания. В тех случаях, когда информация о файле слишком велика, чтобы вместиться в одну MFT-запись, некоторые атрибуты файла становятся нерезидентными. Резидентные атрибуты хранятся в одном или более кластерах и представляют собой поток альтернативных данных для текущего тома (об этом — чуть ниже). Для описания местонахождения резидентных и нерезидентных атрибутов NTFS создает атрибут Attribute List.
В табл. 7 показаны основные атрибуты файлов, определенные в NTFS. В будущем этот список может быть расширен.
Таблица 7
Атрибут | Описание |
Standard Information | Содержит такую стандартную информацию, как дата создания и число ссылок |
Attribute List | Список местонахождения всех атрибутов, размещенных вне записи MFT |
File Name | Повторяющийся атрибут для длинных и коротких имен файлов. Длинное имя файла состоит из 13-255 символов Unicode, короткое представлено в формате 8.3. Возможно использование дополнительных имен, например, в формате POSIX |
Security Descriptor | Информация о том, кто является владельцем файла и кто имеет доступ к файлу |
Data | Данные, содержащиеся в файле. NTFS позволяет использовать более одного атрибута этого типа для каждого файла. Каждый файл обычно имеет один неименованный атрибут типа Data. Помимо этого файл может иметь дополнительные именованные атрибуты данного типа, каждый из которых использует собственный синтаксис |
Object ID | Уникальный в рамках тома идентификатор файла. Используется сервисом слежения за ссылками |
Logged Tool Stream | Схож с потоковыми операциями, но в данном случае изменения заносятся в протокол. Используется Encrypting File System (EFS) — файловой системой с шифрованием, поддерживаемой в Windows 2000 |
Reparse Point | Используется при монтировании томов, драйверами-фильтрами и в ряде других случаев |
Index Root | Используется для реализации каталогов и других индексов |
Index Allocation | Используется для реализации каталогов и других индексов |
Bitmap | Используется для реализации каталогов и других индексов |
Volume Information | Используется только в системном файле $Volume. Содержит версию тома |
Volume Name | Используется только в системном файле $Volume. Содержит метку тома |
Файловая система CDFS
В ОС Windows 95 и старше обеспечивается поддержка файловой системы CDFS, отвечающей стандарту ISO’9660, описывающему расположение информации на CD-ROM. Поддерживаются длинные имена файлов в соответствии с ISO’9660 Level 2.
При создании CD-ROM для использования под управлением Windows следует иметь в виду следующее:
все имена каталогов и файлов должны содержать менее 32 символов;
все имена каталогов и файлов должны состоять только из символов верхнего регистра;
глубина каталогов не должна превышать 8 уровней от корня;
использование расширений имен файлов не обязательно.
Universal Disk Format
Поддержка файловой системы UDF является одним из новшеств в Windows 2000. Universal Disk Format — это файловая система, отвечающая стандарту ISO’13346 и используемая для обмена данными с накопителями CD-ROM и DVD. В настоящее время поддерживаются только диски версий UDF 1.02 и 1.50.
Сравнение файловых систем
Под управлением Microsoft Windows 2000 возможно использование файловых систем FAT16, FAT32, NTFS или их комбинаций. Выбор операционной системы зависит от следующих критериев:
того, как используется компьютер;
аппаратной платформы;
размера и числа жестких дисков;
безопасности информации.
Файловые системы FAT
Цифры в названии файловых систем — FAT16 и FAT32 — указывают на число бит, необходимых для хранения информации о номерах кластеров, используемых файлом. Так, в FAT16 применяется 16-битная адресация и, соответственно, возможно использование до 216 адресов. В Windows 2000 первые четыре бита таблицы расположения файлов FAT32 необходимы для собственных нужд, поэтому в FAT32 число адресов достигает 228.
В табл. 8 показаны размеры кластеров для файловых систем FAT16 и FAT32.
Таблица 8
Размер диска | Размер кластера FAT16 (Кбайт) | Размер кластера FAT32 (Кбайт) |
260-511 Мбайт | 8 | Не поддерживается |
512-1023 Мбайт | 16 | 4 |
1024-2 Гбайт | 32 | 4 |
2-8 Гбайт | Не поддерживается | 4 |
8-16 Гбайт | Не поддерживается | 8 |
16-32 Гбайт | Не поддерживается | 16 |
Более 32 Гбайт | Не поддерживается | 32 |
Помимо существенных отличий в размере кластера FAT32 также позволяет корневому каталогу расширяться (в FAT16 число вхождений ограничено 512 и может быть даже ниже при использовании длинных имен файлов).
Преимущества FAT16
Среди преимуществ FAT16 можно отметить следующие:
файловая система поддерживается операционными системами MS-DOS, Windows 95, Windows 98, Windows NT, Windows 2000, а также некоторыми операционными системами UNIX;
существует большое число программ, позволяющих исправлять ошибки в этой файловой системе и восстанавливать данные;
при возникновении проблем с загрузкой с жесткого диска система может быть загружена с флоппи-диска;
данная файловая система достаточно эффективна для томов объемом менее 256 Мбайт.
Недостатки FAT16
К основным недостаткам FAT16 относятся:
корневой каталог не может содержать более 512 элементов. Использование длинных имен файлов существенно сокращает число этих элементов;
FAT16 поддерживает не более 65 536 кластеров, а так как некоторые кластеры зарезервированы операционной системой, число доступных кластеров — 65 524. Каждый кластер имеет фиксированный размер для данного логического устройства. При достижении максимального числа кластеров при их максимальном размере (32 Кбайт) максимальный объем поддерживаемого тома ограничивается 4 Гбайт (под управлением Windows 2000). Для поддержания совместимости с MS-DOS, Windows 95 и Windows 98 объем тома под FAT16 не должен превышать 2 Гбайт;
не поддерживается резервная копия загрузочного сектора;
в FAT16 не поддерживается встроенная защита файлов и их сжатие;
на дисках большого объема теряется много места за счет того, что используется максимальный размер кластера. Место под файл выделяется исходя из размера не файла, а кластера.
Преимущества FAT32
Среди преимуществ FAT32 можно отметить следующие:
выделение дискового пространства выполняется более эффективно, особенно для дисков большого объема;
корневой каталог в FAT32 представляет собой обычную цепочку кластеров и может находиться в любом месте диска. Благодаря этому FAT32 не накладывает никаких ограничений на число элементов в корневом каталоге;
за счет использования кластеров меньшего размера (4 Кбайт на дисках объемом до 8 Гбайт) занятое дисковое пространство обычно на 10-15% меньше, чем под FAT16;
FAT32 является более надежной файловой системой. В частности, она поддерживает возможность перемещения корневого каталога и использования резервной копии FAT. Помимо этого загрузочная запись содержит ряд критичных для файловой системы данных.
Недостатки FAT32
Основные недостатки FAT32:
размер тома при использовании FAT32 под Windows 2000 ограничен 32 Гбайт;
тома FAT32 недоступны из других операционных систем — только из Windows 95 OSR2 и Windows 98;
не поддерживается резервная копия загрузочного сектора;
в FAT32 не поддерживается встроенная защита файлов и их сжатие.
Файловая система NTFS
При работе в Windows 2000 и старше Microsoft рекомендуется отформатировать все разделы жесткого диска под NTFS, за исключением тех конфигураций, когда используется несколько операционных систем (кроме Windows 2000 и Windows NT). Применение NTFS вместо FAT позволяет использовать функции, доступные в NTFS. К ним, в частности, относятся:
возможность восстановления. Эта возможность «встроена» в файловую систему. NTFS гарантирует сохранность данных за счет того, что использует протокол и некоторые алгоритмы восстановления информации. В случае системного сбоя NTFS использует протокол и дополнительную информацию для автоматического восстановления целостности файловой системы;
сжатие информации. Для томов NTFS Windows 2000 поддерживает сжатие отдельных файлов. Такие сжатые файлы могут использоваться Windows-приложениями без предварительной распаковки, которая происходит автоматически при чтении из файла. При закрытии и сохранении файл снова упаковывается;
помимо этого можно выделить следующие преимущества NTFS:
- некоторые функции операционной системы требуют наличия NTFS;
- скорость доступа намного выше — NTFS минимизирует число обращений к диску, требуемых для нахождения файла;
- защита файлов и каталогов. Только на томах NTFS возможно задание атрибутов доступа к файлам и папкам;
- при использовании NTFS Windows 2000 поддерживает тома объемом до 2 Тбайт;
- файловая система поддерживает резервную копию загрузочного сектора — она располагается в конце тома;
- NTFS поддерживает систему шифрования Encrypted File System (EFS), обеспечивающую защиту от неавторизованного доступа к содержимому файлов;
- при использовании квот можно ограничить объем дискового пространства, занимаемого пользователями.
Недостатки NTFS
Говоря о недостатках файловой системы NTFS, следует отметить, что:
NTFS-тома недоступны в MS-DOS, Windows 95 и Windows 98. Помимо этого ряд функций, реализованных в NTFS под Windows 2000, недоступен в Windows 4.0 и более ранних версиях;
для томов небольшого объема, содержащих много файлов небольшого размера, возможно снижение производительности по сравнению с FAT.
Файловая система и скорость
Для томов небольшого объема FAT16 или FAT32 обеспечивает более быстрый доступ к файлам по сравнению с NTFS, так как:
FAT обладает более простой структурой;
размер каталогов меньше;
FAT не поддерживает защиту файлов от несанкционированного доступа — системе не нужно проверять права доступа к файлам.
NTFS минимизирует число обращений к диску и время, необходимое для нахождения файла. Кроме того, если размер каталога достаточно мал, чтобы поместиться в одной записи MFT, вся запись считывается за один раз.
Одно вхождение в FAT содержит номер кластера для первого кластера каталога. Для просмотра файла FAT требуется поиск по всей файловой структуре.
Сравнивая скорость операций, выполняемых для каталогов, содержащих короткие и длинные имена файлов, следует учитывать, что скорость операций для FAT зависит от самой операции и размера каталога. Если FAT ищет несуществующий файл, поиск выполняется по всему каталогу — эта операция занимает больше времени, чем поиск по структуре, основанной на B-деревьях, используемой в NTFS. Среднее время, необходимое для поиска файла, в FAT выражается как функция от N/2, в NTFS — как log N, где N — это число файлов.
Ряд следующих факторов влияет на скорость чтения и записи файлов под управлением Windows 2000:
фрагментация файла. Если файл сильно фрагментирован, NTFS обычно требуется меньше обращений к диску, чем FAT для нахождения всех фрагментов;
размер кластера. Для обеих файловых систем размер кластера по умолчанию зависит от объема тома и всегда выражается степенью числа 2. Адреса в FAT16 — 16-битные, в FAT32 — 32-битные, в NTFS — 64-битные;
размер кластера по умолчанию в FAT базируется на том факте, что таблица расположения файлов может иметь не более 65 535 вхождений — размер кластера представляет собой функцию от объема тома, деленного на 65 535. Таким образом, размер кластера по умолчанию для тома FAT всегда больше, чем размер кластера для тома NTFS того же объема. Отметим, что больший размер кластера для томов FAT означает, что тома FAT могут быть менее фрагментированными;
расположение файлов небольшого размера. При использовании NTFS файлы небольшого размера содержатся в MFT-записи. Размер файла, помещающегося в одну запись MFT, зависит от числа атрибутов этого файла.
Максимальный размер тома
Максимальный размер тома зависит от используемой файловой системы. Windows 2000 позволяет форматировать тома для трех файловых систем: FAT16, FAT32 и NTFS.
Максимальный размер томов FAT
FAT16 поддерживает до 65 535 кластеров на одном томе. Из этого факта вытекают ограничения, показанные в табл. 9.
Таблица 9
Описание | Ограничение |
Максимальный размер файла | 232 — 1 байт |
Максимальный размер тома | 4 Гбайт |
Число файлов в томе | 216 |
Под управлением Windows NT и Windows 2000 размер кластера FAT16 для томов размером от 2 до 4 Гбайт равен 64 Кбайт. Этот размер кластера используется для обеспечения совместимости с некоторыми приложениями (например, с программами установки, которые неверно высчитывают объем свободного пространства). Поэтому рекомендуется использовать FAT32 для томов размером от 2 до 4 Гбайт.
FAT32 работает с томами, на которых есть как минимум 65 527 кластеров, а максимальное число кластеров, поддерживаемых этой файловой системой для одного тома, — 4 177 918. Windows 2000 позволяет создавать тома размером до 32 Гбайт.
В табл. 10 показаны основные ограничения FAT32.
Таблица 10
Описание | Ограничение |
Максимальный размер файла | 232 — 1 байт |
Максимальный размер тома | 32 Гбайт |
Число файлов в томе | Около 4 млн. |
Максимальный размер томов NTFS
Теоретически NTFS поддерживает тома с числом кластеров до 232. Но, тем не менее, помимо отсутствия жестких дисков такого объема существуют и другие ограничения на максимальный размер тома.
Одним из таких ограничений является таблица разделов. Индустриальные стандарты ограничивают размер таблицы разделов 232 секторами. Другим ограничением является размер сектора, который обычно равен 512 байт. Поскольку размер сектора может измениться в будущем, текущий размер дает ограничение на размер одного тома — 2 Тбайт (232 x 512 байт = 241). Таким образом, 2 Тбайт является практическим пределом для физических и логических томов NTFS.
В табл. 11 показаны основные ограничения NTFS.
Таблица 11
Описание | Ограничение |
Максимальный размер файла | 264 — 1 Кбайт |
Максимальный размер тома | 2 Тбайт |
Число файлов в томе | 232 — 1 Кбайт |
Управление доступом к файлам и каталогам
При использовании томов NTFS можно устанавливать права доступа к файлам и каталогам. Эти права доступа указывают, какие пользователи и группы имеют доступ к ним и какой уровень доступа допустим. Такие права доступа распространяются как на пользователей, работающих за компьютером, на котором располагаются файлы, так и на пользователей, обращающихся к файлам через сеть, когда файл располагается в каталоге, открытом для удаленного доступа.
Под NTFS можно также устанавливать разрешения на удаленный доступ, объединяемые с разрешениями на доступ к файлам и каталогам. Помимо этого файловые атрибуты (только чтение, скрытый, системный) также ограничивают доступ к файлу.
Под управлением FAT16 и FAT32 тоже возможно устанавливать атрибуты файлов, но они не обеспечивают права доступа к файлам.
В версии NTFS, используемой в Windows 2000, появился новый тип разрешения на доступ — наследуемые разрешения. Вкладка Security содержит опцию Allow inheritable permissions from parent to propagate to this file object, которая по умолчанию находится в активном состоянии. Данная опция существенно сокращает время, требуемое на изменение прав доступа к файлам и подкаталогам. Например, для изменения прав доступа к дереву, содержащему сотни подкаталогов и файлов, достаточно включить эту опцию — в Windows NT 4 необходимо изменить атрибуты каждого отдельного файла и подкаталога.
Напомним, что для томов FAT можно управлять доступом только на уровне томов и такой контроль возможен только при удаленном доступе.
Сжатие файлов и каталогов
В Windows 2000 поддерживается сжатие файлов и каталогов, расположенных на NTFS-томах. Сжатые файлы доступны для чтения и записи любыми Windows-приложениями. Для этого нет необходимости в их предварительной распаковке. Используемый алгоритм сжатия схож с тем, который используется в DoubleSpace (MS-DOS 6.0) и DriveSpace (MS-DOS 6.22), но имеет одно существенное отличие — под управлением MS-DOS выполняется сжатие целого первичного раздела или логического устройства, тогда как под NTFS можно упаковывать отдельные файлы и каталоги.
Алгоритм сжатия в NTFS разработан с учетом поддержки кластеров размером до 4 Кбайт. Если величина кластера больше 4 Кбайт, функции сжатия NTFS становятся недоступными.
Самовосстановление NTFS
Файловая система NTFS обладает способностью самовосстановления и может поддерживать свою целостность за счет использования протокола выполняемых действий и ряда других механизмов.
NTFS рассматривает каждую операцию, модифицирующую системные файлы на NTFS-томах, как транзакцию и сохраняет информацию о такой транзакции в протоколе. Начатая транзакция может быть либо полностью завершена (commit), либо откатывается (rollback). В последнем случае NTFS-том возвращается в состояние, предшествующее началу транзакции. Для того чтобы управлять транзакциями, NTFS записывает все операции, входящие в транзакцию, в файл протокола, перед тем как осуществить запись на диск. После того как транзакция завершена, все операции выполняются. Таким образом, под управлением NTFS не может быть незавершенных операций. В случае дисковых сбоев незавершенные операции просто отменяются.
Под управлением NTFS также выполняются операции, позволяющие «на лету» определять дефектные кластеры и отводить новые кластеры для файловых операций. Этот механизм называется cluster remapping.
Файловая система ReFS
ReFS (Resilient file system, предварительное название Protogon) — локальная файловая система, используемая в Windows Server 2012, Windows Server 2012 R2, Windows 8, Windows 8.1. Является дальнейшим развитием NTFS. Protogon поддерживает точки повторной обработки (reparse points) — технологию, которая ранее содержалась только в файловой системе NTFS. Через точки повторной обработки реализована поддержка символьных ссылок и точек монтирования в Windows, так что Protogon также поддерживает их. Protogon не поддерживается Windows 7 и более ранними системами.
Основные особенности
Улучшенная надёжность хранения информации на диске структур. ReFS использует B+ деревья (принцип, сходный с хранением данных в реляционных СУБД) как для метаданных, так и для содержимого файлов. Размеры файлов, томов, количество файлов в каталоге ограничены лишь 64-битным числом, что соответствует размеру файла в 16 эксбибайт, размеру тома в 1 йобибайт (при использовании кластеров данных размером 64 КиБ). Свободное место на диске описывается 3 отдельными иерархическими таблицами для малых, средних и больших фрагментов свободного пространства. Имена файлов и длина пути ограничена 32 кибибайтами, для их хранения используется Unicode.
Согласно предложению МЭК, назвать 260 байт "эксабайт" общепринято, но формально неверно, как приставка экса-, означает умножение на 1018, а не 260. Правильной для 260 является двоичная приставка эксби-. Таким образом, 1 ЭБ = 1018 Б, а 1 ЭиБ = 260 Б.
Таблица 12
ГОСТ 8.417-2002 | ||||||||
Название | Символ | Степень | Название | Степень | Название | Символ | Степень | |
Б | 100 | - | B | Б | 20 | |||
кБ | 103 | кило- | KiB | КиБ | 210 | |||
МБ | 106 | мега- | MiB | МиБ | 220 | |||
ГБ | 109 | гига- | GiB | ГиБ | 230 | |||
ТБ | 1012 | тера- | TiB | ТиБ | 240 | |||
ПБ | 1015 | пета- | PiB | ПиБ | 250 | |||
эксабайт | ЭБ | 1018 | экса- | EiB | ЭиБ | 260 | ||
ЗБ | 1021 | зетта- | ZiB | ЗиБ | 270 | |||
ЙБ | 1024 | йотта- | YiB | ЙиБ | 280 |
Поддержка стратегии Copy-on-write (копирование при записи, выделение при записи) для метаданных, при которой любые транзакции файловой системы не перезаписывают старые метаданные, а записываются в новый блок и организуются в пачки. Для всех метаданных в ReFS используются 64-битные контрольные суммы, хранящиеся независимо. Данные файлов могут иметь контрольную сумму в отдельном потоке (атрибут «integrity»). В случае, если содержимое файлов или метаданных не соответствует контрольным суммам, не требуется отключение файловой системы для удаления или восстановления таких данных. За счет встроенных проверок ReFS не требует регулярного использования утилит проверки диска типа CHKDSK.
Совместимость со старыми API, поддержка многих особенностей NTFS, например, шифрование BitLocker, Access Control Lists, USN Journal, уведомления об изменениях, символьные ссылки, junction point, точки монтирования, reparse point, снапшоты томов, идентификаторы файлов, NTFS oplock. ReFS интегрируется с технологией виртуализации носителей данных Storage Spaces, которая позволяет применять зеркалирование и объединять несколько физических носителей, как в рамках одного ПК, так и через сеть. При использовании зеркалирования ReFS может обнаруживать и исправлять сбойные копии файлов в процессе data scrubbing, при котором проводится фоновая сверка контрольных сумм.
Многие возможности NTFS не поддерживаются в ReFS, включая именованные потоки файлов (после проверки на Windows 10 TP ADS работает с ReFS. Для поддержки ReFS нужно вносить изменения в реестр), NTFS Distributed Link Tracking (DLT), короткие имена файлов (формат 8.3), сжатие файлов, шифрование на уровне файлов Encrypting File System, Transactional NTFS, жёсткие ссылки, extended attributes, и дисковые квоты. Разреженные файлы (Sparse files) поддерживаются в RTM.
- Порядок выполнения работы
- Изучить главные особенности программного интерфейса ОС Windows.
- Изучить структуру API-программ.
- Ознакомиться с назначением и основными особенностями файловых систем ОС Windows.
- Составить сравнительную таблицу файловых систем ОС Windows в виде:
Файловая система | Операцион- ная система | Размер тома | Размер кластера (Кб) | Максимальный размер файла | Максимальный размер тома |
- Контрольные вопросы
- Дайте понятие программного интерфейса.
- В чем отличительная особенность программного интерфейса Windows API.
- Какова структура API-программ?
- Что такое файловая система, какую функцию она выполняет в среде операционной системы?
- Расскажите об основных особенностях файловой системы FAT16.
- Расскажите об основных особенностях файловой системы FAT32.
- Расскажите об основных особенностях файловой системы NTFS.
- Расскажите об основных особенностях файловой системы ReFS.
По теме: методические разработки, презентации и конспекты
![](/sites/default/files/pictures/2015/01/16/picture-566170-1421427502.jpg)
Методическая разработка урока по дисциплине «Технические средства информатизации» тема: «Внутреннее устройство системного блока компьютера» для специальности 230115 «Программирование в компьютерных системах»
Методическая разработка урока по дисциплине «Технические средства информатизации» предназначена для проведения урока «Внутреннее устройство системного блока компьютера». В данной разработке раскрывают...
![](/sites/default/files/pictures/2015/03/11/picture-599857-1426066064.jpg)
Методическое пособие по выполнению практического занятия №1 "Изучение структуры операционной системы" по дисциплине "Операционные системы и среды" для специальности 230113 Компьютерные системы и комплексы
Методическое пособие создано для реализации основной профессиональной образовательной программы в соответствии с ФГОС по специальности СПО 230113 Компьютерные системы и комплексы (базовой подгото...
![](/sites/default/files/pictures/2015/03/11/picture-599857-1426066064.jpg)
Методическое пособие по выполнению практического занятия №4-5 Работа с каталогами в операционных системах. Работа с файлами в операционных системах" по дисциплине "Операционные системы и среды" для специальности 230113 Компьютерные системы и комплексы
Методическое пособие создано для реализации основной профессиональной образовательной программы в соответствии с ФГОС по специальности СПО 230113 Компьютерные системы и комплексы (базовой подгото...
![](/sites/default/files/pictures/2015/03/11/picture-599857-1426066064.jpg)
Методическое пособие по выполнению практического занятия №1 "Исследование порядка запускакомпьютера. Работа программы POST" по дисциплине "Операционные системы" для специальности 230115 Программирование в компьютерных системах
Методическое пособие создано для реализации основной профессиональной образовательной программы в соответствии с ФГОС по специальности СПО 230115 Программирование в компьютерных системах (базовой...
![](/sites/default/files/pictures/2015/03/11/picture-599857-1426066064.jpg)
Методическое пособие по выполнению практического занятия №2 "Работа с основными командами в операционной системе (на примере MS-DOS)" по дисциплине "Операционные системы" для специальности 230115 Программирование в компьютерных системах
Методическое пособие создано для реализации основной профессиональной образовательной программы в соответствии с ФГОС по специальности СПО 230113 Компьютерные системы и комплексы (базовой подгото...
![](/sites/default/files/pictures/2015/03/11/picture-599857-1426066064.jpg)
Методическое пособие по выполнению практического занятия №4 "Процесс загрузки операционной системы. Настройка компьютерной системы средствами программы SETUP" по дисциплине "Операционные системы" для специальности 230115
Методическое пособие создано для реализации основной профессиональной образовательной программы в соответствии с ФГОС по специальности СПО 230113 Компьютерные системы и комплексы (базовой подгото...