Разное

Система хранения файлов и организации каталогов: 3. Файловая система — Информатика

26.07.2004

Содержание

Организация файловой системы | Linux: Введение

Файл

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

Для операционной системы Linux файл — не менее важное понятие, чем для её пользователя: все данные, хранящиеся на любых носителях, обязательно находятся внутри какого-нибудь файла, в противном случае они просто недоступны ни для операционной системы, ни для её пользователей. Более того, все устройства, подключённые к компьютеру (начиная клавиатурой и заканчивая любыми внешними устройствами, например, принтерами и сканерами) Linux представляет как файлы (так называемые

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

файл
Отдельная область данных на одном из носителей информации, у которой есть собственное
имя
.

Система файлов: каталоги

Файловая система с точки зрения пользователя — это «пространство», в котором размещаются файлы, наличие файловой системы позволяет определить не только «как называется файл», но и «где он находится». Различать файлы только по имени было бы слишком неэффективным: про каждый файл приходилось бы помнить, как он называется и при этом заботиться о том, чтобы имена никогда не повторялись. Более того, необходим механизм, позволяющий работать с группами тематически связанных между собой файлов (например, компонентов одной и той же программы или разных главы одной диссертации). Иначе говоря, файлы нужно систематизировать.

файловая система
Способ хранения и организации доступа к данным на информационном носителе или его разделе. Классическая файловая система имеет иерархическую структуру, в которой файл однозначно определяется полным путём к нему.

Linux может работать с различными типами файловых систем, которые различаются списком поддерживаемых возможностей, производительностью в разных ситуациях, надёжностью и другими признаками. Подробнее о работе Linux с разными файловыми системами речь пойдёт в лекции Работа с внешними устройствами. В этой лекции будут описаны возможности файловой системы Ext2/Ext3, на сегодня de facto стандартной файловой системы для Linux.

Большинство современных файловых систем (но не все!) используют в качестве основного организационного принципа каталоги. Каталог — это список ссылок на файлы или другие каталоги. Принято говорить, что каталог содержит в себе файлы или другие каталоги, хотя в действительности он только ссылается на них, физическое размещение данных на диске обычно никак не связано с размещением каталога. Каталог, на который есть ссылка в данном каталоге, называется подкаталогом или вложенным каталогом. Каталог в файловой системе более всего напоминает библиотечный каталог, содержащий ссылки на объединённые по каким-то признакам книги и другие разделы каталога (файлы и подкаталоги). Ссылка на один и тот же файл может содержаться в нескольких каталогах одновременно, это может сделать доступ к файлу более удобным. В файловой системе Ext2 каждый каталог — это отдельный файл особого типа («

d», от англ. «directory»), отличающийся от обычного файла с данными: в нём могут содержаться только ссылки на другие файлы и каталоги.

В файловой системе Linux нет папок и документов. Есть каталоги и файлы, возможности которых куда шире.

Довольно часто вместо термина каталог можно встретить папка (англ. folder). Этот термин хорошо вписывается в представление о файлах как о предметах, которые можно раскладывать по папкам, однако часть возможностей файловой системы, которая противоречит этому представлению, таким образом затемняется. В частности, с термином «папка» плохо согласуется то, что ссылка на файл может присутствовать одновременно в нескольких каталогах, файл может быть ссылкой на другой файл и т. д. В Linux эти возможности файловой системы весьма важны для эффективной работы, поэтому будем всюду использовать более подходящий термин «каталог».

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

Имена файлов и каталогов

Допустимые имена

Главные отличительные признаки файлов и каталогов — их имена. В Linux имена файлов и каталогов могут быть длиной не более 256 символов, и могут содержать любые символы, кроме «/». Причина этого ограничения очевидна: этот символ используется как разделитель имён в составе пути, поэтому не должен встречаться в самих именах. Причём Linux всегда различает прописные и строчные буквы в именах файлов и каталогов, поэтому «methody», «Methody» и «METHODY» будут тремя разными именами.

Есть несколько символов, допустимых в именах файлов и каталогов, которые, при этом, нужно использовать с осторожностью. Это — так называемые спецсимволы «*», «

\», «&», «<», «>», «;», «(», «)», «|», а также пробелы и табуляции. Дело в том, что эти символы имеют особое значение для любой командной оболочки, поэтому нужно будет специально позаботиться о том, чтобы командная оболочка воспринимала эти символы как часть имени файла или каталога. О специальном значении символа «-» для команд Linux уже шла речь в лекции Терминал и командная строка, там же обсуждалось, как изменить его интерпретацию.

Символ «-» означает, что следующее слово — ключ, а пробелы и табуляции разделяют параметры в командной строке.

О том, зачем командной оболочке нужны спецсимволы, речь пойдёт в лекции Возможности командной оболочки.

Кодировки и русские имена

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

Дело в том, что с давних пор каждый символ (буква) каждого языка традиционно представлялся в виде одного байта. Такое представление накладывает очень жёсткие ограничения на количество букв в алфавите: их может быть не больше 256, а за вычетом управляющих символов, цифр, знаков препинания и прочего — и того меньше. Обширные алфавиты (например, иероглифические японский и китайский) пришлось заменять упрощённым их представлением. Вдобавок, первые 128 символов из этих 256 лучше всегда оставлять неизменными, соответствующими стандарту ASCII, включающему латиницу, цифры, знаки препинания и наиболее популярные символы из тех, что встречаются на клавиатуре печатной машинки. Интерпретация остальных 128 символов зависит от того, какая

кодировка установлена в системе. Например, в русской кодировке KOI8-R 228-й символ такой таблицы соответствует букве «Д», а в западноевропейской кодировке ISO-8859-1 этот же символ соответствует букве «a» с двумя точками на ней (как у нашей буквы «ё»).

Имена файлов, записанные на диск в одной кодировке, выглядят нелепо, если при просмотре каталога была установлена другая. Хуже того. Многие кодировки заполняют диапазон символов с номерами от 128 то 255 не полностью, поэтому соответствующего символа может вообще не быть! Это означает, что ввести такое искажённое имя файла с клавиатуры (например, для того, чтобы его переименовать) напрямую не удастся, придётся пускаться на разные ухищрения, описанные в лекции Возможности командной оболочки. Наконец, многие языки, в том числе и русский, исторически имеют несколько кодировок.

Мефодий и сам несколько раз получал электронные письма, начинающиеся словами «бНОПНЯ» или «бМХЛЮМХЕ» — результат представления текста, имеющего кодировку CP-1251, в кодировке KOI8-R.

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

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

Это не означает, что называя файлы, не следует использовать языки, отличные от английского. Пока точно известно, в какой кодировке задано имя файла — проблем не возникнет. Однако Мефодий решил, что гарантий в передаче названного по-русски файла на какую-нибудь другую систему можно добиться только передавая вместе с ним настройку кодировки, даже две: в своей системе и в системе адресата (неизвестно какой!). Другой, гораздо более лёгкий, способ передать файл — использовать в его названии только символы ASCII.

Расширения

Многим пользователям знакомо понятие расширение — часть имени файла после точки, обычно ограничивающаяся несколькими смволами и указывающая на тип содержащихся в файле данных. В файловой системе Linux нет никаких предписаний по поводу расширения: в имени файла может быть любое количество точек (в том числе и ни одной), а после последней точки может быть любое количество символов.

В отличие от старых файловых систем, организованых по принципу «8+3» (DOS, ISO9660 и т. п.), где в имени файла допустимо не более одной точки и расширение может быть не длиннее 3-х символов. Это ограничение определило вид многих из известных сегодня расширений файлов, например, «txt» для текстового файла.

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

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

[[email protected] methody]$ file -- -filename-with-
-filename-with-: ASCII English text
[[email protected] methody]$ file /home/methody
/home/methody: directory

Пример 1. Определение типа данных в файле

Мефодий, забыв, что содержится в файле «-filename-with-», который он создал на прошлой лекции, хотел было уже посмотреть его содержимое при помощи команды cat. Однако его остановил Гуревич, который посоветовал сначала выяснить, что за данные содержатся в этом файле. Не исключено, что это двоичный файл исполняемой программы, в таком файле могут встречаться последовательности, которые случайно совпадут с управляющими последовательностями терминала. Поведение терминала после этого может стать непредсказуемым, а неопытный Мефодий вряд ли сможет с ним справиться. Мефодий получил вполне точный ответ от утилиты file: в его файле — английский текст в кодировке ASCII. file умеет различать очень многие типы данных и почти наверняка выдаст правильную информацию. Эта утилита никогда не «доверяет» расширению файла (если оно присутствует), и анализирует сами данные. file различает не только разные данные, но и разные типы файлов, в частности, сообщит, если исследуемый не является обычным файлом, а, например, каталогом.

Дерево каталогов

Понятие каталога позволяет систематизировать все объекты, размещённые на носителе данных (например, на диске). В большинстве современных файловых систем используется иерархическая модель организации данных: существует один каталог, объединяющий все данные в файловой системе — это «корень» всей файловой системы, корневой каталог. Корневой каталог может содержать любые объекты файловой системы, и в частности, подкаталоги (каталоги первого уровня вложенности). Те, в свою очередь, также могут содержать любые объекты файловой системы и подкаталоги (второго уровня вложенности) и т. д. Таким образом. всё, что записано на диске — файлы, каталоги и специальные файлы — обязательно «принадлежит» корневому каталогу: либо непосредственно (содержится в нём), либо на некотором уровне вложенности.

Иерархию вложенных друг в друга каталогов можно соотнести с иерархией данных в системе: объединить тематически связанные файлы в каталог, тематически связанные каталоги — в один общий каталог и т. д. Если строго следовать иерархическому принципу, то чем глубже будет уровень вложенности каталога, тем более частным признаком должны быть объединены содержащиеся в нём данные. Если этому принципу не следовать, то вскоре окажется гораздо проще складывать все файлы в один каталог и искать нужный среди них, чем проделывать такой поиск по всем подкаталогам системы. Однако в этом случае о какой бы то ни было систематизации файлов говорить не приходится.

Структуру файловой системы можно представить наглядно в виде дерева, «корнем» которого является корневой каталог, а в вершинах расположены все остальные каталоги.

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

На рис. изображено дерево каталогов, курсивом обозначены имена файлов, прямым начертанием — имена каталогов.


Иллюстрация 1. Дерево каталогов в Linux

В любой файловой системе Linux всегда есть только один корневой каталог, который называется «/». Пользователь Linux всегда работает с единым деревом каталогов, даже если разные данные расположены на разных носителях: нескольких жёстких или сетевых дисках, съёмных дисках, CD-ROM и т. п.

Это отличается от технологии, применяемой в Windows или Amiga, где для каждого устройства, на котором есть файловая система, используется свой корневой каталог, обозначенный литерой, например «a», «c», «d» и т. д.

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

Положение любого каталога в дереве каталогов точно и однозначно описывается при помощи полного пути. Полный путь всегда начинается от корневого каталога и состоит из перечисления всех вершин, встретившихся при движении по рёбрам дерева до искомого каталога включительно. Названия соседних вершин разделяются символом «/» («слэш»). В Linux полный путь, например, до каталога «methody» в файловой системе, приведённой на рис. записывается следующим образом: сначала символ «/», обозначающий корневой каталог, затем к нему добавляется «home», затем разделитель «/», за которым следует название искомого каталога «methody», в результате получается полный путь «/home/methody».

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

Расположение файла в файловой системе аналогичным образом определяется при помощи полного пути, только последним элементом в данном случае будет не название каталога, а название файла. Например, полный путь до созданного Мефодием файла «-filename-with-» будет выглядеть так: «/home/methody/-filename-with-».

Полный путь к каталогу формально ничем не отличается от пути к файлу, т. е. по полному пути нельзя сказать наверняка, является ли его последний элемент файлом или каталогом. Чтобы отличать путь к каталогу, иногда используют запись с символом «/» в конце пути: «/home/methody/».

Организация каталогов файловой системы в виде дерева не допускает появления циклов: т. е. каталог не может содержать в себе каталог, в котором содержится сам. Благодаря этому ограничению полный путь до любого каталога или файла в файловой системе всегда будет конечным.

Файлы и файловая система. Лекция 3 Информатика

Файлы и файловая система

Файлы и файловая система Программное обеспечение Что такое файл? Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов. Файл это определенное количество информации

Подробнее

Файлы и файловая система

Файлы и файловая система Что такое файл? Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов. Файл это определенное количество информации (программа или данные),

Подробнее

1) Системы Системные программирования

1) Системы Системные программирования программы это средства, предназначенные для создания ПО. 2) Прикладное ПО руководит Системное слаженной ПО работой всех элементов компьютерной системы как на аппаратном

Подробнее

Проверка домашнего задания:

Проверка домашнего задания: — Вам предлагается решить тест на оценку. — Тест состоит из 6 вопросов по пройденной теме. — На ваших столах лежат листочки, не забудьте их подписать. — Время выполнения теста

Подробнее

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

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

Подробнее

Файл и файловая система на дисках

Государственное образовательное учреждение Среднего профессионального образования Колледж сферы услуг 3 Файл и файловая система на дисках демо-лекция Преподаватель Глебова Е.Г. Форматирование (инициализация)

Подробнее

Урок информатики в 8 классе по теме:

Урок информатики в 8 классе по теме: 1 Цели урока: Обучающая: познакомить с понятиями файл, папка, файловая система, имя файла, путь к файлу. Развивающая: сформировать умение отслеживать путь по файловой

Подробнее

11. О файлах и файловых структурах

11. О файлах и файловых структурах Что такое файл Информация на внешних носителях хранится в виде файлов. Работа с файлами является очень важным видом работы на компьютере. В файлах хранится все: и программное

Подробнее

Тема урока. Файловая система

Тема урока Файловая система Изучив эту тему, вы узнаете: Для чего важно упорядочивать информацию Определения понятий файл, папка, файловая система Характеристики и свойства папок и файлов Что составляет

Подробнее

Файлы и файловая система в ОС Windows

Файлы и файловая система в ОС Windows Файловая система Windows Файл однотипный набор данных, которому присвоено имя и хранящийся во внешней памяти. К внешней памяти относятся устройства: жёсткие диски,

Подробнее

Файлы. Файловая система.

Файлы и файловая система Файлы. Файловая система. «Приведи в своем сознании все по существу взаимосвязанные между собой предметы, в ту именно связь, в которой они действительно находятся в природе». И.Г.

Подробнее

дифференцированного зачета

Министерство труда, занятости и трудовых ресурсов Новосибирской области ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ НОВОСИБИРСКОЙ ОБЛАСТИ «БЕРДСКИЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ» УТВЕРЖДАЮ

Подробнее

Работа с файлами и дисками. 7 класс

Работа с файлами и дисками 7 класс Проверка домашнего задания Вспомним определения понятий: — файл; — имя файла; — расширение файлов; — файловая система; — путь к файлу, — полное имя файла. Задание 1.

Подробнее

Модуль 5. ВВОД-ВЫВОД И ФАЙЛОВАЯ СИСТЕМА

Модуль 5. ВВОД-ВЫВОД И ФАЙЛОВАЯ СИСТЕМА 1. Файл это (несколько ответов) 1) множество данных, объединенных некоторой логической связью 2) совокупность информации, записанная под индивидуальным именем на

Подробнее

3. Файловая система. Файлы и папки

22 Модуль 1. Укрощение компьютера 3. Файловая система. Файлы и папки ОПРЕДЕЛЯЕМ ПРОБЛЕМУ УРОКА Представьте, что вы хотите обработать фотографии, которые сделали, совершая кругосветное путешествие. Но где

Подробнее

Устройство компьютера

Устройство компьютера Персональный компьютер (ПК) это электронный прибор, предназначенный для автоматизации создания, хранения, обработки и передачи информации Основные компоненты компьютера Процессор

Подробнее

Файловая структура данных

Файловая структура данных Объекты файловой системы Имена файлов и папок Организация файловой системы Обслуживание файловой структуры Интернет-Университет Информационных Технологий http://www.intuit.ru

Подробнее

Программное обеспечение ЭВМ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ

Подробнее

Программное обеспечение ЭВМ

Программное обеспечение ЭВМ ПО предназначено для решения конкретных задач. Приложение (application) это программная реализация решения задачи на ЭВМ. В большинстве случаев, приложения разрабатываются для

Подробнее

Презентация по теме: Утилиты и ПО

Презентация по теме: Утилиты и ПО Содержание: Программное обеспечение Введение Прикладные программы Для работы с текстом Для обработки изображения Прикладное ПО Офисное ПО Для работы в интернете Распространение

Подробнее

Тест «Графический интерфейс»

Тест «Графический интерфейс» Вопрос 1 Cтрока под верхней границей окна, содержащая название окна Рабочая область Заголовок окна Меню окна Панель инструментов Кнопки управления состоянием окна Полосы прокрутки

Подробнее

Информатика и ИКТ Лекция 5 1 курс

Информатика и ИКТ Лекция 5 1 курс ФГОУ СПО «УМТК» Кондаратцева Т.П. 1 — Основные характеристики компьютеров. Многообразие компьютеров — Архитектура компьютеров — Виды программного обеспечения компьютеров

Подробнее

Лекция 8. Файловые системы (часть 1)

Лекция 8 Файловые системы (часть 1) Файловая система Системная или прикладная программа Запрос на операцию с файлом по его имени Предоставление файлов Файловая система Запись, удаление данных по адресу

Подробнее

2.1. Файлы Именование файлов.

2.1. Файлы. Требования к хранению информации: возможность хранения больших объемов данных информация должна сохраняться после прекращения работы процесса несколько процессов должны иметь одновременный

Подробнее

Понятие программного обеспечения

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

Подробнее

ФОНД ОЦЕНОЧНЫХ СРЕДСТВ

Муниципальное бюджетное общеобразовательное учреждение «Средняя общеобразовательная школа 1» ФОНД ОЦЕНОЧНЫХ СРЕДСТВ по текущей аттестации предмет: Информатика. 7 класс Составители: Выдрина Юлия Анатольевна

Подробнее

Программное обеспечение. система

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

Подробнее

Операционная система Windows

Языки программирования и методы трансляции Презентация к лабораторной работе 2 Операционная система Windows Содержание 2 Содержание 3 Понятие операционной системы Операционная система (ОС) базовое программное

Подробнее

Физическая организация файловой системы

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

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

  • скорость доступа к данным;
  • объем адресной информации файла;
  • степень фрагментированности дискового пространства;
  • максимально возможный размер файла.

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

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

Популярным способом, применяемым, например, в файловой системе FAT, является использование связанного списка индексов (рисунок ( в)). Этот способ является некоторой модификацией предыдущего. Файлу также выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связывается некоторый элемент — индекс. Индексы располагаются в отдельной области диска.

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

Последний подход с некоторыми модификациями используется в традиционных файловых системах ОС UNIX s5 и ufs. Для сокращения объема адресной информации прямой способ адресации сочетается с косвенным. Ну да хуй с ним.


Понравился контент? Посмотри рекламный блок:

Урок 8. файл и файловая система — Информатика — 7 класс

Информатика

7 класс

Урок № 8

Файл и файловая система

Перечень вопросов, рассматриваемых в теме:

  • Что такое файл, каталог.
  • Виды файлов.
  • Имена файлов.
  • Каталоги, файловая структура.
  • Графические изображения иерархической файловой структуры.

Тезаурус:

Файл – это поименованная область внешней памяти.

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

  1. Копирование
  2. Перемещение
  3. Переименование
  4. Удаление
  5. Поиск

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

? – означает ровно один произвольный символ

* – означает любую последовательность символов, в том числе, и пустую.

Каталог – это поименованная совокупность файлов и подкаталогов.

Файловая структура – это совокупность файлов на диске и взаимосвязей между ними.

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

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

Графическое изображение иерархической файловой структуры называется деревом.

Последовательно записанные: путь к файлу и имя файла, составляют полное имя файла.

Основная литература:

1. Босова Л. Л. Информатика: 7 класс. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2017. – 226 с.

Дополнительная литература:

  1. Босова Л. Л. Информатика: 7–9 классы. Методическое пособие. // Босова Л. Л., Босова А. Ю., Анатольев А. В., Аквилянов Н.А. – М.: БИНОМ, 2019. – 512 с.
  2. Босова Л. Л. Информатика. Рабочая тетрадь для 7 класса. Ч 1. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2019. – 160 с.
  3. Босова Л. Л. Информатика. Рабочая тетрадь для 7 класса. Ч 2. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2019. – 160 с.
  4. Гейн А. Г. Информатика: 7 класс. // Гейн А. Г., Юнерман Н. А., Гейн А.А. – М.: Просвещение, 2012. – 198 с.

Теоретический материал для самостоятельного изучения.

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

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

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

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

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

Имя файла состоит из двух частей, разделённых точкой: собственно имени файла и расширения. Имя файлу даёт пользователь, делать это нужно осмысленно, отражая в имени содержание файла. Имя файла может содержать до 255 символов национальных алфавитов и пробелы. Но в имени файлов есть и запрещённые символы, например, знак вопроса, звёздочка. Расширение имени файла задаётся программой автоматически, оно содержит 3–4 символа, которые записываются после точки.

Над файлами можно выполнять следующие действия: копирование, перемещение, переименование, удаление, поиск.

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

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

Любой информационный носитель операционной системы Windowsимеет корневой каталог, который создаётся без участия человека. Корневые каталоги имеют специальное обозначение с указанием имени соответствующего устройства и знака «\» (обратный слэш).

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

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

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

Чтобы обратиться к нужному файлу, который хранится, например, на жёстком диске, можно указать путь к файлу. То есть имена всех каталогов от корневого до того, в котором находится файл. Такую запись называют полным именем файла.

Разберём задачу:

Учитель работал в каталоге Д:\Уроки\7 класс \Практические работы. Затем перешёл в дереве каталогов на уровень выше, спустился в подкаталог Презентации и удалил из него файл Введение.ppt. Каково полное имя файла, который удалил учитель?

Решение:

Учитель работал с каталогом: Д:\Уроки\7 класс\Практические работы. Поднявшись на один уровень вверх, он оказался в каталоге Д:\Уроки\7 класс. После этого учитель спустился в каталог Презентации, путь к файлам которого имеет вид: D:\Уроки\7 класс \Презентации. В этом каталоге он удалил файл Введение.ppt, полное имя которого Д:\Уроки\7 класс \Презентации\ Введение.ppt.

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

Материал для углубленного изучения темы.

Файловый менеджер Double Commander.

Double Commander‑ бесплатный файловый менеджер с двухоконным интерфейсом. Программа работает на разных операционных системах: Windows, Linux, MAC OS.

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

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

DoubleCommander имеет огромное количество настроек. Настроить можно практически каждый элемент окна, главное найти нужные галочки или поля ввода.

Работа с избранными папками осуществляется с помощью меню, выпадающего при нажатии на кнопку «*». Выглядит оно следующим образом:

Сверху перечислены папки, добавленные в избранные, а снизу два пункта меню для добавления/удаления папки из выбранной панели в список.

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

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

В DoubleCommander есть возможность с помощью горячих клавиш (или пункта меню) копировать в буфер обмена имя файла или полный путь до него, Правда, это решается двумя горячими клавишами: сначала переходим к «редактированию пути» в заголовке панели, затем выделенный путь можно скопировать с помощью стандартной комбинации Ctrl+C. Панель быстрого фильтра, позволяет искать файлы/папки в текущей папке, а при необходимости скрыть все файлы и папки, не удовлетворяющие критерию поиска.

 

Для поиска файлов в DoubleCommander довольно удобный интерфейс. Есть возможность вынесения результатов поиска на панель.

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

Разбор решения заданий тренировочного модуля.

№1.Тип задания: выделение цветом.

Укажите, какое из указанных ниже имён файлов удовлетворяет маске ?ese*ie.?t*

Варианты ответов:

seseie.ttx

esenie.ttx

eseie.xt

sesenie.txt

Решение:

Так как маска – это последовательность букв, цифр и других, допустимых в именах файлов символов, среди которых встречаются следующие: «?» – означает ровно один последовательный символ, «*» – означает любую (в том числе и пустую) последовательность символов произвольной длины. Рассмотрев маску?ese*ie.?t*, вопросительный знак – это один символ, т.е. s, * – это последовательность символов произвольной длины, т.е. может подойти ответ первый и последний, т.к. * – это ещё и пустой символ. Но, рассматривая расширение, и также рассуждая, последний вариант ответа не подходит, потому что на втором месте стоит буква t. Следовательно, выделяем цветом первый вариант ответа.

Ответ: seseie.ttx

№2.Тип задания: восстановление последовательности элементов.

Восстановите полное имя файла.

Файл Онегин.doc хранится на жёстком диске в каталоге ПОЭЗИЯ, который является подкаталогом каталога ЛИТЕРАТУРА. В таблице приведены фрагменты полного имени файла:

А

Б

В

Д

Е

ЛИТЕРАТУРА

С:

Онегин

.doc

ПОЭЗИЯ

Решение:

Так как, полное имя файла начинается с корневого каталога, то на первом месте будет С:, далее идёт\. Так как, каталог ПОЭЗИЯ является подкаталогом каталога ЛИТЕРАТУРА, то далее пойдёт ЛИТЕРАТУРА, затем ПОЭЗИЯ и разделяются каталоги также обратным слэшем. Ну и, учитывая, что файл Онегин.doc хранится на жёстком диске в каталоге ПОЭЗИЯ, получаем С:\ЛИТЕРАТУРА\ПОЭЗИЯ\Онегин.doc.

Ответ: С:\ЛИТЕРАТУРА\ПОЭЗИЯ\Онегин.doc.

Структура каталогов | dpBestflow

Ричард Андерсон и Питер Крог

Что такое структура каталогов?

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

Однако

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

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

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

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

Это не означает, что именование папок не имеет значения как средство организации содержимого; это означает, что организация контента — это второстепенная работа.

Назначение структуры каталогов

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

dpBestflow® рекомендует отделять оригиналы камеры, независимо от того, являются ли они необработанными или оригинальными файлами JPEG, от любых копий или производных файлов.

Возможные исключения:

  • Некоторые могут либо заменить собственные необработанные данные на , либо
  • Преобразование в формат DNG со встроенными в них проприетарными необработанными файлами. Следовательно, они могут чувствовать себя в безопасности, удаляя исходные проприетарные необработанные файлы.

Зачем архивировать исходные снимки или преобразованные файлы DNG с исходными необработанными файлами или без них? Чтобы сохранить целостность файла и избежать случайного удаления.

Рекомендуется убрать оригиналы камеры один раз и использовать эту часть архива как «только для чтения».Оптические носители с однократной записью (CD, DVD, Blu-ray) соответствуют этому критерию. Однако это может быть более громоздким и трудоемким (хранение и правильная маркировка оптических носителей) по сравнению с жесткими дисками для извлечения изображений.

Жесткие диски

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

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

Примерами этих категорий могут быть:

  • Оригиналы камер
  • ДНГ
  • Веб-галереи или цветопробы
  • Основные файлы
  • Производные файлы
  • Файлы доставки
Рисунок 1. Показанная здесь структура каталогов упорядочена по типам файлов, что упрощает каталогизацию, резервное копирование и миграцию.

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

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

Вполне вероятно, что проприетарные необработанные файлы необходимо будет перенести в другой формат файлов по графику, отличному от форматов JPEG или TIFF.Отделение их от производных файлов облегчит автоматизацию этого процесса.

Рис. 2 Эта структура каталогов организована в большей степени по принципу работы или проекта — все файлы, связанные с этим проектом, хранятся в одной папке.

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

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

Художественные фотографы также могут найти для себя такую ​​форму организации структуры каталогов.

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

Вернуться к главной странице управления файлами
Вернуться к обзору управления файлами
К именованию файлов

Общедоступный, бесплатный, открытый стандартный формат файла, разработанный Adobe Systems, который представляет собой стандартизированную альтернативу проприетарным необработанным файлам камеры.Спецификация DNG включает в себя богатую поддержку метаданных, а также встроенные предварительные просмотры, профили камеры и «примечания производителя» (частные или проприетарные метаданные). DNG может использовать сжатие без потерь, что может привести к значительному уменьшению размера файла по сравнению с исходным проприетарным необработанным файлом. Он также продвигается как формат архивных изображений, поскольку он полностью задокументирован и представлен в ISO.

Как наилучшим образом организовать файлы, папки и документы на компьютере

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

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

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

Готовы ли вы узнать об организации папок? Давайте начнем.

Как организовать компьютерные файлы: определитесь со структурой

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

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

1. Проектная или клиентская файловая система организации

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

Что делает проект или настройку клиента такой эффективной, так это отсутствие мозгов. Если файл A связан с клиентом X, он помещается в папку X. Если файл B связан с клиентом Y, то, как ни странно, он помещается в папку Y. 

Если у вас есть несколько проектов для одних и тех же клиентов, вы можете либо выделить для каждого проекта собственную папку верхнего уровня, либо иметь отдельные папки проекта в каждой папке клиента.

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

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

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

2. Система организации файлов на основе даты

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

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

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

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

Подумайте, какую работу вы выполняете. Вероятно, будет очень очевидно, подходит ли вам система, основанная на датах, или нет.

3.Система организации файлов на основе типов файлов

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

  • маркетинг
  • презентаций
  • финансы
  • и т.п.

В каждой папке вы помещаете все файлы такого типа.

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

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

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

Один — это ничего, а два — это один: резервные копии

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

У нас есть полное руководство о том, как создать надежный план резервного копирования, а также отдельные статьи о резервном копировании вашего ПК или Mac с помощью Time Machine, поэтому ознакомьтесь с этими статьями, чтобы получить конкретные инструкции. Я просто собираюсь дать общий обзор здесь.

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

Я предпочитаю хранить все мои важные файлы в Dropbox, хотя вы также можете использовать Google Drive или Microsoft OneDrive, чтобы, как только я их сохранял, они сохранялись в облаке. Это не настоящая резервная копия, поскольку нет версий и ограниченных возможностей восстановления, но это отличный первый уровень. Если у вас есть быстрое подключение к Интернету, это разрешено корпоративной политикой и вы не работаете с терабайтами данных, то хранение всех файлов, над которыми вы работаете, в облачной службе — отличный способ обезопасить их.Это также имеет то преимущество, что ваши файлы доступны из любого места.

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

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

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

Передовые методы организации компьютерных файлов

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

  • Пропустить рабочий стол .Никогда не храните файлы на рабочем столе. Это только выглядит грязным и загроможденным. Можно перетащить файл с USB-накопителя на рабочий стол, но тогда его следует немедленно удалить.
  • Пропустить загрузки . Не оставляйте файлы в папке «Загрузки». Либо храните их там, где они принадлежат, либо удаляйте их.
  • Немедленно подайте документы . Если вы будете ждать, чтобы подать документы, они выйдут из-под контроля. Как только вы создадите или получите файл, поместите его на свое место.
  • Сортировать все раз в неделю . При этом каждое утро понедельника или вечер пятницы просматривайте файлы, над которыми вы работали на этой неделе, и проверяйте, находятся ли они в нужном месте. Наведите порядок, удалите все ненужные файлы и, как правило, не допускайте беспорядка, прежде чем он станет слишком плохим. Если вы используете Mac, есть такие приложения, как Hazel, которые могут автоматизировать это за вас.
  • Используйте описательные имена . Когда вы даете имена своим файлам, давайте им описательные имена.«Маркетинговый план» — это плохо. «Маркетинговый план — Клиент X — Январь» гораздо лучше.
  • Поиск мощный . Функция поиска в современных операционных системах действительно мощная. Если вы не можете найти файл путем поиска, попробуйте выполнить его поиск. Если вы правильно назвали свои файлы и папки, их будет легко найти.
  • Не используйте слишком много папок . Наличие слишком большого количества вложенных папок раздражает. В каждой папке должно быть не менее 10 файлов.Если у вас есть только два или три файла в каждой папке, вам нужно пересмотреть свою структуру.
  • Держись . Не сдавайтесь через несколько дней. Всегда нужно немного времени, чтобы адаптироваться к чему-то новому. Пообещайте использовать свою файловую структуру в течение нескольких недель, прежде чем отказаться от нее.
  • Продолжайте дорабатывать . Системы сверху вниз глупы; они редко работают. Начните с одной из структур, которые я рекомендую, а затем изменяйте ее по ходу дела. Адаптируйте его к своему рабочему процессу, а не пытайтесь заставить его адаптироваться к жесткой файловой структуре.

Подведение итогов

Организованный компьютер намного приятнее в использовании. Если вы знаете, где хранится каждый файл, то это больше не будет кошмаром, когда кто-то придет и попросит такой-то файл двухлетней давности; он находится в папке и подпапке под названием 2016> Маркетинговые материалы или тому подобное.

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

Глава 2. Структура и обслуживание файловой системы Red Hat Enterprise Linux 6

2.1. Обзор стандарта иерархии файловой системы (FHS)

Red Hat Enterprise Linux использует структуру файловой системы Filesystem Hierarchy Standard ( FHS ), которая определяет имена, местоположения и разрешения для многих типов файлов и каталогов.

Документ FHS является авторитетной ссылкой на любую файловую систему, совместимую с FHS, но стандарт оставляет многие области неопределенными или расширяемыми.Этот раздел представляет собой обзор стандарта и описание частей файловой системы, не охватываемых стандартом.

Отмеченные здесь каталоги и файлы являются небольшим подмножеством тех, которые указаны в документе FHS. Наиболее полную информацию см. в последней документации FHS по адресу http://www.pathname.com/fhs/.

2.1.1.1. Сбор информации о файловой системе

Команда df сообщает об использовании системного дискового пространства. Его вывод выглядит примерно так:

Пример 2.1. df вывод команды

Файловая система Используемые 1K-блоки Доступно Использование % Установлено на
/dev/mapper/VolGroup00-LogVol00
                       11675568 6272120 4810348 57% //dev/sda1
100691 9281 86211 10% /загрузка
нет 322856 0 322856 0% /dev/shm
 

По умолчанию df показывает размер раздела в блоках по 1 килобайту и объем используемого и доступного дискового пространства в килобайтах.Для просмотра информации в мегабайтах и ​​гигабайтах используйте команду df -h . Аргумент -h означает «человекочитаемый» формат. Вывод для df -h выглядит примерно так:

Пример 2.2. df -h вывод команды

Используемый размер файловой системы Доступно Использование % Установлено на
/dev/mapper/VolGroup00-LogVol00
                        12 ГБ 6,0 ГБ 4,6 ГБ 57 % //dev/sda1
99 млн. 9,1 млн. 85 млн. 10 % / загрузки
нет 316M 0 316M 0% /dev/shm
 

В приведенных выше примерах смонтированный раздел /dev/shm представляет файловую систему виртуальной памяти системы.

Команда du отображает приблизительный объем пространства, используемого файлами в каталоге, а также использование диска для каждого подкаталога. Последняя строка в выводе du показывает общее использование диска каталогом; чтобы увидеть только общее использование диска каталогом в удобочитаемом формате, используйте du -hs . Дополнительные опции см. в man du .

Чтобы просмотреть системные разделы и использование дискового пространства в графическом формате, используйте системный монитор Gnome , щелкнув → → или используя команду gnome-system-monitor .Выберите вкладку File Systems для просмотра разделов системы. На рисунке ниже показана вкладка File Systems .

Рисунок 2.1. Вкладка «Файловые системы» системного монитора GNOME

2.1.1.2. Каталог
/boot/

Каталог /boot/ содержит статические файлы, необходимые для загрузки системы, например, ядро ​​Linux. Эти файлы необходимы для правильной загрузки системы.

Не удаляйте каталог /boot/.Это делает систему невозможной для загрузки.

2.1.1.3. Каталог
/dev/

Каталог /dev/ содержит узлы устройств, представляющие следующие типы устройств:

Эти узлы устройств необходимы для правильной работы системы. Демон udevd создает и удаляет узлы устройств в /dev/ по мере необходимости.

Устройства в каталоге /dev/ и подкаталогах определяются либо как символьный (обеспечивающий только последовательный поток ввода и вывода, например, мышь или клавиатура), либо как блок (доступный произвольно, например, жесткий диск или дисковод).Если установлены GNOME или KDE, некоторые запоминающие устройства автоматически обнаруживаются при подключении (например, через USB) или вставке (например, привод CD или DVD), и появляется всплывающее окно с отображением содержимого.

Таблица 2.1. Примеры распространенных файлов в каталоге / dev

2

7 Описание
Описание
/ DEV / HDA Мастер-устройство на главном канале IDE.
/dev/hdb Ведомое устройство на основном канале IDE.
/dev/tty0 Первая виртуальная консоль.
/dev/tty1 Вторая виртуальная консоль.
/dev/sda Первое устройство на основном канале SCSI или SATA.
/dev/lp0 Первый параллельный порт.
/dev/ttyS0 Последовательный порт.

2.1.1.4. Каталог
/etc/

Каталог /etc/ зарезервирован для файлов конфигурации, которые являются локальными для машины. Он не должен содержать двоичных файлов; любые двоичные файлы должны быть перемещены в /bin/ или /sbin/ .

Например, в каталоге /etc/skel/ хранятся «каркасные» пользовательские файлы, которые используются для заполнения домашнего каталога при первом создании пользователя. Приложения также хранят свои файлы конфигурации в этом каталоге и могут ссылаться на них при выполнении.Файл /etc/exports определяет, какие файловые системы экспортируются на удаленные хосты.

2.1.1.5. Каталог
/lib/

Каталог /lib/ должен содержать только библиотеки, необходимые для выполнения двоичных файлов в /bin/ и /sbin/. Эти образы общих библиотек используются для загрузки системы или выполнения команд в корневой файловой системе.

2.1.1.7.
/mnt/ Справочник

Каталог /mnt/ зарезервирован для временно смонтированных файловых систем, таких как смонтированные файловые системы NFS.Для всех съемных носителей используйте каталог /media/ . Автоматически обнаруженные съемные носители будут смонтированы в каталоге /media .

Каталог /mnt не должен использоваться программами установки.

2.1.1.8.
/opt/ Справочник

Каталог /opt/ обычно зарезервирован для программного обеспечения и дополнительных пакетов, которые не являются частью установки по умолчанию. Пакет, который устанавливается в /opt/ , создает каталог с его именем, например /opt/ имя пакета / .В большинстве случаев такие пакеты имеют предсказуемую структуру подкаталогов; большинство хранит свои двоичные файлы в /opt/ packagename /bin/ , а свои страницы man в /opt/ packagename /man/ .

2.1.1.9. Каталог
/proc/

Каталог /proc/ содержит специальные файлы, которые либо извлекают информацию из ядра, либо отправляют ему информацию. Примеры такой информации включают системную память, информацию о ЦП и конфигурацию оборудования.Дополнительные сведения о /proc/ см. в разделе 2.3, «Виртуальная файловая система /proc».

2.1.1.10. Каталог
/sbin/

В каталоге /sbin/ хранятся двоичные файлы, необходимые для загрузки, восстановления или восстановления системы. Двоичные файлы в /sbin/ требуют привилегий root для использования. Кроме того, /sbin/ содержит двоичные файлы, используемые системой до монтирования каталога /usr/; любые системные утилиты, используемые после монтирования /usr/, обычно помещаются в /usr/sbin/ .

Как минимум следующие программы должны храниться в /sbin/:

  • арп

  • часы

  • остановка

  • инициализация

  • фск.*

  • личинка

  • ифконфиг

  • мингетти

  • мкфс.*

  • мксвап

  • перезагрузка

  • маршрут

  • выключение

  • замена

  • обмен на

2.1.1.11.
/srv/ Каталог

Каталог /srv/ содержит специфические для сайта данные, обслуживаемые системой Red Hat Enterprise Linux.Этот каталог предоставляет пользователям расположение файлов данных для конкретной службы, такой как FTP, WWW или CVS. Данные, относящиеся только к конкретному пользователю, должны находиться в каталоге /home/.

Установка httpd по умолчанию использует /var/www/html для обслуживаемого контента.

2.1.1.12. Каталог
/sys/

Каталог /sys/ использует новую виртуальную файловую систему sysfs , специфичную для версии 2.6 ядро. Благодаря расширенной поддержке аппаратных устройств с возможностью горячей замены в ядре 2.6 каталог /sys/ содержит информацию, аналогичную той, что содержится в каталоге /proc/ , но отображает иерархическое представление информации об устройствах, характерных для устройств с горячей заменой.

2.1.1.13. Каталог
/usr/

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

/usr/bin

Этот каталог используется для двоичных файлов.

/USR/и т.д.

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

/usr/игры

В этом каталоге хранятся игры.

/usr/include

Этот каталог используется для файлов заголовков C.

/usr/kerberos

Этот каталог используется для двоичных файлов и файлов, связанных с Kerberos.

/usr/lib

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

/usr/lib64

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

/usr/libexec

Этот каталог содержит небольшие вспомогательные программы, вызываемые другими программами.

/usr/sbin

В этом каталоге хранятся двоичные файлы системного администрирования, не принадлежащие /sbin/.

/usr/доля

В этом каталоге хранятся файлы, не зависящие от архитектуры.

/usr/src

В этом каталоге хранится исходный код.

/usr/tmp связан с /var/tmp

В этом каталоге хранятся временные файлы.

Каталог /usr/ также должен содержать подкаталог /local/. Согласно FHS, этот подкаталог используется системным администратором при локальной установке программного обеспечения и должен быть защищен от перезаписи во время обновлений системы.Каталог /usr/local имеет структуру, аналогичную /usr/, и содержит следующие подкаталоги:

  • /USR/локальные/бен

  • /USR/локальные/и т.д.

  • /usr/местные/игры

  • /usr/local/включить

  • /USR/локальные/библиотека

  • /USR/локальные/libexec

  • /usr/местный/sbin

  • /usr/местный/доля

  • /USR/локальные/источник

Использование Red Hat Enterprise Linux /usr/local/ немного отличается от FHS.FHS утверждает, что /usr/local/ следует использовать для хранения программного обеспечения, которое должно быть защищено от обновлений системного программного обеспечения. Поскольку RPM Package Manager может безопасно выполнять обновления программного обеспечения, нет необходимости защищать файлы, сохраняя их в /usr/local/ .

Вместо этого Red Hat Enterprise Linux использует /usr/local/ для локального программного обеспечения. Например, если каталог /usr/ смонтирован как доступный только для чтения общий ресурс NFS с удаленного хоста, по-прежнему можно установить пакет или программу в каталог /usr/local/.

2.1.1.14. Каталог
/var/

Поскольку FHS требует, чтобы Linux монтировал /usr/ только для чтения, любые программы, которые записывают файлы журналов или нуждаются в каталогах spool/ или lock/, должны записывать их в каталог /var/. В FHS указано, что /var/ предназначен для переменных данных, которые включают каталоги и файлы буфера, данные журнала, временные и временные файлы.

Ниже приведены некоторые каталоги в каталоге /var/ в зависимости от того, что установлено в системе:

Файлы системного журнала, такие как messages и lastlog , находятся в каталоге /var/log/.Каталог /var/lib/rpm/ содержит системные базы данных RPM. Файлы блокировки находятся в каталоге /var/lock/, обычно в каталогах программы, использующей файл. В каталоге /var/spool/ есть подкаталоги, в которых хранятся файлы данных для некоторых программ. Эти подкаталоги могут включать:

  • /var/spool/at/

  • /var/spool/clientmqueue/

  • /var/spool/cron/

  • /вар/золотник/чашки/

  • /var/spool/exim/

  • /var/spool/lpd/

  • /var/спул/почта/

  • /var/spool/почтальон/

  • /var/spool/mqueue/

  • /var/спул/новости/

  • /вар/спул/постфикс/

  • /var/spool/repackage/

  • /var/spool/rwho/

  • /var/spool/самба/

  • /var/spool/squid/

  • /var/spool/squirrelmail/

  • /var/spool/up2date/

  • /var/spool/uucp/

  • /var/spool/uucppublic/

  • /var/spool/vbox/

Основы файловой системы

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

APFS — файловая система по умолчанию в macOS, iOS, watchOS и tvOS. APFS заменяет HFS+ в качестве файловой системы по умолчанию для iOS 10.3 и более поздних версий, а также macOS High Sierra и более поздних версий. macOS дополнительно поддерживает множество других форматов, как описано в разделе «Поддерживаемые файловые системы».

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

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

О файловой системе iOS

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

Стандартные каталоги iOS: местонахождение файлов

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

Эти каталоги контейнеров представляют собой основное представление файловой системы приложения. На рис. 1-1 показано представление каталога песочницы для приложения.

Рисунок 1-1   Приложение iOS, работающее в собственном каталоге песочницы

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

В Таблице 1-1 перечислены некоторые из наиболее важных подкаталогов внутри каталога песочницы и описано их предполагаемое использование. В этой таблице также описаны любые дополнительные ограничения доступа для каждого подкаталога и указано, выполняется ли резервное копирование содержимого каталога iTunes и iCloud.

Таблица 1-1 Обычно используемые каталоги IOS APP

каталог

Описание

AppName .приложение

Это пакет приложения. Этот каталог содержит приложение и все его ресурсы.

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

Содержимое этого каталога не резервируется iTunes или iCloud.Однако iTunes выполняет первоначальную синхронизацию любых приложений, приобретенных в App Store.

Документы/

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

Содержимое этого каталога резервируется iTunes и iCloud.

Документы/Входящие

Используйте этот каталог для доступа к файлам, которые ваше приложение было запрошено открыть внешними объектами.В частности, программа Mail помещает вложения электронной почты, связанные с вашим приложением, в этот каталог. Контроллеры взаимодействия с документом также могут размещать в нем файлы.

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

Содержимое этого каталога резервируется iTunes и iCloud.

Библиотека/

Это каталог верхнего уровня для любых файлов, не являющихся файлами данных пользователя.Обычно вы помещаете файлы в один из нескольких стандартных подкаталогов. Приложения iOS обычно используют подкаталоги Application Support и Caches ; однако вы можете создавать собственные подкаталоги.

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

Содержимое каталога Library (за исключением подкаталога Caches ) резервируется iTunes и iCloud.

Дополнительные сведения о каталоге библиотеки и его часто используемых подкаталогах см. в разделе «Каталог библиотеки, в котором хранятся файлы, относящиеся к приложениям».

tmp/

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

Содержимое этого каталога не резервируется iTunes или iCloud.

Приложение iOS может создавать дополнительные каталоги в каталогах Documents , Library и tmp . Вы можете сделать это, чтобы лучше организовать файлы в этих местах.

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

Куда вы должны поместить файлы своего приложения

Чтобы процессы синхронизации и резервного копирования на устройствах iOS не занимали много времени, будьте избирательны в отношении того, где вы размещаете файлы. Приложения, хранящие большие файлы, могут замедлить процесс резервного копирования в iTunes или iCloud. Эти приложения также могут потреблять большой объем доступного хранилища пользователя, что может побудить пользователя удалить приложение или отключить резервное копирование данных этого приложения в iCloud. Имея это в виду, вы должны хранить данные приложения в соответствии со следующими рекомендациями:

  • Поместите пользовательские данные в Documents/ .Пользовательские данные обычно включают в себя любые файлы, которые вы, возможно, захотите предоставить пользователю — все, что вы, возможно, захотите, чтобы пользователь создал, импортировал, удалил или отредактировал. Для приложения для рисования пользовательские данные включают в себя любые графические файлы, которые может создать пользователь. Для текстового редактора он включает текстовые файлы. Видео- и аудиоприложения могут даже включать файлы, которые пользователь загрузил для просмотра или прослушивания позже.

  • Поместите файлы поддержки, созданные приложением, в каталог Library/Application support/. Как правило, этот каталог содержит файлы, которые приложение использует для запуска, но которые должны оставаться скрытыми от пользователя.Этот каталог также может включать файлы данных, файлы конфигурации, шаблоны и модифицированные версии ресурсов, загружаемых из комплекта приложений.

  • Помните, что файлы в Documents/ и Application Support/ резервируются по умолчанию. Вы можете исключить файлы из резервной копии, вызвав -[NSURL setResourceValue:forKey:error:] с помощью ключа NSURLIsExcludedFromBackupKey . Любой файл, который можно воссоздать или загрузить, должен быть исключен из резервной копии.Это особенно важно для больших медиафайлов. Если ваше приложение загружает видео- или аудиофайлы, убедитесь, что они не включены в резервную копию.

  • Поместите временные данные в каталог tmp/. К временным данным относятся любые данные, которые вам не нужно сохранять в течение длительного периода времени. Не забудьте удалить эти файлы, когда вы закончите с ними, чтобы они не продолжали занимать место на устройстве пользователя. Система будет периодически удалять эти файлы, когда ваше приложение не запущено; поэтому вы не можете полагаться на то, что эти файлы сохранятся после завершения работы вашего приложения.

  • Поместите файлы кэша данных в каталог Library/Caches/. Данные кэша можно использовать для любых данных, которые должны храниться дольше, чем временные данные, но не так долго, как файл поддержки. Вообще говоря, приложению не требуются данные кэша для правильной работы, но оно может использовать данные кэша для повышения производительности. Примеры данных кеша включают (но не ограничиваются) файлы кеша базы данных и временный загружаемый контент. Обратите внимание, что система может удалить каталог Caches/, чтобы освободить место на диске, поэтому ваше приложение должно иметь возможность повторно создавать или загружать эти файлы по мере необходимости.

О файловой системе macOS

Файловая система macOS предназначена для компьютеров Mac, где и пользователи, и программное обеспечение имеют доступ к файловой системе. Пользователи получают доступ к файловой системе напрямую через Finder, который представляет ориентированное на пользователя представление файловой системы, скрывая или переименовывая некоторые файлы и каталоги. Приложения получают доступ к файловой системе с помощью системных интерфейсов, которые отображают всю файловую систему точно так, как она отображается на диске.

Домены определяют размещение файлов

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

  • Пользовательский домен содержит ресурсы, специфичные для пользователей, которые входят в систему. Хотя технически он охватывает всех пользователей, этот домен отражает только домашний каталог текущего пользователя во время выполнения.Домашние каталоги пользователей могут находиться на загрузочном томе компьютера (в каталоге /Users ) или на сетевом томе. Каждый пользователь (независимо от привилегий) имеет доступ и контроль над файлами в своем домашнем каталоге.

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

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

  • Системный домен содержит системное программное обеспечение, установленное Apple.Ресурсы в системном домене требуются системе для работы. Пользователи не могут добавлять, удалять или изменять элементы в этом домене.

На рис. 1-2 показано, как локальный, системный и пользовательский домены сопоставляются с локальной файловой системой установки macOS. (Сетевой домен не показан, но во многом похож на локальный домен.) На этом рисунке показаны видимые каталоги, которые может видеть пользователь. В зависимости от системы пользователя другие каталоги могут быть видны или некоторые из показанных здесь могут быть скрыты.

Рисунок 1-2   Локальная файловая система macOS

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

Стандартные каталоги macOS: местонахождение файлов

Независимо от того, предоставлены ли они системой или созданы вашим приложением, каждый файл имеет свое место в macOS.В Табл. 1-2 перечислены некоторые каталоги верхнего уровня в установке macOS и типы содержимого, которое содержится в каждом из них.

Таблица 1-2 Обычно используемые каталоги в Macos

каталог

8

0

Этот каталог находится в том случае, если вы устанавливаете приложения, предназначенные для использования всеми пользователей компьютера. App Store автоматически устанавливает приложения, купленные пользователем, в этот каталог.

Подкаталог Utilities содержит подмножество приложений, предназначенных для использования при управлении локальной системой.

Этот каталог является частью локального домена.

Библиотека

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

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

/Network

Этот каталог содержит список компьютеров в локальной сети.

Нет гарантии, что файлы, расположенные на сетевых файловых серверах, будут иметь каталог /Network в начале своего пути. Имена путей различаются в зависимости от нескольких факторов, в том числе от того, как был смонтирован сетевой том.Например, если пользователь использует команду «Подключиться к серверу» для подключения тома, пути начинаются с каталога /Volumes . При написании кода предполагайте, что файлы на любом томе, кроме загрузочного тома, могут быть расположены на сетевом сервере.

/System

Этот каталог содержит системные ресурсы, необходимые для работы macOS. Эти ресурсы предоставляются Apple и не должны изменяться.

Этот каталог содержит содержимое системного домена.

/Users

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

  • Приложения — Содержит пользовательские приложения.

  • Рабочий стол — Содержит элементы на рабочем столе пользователя.

  • Документы — Содержит пользовательские документы и файлы.

  • Загрузки — Содержит файлы, загруженные из Интернета.

  • Библиотека — содержит пользовательские файлы приложений (скрыты в macOS 10.7 и более поздних версиях).

  • Фильмы — Содержит видеофайлы пользователя.

  • Музыка — Содержит музыкальные файлы пользователя.

  • Картинки — Содержит фотографии пользователя.

  • Общедоступный — Содержит контент, которым пользователь хочет поделиться.

  • Сайты — Содержит веб-страницы, используемые личным сайтом пользователя. (Для отображения этих страниц необходимо включить общий доступ в Интернете.)

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

Из подкаталогов только Публичный каталог доступен другим пользователям системы. Доступ к другим каталогам по умолчанию ограничен.

Важно:  Файлы в каталогах пользователя Documents и Desktop должны отражать только те документы, которые пользователь создал и с которыми работает напрямую. Точно так же каталоги мультимедиа должны содержать только файлы мультимедиа пользователя. Эти каталоги никогда не должны использоваться для хранения файлов данных, которые ваше приложение создает и которыми управляет автоматически.Если вам нужно место для хранения автоматически сгенерированных файлов, используйте каталог Library , предназначенный специально для этой цели. Информацию о том, куда поместить файлы в каталог библиотеки, см. в разделе «Каталог библиотеки, в котором хранятся файлы, относящиеся к приложениям».

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

Контейнеры файлов приложений macOS в песочнице

Приложения macOS, находящиеся в песочнице, имеют все свои Поддержка приложений , Кэш , временные каталоги и другие связанные документы, хранящиеся в каталоге, расположенном по системному пути, который можно получить, вызвав Функция NSHomeDirectory .

Для получения дополнительной информации см. App Sandbox Design Guide .

Скрытые файлы и каталоги: упрощение работы пользователя

Чтобы упростить работу пользователей, Finder и некоторые специальные пользовательские интерфейсы (например, панели «Открыть» и «Сохранить») скрывают многие файлы и каталоги, которые пользователь никогда не должен должны использовать.Многие из скрытых элементов являются специфическими для системы или приложения ресурсами, к которым пользователи не могут (или не должны) обращаться напрямую. Среди скрытых файлов и каталогов следующие:

  • Точечные каталоги и файлы. Любой файл или каталог, имя которого начинается с символа точки ( . ), автоматически скрывается. Это соглашение взято из UNIX, которая использовала его для сокрытия системных сценариев и других специальных типов файлов и каталогов. Два специальных каталога в этой категории — . и .. каталоги, которые являются ссылками на текущий и родительский каталоги соответственно.

  • Каталоги для UNIX. Каталоги этой категории унаследованы от традиционных установок UNIX. Они являются важной частью уровня BSD системы, но более полезны для разработчиков программного обеспечения, чем для конечных пользователей. Некоторые из наиболее важных скрытых каталогов включают:

    • /bin — Содержит необходимые двоичные файлы командной строки.Обычно эти двоичные файлы выполняются из сценариев командной строки.

    • /dev — Содержит основные файлы устройств, такие как точки подключения для подключенного оборудования.

    • /etc — Содержит файлы конфигурации для конкретного хоста.

    • /sbin — Содержит основные двоичные файлы системы.

    • /tmp — Содержит временные файлы, созданные приложениями и системой.

    • /usr — Содержит несущественные двоичные файлы командной строки, библиотеки, заголовочные файлы и другие данные.

    • /var — Содержит файлы журналов и другие файлы с переменным содержимым. (Файлы журнала обычно просматриваются с помощью консольного приложения.)

  • Явно скрытые файлы и каталоги. Finder может скрывать определенные файлы или каталоги, к которым пользователь не должен обращаться напрямую. Наиболее ярким примером этого является каталог /Volumes , который содержит подкаталог для каждого подключенного диска в локальной файловой системе из командной строки.(Finder предоставляет другой пользовательский интерфейс для доступа к локальным дискам.) В macOS 10.7 и более поздних версиях Finder также скрывает каталог ~/Library , то есть каталог Library , расположенный в домашнем каталоге пользователя.

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

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

Файлы и каталоги могут иметь альтернативные имена

В некоторых ситуациях Finder предоставляет пользователям имена файлов или каталогов, которые не имеют соответствуют фактическим именам, как они появляются в файловой системе. Эти имена известны как отображаемые имена и используются только Finder и определенными системными компонентами (например, панелями «Открыть» и «Сохранить») при представлении пользователю информации о файлах и каталогах.Отображаемые имена улучшают взаимодействие с пользователем, представляя пользователю контент в более удобной форме. Например, macOS использует отображаемые имена в следующих случаях:

  • Локализованные имена. Система предоставляет локализованные имена для многих системных каталогов, таких как Приложения , Библиотека , Музыка , Фильмы . Аналогичным образом приложение может предоставлять локализованные имена для себя и для любых каталогов, которые оно создает.

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

Отображаемые имена не влияют на фактическое имя файла в файловой системе. Код, который обращается к файлу или каталогу программным путем, должен указывать фактическое имя элемента при открытии элемента или манипулировании им с использованием интерфейсов файловой системы.Единственное время, когда ваше приложение должно использовать отображаемые имена, — это отображение имени файла или каталога пользователю. Вы можете получить отображаемое имя для любого файла или каталога, используя метод displayNameAtPath: NSFileManager .

Важно:  Ваш код не должен позволять пользователям напрямую изменять отображаемые имена. Если вы хотите, чтобы пользователь указал имя файла, используйте панель «Сохранить».

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

В каталоге библиотеки хранятся файлы, относящиеся к приложениям

Каталог библиотеки — это место, где приложения и другие модули кода хранят свои пользовательские файлы данных. Независимо от того, пишете ли вы код для iOS или macOS, важно понимать структуру каталога Library . Вы используете этот каталог для хранения файлов данных, кешей, ресурсов, настроек и даже пользовательских данных в некоторых конкретных ситуациях.

В системе существует несколько каталогов Библиотека , но только некоторые из них должны быть доступны вашему коду:

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

  • /Library (только macOS) — приложения, которые совместно используют ресурсы между пользователями, хранят эти ресурсы в этой версии каталога Library . Приложениям в песочнице не разрешено использовать этот каталог.

  • /System/Library (только для macOS) — этот каталог зарезервирован для использования Apple.

После выбора используемой версии каталога библиотеки вам все равно нужно знать, где хранить файлы. Сам каталог библиотеки содержит несколько подкаталогов, которые подразделяют содержимое конкретного приложения на несколько хорошо известных категорий.В Таблице 1-3 перечислены наиболее распространенные подкаталоги, которые вы можете использовать. Хотя каталоги библиотеки в macOS содержат намного больше подкаталогов, чем перечисленные, большинство из них используются только системой. Однако, если вам нужен более полный список подкаталогов, см. раздел Сведения о каталоге библиотеки macOS.

Таблица 1-3 ключевых подкаталогов библиотеки каталог

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

Весь контент в этом каталоге должен быть помещен в настраиваемый подкаталог, имя которого совпадает с идентификатором пакета вашего приложения или вашей компании.

В iOS содержимое этого каталога резервируется iTunes и iCloud.

Кэши

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

В iOS 2.2 и более поздних версиях содержимое этого каталога не резервируется iTunes или iCloud.Кроме того, система удаляет файлы в этом каталоге при полном восстановлении устройства.

В iOS 5.0 и более поздних версиях система может удалить каталог Caches в редких случаях, когда в системе очень мало места на диске. Это никогда не произойдет во время работы приложения. Однако имейте в виду, что восстановление из резервной копии не обязательно является единственным условием, при котором можно стереть каталог Caches.

Фреймворки

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

В iOS приложения не могут устанавливать пользовательские платформы.

Настройки

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

В iOS содержимое этого каталога резервируется iTunes и iCloud.

Контейнер хранилища файлов iCloud

iCloud предоставляет структурированную систему для хранения файлов для приложений, использующих iCloud:

  • Приложения имеют основной каталог контейнера iCloud для хранения собственных файлов. Они также могут получить доступ к вторичным каталогам контейнеров iCloud, указанным в их правах на приложения.

  • Внутри каждого каталога контейнера файлы разделены на «документы» и данные. Каждый файл или пакет файлов, расположенный в подкаталоге Documents (или одном из его подкаталогов), представляется пользователю (через пользовательский интерфейс iCloud в macOS и iOS) как отдельный документ, который можно удалить по отдельности.Все, что отсутствует в Documents или в одном из его подкаталогов, обрабатывается как данные и отображается как одна запись в пользовательском интерфейсе iCloud.

Документы, которые пользователь создает и просматривает в пользовательском интерфейсе приложения, например браузеры документов в Pages, Numbers и Keynote, должны храниться в каталоге Documents . Другим примером файлов, которые могут находиться в каталоге Documents , являются сохраненные игры, опять же потому, что они представляют собой то, что приложение потенциально может предоставить какой-то метод для выбора.

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

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

Контейнеры iCloud также позволяют хранить пары «ключ-значение», к которым можно легко получить доступ без необходимости создавать формат документа.

Как система определяет тип содержимого в файле

Существует два основных метода определения типа содержимого в файле: иметь «тип». UTI предоставляют согласованные идентификаторы для данных, которые все приложения и службы могут распознавать и на которые могут полагаться.Кроме того, они более гибкие, чем большинство других методов, поскольку их можно использовать для представления любых типов данных, а не только файлов и каталогов. Примеры UTI включают:

  • public.text — Общедоступный тип, идентифицирующий текстовые данные.

  • public.jpeg — Общедоступный тип, идентифицирующий данные изображения JPEG.

  • com.apple.bundle — тип Apple, который идентифицирует каталог пакета.

  • ком.apple.application-bundle — тип Apple, который идентифицирует связанное приложение.

Всякий раз, когда доступен интерфейс на основе UTI для указания типов файлов, вы должны предпочесть этот интерфейс всем другим. Многие интерфейсы macOS позволяют указывать идентификаторы UTI, соответствующие файлам или каталогам, с которыми вы хотите работать. Например, на панели «Открыть» вы можете использовать UTI в качестве файловых фильтров и ограничить типы файлов, которые выбирает пользователь, теми, которые может обрабатывать ваше приложение. Несколько классов AppKit, включая NSDocument , NSPasteboard и NSImage , поддерживают UTI.В iOS UTI используются только для указания типов картона.

Одним из способов, которым система определяет UTI для данного файла, является просмотр его расширения имени файла. Расширение имени файла — это строка символов, добавленная в конец файла и отделенная от основного имени файла точкой. Каждая уникальная строка символов идентифицирует файл определенного типа. Например, расширение .strings идентифицирует файл ресурсов с локализуемыми строковыми данными, в то время как расширение .Расширение png идентифицирует файл с данными изображения в формате переносимой сетевой графики.

Примечание:  Поскольку символы точки являются допустимыми символами в именах файлов macOS и iOS, только символы после последней точки в имени файла считаются частью расширения имени файла. Все, что находится слева от последней точки, считается частью самого имени файла.

Если ваше приложение определяет пользовательские форматы файлов, вы должны зарегистрировать эти форматы и любые связанные расширения имен файлов в вашем приложении Info.файл plist . Ключ CFBundleDocumentTypes указывает форматы файлов, которые ваше приложение распознает и может открывать. Записи для любых пользовательских форматов файлов должны включать как расширение имени файла, так и UTI, соответствующие содержимому файла. Система использует эту информацию для направления файлов соответствующего типа в ваше приложение.

Дополнительные сведения об идентификаторах UTI и их использовании см. в разделе Обзор унифицированных идентификаторов типов . Дополнительные сведения о ключе CFBundleDocumentTypes см. в разделе Справочник по ключу списка свойств информации .

Безопасность: защита создаваемых файлов

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

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

Песочницы ограничивают распространение повреждений

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

Разработчикам, пишущим приложения для macOS 10.7 и более поздних версий, рекомендуется помещать свои приложения в изолированные программные среды для повышения безопасности.Разработчикам приложений для iOS не нужно явно помещать свое приложение в песочницу, поскольку система делает это за них автоматически во время установки.

Для получения дополнительной информации о песочницах и типах ограничений, которые они налагают на доступ к файловой системе, см. Руководство по программированию приложений для Mac и Руководство по проектированию песочниц .

Разрешения и списки управления доступом управляют всем доступом к файлам

Доступ к файлам и каталогам регулируется сочетанием списков управления доступом (ACL) и разрешений BSD.Списки управления доступом — это набор элементов управления, которые точно определяют, что можно и что нельзя делать с файлом или каталогом и кем. С помощью списков управления доступом вы можете предоставлять отдельным пользователям разные уровни доступа к данному файлу или каталогу. Напротив, разрешения BSD позволяют вам предоставлять доступ только трем классам пользователей: владельцу файла, одной указанной вами группе пользователей и всем пользователям. См. Обзор безопасности для получения дополнительной информации.

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

Поскольку приложения iOS всегда работают в изолированной программной среде, система назначает определенные списки управления доступом и разрешения для файлов, созданных каждым приложением. Однако приложения macOS могут использовать Identity Services для управления списками контроля доступа к файлам, к которым у них есть доступ. Сведения об использовании Identity Services (и инфраструктуры совместной работы) см. в документе Identity Services Programming Guide .

Файлы могут быть зашифрованы на диске

И macOS, и iOS поддерживают шифрование файлов на диске:

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

  • macOS. Пользователи могут зашифровать содержимое тома с помощью приложения «Дисковая утилита». (Они также могут зашифровать только загрузочный том из системных настроек «Безопасность и конфиденциальность».) Содержимое зашифрованного диска доступно приложениям только во время работы компьютера. Когда пользователь переводит компьютер в спящий режим или выключает его, ключи дешифрования уничтожаются, чтобы предотвратить несанкционированный доступ к содержимому диска.

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

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

Синхронизация обеспечивает надежность вашего кода, связанного с файлами

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

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

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

Поскольку операции, связанные с файлами, включают взаимодействие с жестким диском и, следовательно, выполняются медленно по сравнению с большинством других операций, связанные интерфейсы в iOS и macOS разработаны с учетом параллелизма. Некоторые технологии включают в себя асинхронные операции, а большинство других могут безопасно выполняться из диспетчерской очереди или вторичного потока.В таблице 1-4 перечислены некоторые из ключевых технологий, обсуждаемых в этом документе, и указано, безопасно ли их использование в определенных потоках или в любом потоке. Конкретную информацию о возможностях любого интерфейса см. в справочной документации по этому интерфейсу.

Таблица 1-4 Тема безопасности ключевых классов и технологий

Notes

NSFilemanager

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

Grand Central Dispatch

GCD безопасно использовать из любой нити. Тем не менее, вы по-прежнему несете ответственность за написание своих блоков таким образом, чтобы они были потокобезопасными.

NSFileHandle , NSData , потоки Cocoa

Большинство объектов Foundation, которые вы используете для чтения и записи файловых данных, могут использоваться из любого отдельного потока, но не должны использоваться.

Панели «Открыть» и «Сохранить»

Поскольку они являются частью вашего пользовательского интерфейса, вы всегда должны открывать и управлять панелями «Открыть» и «Сохранить» из основного потока вашего приложения.

Подпрограммы POSIX

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

NSURL и NSString

Неизменяемые объекты, используемые для указания путей, безопасны для использования в любом потоке. Поскольку они неизменяемы, вы также можете ссылаться на них из нескольких потоков одновременно.Разумеется, изменяемые версии этих объектов следует использовать только в одном потоке за раз.

NSEnumerator и его подклассы

Объекты перечислителя безопасны для использования в любом отдельном потоке, но не должны использоваться в нескольких потоках одновременно.

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


.

Организация данных | Кооператив данных

Организация данных

Имя каталога, папки и файла

В первую очередь нужно подумать: как я хочу организовать свои данные? Есть ряд вопросов, которые вам следует рассмотреть:

  • Существуют ли в вашей дисциплине соглашения об именах файлов?
  • Какую структуру каталогов и соглашения об именах файлов использовать?
  • Контроль версий — записывайте каждое изменение в файл, независимо от его размера.
    • Рассмотрите возможность использования программного обеспечения для контроля версий
    • Отбрасывать устаревшие версии, но не сырую копию

Помните о следующих передовых практиках :

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

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

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

Предлагаемые структуры папок  

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

Базовые проекты
Один или два сценария обработки данных, простой конвейер с несколькими шагами

.
├──  InputData  <-  Папка , содержащая данные, которые будут обработаны
├──  OutputData  <-  Папка , содержащая обработанные данные
├──  Рисунки  <-  Папка , содержащая рисунки или таблицы, обобщающие результаты
├──  Код  <-  Папка  скрипты или программы для проведения анализа
├──  ЛИЦЕНЗИЯ  <-  Файл , поясняющий условия предоставления данных/кода
├──  README.txt  <-  Файл , документирующий анализ и (в идеале) назначение каждого файла.
 

Расширенные проекты
Множество видов входных данных, документации и кода.

Эта структура может быть сгенерирована и заполнена автоматически с помощью шаблона Reproducible Science для Cookiecutter.

.
├──  AUTHORS.md  <-  Файл:   Список людей, внесших свой вклад в проект (формат Markdown)
├──  LICENSE  <-  Файл:   Простой текстовый файл, поясняющий условия использования/лицензии файла данных/кода (CC-By, MIT, GNU и т. д.)
├──  README.md  <-  Файл:   Файл Readme (формат Markdown)
├──  bin  <-  Папка : здесь может храниться скомпилированный код модели (git не отслеживается)
├──  config  <-  Папка:  Файлы конфигурации, например, для doxygen или для вашей модели, если необходимо
├──  data  <-  Папка:  Данные для этого проекта
│ ├──  внешний  <-  Папка:  Данные из сторонних источников.│ ├──  промежуточный  <-  Папка:  Промежуточные данные, которые были преобразованы.
│ ├──  обработано  <-  Папка:  Окончательный, канонический набор данных для моделирования.
│ └──  raw  <-  Папка:  Исходный неизменяемый дамп данных.
├──  docs  <-  Папка:  Документация, например, doxygen или научные статьи (не отслеживаемые git)
├──  ноутбуков  <-  Папка:  ноутбуков Ipython или R
├──  отчеты  <-  Папка:  Источник рукописи, e.g., LaTeX, Markdown и т. д. или любые отчеты по проектам
│   └──  рисунков  <-  Папка:  Рисунки для рукописи или отчетов
└──  src  <-  Папка:  Исходный код для этого проекта
    ├──  data  <-  Папка:  скрипты и программы для обработки данных
    ├──  external  <-  Папка:  Любой внешний исходный код, например, другие проекты или внешние библиотеки
    ├──  моделей  <-  Папка:  Исходный код для вашей собственной модели
    ├──  tools  <-  Папка:  Все вспомогательные скрипты идут сюда
    └──  визуализация  <-  Папка:  Скрипты визуализации, т.е.g., matplotlib, ggplot2, связанные 

Форматы файлов

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

Форматы, которые, скорее всего, будут доступны в будущем, включают:

  • Непатентованные, не привязанные к конкретному программному продукту
  • Не зашифровано
  • Несжатый
  • Общий, используется исследовательским сообществом
  • Стандартное представление, например ASCII, Unicode
  • Открытый документированный стандарт

Примеры предпочтительных форматов:

  • PDF/A, не Word
  • ASCII, а не Excel
  • MPEG-4, а не Quicktime
  • TIFF или JPEG2000, а не GIF или JPEG
  • XML или RDF, а не RDBMS

Организация проекта и управление им

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

Аспект проекта Пример инструментов Примечания
Общая организация и сотрудничество
  • OSF
  • Слияние
  • Слэк, Хипчат
  • GitHub, Google Диск, Box, Office 365 и т. д.

OSF может объединять множество сервисов. Примеры того, как OSF можно использовать для организации лаборатории:

Традиционное управление проектами
  • Асана
  • Трелло
  • Базовый лагерь, Фридкемп
  • Teamwork.com
  • Понятие.so
Календари, списки дел, канбан-доски, диаграммы Ганта и т. д. Существуют предложения с открытым исходным кодом, однако многие из часто используемых инструментов являются платными или бесплатными.
Отслеживание ошибок, проблем, времени Некоторые из них, такие как Тайга, ориентированы на Agile-разработку, но их можно использовать для любого проекта.
Стандартные операционные процедуры (СОП)
  • Стандартные текстовые процессоры или электронные таблицы
  • OSF
  • Протоколы.io

Разработка СОП для проектов или исследовательских групп является важным шагом для поддержания организации и обеспечения чистой передачи, воспроизводимости исследований и архивирования проектов.Аспекты включают

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

В идеале СОП являются частью реализации Плана управления данными.См. пример SOP от исследователя UA в OSF.

Отслеживание экспериментов, организация

Электронные лабораторные записные книжки (ELN)

ELN могут быть полезным инструментом для управления проектами и лабораториями. На рынке существует большое количество ELN, от открытых до облачных. Гарвардская медицинская школа ведет полный список, сравнивая более 50 функций в 27 ELN. OSF также может использоваться как ELN. См. этот шаблон из Университета Джона Хопкинса.
     

Что такое файловая система?

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

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

Файловые системы могут различаться в разных операционных системах (ОС), таких как Microsoft Windows, macOS и системы на базе Linux. Некоторые файловые системы предназначены для конкретных приложений. Основные типы файловых систем включают распределенные файловые системы, дисковые файловые системы и файловые системы специального назначения.

Как работают файловые системы

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

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

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

Пример диаграммы дерева файлов

Файловая система также включает формат для указания пути к файлу через структуру каталогов. Файл помещается в каталог — или папку в ОС Windows — или подкаталог в желаемом месте в древовидной структуре. ПК и мобильные ОС имеют файловые системы, в которых файлы размещаются где-то в иерархической древовидной структуре.

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

Файловые системы и роль метаданных

Файловые системы используют метаданные для хранения и извлечения файлов. Примеры тегов метаданных включают:

  • Дата создания
  • Дата изменения
  • Последняя дата доступа
  • Последняя резервная копия
  • Идентификатор пользователя создателя файла
  • Права доступа
  • Размер файла

Метаданные хранятся отдельно от содержимого файла, при этом многие файловые системы хранят имена файлов в отдельных записях каталога.Некоторые метаданные могут храниться в каталоге, тогда как другие метаданные могут храниться в структуре, называемой инодом.

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

Примером файловой системы, использующей метаданные, является OS X, используемая Apple. Он позволяет использовать ряд функций оптимизации, включая имена файлов, которые могут растягиваться до 255 символов.

Доступ к файловой системе

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

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

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

Типы файловых систем

Существует несколько типов файловых систем с различной логической структурой и свойствами, такими как скорость и размер.Тип файловой системы может различаться в зависимости от ОС и потребностей этой ОС. Тремя наиболее распространенными операционными системами для ПК являются Microsoft Windows, Mac OS X и Linux. Мобильные ОС включают Apple iOS и Google Android.

К основным файловым системам относятся следующие:

Таблица размещения файлов ( FAT ) поддерживается ОС Microsoft Windows. FAT считается простой и надежной системой, созданной по образцу устаревших файловых систем. FAT была разработана в 1977 году для гибких дисков, но позже была адаптирована для жестких дисков.Хотя FAT эффективна и совместима с большинством современных операционных систем, она не может сравниться по производительности и масштабируемости с более современными файловыми системами.

Глобальная файловая система (GFS) — это файловая система для ОС Linux и файловая система с общим диском. GFS предлагает прямой доступ к общему блочному хранилищу и может использоваться как локальная файловая система.

GFS2 — это обновленная версия с функциями, отсутствующими в исходной GFS, такими как обновленная система метаданных. По условиям Стандартной общественной лицензии GNU файловые системы GFS и GFS2 доступны как бесплатное программное обеспечение.

Иерархическая файловая система (HFS) была разработана для использования с операционными системами Mac. HFS также может называться Mac OS Standard, и на смену ему пришла Mac OS Extended. Первоначально представленная в 1985 году для гибких и жестких дисков, HFS заменила исходную файловую систему Macintosh. Его также можно использовать на компакт-дисках.

Файловая система NT, также известная как файловая система новой технологии ( NTFS ) , является файловой системой по умолчанию для продуктов Windows, начиная с Windows NT 3.1 ОС и далее. Улучшения по сравнению с предыдущей файловой системой FAT включают лучшую поддержку метаданных, производительность и использование дискового пространства. NTFS также поддерживается в ОС Linux с помощью бесплатного драйвера NTFS с открытым исходным кодом. Mac OS поддерживает NTFS только для чтения.

Универсальный формат диска ( UDF ) — это файловая система, не зависящая от поставщика и используемая на оптических носителях и DVD-дисках. UDF заменяет файловую систему ISO 9660 и является официальной файловой системой для DVD-видео и аудио, выбранной DVD Forum.

Файловая система и СУБД

Подобно файловой системе, система управления базами данных (СУБД) эффективно хранит данные, которые можно обновлять и извлекать. Однако они не взаимозаменяемы. В то время как файловая система хранит неструктурированные, часто несвязанные файлы, СУБД используется для хранения и управления структурированными связанными данными.

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

Централизованная структура СУБД упрощает совместное использование файлов по сравнению с файловой системой и предотвращает аномалии, которые могут возникнуть при внесении отдельных изменений в файлы в файловой системе.

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

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

Определение файловых систем развивается

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

Термин файловая система также может относиться к части операционной системы или дополнительной программы, которая поддерживает файловую систему. Примеры таких дополнительных файловых систем включают сетевую файловую систему (NFS) и файловую систему Эндрю (AFS).

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

Структура каталогов  | Облачные API  | Облако Google

Службы API

обычно используют файлы .proto для определения поверхности API и .yaml файлов для настройки службы API. Каждая служба API должна иметь каталог API внутри репозитория API. Каталог API должен содержит все файлы определения API и скрипты сборки.

Каждый каталог API должен иметь следующий стандартный макет:

  • Каталог API

    • Требования к репозиторию

      • СБОРКА — Файл сборки.
      • МЕТАДАННЫЕ — Файл метаданных сборки.
      • ВЛАДЕЛЬЦЫ — Владельцы каталога API.
      • README.md — Общая информация о сервисе API.
    • Файлы конфигурации

      • {service}.yaml — базовый файл конфигурации службы, который является YAML-представление прото-сообщения google.api.Service .
      • prod.yaml — файл конфигурации дельта-сервиса prod.
      • staging.yaml — файл конфигурации промежуточной дельта-службы.
      • test.yaml — файл конфигурации тестовой дельта-службы.
      • local.yaml — файл конфигурации локальной дельта-службы.
    • Файлы документации

      • doc/* — Файлы технической документации. Они должны быть в Формат уценки.
    • Определения интерфейса

      • v[0-9]*/* — Каждый такой каталог содержит основную версию API, в основном прото-файлы и скрипты сборки.
      • {subapi}/v[0-9]*/* — Каждый каталог {subapi} содержит интерфейс определение вспомогательного API. Каждый суб-API может иметь свой собственный независимая основная версия.
      • type/* — прото файлы, содержащие типы, которые являются общими для разные API, разные версии одного и того же API или между реализация API и сервиса. Определения типов по типу /* не должен иметь критических изменений после выпуска .

Общедоступные определения API Google опубликованы на GitHub, см. Репозиторий Google API.Подробнее структуры каталогов см.

Добавить комментарий

Ваш адрес email не будет опубликован.