Open Library - отворена библиотека с образователна информация. Класификация, структура, характеристики на файловите системи

Файловата система обикновено се намира на дискове или други устройства външна памет, имащи блокова структура. В допълнение към блоковете, съхраняващи директории и файлове, във външната памет се поддържат още няколко области на обслужване.

В света на UNIX има няколко различни видове файлови системисъс собствена външна структура на паметта. Най-известните са традиционните файлове UNIX система System V (s5) и файлова система UNIX семейство BSD(ufs). Файловата система s5 се състои от четири секции (Фигура 2.2,a). Във файловата система ufs на логически диск (дял истински диск) има последователност от секции на файловата система (Фигура 2.2,b).

Ориз. 2.2. Структура на външна памет на s5 и ufs файлови системи

Нека опишем накратко същността и предназначението на всяка дискова област.

  • Блокът за зареждане съдържа програма за насърчаване, която се използва за първоначално стартиране на UNIX OS. Във файловите системи s5 всъщност се използва само блокът за стартиране на основната файлова система. В допълнителни файлови системи тази област присъства, но не се използва.
  • Суперблокът е най-критичната област на файловата система, съдържаща информация, необходима за работа с файловата система като цяло. Суперблокът съдържа списък със свободни блокове и безплатни i-възли (информационни възли - информационни възли). Във файловите системи ufs, за да се увеличи стабилността, се поддържат множество копия на суперблока (както може да се види от Фигура 2.2, b, едно копие на група цилиндри). Всяко копие на суперблок е с размер 8196 байта и само едно копие на суперблок се използва при монтиране на файловата система (вижте по-долу). Въпреки това, ако по време на монтажа се установи, че основното копие на суперблока е повредено или не отговаря на критериите за цялост на информацията, то се използва резервно копие.
  • Блок от група цилиндри съдържа броя на i-възлите, посочени в списъка с i-възли за дадена група цилиндри, и броя на блоковете с данни, които са свързани с тези i-възли. Размерът на блока на група цилиндри зависи от размера на файловата система. За да подобри ефективността, файловата система ufs се опитва да постави i-възли и блокове с данни в една и съща група цилиндри.
  • Списъкът с i-възли (ilist) съдържа списък с i-възли, съответстващи на файлове в дадена файлова система. Максималният брой файлове, които могат да бъдат създадени във файловата система, се определя от броя на наличните i-възли. i-възелът съхранява информация, описваща файла: режими на достъп до файла, време на създаване и последна модификация, потребителски идентификатор и групов идентификатор на създателя на файла, описание на блоковата структура на файла и др.
  • Блокове с данни – Тази част от файловата система съхранява действителните файлови данни. В случая на файловата система ufs всички блокове данни от един файл се опитват да бъдат поставени в една група цилиндри. Размерът на блока с данни се определя при форматиране на файловата система с командата mkfs и може да бъде зададен на 512, 1024, 2048, 4096 или 8192 байта.

Структура на файловата система

Структурата на файловата система зависи от операционната система. Един от първите компютри, които използват базирани на файлове FAT система(Таблица за разпределение на файлове), която се използва в операционната система MS DOS.

FAT е проектиран да работи с дискетис размер под 1 MB и първоначално не осигуряваше поддръжка твърди дискове. Впоследствие FAT започна да поддържа файлове и дялове с размер до 2 GB.

FAT използва следните правила за именуване на файлове:
името трябва да започва с буква или цифра и може да съдържа всякакви ASCII знак, с изключение на интервала и знаците "/\ : ; | = , ^ * ?
Името е дълго не повече от 8 знака, последвано от точка и незадължително разширение до 3 знака.
Регистърът на знаците в имената на файловете не се разграничава и не се запазва.

FAT файловата система не може да контролира всеки сектор поотделно, така че групира съседни сектори в клъстери. Това намалява общия брой единици за съхранение, които файловата система трябва да следи. Размерът на клъстера във FAT е степен на две и се определя от размера на тома при форматиране на диска. Клъстерът представлява минималното пространство, което файлът може да заема. Това води до загуба на част от дисковото пространство.

IN операционна системаах, понятията директория и папка се използват като обекти, предназначени за съхраняване на файлове и предоставяне на достъп до тях.

Достъпът е процедура за установяване на комуникация с паметта и намиращия се в нея файл за запис и четене на данни.

При достъп до файл трябва да посочите точното му местоположение. Освен това, ако файлът е достъпен от командна линия, тогава записът изглежда така:

c:\Papka1\papka2\uchebnik.doc

Такъв запис се нарича маршрут или път.

Името на логическото устройство, което се появява преди името на файла в спецификацията, указва логическото устройство, на което да се търси файлът. На същия диск има директория, в която се съхраняват пълните имена на файловете, както и техните характеристики: дата и час на създаване; обем (в байтове); специални атрибути. По аналогия с библиотечна системаорганизация на справочника пълно имефайл, регистриран в директорията, ще служи като шифър, чрез който операционната система намира местоположението на файла на диска.

Указателен каталогфайлове, указващи местоположението им на диска.

В операционната система Концепция на WINDOWSдиректория отговаря на концепцията за папка.

Има две състояния на директорията - текущо (активно) и пасивно.

Текущ (активен) каталог - каталог, в който в този моментвреме, през което потребителят работи.

Пасивна директория - директория, с която в момента няма връзка .

Операционната система приема йерархична структура на директории.Всеки диск винаги има една главна (главна) директория. Намира се на нулевото ниво на йерархичната структура и се обозначава със символа "\" - обратна наклонена черта. Основната директория се създава при форматиране (инициализиране, разделяне) на диска и има ограничен размер. Основната директория може да включва други директории и файлове, които са създадени от команди на операционната система и могат да бъдат изтрити чрез подходящи команди.

Родителска директория - директория с поддиректории .

Поддиректория - директория, която е включена в друга директория .

По този начин всяка директория, съдържаща директории от по-ниско ниво, може да бъде, от една страна, родител на тях, а от друга страна, подчинена на директорията Най-високо ниво.

Структурата на директорията може да съдържа директории, които не съдържат никакви файлове или поддиректории. Такива поддиректории се наричат ​​празни .

Правилата за именуване на поддиректории са същите като правилата за именуване на файлове. За да се разграничат формално от файловете, на поддиректориите обикновено се присвояват само имена, въпреки че може да се добави тип, като се използват същите правила като за файловете.

FAT файловата система винаги се запълва свободно мястона диска последователно от началото до края. Когато създава нов файл или модифицира съществуващ, той търси първия свободен клъстер в таблицата за разпределение на файлове. Ако по време на работа някои файлове са били изтрити, а други са променени по размер, тогава получените празни клъстери ще бъдат разпръснати по диска. Ако клъстерите, съдържащи данните на файла, не са разположени в ред, тогава файлът става фрагментиран. Силно фрагментираните файлове значително намаляват ефективността на работа. Операционните системи, които поддържат FAT, обикновено включват специални помощни програмиДефрагментиране на диска, предназначено да подобри производителността на файловите операции.

Файловата система FAT има значително ограничение в поддържането на големи обеми дисково пространство, ограничението е 2 GB.

Новите поколения твърди дискове с голямо количество дисково пространство изискват по-усъвършенствана файлова система.

Операционната система Windows съдържа файловата система FAT32, която поддържа твърди дисковедо два терабайта.
FAT32 има разширени файлови атрибути за съхраняване на часа и датата на създаване, модификация и последен достъп до файл или директория.
Системата позволява дълги именафайлове и интервали в имената.
Файловата система FAT32 се поддържа от операционни системи Windows XP и Windows Vista.

За тези операционни системи е разработена друга файлова система: NTFS (Нова технология Файлова система)

NTFS значително разшири възможностите за контрол на достъпа до отделни файловеи каталози, въведени голямо числоатрибути, внедрена отказоустойчивост, инструменти за динамично компресиране на файлове. NTFS позволява имена на файлове с дължина до 255 знака

NTFS има способността самовъзстановяванев случай на повреда на операционната система или хардуера, така че обемът на диска да остане наличен и структурата на директорията да не бъде нарушена.

Всеки файл на NTFS том е представен от запис в специален файл - MFT (Master File Table). NTFS запазва първите 16 записа в таблицата с размер около 1 MB за специална информация. Записите осигуряват резервно копие за основния файлова таблица, възстановяване на файлове, наблюдение на състоянието на клъстери, определяне на файлови атрибути.

За да намали фрагментацията, NTFS винаги се опитва да съхранява файлове в съседни блокове. Тя осигурява ефективно търсенефайлове в директорията.



NTFS е проектирана като възстановима файлова система, използваща модел за обработка на транзакции. Всяка I/O операция, която променя файл на NTFS том, се счита за транзакция от системата и може да бъде изпълнена като неделим блок. Когато даден файл е модифициран от потребител, услугата за регистрационни файлове записва цялата информация, необходима за повторение или връщане назад на транзакцията.

Интересна възможностфайловата система е динамично криптиране на файлове и директории, което повишава надеждността на съхранението на информация.

Въпроси за самопроверка.

1.Какво е файлова система?

2. Какво е "файл"?

3. Основни компоненти на файловата структура.

4. Какво е клъстер?

5. Назовете основните параметри, характеризиращи файла.

6.Как се формира името на файла?

7. Правила за именуване на файлове в системата FAT.

8.Защо има нужда от дефрагментиране на диска?

9. Какво е директория?

10. Обяснете понятията „маршрут“, „път“.

11.Защо разширението се използва в имената на файловете?

12. Основното предназначение на файловата система.

13.Какви файлови системи се поддържат от операционните системи Windows XP и Windows Vista?

Файлови системи. Видове файлови системи. Файлови операции. Каталози. Операции с директории.

Файл е наименувана област от външна памет, в която може да се записва и от която може да се чете.

Основни цели на използване на файла.

    Дългосрочно и сигурно съхранениеинформация . Устойчивостта се постига чрез използването на независими от захранването устройства за съхранение, а високата надеждност се определя от защитата на достъпа до файлове и цялостната организация програмен кодОС, в която хардуерните повреди най-често не унищожават информацията, съхранявана във файлове.

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

Файлова система (FS) е част от операционната система, която включва:

    събиране на всички файлове на диска;

    набори от структури от данни, използвани за управление на файлове, като файлови директории, файлови дескриптори, таблици за разпределение на свободно и използвано дисково пространство;

    комплекс от система софтуер, внедряване различни операциинад файлове, като създаване, унищожаване, четене, писане, наименуване и търсене на файлове.

По този начин файловата система играе ролята на междинен слой, който отсява цялата сложност на физическата организация на дългосрочното съхранение на данни и създава по-опростен логически модел за това съхранение за програмите, както и им предоставя набор от лесни за използване команди за манипулиране на файлове.

Следните файлови системи са широко известни:

    файлова система операционна система Г-ЦА - DOS , която се базира на таблица за разпределение на файлове - ДЕБЕЛ ( Файл Разпределяне Таблица ).

Таблицата съдържа информация за местоположението на всички файлове (всеки файл е разделен на клъстериКлъстерите от един и същи файл не са непременно разположени един до друг, в зависимост от наличността на дисково пространство). Файловата система MS-DOS има значителни ограничения и недостатъци, например под ИмеНа файла са разпределени 12 байта; работата с голям твърд диск води до значителна фрагментация на файла;

Основните функции в такъв FS са насочени към решаване на следните задачи:

    именуване на файлове;

    интерфейс за приложно програмиране;

    дисплей логически моделфайлова система за физическата организация на съхранение на данни;

    Устойчивост на файловата система на прекъсване на захранването, хардуерни и софтуерни грешки.

    операционна система /2 , Наречен HPFS ( Високо - производителност Файл Система - бърза файлова система).

Предоставя възможност за име на файл до 254 знака. Файловете, записани на диск, имат минимална фрагментация. Може да работи с файлове, написани на MS DOS;

Към изброените по-горе задачи се добавя нова задачасподеляне на файл от множество процеси. Файлът в този случай е споделен ресурс, което означава, че файловата система трябва да реши целия набор от проблеми, свързани с такива ресурси. По-специално, FS трябва да предоставя средства за блокиране на файл и неговите части, предотвратяване на състезания, премахване на задънени блокировки, съгласуване на копия и т.н.

В многопотребителските системи се появява друга задача: защита на файловете на един потребител от неоторизиран достъп от друг потребител.

    файлова система на операционната система Windows 95

Има структура на ниво, което ви позволява да поддържате няколко файлови системи едновременно. Старата файлова система MS-DOS се поддържа директно, а файловите системи не са разработени от компанията Microsoft, се поддържат с помощта на специални модули. Възможно е да използвате дълги (до 254 знака) имена на файлове.

    файлови системи на операционната система Unix

Те предоставят унифициран начин за достъп до I/O файлови системи.

Разрешенията за файлове практически определят правата за достъп до системата (собственик на файла е потребителят, който го е създал).

Типове файлове

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

Редовни файлове , или просто файлове, съдържат произволна информация, която е въведена в тях от потребителя или която се генерира в резултат на работата на системни и потребителски програми. Повечето съвременни операционни системи (например UNIX, Windows, OS/2) не ограничават или контролират съдържанието и структурата на обикновен файл по никакъв начин. Съдържанието на обикновен файл се определя от приложението, което работи с него. Например, текстов редакторсъздава текстови файлове, състоящи се от низове от знаци, представени в някакъв код. Това могат да бъдат документи, изходни кодове на програми и др. Текстовите файлове могат да се четат на екрана и да се отпечатват на принтер. Двоичните файлове не използват кодове на символи и често имат сложни вътрешни структури, като например изпълним програмен код или архивен файл. Всички операционни системи трябва да могат да разпознават поне един тип файл - техните собствени изпълними файлове.

Каталози - това е специален тип файл, който съдържа system обща информацияза набор от файлове, групирани по потребители според някакъв неформален критерий (например файлове, съдържащи документи на едно и също споразумение, или файлове, които съставляват едно софтуерен пакет). В много операционни системи една директория може да съдържа всякакъв тип файл, включително други директории, създавайки дървовидна структура, която е лесна за търсене. Директориите установяват съпоставяне между имената на файловете и файловите характеристики, които се използват от файловата система за управление на файлове. Такива характеристики включват по-специално информация (или указател към друга структура, съдържаща тези данни) за типа на файла и неговото местоположение на диска, правата за достъп до файла и датите на неговото създаване и промяна. Във всички останали отношения директориите се третират от файловата система като обикновени файлове.

Специални файлове - Това са фиктивни файлове, свързани с I/O устройства, които се използват за уеднаквяване на механизма за достъп до файлове и външни устройства. Специалните файлове позволяват на потребителя да извършва I/O операции, като използва нормални команди за запис във файл или четене от файл. Тези команди се обработват първо от програмите на файловата система, а след това на някакъв етап от изпълнението на заявката се преобразуват от операционната система в команди за управление на съответното устройство.

Съвременните файлови системи поддържат други типове файлове, като символни връзки, наименувани канали и карти с памет файлове.

Йерархична структура на файловата система

Потребителите имат достъп до файлове чрез символични имена. Човешката памет обаче ограничава броя на имената на обекти, които потребителят може да посочи по име. Йерархичната организация на пространството от имена ни позволява значително да разширим тези граници. Ето защо повечето файлови системи имат йерархична структура, в която нивата се създават чрез увеличаване на директорията ниско нивомогат да бъдат включени в директория от по-високо ниво (фиг. 7.3).

Графиката, описваща йерархията на директорията, може да бъде дърво или мрежа. Директориите образуват дърво, ако файлът може да бъде включен само в една директория (фиг. 7.3, b), и мрежа - ако файлът може да бъде включен в няколко директории наведнъж (фиг. 7.3, c). Например в MS-DOS и Windows директориите образуват дървовидна структура, докато в UNIX те образуват мрежова структура. В дървовидна структура всеки файл е лист. Извиква се директорията от най-високо ниво главна директория или корен ( корен ).

С тази организация потребителят е освободен от запомнянето на имената на всички файлове; той трябва само да има груба представа към коя група може да бъде приписан даден файл, за да го намери чрез последователно преглеждане на директории. Йерархичната структура е удобна за работа с много потребители: всеки потребител със своите файлове е локализиран в собствена директория или поддърво от директории, като в същото време всички файлове в системата са логически свързани.

Специален случай на йерархична структура е организация на едно ниво, когато всички файлове са включени в една директория (фиг. 7.3, а).

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

Всички типове файлове имат символични имена. Йерархично организираните файлови системи обикновено използват три типа имена на файлове: прости, съставни и относителни.

Просто или кратко символично име идентифицира файл в една директория. Простите имена се присвояват на файлове от потребители и програмисти и те трябва да вземат предвид ограниченията на ОС както за диапазона от символи, така и за дължината на името. До сравнително скоро тези граници бяха много тесни. Така в популярната файлова система FAT дължината на имената беше ограничена до схема 8.3 (8 знака - самото име, 3 знака - разширението на името), а във файловата система s5, поддържана от много версии на UNIX OS, простото символно име не може да съдържа повече от 14 знака. За потребителя обаче е много по-удобно да работи с дълги имена, защото те ви позволяват да дадете на файловете лесни за запомняне имена, които ясно показват какво се съдържа във файла. Следователно съвременните файлови системи, както и подобрените версии на вече съществуващи файлови системи, са склонни да поддържат дълги, прости символни имена на файлове. Например във файловите системи NTFS и FAT32, включени в операционната система Windows NT, името на файла може да съдържа до 255 знака.

В йерархичните файлови системи е разрешено различните файлове да имат еднакви прости символни имена, при условие че принадлежат към различни директории. Тоест тук работи схемата „много файлове - едно просто име“. За уникално идентифициране на файл в такива системи се използва така нареченото пълно име.

Пълното име е верига от прости символни имена на всички директории, през които минава пътя от корена до дадения файл. По този начин пълното име е съставно, в което прости именаразделени един от друг с разделителя, възприет в ОС. Често като разделител се използва наклонена черта напред или назад и е обичайно да не се посочва името на основната директория. На фиг. 7.3, b два файла имат просто име main.exe, но съставните им имена /depart/main.exe и /user/anna/main.exe са различни.

В дървовидната файлова система има едно към едно съответствие между файл и пълното му име: един файл - едно пълно име. Във файлови системи, които имат мрежова структура, един файл може да бъде включен в няколко директории и следователно да има няколко пълни имена; тук е валидно съответствието “един файл - много пълни имена”. И в двата случая файлът се идентифицира уникално с пълното си име.

Файлът може да бъде идентифициран и чрез относително име. Относителното име на файл се определя чрез понятието "текуща директория". За всеки потребител във всеки даден момент една от директориите на файловата система е текущата директория и тази директория се избира от самия потребител по команда на OS. Файловата система улавя името на текущата директория, така че след това да може да го използва като допълнение към относителните имена, за да формира пълното име на файл. Когато използва относителни имена, потребителят идентифицира файла чрез веригата от имена на директории, през които преминава маршрутът от текущата директория до този файл. Например, ако текущата директория е /user, тогава относителното име на файла /user/anna/main.exe е anna/main.exe.

Някои операционни системи ви позволяват да присвоите няколко прости имена на един и същ файл, които могат да се тълкуват като псевдоними. В този случай, точно както в система с мрежова структура, се установява съответствието „един файл - много пълни имена“, тъй като всяко просто име на файл съответства на поне едно пълно име.

И въпреки че пълното име уникално идентифицира файла, за операционната система е по-лесно да работи с файла, ако има съответствие едно към едно между файловете и техните имена. За тази цел той присвоява уникално име на файла, така че да е валидна връзката „един файл - едно уникално име“. Уникалното име съществува заедно с едно или повече символични имена, присвоени на файла от потребители или приложения. Уникалното име е цифров идентификатор и е предназначено само за операционната система. Пример за това уникално име file е номерът на inode в UNIX система.

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

Понятието „файл“ включва не само данните и името, които съхранява, но и неговите атрибути. Атрибути - Това е информация, описваща свойствата на файла. Примери за възможни файлови атрибути:

    тип файл ( обикновен файл, директория, специален файл и др.);

    собственик на файл;

    създател на файлове;

    парола за достъп до файла;

    информация за разрешените операции за достъп до файлове;

    времена на създаване, последен достъп и последна модификация;

    текущ размер на файла;

    максимален размер на файла;

    знак само за четене;

    знак " скрит файл»;

    знак „системен файл“;

    знак “архивен файл”;

    атрибут "двоичен/знак";

    атрибут „временен“ (премахва се след приключване на процеса);

    блокиращ знак;

    дължина на записа на файла;

    указател към ключовото поле в записа;

    дължина на ключа.

Наборът от файлови атрибути се определя от спецификата на файловата система: различните типове файлови системи могат да използват различни набори от атрибути за характеризиране на файлове. Например, във файлови системи, които поддържат плоски файлове, няма нужда да използвате последните три атрибута в списъка, които са свързани с файловата структура. В еднопотребителска операционна система наборът от атрибути няма да има характеристики, свързани с потребителите и сигурността, като собственик на файла, създател на файла, парола за достъп до файла, информация за оторизиран достъп до файла.

Потребителят може да има достъп до атрибути, като използва средствата, предоставени за тази цел от файловата система. Обикновено можете да четете стойностите на всеки атрибут, но променяте само някои. Например потребител може да промени разрешенията на файл (при условие, че има необходимите разрешения за това), но не може да промени датата на създаване или текущия размер на файла.

Стойностите на файловите атрибути могат да се съдържат директно в директории, както се прави във файловата система MS-DOS (фиг. 7.6a). Фигурата показва структурата на запис в директория, съдържащ просто символно име и файлови атрибути. Тук буквите показват характеристиките на файла: R - само за четене, A - архивиран, H - скрит, S - системен.

Ориз. 7.6.Структура на директория: a - MS-DOS структура на запис на директория (32 байта), b - UNIX OS структура на запис на директория

Друга възможност е да поставите атрибути в специални таблици, когато каталозите съдържат само връзки към тези таблици. Този подход е реализиран например във файловата система ufs на операционната система UNIX. В тази файлова система структурата на директорията е много проста. Записът за всеки файл съдържа кратко символно име на файл и указател към дескриптора на файловия индекс, това е името в ufs за таблицата, в която са концентрирани стойностите на атрибутите на файла (фиг. 7.6, b).

И в двете версии директориите осигуряват връзка между имената на файловете и самите файлове. Подходът за разделяне на името на файла от неговите атрибути обаче прави системата по-гъвкава. Например, един файл може лесно да бъде включен в няколко директории наведнъж. Записите за този файл в различни директории може да имат различни прости имена, но полето за връзка ще има същия номер на inode.

Файлови операции

Повечето съвременни операционни системи третират файла като неструктурирана последователност от байтове с променлива дължина. Стандартен POSIX Във файла са дефинирани следните операции:

    вътр отворен ( въглен * fname , вътр знамена , режим _ T режим )

Тази операция ``отваря'' файл, установявайки връзка между програмата и файла. В този случай програмата получава файлов дескриптор- цяло число, идентифициращо тази връзка. Всъщност това е индекс в системната таблица на отворените файлове за дадена задача. Всички други операции използват този индекс за препратка към файла.

Параметърът char * fname указва името на файла int flags е битова маска, която определя режима на отваряне на файла Файлът може да бъде отворен само за четене, само за запис или четене-запис; освен това можете да отворите съществуващ файл иможете да опитате да създадете нов файлнулева дължина Незадължителният режим на трети параметър се използва само при създаване на файл и указва атрибутите на този файл.

    изключено _ T lseek ( вътр дръжка , изключено _ T изместване , вътр откъде )

Тази операция премества указателя за четене/запис във файла. Параметърът за отместване определя броя байтове, с които да се отмести указателят, а параметърът откъде указва откъде да започне отместването. Предполага се, че отместването може да се брои от началото на файла (SEEK_SET), от неговия край (SEEK_END) и от текущата позиция на показалеца (SEEK_CUR). Операцията връща позицията на показалеца, измерена от началото на файла. Така че извикването на lseek(handle, 0, SEEK_CUR) ще се върне текущата позицияпоказалеца, без да го местите.

    int read(int handle, char * where, size_t how_much)

Операция за четене от файл. Указателят where указва буфера, където трябва да бъдат поставени прочетените данни; третият параметър указва колко данни да се четат.Системата чете необходимия брой байтове от файла, започвайки от указателя за четене/запис към този файл и премества указателя до края на последователността за четене. Ако файлът приключи по-рано, се четат толкова данни, колкото са останали до края му. Операцията връща броя на прочетените байтове. Ако файлът е бил отворен само за запис, извикването на read ще върне грешка.

    int write(int handle, char * what, size_t how_much)

Операция за запис във файл. Указателят what указва началото на буфера за данни; третият параметър указва колко данни да се запишат. Системата записва необходимия брой байтове във файла, започвайки от указателя за четене/запис към този файл, замествайки данните, съхранени в него местоположение и преместване на показалеца до края на изписания блок. Ако файлът приключи по-рано, дължината му се увеличава. Операцията връща броя на записаните байтове.

Ако файлът е бил отворен само за четене, извикването на write ще върне грешка.

    int ioctl(int манипулатор, int cmd, ...) ; вътр fcntl ( вътр дръжка , вътр cmd , ...)

Допълнителни операции върху файла. Първоначално изглежда, че ioctl е предназначен да бъде операция върху самия файл, а fcntl е операция върху манипулатор на отворен файл, но след това историческите развития донякъде объркаха функциите на тези системни извиквания. Стандартен POSIXдефинира някои операции както върху манипулатора, например дублиране (в резултат на тази операция получаваме два манипулатора, свързани с един и същи файл), така и върху самия файл, например операцията за съкращаване - изрязване на файла до дадена дължина. В повечето версии UnixОперацията за съкращаване може също да се използва за изрязване на данни от средата на файл. При четене на данни от такава изрязана област се четат нули, а самата тази област не заема физическо място на диска.

Важна операция е да блокирате секции от файла.Стандартен POSIXпредлага библиотечна функция за тази цел, но в системи от семейството UnixТази функция се реализира чрез извикването fcntl.

Повечето реализации на стандарта POSIXпредлага свои собствени допълнителни операции. И така, в Unix SVR4 С тези операции можете да зададете синхронен или забавен запис и т.н.

    caddr_t mmap(caddr_t addr, size_t len, int prot, int флагове, int манипулатор, off_t отместване)

Съпоставяне на раздел от файл във виртуалното адресно пространство на процеса Параметърът prot определя правата за достъп до картографирания раздел: четене, запис и изпълнение. Съпоставянето може да се извърши към определен виртуален адрес или системата може да избере адреса, който да нанесе сама.

Още две операции се извършват не върху файла, а върху неговото име: това са операциите по преименуване и изтриване на файла. В някои системи, например в системите на семейството Unix, файлът може да има няколко имена и има само системно извикване за изтриване на име. Файлът се изтрива, когато се изтрие последното име.

Може да се види, че наборът от операции върху файл в този стандарт е много подобен на набора от операции върху външно устройство. И двете се считат за неструктуриран поток от байтове. За да бъде пълна картината, трябва да се каже, че основното средство за междупроцесна комуникация в системите на семейството Unix (тръба) също е неструктуриран поток от данни. Идеята, че повечето трансфери на данни могат да бъдат сведени до поток от байтове, е доста стара, но Unixбеше една от първите системи, при които тази идея беше доведена до своя логичен завършек.

Приблизително същият модел на работа с файлове е възприет в C.P./ М, и набор от файлове системни повиквания MS DOSвсъщност копирани от разговори Unix v7 . на свой ред операционна система/2 И Windows NTнаследи принципите на работа с файлове директно от MS DOS.

Напротив, в системите без Unixв родословието може да се използва малко по-различна интерпретация на понятието файл.Най-често файлът се третира като набор от записи. Обикновено системата поддържа както записи с постоянна дължина, така и записи с променлива дължина. Например, текстов файл се интерпретира като файл със записи с променлива дължина и всеки ред текст съответства на един запис. Това е моделът за работа с файлове в VMSи в OS линия операционна система/360 -MVSкомпания IBM.

Рано или късно начинаещ компютърен потребител се сблъсква с такава концепция като файлова система (FS). По правило първото запознаване с този термин се случва при форматиране на носителя за съхранение: логически устройстваи свързани носители (флаш устройства, карти с памет, външен твърддиск).

Преди форматиране операционната система Windows ви подканва да изберете типа файлова система на носителя, размера на клъстера и метода на форматиране (бързо или пълно). Нека да разберем какво е файлова система и защо е необходима?

Цялата информация се записва на носителя във формуляра, който трябва да бъде разположен в определен ред, в противен случай операционната система и програмите няма да могат да работят с данните. Този ред се организира от файловата система, като се използват определени алгоритми и правила за поставяне на файлове на носителя.

Когато една програма се нуждае от файл, съхранен на диск, тя не трябва да знае как и къде се съхранява. Всичко, което се изисква от програмата, е да знае името на файла, неговия размер и атрибути, за да прехвърли тези данни във файловата система, която ще осигури достъп до необходимия файл. Същото се случва и при запис на данни на носител: програмата прехвърля информация за файла (име, размер, атрибути) към файловата система, която го записва според собствените си специфични правила.

За да разберете по-добре, представете си библиотекар, който дава книга на клиент въз основа на нейното заглавие. Или в обратен ред: Клиентът връща книгата, която е прочел, на библиотекаря, който я прибира на склад. Не е необходимо клиентът да знае къде и как се съхранява книгата, това е задължение на служителя на заведението. Библиотекарят познава правилата на библиотечната каталогизация и според тези правила търси публикацията или я поставя обратно, т.е. изпълнява служебните си функции. IN в този примербиблиотеката е среда за съхранение, библиотекарят е файлова система, клиентът е програма.

Основни функции на файловата система

Основните функции на файловата система са:

  • поставяне и организиране на носител на данни под формата на файлове;
  • определяне на максимално поддържаното количество данни на носителя за съхранение;
  • създаване, четене и изтриване на файлове;
  • присвояване и промяна на файлови атрибути (размер, време за създаване и промяна, собственик и създател на файл, само за четене, скрит файл, временен файл, архивиран, изпълним, максимална дължинаиме на файл и др.);
  • определяне на файловата структура;
  • организиране на директории за логическа организацияфайлове;
  • защита на файлове в случай на повреда на системата;
  • защита на файлове от неоторизиран достъп и промяна на тяхното съдържание.

Информация, записана на HDDили всяка друга среда, се намира в него на базата на клъстерна организация. Клъстерът е вид клетка определен размер, който съдържа целия файл или част от него.

Ако файлът е с размер на клъстер, той заема само един клъстер. Ако размерът на файла надвишава размера на клетката, той се поставя в няколко клъстерни клетки. Освен това свободните клъстери може да не са разположени един до друг, а да са разпръснати по физическата повърхност на диска. Тази система ви позволява да използвате най-ефективно пространството, когато съхранявате файлове. Задачата на файловата система е да разпредели файла при запис в свободни клъстери по оптимален начин, както и да го сглоби при четене и да го даде на програмата или операционната система.

Видове файлови системи

В процеса на еволюция на компютрите, носителите за съхранение и операционните системи, голям бройфайлови системи. В процеса на такъв еволюционен подбор, днес да работим с твърди дисковеи външни устройства за съхранение (флаш устройства, карти с памет, външни твърди дискове, CD) се използват основно следните видове FS:

  1. FAT32
  2. ISO9660

Последните две системи са предназначени за работа с компактдискове. Файловите системи Ext3 и Ext4 работят с операционни системи, базирани на Базиран на Linux. NFS Plus е файлова система за операционни системи OS X, използвани на компютри на Apple.

Най-широко използваните файлови системи са NTFS и FAT32 и това не е изненадващо, защото... предназначени са за операционни зали Windows системи, който управлява по-голямата част от компютрите в света.

Сега FAT32 се заменя активно от по-модерната система NTFS поради по-голямата си надеждност в безопасността и защитата на данните. Освен това най-новите версии Windows OS просто няма да позволи да се инсталира, ако дялът харддискще бъде форматиран във FAT32. Инсталаторът ще ви помоли да форматирате дяла в NTFS.

Файл NTFS системаподдържа работа с дискове с капацитет от стотици терабайта и размер на един файл до 16 терабайта.

Файловата система FAT32 поддържа дискове до 8 терабайта и размер на един файл до 4 GB. Най-често този FS се използва на флаш устройства и карти с памет. Във FAT32 форматират външни дисковевъв фабриката.

Въпреки това, ограничението за размера на файла от 4 GB вече е голям недостатък днес, защото... Поради разпространението на висококачествено видео, размерът на файла на филма ще надхвърли това ограничение и няма да е възможно да го запишете на носителя.

Дял.