Управление файлами, типы файлов, файловая система, атрибуты файла. Создаем точку доступа с Virtual Router. Контрольные вопросы и задания

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

Содержание:

Какие файлы считаются системными

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

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

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

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

Говоря техническим языком, системные файлы «Windows» – это любые файлы с включенным скрытым системным атрибутом. Их диапазон варьируется от аппаратных драйверов, конфигурационных файлов, библиотек динамической компоновки «DLL» до различных наборов файлов, составляющих реестр операционной системы «Windows» .

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

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

Где хранятся системные файлы

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

По правде говоря, системные файлы могут храниться во многих местах на вашем персональном компьютере. Например, корневая папка вашего системного диска («C:\» ) содержит системные файлы, такие как файл вашей страницы («pagefile.sys» ) и файл гибернации («hiberfil.sys» ).

Большинство системных файлов операционной системы «Windows» хранятся в папке «C:\Windows» , особенно в таких подпапках, как «/System32» и «/SysWOW64» . Но вы также найдете системные файлы, которые расположены в папке пользователя (например, папка «AppData» ) и папках приложений (например, папка «ProgramData» или папка «Program Files» ).

Как отобразить скрытые системные файлы в «Windows»

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

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

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


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

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


Что произойдет, если системные файлы будут повреждены

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

Если вы подозреваете, что некоторые системные файлы повреждены или отсутствуют, то в операционной системе существует несколько встроенных системных инструментов, которые могут вам помочь. Средство проверки системных файлов («SFC» ) сканирует системные файлы «Windows» и может заменить любые отсутствующие или поврежденные файлы, обнаруженные в результате проверки. Команда обслуживания и управления образами «Windows» («DISM» ) может использоваться для устранения основных проблем, которые мешают средству проверки «SFC» выполнять свою работу. Используя их вместе, вы будете иметь возможность успешно восстанавливать отсутствующие или поврежденные системные файлы.

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

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

1 способ : Откройте проводник файлов «Windows» «Этот компьютер» , затем перейдите в системную папку «C:/» . Откройте вложенную папку «Windows» и перейдите в подпапку «System32» . Опустите бегунок полосы прокрутки вниз и найдите файл «cmd.exe» . Щелкните по нему правой кнопкой мыши и откройте всплывающее контекстное меню. В списке возможных действий выберите раздел .


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


3 способ : Нажмите на «Панели задач» кнопку «Поиск» , расположенную рядом с кнопкой «Пуск» , и откройте поисковую панель. В поле поискового запроса введите фразы «командная» или «cmd» . В разделе «Лучшее соответствие» система выдаст вам искомый результат «Командная строка» . Щелкните по нему правой кнопкой мыши и, во всплывающем меню, выберите раздел «Запуск от имени администратора» .

Во всплывающем сообщении службы контроля учетных записей «Windows» на вопрос: «Разрешить этому приложению вносить изменения на вашем устройстве?» – нажмите кнопку «Да» , и командная строка с правами администратора будет открыта.

Введите в окне командной строки исполняемую команду для запуска средства проверки системных файлов операционной системы «Windows» .


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


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

Управление файлами и каталогами

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

  • права собственности и правах доступа;
  • просмотр каталогов;
  • смена рабочего каталога;
  • постраничный просмотр вывода;
  • объединение файлов;
  • корректировка атрибутов файла;
  • вывод текста на экран;
  • создание и удаление каталогов;
  • создание и удаление ссылок;
  • копирование и перемещение файлов.

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

сd– смена рабочего каталога;

ls– просмотр каталогов и информации о файлах;

chown– изменение владельца;

chgrp– изменение группы;

chmod– установка и изменение прав доступа;

ln– создание ссылок;

less, more– управление постраничным выводом;

cat– объединение файлов;

touch– изменение временных атрибутов файла;

echo– вывод текста на экран;

mkdir– создание каталога;

rmdir– удаление каталога;

cp– копирование файлов;

mv– перемещение файлов;

pwd– показывает текущую директорию;

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

В MOPSLinux файлами и каталогами можно управлять с помощью командного менеджера mc.

Права собственности

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

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

Владельца файла можно изменить с помощью утилиты chown(1) (от англ. change owner - сменить владельца), а группу при помощи утилиты chgrp (от англ. change group - изменить группу). Чтобы изменить владельца файла на daemon, необходимо выполнить команду:

# chown daemon /usr/bin/wc

А чтобы изменить группу на root:

# chgrp root /usr/bin/wc

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

# chown daemon.root /usr/bin/wc

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

Права доступа

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

Права доступа хранятся в виде четырех восьмеричных чисел, каждое из которых устанавливает права для отдельного блока. Три блока представляют права владельца, права группы и права всех остальных пользователей. Четвертое восьмеричное число используется для хранения специальной информации, такой как идентификатор (ID) владельца, ID группы и "sticky"-бит. Значения этих чисел соответствуют правам доступа, им также сопоставляются буквы, которые выводятся такими утилитами, как ls и могут быть использованы утилитой chmod(1) (от англ. change mode - изменить режим). Права доступа и соответствующие им восьмеричные числа и буквенные значения приведены в табл. 3.1.

Для каждой из групп права складываются. Например, если необходимо, чтобы права группы были "read" и "write", в части соответствующей группе прав доступа необходимо указать "6".

Команда ls отобразит три группы прав (владелец, группа и остальные пользователи) в первом столбце. Первый дефис для каталогов принимает значение, равное "d". Например, права по умолчанию для bash:

Из примера видно, что владелец имеет права для чтения, записи и выполнения (rwx). Группа имеет только право на чтение и выполнения файла (r-x). И все остальные имеют только права на чтение и выполнение файла (r-x).

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

$ touch /tmp/example $ ls -l /tmp/example -rw-rw-r- 1 david users 0 Apr 19 11:21 /tmp/example

Для того чтобы установить права доступа для файла примера можно воспользоваться утилитой chmod. Для того чтобы владелец имел права чтения, записи и выполнения необходимо сложить восьмеричные числа, для прав, которые необходимо установить - получится 7. Чтение и выполнение соответствует числу 5. Команда на установку и проверку прав доступа будут иметь следующий вид:

$ chmod 755 /tmp/example $ ls -l /tmp/example -rwxr-xr-x 1 david users 0 Apr 19 11:21 /tmp/example

Для задания специальных прав, необходимо сложить соответствующие числа вместе и расположить их в первом столбце:

$ chmod 6755 /tmp/example $ ls -l /tmp/example -rwsr-sr-x 1 david users 0 Apr 19 11:21 /tmp/example

Вместо восьмеричных чисел также можно пользоваться буквами. Группы прав представляются, следующим образом:

  • владелец - u;
  • группа - g;
  • остальные пользователи - o;
  • все вышеперечисленные - a.

Чтобы проделать то же, что и выше, понадобится выполнить команду несколько раз:

$ chmod a+rx /tmp/example $ chmod u+w /tmp/example $ chmod ug+s /tmp/example

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

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

При изменении прав доступа пользователя и группы следует проявлять осторожность, так как "set user ID" и "set group ID" могут открыть "дыры" в безопасности системы. Если полные права доступа будут установлены на файл, принадлежащий пользователю root, появится возможность всем запускать программу, и выполнять ее с правами root. Так как у пользователя root нет ограничений в системе, это ставит под вопрос целостность безопасности системы.

Создание и удаление ссылок на файлы

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

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

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

Оболочка sh в системе, на самом деле программа bash.

Утилита ln(1) позволяет создать как жесткие (hard), так и мягкие или символические (soft, symbolic) ссылки. Если требуется создать символическую ссылку на каталог /var/media/mp3 и расположить ссылку в домашнем каталоге, то необходимо выполнить такую команду:

$ ln -s /var/media/mp3 ~/mp3

Опция -s указывает команде ln, что ссылка должна быть символическая. Затем задается цель ссылки и указывается ее наименование. В приведенном случае будет создан файл mp3, указывающий на /var/media/mp3. Ссылке можно присвоить любое имя, просто изменив последний из параметров команды ln.

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

$ ln /var/media/mp3 ~/mp3

Просмотр каталогов

Содержимое каталога можно посмотреть с помощью утилиты ls. Эта утилита выводит список файлов в каталоге. Пользователи Windows и DOS найдут ее аналогичной команде dir. Для того чтобы просмотреть содержимое корневого каталога, необходимо выполнить следующие команды:

$ cd / $ ls bin cdrom home mnt sbin usr boot dev lib proc suncd var cdr etc lost+found root tmp vmlinuz

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

$ ls -FC bin/ cdrom/ home/ mnt/ sbin/ usr/ boot/ dev/ lib/ proc/ suncd/ var/ cdr/ etc/ lost+found/ root/ tmp/ vmlinuz

Эта команда добавляет символ / после имен каталогов, * - после имен выполняемых файлов и т. д.

Утилита ls так же может быть использована для получения более подробной информации о файлах. Например, чтобы просмотреть, даты создания, имена владельцев, права доступа, необходимо задать опцию -l:

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

$ ls -a . bin cdrom home mnt sbin usr .. boot dev lib proc suncd var .pwrchute_tmp cdr etc lost+found root tmp vmlinuz

Файлы, имена которых начинается с точки (так называемые dot-файлы) не отображаются при простом выполнении ls, поэтому называются "скрытыми". Их можно увидеть, если добавить опцию -a.

Смена рабочего каталога

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

Shaman: $ cd /bin shaman:/bin$ cd usr bash: cd: usr: No such file or directory shaman:/bin$ cd /usr shaman:/usr$

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

Команда cd отличается от остальных тем, что она встроена в оболочку. Это означает, что для этой команды нет man-страницы. Вместо этого надо обратиться к команде help используемой командной оболочки. Например:

$ help cd

Эта команда выдаст опции команды cd.

Постраничный просмотр вывода

Управлять выводом можно с помощью утилит more и less.

Утилиту more(1) чаще всего называют утилитой для разбиения вывода на страницы. Часто вывод определенной команды больше, чем размер экрана. Отдельные команды не знают, как разбить свой вывод на несколько экранов. Они предоставляют это утилите разбиения на страницы.

Утилита more разбивает вывод на отдельные экраны и ждет, пока пользователь не нажмет клавишу <Пробел> для того, чтобы выводить следующий экран. Нажатие сместит экран на одну строку вниз. Вот хороший пример:

$ cd /usr/bin $ ls -l

Вывод будет гораздо больше экрана. Чтобы разбить вывод на экраны, необходимо просто пропустить (pipe) команду через more:

$ ls -l | more

В двух словах, pipe означает - возьми вывод команды ls и пропусти его через more. Через more можно пропускать не только ls, а практически все команды, имеющие вывод.

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

Объединение файлов

Объединить несколько файлов в один можно с помощью утилиты cat(1), сокращенно от "concatenate" (сцеплять, связывать). Изначально эта утилита была разработана для объединения нескольких текстовых файлов в один, но может быть использована и для других целей.

Чтобы объединить два или несколько файлов в один, необходимо просто перечислить файлы после команды cat и перенаправить вывод в новый файл. Утилита cat работает со стандартным вводом и выводом, поэтому необходимо использовать символы оболочки для перенаправления. Например:

$ cat file1 file2 file3 > bigfile

Эта команда возьмет содержимое файлов file1, file2 и file3 и объединит их в файл bigfile.

Утилита cat также используется для просмотра содержимого файлов. Многие пользователи для просмотра текстовых файлов выполняют cat, указав имя файла, и затем пропускают вывод через more или less:

$ cat file1 | more

Так же cat часто используется для копирования файлов. Любой файл можно скопировать, выполнив:

$ cat /bin/bash > ~/mybash

Файл /bin/bash будет скопирован в домашний каталог, под именем mybash.

Рассмотренные здесь примеры, это лишь несколько из возможных вариантов применения cat. Так как cat предоставляет расширенный контроль над стандартным вводом и выводом, она идеальна для применения в сценариях и для использования в качестве части более сложных команд.

Корректировка атрибутов файла

Для изменения временных атрибутов файла используется утилита touch(1). С помощью этой утилиты можно изменить отметку времени доступа и отметку времени изменения файла. Если указанный файл не существует, то touch создаст пустой файл с указанным именем. Чтобы пометить файл текущим системным временем, необходимо выполнить следующую команду:

$ touch file1

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

Текст на экран можно вывести с помощью утилиты echo(1). Строку, которую необходимо вывести, следует указать после команды echo. По умолчанию echo выведет текст и символ перевода строки после него. Чтобы строка не переводилась можно указать опцию -n. Опция -e укажет команде искать в строке ESC-символы и выполнить их.

Создание и удаление каталогов

Создавать новые и удалять существующие и каталоги можно с помощью утилит mkdir, rmdir и rm.

Утилита mkdir(1) создает новый каталог. Имя каталога, который необходимо создать указывается после имени команды. Вот пример создания подкаталога hejaz в текущем каталоге:

$ mkdir hejaz

Так же можно указать путь:

$ mkdir /usr/local/hejaz

Опция -p укажет команде mkdir создавать вложенные каталоги. Так, если в выше приведенном примере каталог /usr/local не существует, то утилита выдаст сообщение об ошибке. Указание параметра -p заставить утилиту создать /usr/local и hejaz каталоги:

$ mkdir -p /usr/local/hejaz

Утилита rm(1) удаляет файлы и деревья каталогов. Аналогия для пользователей DOS - del и deltree. Использование rm может быть очень опасным, если пользователь не отдает себе отчета в том, что делает.

Внимание! В отличие от DOS и Windows, в Linux удаленные файлы восстановлению не подлежат! (???)

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

$ rm file1

Если у пользователя нет прав записи для этого файла, то он получит сообщение об ошибке доступа. Чтобы удалить файл, несмотря ни на что, применяется опция -f. Например:

$ rm -f file1

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

# rm -rf /

Утилита rmdir(1) удаляет каталоги из файловой системы. Каталог должен быть пустым, иначе команда не сможет удалить его. Синтаксис прост:

$ rmdir

Следующий пример удалит подкаталог hejaz в текущем рабочем каталоге:

$ rmdir hejaz

Если этот каталог не существует, rmdir сообщит об этом. Допускается указывать полный путь к каталогу, который требуется удалить. Например, чтобы удалить каталог hejaz, являющийся подкаталогом каталога /tmp, необходимо выдать команду:

$ rmdir /tmp/hejaz

Пользователь так же может удалить каталог, и все его родительские каталоги, указав опцию -p:

$ rmdir -p /tmp/hejaz

Эта команда вначале попытается удалить каталог hejaz внутри /tmp, если это удастся, команда попытается удалить и каталог /tmp.

Копирование и перемещение файлов

Утилита cp(1) применяется для копирования файлов. Пользователи DOS найдут ее похожей на команду copy. Эта утилита имеет множество опций, описание которых можно найти на соответствующей man-странице.

Обычный вариант использования утилиты - копирование файла из одного места в другое. Например:

$ cp hejaz /tmp

Эта команда копирует файл hejaz из текущего каталога в каталог /tmp.

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

$ cp -a hejaz /tmp

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

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

$ cp -R adirectory /tmp

В результате каталог adirectory будет скопирован в каталог /tmp.

Утилита mv(1) перемещает файлы из одного места в другое. Пользователи DOS найдут ее похожей на команду move. При использовании утилиты надо указывать источник и назначение. Вот пример обычного использования mv:

# mv myfile /usr/local/share/hejaz

Управление файлами и каталогами с помощью программы Midnight Commander

Для облегчения работы с файловой системой в MOPSLinux включена программа c оконным интерфейсом Midnight Commander (mc), которая позволяет просматривать структуру каталогов и выполнить практически все необходимые основные операции c файлами. Программа mc – это классический файловый менеджер, подобный известным программам Norton Commander (nc) в MS-DOS или с FAR в Windows. Пользователям, знакомым с указанными программами работа с mc не составит никакого труда, поскольку даже основные комбинации "горячих клавиш" у них совпадают. Подробную информацию о работе с mc можно найти в справочном руководстве. В данной же главе приведены основные сведения, необходимые для первоначального знакомства с программой и выполнения основных операций с файлами и каталогами.

Для запуска Midnight Commander, необходимо в командной строке оболочки ввести команду:

После запуска экран монитора примет следующий вид:

Почти все пространство экрана при работе с Midnight Commander занято двумя "панелями", отображающими списки файлов двух каталогов. Над панелями расположена строка меню, причем к выбору команд в этом меню можно переключиться по клавише или с помощью мыши (если сразу после запуска mc вы не видите строки меню, не огорчайтесь - видна или нет строка меню, определяется настройками программы).

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

Вторая снизу строка на экране - это командная строка программы Midnight Commander (точнее - командная строка текущей оболочки shell), где можно ввести и выполнить любую команду системы. Выше нее (но под панелями) может отображаться поле "полезных советов" (hint4s), которое можно убрать, соответствующим образом отрегулировав настройки программы.

Каждая панель состоит из заголовка, списка файлов какого-либо каталога и строки мини-статуса (последняя может быть не видна, это тоже задается настройками программы). В заголовке панели указан полный путь к каталогу, содержимое которого отображается в панели, а также три экранных кнопки - "<", "v" и ">", которые используются для управления программой с помощью мыши (эти кнопки не работают, если вы запустили mc в эмуляторе терминала). В строке "мини-статуса" отображаются некоторые данные о том файле или каталоге, на который в данный момент указывает подсветка (например, размер файла и права доступа к нему).

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

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

Таблица 6.1. Общие клавиши управления перемещением.

Выполняемое действие

<Стрелка вверх> или + Перемещение на одну строку назад или вверх

<Стрелка вниз> или + Перемещение на одну строку вперед

Или +

Или +

Перемещение к началу.

Перемещение к концу

Функциональные клавиши

Наиболее часто выполняемые в Midnight Commander операции привязаны к функциональным клавишам - .

Вызывает контекстно-зависимую подсказку

Вызывает меню, создаваемое пользователем

Просмотр файла, на который указывает подсветка в активной панели

Вызов встроенного редактора для файла, на который указывает подсветка в активной панели

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

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

Создание подкаталога в каталоге, отображаемом в активной панели

Удаление файла (подкаталога) или группы отмеченных файлов

Вызов основного меню программы (отображаемого над панелями)

Выход из программы

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

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

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

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

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

Midnight Commander выдаст строку ввода, в которой надо задать регулярное выражение, определяющее желаемую группу имен. Если включена опция Образцы в стиле shell (см. разд. 6.11), регулярные выражение строятся по тем же правилам, которые действуют в оболочке shell (см. гл. 5).

Если опция "Образцы в стиле shell" отключена, то пометка файлов производится по правилам обработки нормальных регулярных выражений (см. руководство man ed).

Если выражения начинаются или оканчиваются слэшем (/), то пометка будет ставиться на каталоги, а не на файлы. "Горячей" клавишей для операции отметки группы файлов является клавиша <+> на цифровой клавиатуре.

Операция "Снять отметку" ("горячая" клавиша - <-> или <\> - обратный слэш) является обратной по отношению к операции отметки группы файлов и использует те же правила формирования шаблонов. Используется для снятия отметки с группы файлов.

Операция "Инвертировать отметку" (<*>) используется для того, чтобы снять отметки со всех помеченных файлов текущего каталога, одновременно отметив все файлы, которые не были помечены.

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

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

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

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

Позволяет выполнить команду chown. * Права (расширенные). Позволяет изменить права доступа и владения файлом. * Жесткая ссылка (+,). Создает жесткую ссылку на текущий файл. * Символическая ссылка (+,[S]). Создает символическую ссылку на текущий файл. О ссылках мы подробно говорили в разд. 4.4.

Программа Midnight Commander указывает символические ссылки, выводя знак "@" перед именем такой ссылки (кроме ссылок на подкаталоги, которые обозначаются знаком тильды "~"). Если на экран выводится строка мини-статуса (опция "Показывать мини-статус" включена), то в ней отображается имя того файла, на который указывает ссылка. * Быстрая смена каталога (+).

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

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

  • по имени;
  • по расширению;
  • по размеру файла;
  • по времени модификации;
  • по времени последнего обращения к файлу;
  • по номеру узла (inode);
  • без сортировки.

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

При этом появляется диалоговое окно (рис. 6.2), в котором кроме желаемого порядка сортировки можно указать, что сортировка производится в обратном порядке (поставив с помощью клавиши пробела отметку в скобках возле слова Обратный (Reverse)) и с учетом регистра символов. Рис. 6.2. Диалоговое окно задание порядка сортировки По умолчанию подкаталоги отображаются в начале списка, но это можно изменить, проставив отметку возле опции "Смешивать файлы/каталоги" ("Mix all files") команды Конфигурация меню Настройки. Можно выводить в панель не все списки файлов данного каталога, а только соответствующие определенному шаблону.

Команда Фильтр в меню любой панели позволяет задать шаблон, которому должны соответствовать имена файлов, отображаемых в панели (например, "*.tar.gz").

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

Маски файлов для операций копирования/переименования При выполнении операций копирования и перемещения (или переименования) файлов вы имеете возможность изменить имена копируемых или перемещаемых файлов.

Для этого вы должны задать маску для имен файлов-источников и маску для имен файлов, которые будут созданы (файлы-приемники). Обычно эта вторая маска представляет собой несколько символов замены (wildcards) в конце строки, определяющей место назначение создаваемых файлов. Задание масок осуществляется в строках ввода, отображаемых в окне, появляющемся после обращения к командам копирования / переноса (рис. 6.6).

Все файлы, удовлетворяющие маске источника, будут переименованы (скопированы или перемещены с новыми именами) в соответствии с маской файла-приемника.

Если имеются помеченные файлы, то копируются (перемещаются) только помеченные файлы, удовлетворяющие заданной маске для файлов-источников. Рис. 6.6. Диалоговое окно для переименования файлов Есть еще несколько опций, которые влияют на выполнение операций копирования/перемещения файлов, и которые устанавливаются в том же окне запроса, где задаются маски имен файлов, либо через команду меню Настройки | Конфигурация.

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

Опция Внутрь каталога, если есть (Dive into subdirs) определяет, что делать, если в каталоге-приемнике уже существует подкаталог, имя которого совпадает с именем файла (каталога), который копируется (источника). По умолчанию (опция отключена) содержимое каталога-источника копируется в каталог-приемник.

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

Обычно (опция отключена) mc будет просто копировать все файлы из one в /two/one. Если опцию включить, копирование файлов будет производиться в /two/one/one. Опция Сохранять атрибуты (Preserve attributes) определяет, будут ли при копировании/перемещении сохранены атрибуты исходного файла: права доступа, временные метки и, если вы root, UID и GID исходного файла.

Если опция отключена, атрибуты будут установлены в соответствии с текущим значением umask. На процедуры копирования и перемещения файлов оказывает также влияние установка опции Образцы в стиле shell в меню Настройки / Конфигурация. Когда эта опция включена, вы можете использовать символы замены (wildcards) "*" и "?" в маске источника. Они обрабатываются аналогично тому, как это делается в shell. В маске приемника разрешается использовать только "*" и "\<цифра>".

Первый символ "*" в маске приемника соответствует первой группе символов замены в маске источника, второй символ "*" соответствует второй группе и т. д. Аналогично, символ замены "\1" соответствует первой группе символов замены в маске источника, символ "\2" - второй группе и т. д. Символ "\0" соответствует целому имени файла-источника. Приведем пару примеров. Пример 1. Если маска источника "*.tar.gz", а маска приемника - "/two/*.tgz", и имя копируемого файла - "foo.tar.gz", копия будет называться "foo.tgz" и будет находиться в каталоге "/two".

Пример 2. Предположим, вы хотите поменять местами имя и расширение файла, так чтобы "file.c" стал файлом "c.file". Маска источника для этого должна иметь вид "*.*", а маска приемника - "\2.\1". Когда опция Образцы в стиле shell ("Use shell patterns”) выключена, mc не осуществляет автоматической группировки.

Для указания групп символов в маске источника, которые будут соответствовать символам замены в маске приемника, вы должны в этом случае использовать скобки "\(...\)". Этот способ более гибкий, но требует больше усилий при вводе. Снова приведем два примера

Пример 3. Если маска источника имеет вид "^\(.*\)\.tar\.gz$", копирование производится в "/two/*.tgz" и копируется файл "foo.tar.gz", то результатом будет "/two/foo.tgz". Пример 4. Предположим, что вы хотите поменять местами имя файла и его расширение, так чтобы имена вида "file.c" приняли вид "c.file". Маска источника для этого - "^\(.*\)\.\(.*\)$", а маска приемника - "\2.\1". При выполнении операций копирования/перемещения вы можете также преобразовать регистр символов в именах файлов. Если вы используете "\u" или "\l" в маске приемника, то следующий символ имени будет образован в верхнем (заглавные символы) или нижнем (строчные) регистре соответственно.

Если использовать в маске приемника "\U" или "\L", то к соответствующему регистру будут преобразованы все последующие символы, вплоть до следующего вхождения "\L" или "\U", или же до конца имени файла. Применение "\u" и "\l" обеспечивает более широкие возможности, чем "\U" и "\L". Например, если маска источника есть "*" (опция Образцы в стиле shell включена) или "^\(.*\)$" (опция Образцы в стиле shell выключена), а маска приемника есть "\L\u*", имена файлов будут преобразованы таким образом, что первые буквы имени будут заглавными, а все остальные - строчными. Символ "\" в масках используется для отмены специальной интерпретации отдельных символов. Например, "\\" означает просто обратный слэш (как литерал) и "\*" означает просто звездочку (asterisk). Меню Команды Выпадающее подменю Команды главного меню позволяет выполнить еще ряд операций по управлению файловой системой, а также выполнить некоторые команды, изменяющие вид панелей Midnight Commander и отображаемую в панели информацию.

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

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

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

Используется в тех случаях, когда дерево каталогов не соответствует реальной структуре: некоторые подкаталоги не показаны или показаны более не существующие. ·

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

обозначена словом Забыть. ·

(Static/Dynamic). Переключение между статическим (применяемым по умолчанию) и динамическим режимами перемещения по дереву. ·

. Копировать подкаталог (появляется строка ввода, в которой надо указать, куда копировать). ·

. Переместить подкаталог. ·

. Создать подкаталог в текущем каталоге.

· . Удалить подсвеченный каталог из файловой системы.

· +[S] или +[S]. Найти следующий каталог, соответствующий заданному шаблону поиска. Если такого каталога не существует, происходит просто смещение подсветки на одну строку вниз.

· + или . Удаляет последний символ в строке (шаблоне) поиска.

· <Любой другой символ>. Этот символ добавляется в шаблон поиска и производится перемещение на имя следующего каталога, удовлетворяющее шаблону. В режиме просмотра дерева каталогов вначале необходимо активизировать режим поиска клавишами

+[S]. Шаблон поиска будет отображаться в строке мини-статуса. Следующие действия возможны только в окне просмотра дерева каталогов и не поддерживаются при просмотре дерева в одной из панелей ·

(Help). Вызов подсказки с отображением раздела помощи об окне дерева каталогов.

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

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

В поле Содержание (Contents) можно задать регулярное выражение по правилам команды egrep. Это значит, что перед символами, имеющими специальное значение для egrep, необходимо вставить символ "\", например, если вам нужно найти строку "strcmp (", вы должны указать шаблон поиска в виде "strcmp \(". Для того, чтобы начать поиск, нажмите экранную кнопку Дальше. Во время поиска его можно приостановить кнопкой Остановить и продолжить по кнопке Продолжить.

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

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

После вывода на панель можно нажать + для возврата к обычному списку файлов. Кроме того, имеется возможность задать список каталогов, которые команда Поиск файла будет пропускать в ходе поиска (например, вы знаете, что искомого файла нет на CD-ROM или не хотите искать в каталогах, подключенных через NFS по очень медленному каналу).

Каталоги, которые надо пропустить, должны быть указаны в переменной find_ignore_dirs в секции Misc Вашего файла ~/.mc/ini. Имена каталогов разделяются двоеточиями, следующим образом: find_ignore_dirs=/cdrom:/nfs/wuarchive:/afs Вы можете использовать перенаправление вывода на панель (см. ниже Критерий панелизации) для выполнения некоторых усложненных последовательностей действий, в то время как Поиск файла позволяет выполнять только простые запросы. Команда Переставить панели (+[U]) меняет местами содержимое правой и левой панелей.

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

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

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

При побайтном методе сравнивается содержимое файлов (побайтно). Этот метод недоступен, если машина не поддерживает системный вызов mmap(2).

При сравнении по размеру сравниваются только размеры соответствующих файлов, а дата создания не проверяется. Команда меню Критерий панелизации (который правильнее было бы назвать "Перенаправление вывода на панель") позволяет вам выполнить внешнюю программу, сделав ее вывод содержимым текущей активной панели (характерный пример - панелизация вывода команды find). Например, если вы хотите выполнить какое-то действие над всеми символическими ссылками текущего каталога, вы можете использовать команду Критерий панелизации для запуска следующей команды: $ find . -type l -print После выполнения этой команды в текущей панели будет отображено не содержимое соответствующего каталога, а только все символические ссылки, в нем расположенные. Если вы захотите, то можете сохранить часто используемые команды панелизации под отдельными информативными именами, чтобы иметь возможность их быстро вызвать по этим именам.

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

Команда меню История команд выводит окно со списком ранее выполнявшихся команд. Подсвеченную строку из истории можно скопировать в командную строку оболочки (перемещение подсветки - клавишами <Стрелка вверх> и <Стрелка вниз>, копирование - по клавише ). Доступ к истории команд можно получить также по комбинациям клавиш +

Или +, однако в этом случае вы не видите окна с перечнем команд. Вместо этого в командную строку выводится одна команда из списка и по комбинации +

Происходит смена этой команды на предыдущую, а по + - на следующую команду из истории команд.

Команда меню Справочник каталогов (+<\>) позволяет создать список каталогов, которые часто используются, и обеспечить быстрый переход к нужному каталогу из этого списка. Для этого создается список меток (условных имен), присвоенных наиболее часто используемым каталогам.

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

Используя эту команду меню или "горячие" клавиши +, , вы можете остановить, возобновить или снять любое из фоновых заданий. После выбора команды меню Файл расширений вы получаете возможность редактировать файл mc.ext, в котором можете связать с определенным расширением файла (окончанием имени после последней точки) программу, которая будет запускаться для обработки (просмотра, редактирования или выполнения) файла с таким расширением.

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

Настройка программы Midnight Commander Программа Midnight Commander имеет ряд установок (опций), каждая из которых может быть включена или выключена, для чего служат несколько диалоговых окон, доступных через меню Настройки. Опция включена, если поставлена (с помощью клавиши пробела) звездочка или знак "x" в скобках перед названием опции. Рассмотрим последовательно команды меню Настройки, через которое включаются / отключаются эти опции. Команда Конфигурация.

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

Показывать резервные файлы. По умолчанию программа Midnight Commander не показывает файлы, имена которых заканчиваются на "~" (подобно опции -B команды ls). · Показывать скрытые файлы. По умолчанию Midnight Commander показывает все файлы, в том числе файлы, имена которых начинаются точкой (как ls -a). Рис. 6.7. Окно настроек параметров конфигурации · Отметка перемещает курсор.

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

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

Если вы активизируете ее, Midnight Commander будет использовать для вывода содержимого каталога следующий трюк: содержимое каталога перечитывается только в том случае, если изменилась запись в i-node каталога, т. е. если в каталоге создавались или удалялись файлы; если изменялись только записи в i-node файлов каталога (изменялся размер файла, режим доступа или владелец и т.п.) содержимое панели не обновляется. В этом случае (если опция включена) вы должны обновлять список файлов вручную (клавишами +).

Поле Пауза после исполнения. После выполнения Вашей команды Midnight Commander может обеспечить паузу, чтобы вы могли просмотреть и изучить вывод команды. Есть три варианта установки этой опции. · Никогда. Это значит, что вы не хотите видеть вывод команды. На консоли Linux или при использовании xterm вы можете просмотреть этот вывод, нажав +. · На "тупых" терминалах.

Пауза будет создаваться на терминалах, которые не способны обеспечить показ вывода последней из выполнявшихся команд (это любые терминалы, отличные от xterm или Linux-консоли). · Всегда. Программа обеспечит паузу после выполнения любой команды. В поле Прочие настройки вы задаете значения следующих параметров: · Детали операций (Verbose operation). Этот переключатель определяет, будет ли при выполнении операций копирования, перемещения и удаления выводится дополнительное окно, отображающее ход выполнения операции. Если у вас медленный терминал, вы можете отключить этот вывод. Он отключается автоматически, если скорость Вашего терминала меньше 9600 bps. ·

Подсчитывать общий размер (Compute totals). Если эта опция включена, Midnight Commander перед выполнением операций копирования, перемещения и удаления подсчитывает общее число обрабатываемых файлов и их суммарный размер и показывает ход выполнения операции над этими файлами в виде диаграммы-полоски (правда, это слегка замедляет выполнение операций). Эта опция не работает, если отключена опция "Детали операций". ·

Образцы в стиле shell (Shell Patterns). По умолчанию команды отметки группы файлов (Select), снятия отметки (Unselect) и вывода списка файлов по фильтру (Filter) используют регулярные выражения, которые строятся по правилам, действующим в оболочке. Для того, чтобы достичь такого эффекта, выполняются следующие преобразования: "*" заменяется на ".*" (ноль или больше символов); "?" заменяется на "." (в точности один символ) и "." заменяется на обычную точку (literal dot). Если опция отключена, то регулярные выражения должны строиться так, как описано в man 1 ed. · Автосохранение настроек. Если эта опция включена, то при выходе из программы Midnight Commander значения всех настраиваемых параметров сохраняются в файле ~/.mc/ini. · Автоматические меню. Если эта опция включена, пользовательское меню будет автоматически вызываться на экран при запуске программы. Это бывает полезно, если на компьютере работают неопытные пользователи (операторы), которые должны выполнять только стандартные операции. ·

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

Дополнение: показывать все. В процессе ввода команд Midnight Commander может выполнять "Завершение ввода" при нажатии на клавиши +, пытаясь угадать окончание вводимой команды. По умолчанию при первом нажатии + он ищет все возможные варианты завершения и, если завершения неоднозначны (имеется много разных вариантов), то только издает звуковой сигнал. При втором нажатии + отображаются все возможные завершения. Если вы хотите видеть все возможные варианты завершения после первого нажатия +, включите эту опцию. · Вращающийся индикатор. Если эта опция включена, Midnight Commander отображает в верхнем правом углу вращающуюся черточку, как индикатор того, что выполняется какое-то задание (операция). · Навигация в стиле lynx. Если эта опция включена, вы имеете возможность использовать клавиши для перехода в подсвеченный в данный момент каталог и для перехода в родительский по отношению к текущему каталог (при условии, что командная строка пуста). По умолчанию опция отключена. · Расширенная команда chown. Если эта опция включена, то при обращении к командам chmod или chown вместо них будет вызываться Расширенная команда chown. ·

Смена каталога по ссылкам. Установка этой опции приводит к тому, что Midnight Commander будет следовать логической цепочке подкаталогов при выполнении команд смены каталога как в панели, так и по команде cd. Так же ведет себя по умолчанию bash. Если же опция не включена, Midnight Commander будет при выполнении команды cd следовать реальной структуре каталогов, так что если вы вошли в текущий каталог по ссылке на него, то по команде cd .. вы окажетесь в его родительском каталоге, а не в той директории, где расположена ссылка. · Безопасное удаление. Если эта опция включена, непреднамеренно удалить файл будет сложнее.

В диалоговом окне подтверждения удаления предлагаемая по умолчанию кнопка изменяется с "Да" на "Нет" и операция удаления непустого каталога должна будет подтверждаться путем выбора кнопки "Да". По умолчанию эта опция отключена. Диалоговое окно Внешний вид дает вам возможность изменить некоторые параметры отображения главного окна программы Midnight Commander .

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

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

Команда Виртуальные ФС вызывает диалоговое окно, в котором вы можете задать значения некоторых параметров, связанных с использованием виртуальных файловых систем. Команда Сохранить настройки обеспечивает сохранение выбранных значений параметров в ini-файле программы. Я надеюсь, что приведенный в этом разделе материал позволит вам начать работать с программой Midnight Commander. Но возможности этой программы гораздо шире, чем это описано в настоящем разделе. В гл. 12 вы еще прочитаете о встроенном редакторе CoolEdit программы Midnight Commander.

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

Перевод файла подсказки на русский язык (в виде bzip2-архива) вы можете найти на сайте http://linux-ve.chat.ru. Разархивируйте его, поместите в каталог /usr/lib/mc, заменив расположенный там файл mc.hlp, и вы будете при нажатии клавиши получать подсказку на русском языке. Получение помощи При работе с программой Midnight Commander практически в любой момент можно обратиться к интерактивной подсказке, вызов которой осуществляется нажатием клавиши . Подсказка организована как гипертекст, т. е. в ее тексте встречаются гипертекстовые ссылки на другие ее разделы. Такие ссылки выделены голубым фоном.

Для перемещения в окне просмотра подсказки вы можете использовать клавиши перемещения курсора (стрелки) или мышь. Кроме общих комбинаций управления перемещением, приведенных в табл. 6.1, программа просмотра помощи воспринимает также комбинации, используемые в подпрограмме просмотра файлов: Таблица 6.2. Управление перемещением при просмотре файлов Клавиша Выполняемое действие < B > или +< B > или +< H > или или Перемещение на одну страницу назад <Пробел> Перемещение на одну страницу вперед < U > (< D >) Перемещение на половину страницы назад (вперед) < G > (+) Перемещение к началу (к концу) Кроме уже перечисленных комбинаций клавиш могут быть использованы еще некоторые, работающие только при просмотре подсказки (они приведены в табл. 6.3). Таблица 6.3. Управление перемещением при просмотре подсказки.

Клавиша Выполняемое действие Переход на следующую ссылку + Переход на предыдущую ссылку <Стрелка вниз> Переход на следующую ссылку или смещение текста на одну строку вверх <Стрелка вверх> Переход на следующую ссылку или смещение текста на одну строку вниз <Стрелка вправо> или Переход по текущей ссылке <Стрелка влево> или < L > Возврат к ранее просмотренным разделам подсказки Помощь по использованию самой подсказки Переход к следующему разделу помощи

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

Управление файлами.

Управление файлами в Windows XP осуществляется при помощи программы Проводник или папки Мой компьютер и сводится к выполнению следующих операций:

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

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

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

Установка стандартных атрибутов файлов и папок.

Стандартные атрибуты файлов и папок являются устаревшим примитивным средством управления доступом к файлам и папкам. В Windows XP и других современных операционных системах существуют гораздо более гибкие и удобные механизмы для управления файлами.

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

Свойства папки

Свойства файла

На вкладке Общие вы можете узнать:

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

Кроме того, при помощи флажков на этой вкладке устанавливается два стандартных атрибута Только для чтения и Скрытый. Вообще, Windows XP, как и любая другая ОС Microsoft поддерживает четыре стандартных атрибута для файлов и папок, расположенных на файловых системах FAT, FAT32 и NTFS.

Атрибут

Описание

Архивный

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

Только для чтения

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

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

Системный

Указывает, что файл или папка являются системными. В Windows 2000 используется только для обратной совместимости с MS-DOS, Windows 3.x и Windows 9x. Этим атрибутом помечены файлы, используемые для загрузки Windows 2000, в корневом каталоге системного и загрузочного дисков. Не может быть изменен через графические инструменты Windows 2000, но может быть изменен через командную строку или программами третьих производителей.

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

Изменение стандартных атрибутов из командной строки.

Для изменения стандартных атрибутов файлов и папок из командной строки служит команда attrib

attrib[.exe] [+r|-r] [+a|-a] [+s|-s] [+h|-h] [[диск:][путь]имя_файла] ]

Описание ключей команды attrib:

Устанавливает атрибут "только для чтения"

Снимает атрибут "только для чтения"

Устанавливает атрибут "архивный"

Снимает атрибут "архивный"

Устанавливает атрибут "системный"

Снимает атрибут "системный"

Устанавливает атрибут "скрытый"

Снимает атрибут "скрытый"

Ключ

Описание

[диск:][путь]имя_файла

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

Задает обработку подходящих файлов в указанной папке и всех вложенных папках

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

Для смены атрибутов у файлов и папок с установленным атрибутом "системный" или "скрытый" необходимо предварительно снять эти атрибуты.

Установка дополнительных атрибутов.

В Windows NT, 2000, а затем и в Windows XP к стандартным атрибутам файлов и папок были добавлены новые атрибуты, названные дополнительными. Все эти атрибуты могут быть установлены только для файлов и папок, расположенных на томах NTFS. Файловые системы FAT и FAT32 не поддерживают дополнительные атрибуты.

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

Дополнительные атрибуты папки

Дополнительные атрибуты файла

Рассмотрим дополнительные атрибуты подробнее.

Папка (файл) готова для архивирования

Является стандартным атрибутом "архивный", который описан выше

Разрешить индексирование папки (содержимого) для быстрого поиска

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

Сжимать содержимое для экономии места на диске

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

Шифровать содержимое для защиты данных

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

Атрибут

Описание

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

Шифрование файлов.

Шифрованная файловая система (Encrypting File System, EFS) поддерживает шифрование файлов, хранимых на томах NTFS. Шифрование в EFS базируется на технологии открытого ключа и обеспечивается интегрированной в систему службой. Это позволяет:

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

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

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

Для шифрования файла необходимо соблюдение следующих условий:

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

Процесс шифрования файла.

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

Для фактического шифрования файла используются быстрые ключи симметричного шифрования. Для шифрования каждого блока файла используется отдельный симметричный ключ. Все симметричные ключи, использованные для шифрования файла, шифруются двумя ключами - открытым ключом пользователя и открытым ключом агента восстановления. В зашифрованном виде эти ключи сохраняются в полях Data Decryption Field (DDF) и Data Recovery Field (DRF).

Для шифрования EFS использует Microsoft Base Cryptographic Provider. Этот провайдер осуществляет шифрование с использованием ключа длиной 56 бит. Начиная с пакета обновления 2 для Windows 2000, для шифрования используется ключ длиной 128 бит.
Расшифровывание данных осуществляется в обратном порядке. Содержимое поля DDF расшифровывается закрытым ключом пользователя, пытающегося открыть файл. В случае успеха, содержимое файла расшифровывается с использованием симметричных ключей. EFS самостоятельно обнаруживает факт шифрования файла и осуществляет поиск закрытого ключа пользователя. Если EFS не может выполнить расшифровывание файла, пользователю выдается сообщение об ошибке доступа к файлу.
При удалении администратором учетной записи пользователя, пользователь теряет все зашифрованные файлы. Чтобы этого избежать, заранее создайте дискету восстановления паролей, откройте окно Учетные записи пользователей и в разделе Связанные задачи выберите пункт Предотвратить потерю паролей.

Дешифрация.

Чтобы файл сделать незашифрованным отключите флажок Шифровать содержимое для защиты данных (Свойства файла -> Другие) .

Использование агента восстановления.

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

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

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

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

Шифрование файлов из командной строки.

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

cipher[.exe] [имя_файла[...]]
cipher[.exe] /K
cipher[.exe] /W:папка

Описание ключей команды cipher:

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

Расшифровывает указанные файлы и папки. При расшифровывании папок также расшифровываются все файлы в них.

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

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

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

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

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

Обрабатывает файлы с атрибутами "скрытый" и "системный". По умолчанию такие файлы не обрабатываются.

имя_файла [...]

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

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

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

Ключ

Описание

Без параметров cipher отображает информацию о шифровании текущей папки и всех файлов, в ней содержащихся.

Отключение EFS.

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

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

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

Одной из основных задач ОС является предоставление удобств пользователю при работе с данными, хранящимися на дисках. Для этого ОС подменяет физическую структуру хранящихся данных некоторой удобной для пользователя логической моделью, которая реализуется в виде дерева каталогов, выводимого на экран такими утилитами, как Norton Commander, Far Manager или Windows Explorer. Базовым элементом этой модели является файл , который так же, как и файловая система в целом, может характеризоваться как логической, так и физической структурой.

Управление файлами

Файл – именованная область внешней памяти, предназначенная для считывания и записи данных.

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

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

Файловая система включает:Файловая система включает:

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

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

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

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

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

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

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

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

Пример

Файловая система FAT (file allocation table) имеет множество реализаций как система управления файлами

  • Система, разработанная для первых ПК называлась просто FAT (сейчас ее называют просто FAT-12) . Ее разрабатывали для работы с дискетами, и некоторое время она использовалась для работы с жесткими дисками.
  • Потом ее усовершенствовали для работы с жесткими дисками большего объема, и эта новая реализация получила название FAT–16. это название используется и по отношению к СУФ самой MS-DOS.
  • Реализация СУФ для OS/2 называется super-FAT (основное отличие – возможность поддерживать для каждого файла расширенные атрибуты).
  • Есть версия СУФ и для Windows 9x/NT и т.д. (FAT-32).

Типы файлов

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

Обычные файлы могут быть двух типов:

  1. Программные (исполняемые) – представляют собой программы, написанные на командном языке ОС, и выполняют некоторые системные функции (имеют расширения.exe, .com, .bat).
  2. Файлы данных – все прочие типы файлов: текстовые и графические документы, электронные таблицы, базы данных и др.

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

Специальные файлы – это фиктивные файлы, ассоциированные с устройствами ввода/вывода, которые используются для унификации механизма доступа к файлам и внешним устройствам. Специальные файлы позволяют пользователю осуществлять операции ввода/вывода посредством обычных команд записи с файлов или чтения из файлов. Эти команды обрабатываются сначала программами ФС, а затем на некотором этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройством (PRN, LPT1 – для порта принтера (символьные имена, для ОС – это файлы), CON – для клавиатуры).

Пример . Copy con text1 (работа с клавиатурой).

Файловая структура

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

Виды файловых структур:

  • простая , или одноуровневая : каталог представляет собой линейную последовательность файлов.
  • иерархическая или многоуровневая : каталог сам может входить в состав другого каталога и содержать внутри себя множество файлов и подкаталогов. Иерархическая структура может быть двух видов: «Дерево» и «Сеть». Каталоги образуют «Дерево», если файлу разрешено входить только в один каталог (ОС MS-DOS, Windows) и «Сеть» – если файл может входить сразу в несколько каталогов (UNIX).
  • Файловая структура может быть представлена в виде графа, описывающего иерархию каталогов и файлов:



Типы имен файлов

Файлы идентифицируются именами. Пользователи дают файлам символьные имена , при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. В ранних файловых системах эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов — собственно имя, 3 символа — расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов.

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

Например, Windows NT в своей файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.

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

Символьные имена могут быть трех типов: простые, составные и относительные:

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

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

Для файла 2.doc определить все три типа имени, при условии, что текущим каталогом является каталог 2008_год.

  • Простое имя: 2.doc
  • Полное имя: C:\2008_год\Документы\2.doc
  • Относительное имя: Документы\2.doc

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

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

  • Признак «только для чтения» (Read-Only);
  • Признак «скрытый файл» (Hidden);
  • Признак «системный файл» (System);
  • Признак «архивный файл» (Archive);
  • Тип файла (обычный файл, каталог, специальный файл);
  • Владелец файла;
  • Создатель файла;
  • Пароль для доступа к файлу;
  • Информация о разрешенных операциях доступа к файлу;
  • Время создания, последнего доступа и последнего изменения;
  • Текущий размер файла;
  • Максимальный размер файла;
  • Признак «временный (удалить после завершения процесса)»;
  • Признак блокировки.

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

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

Права доступа к файлу

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

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

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

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

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

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

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

– работа с не дисковыми периферийными устройствами как с файлами;

– обмен данными между файлами, между устройствами, между файлом и уст­ройством (и наоборот);

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

– защита файлов от несанкционированного доступа.

В некоторых ОС может быть несколько систем управления файлами, что обеспе­чивает им возможность работать с несколькими файловыми системами. Очевид­но, что системы управления файлами, будучи компонентом ОС, не являются не­зависимыми от этой ОС, поскольку они активно используют соответствующие вызовы прикладного программного интерфейса API (application program interface) . С другой стороны, системы управления файлами сами дополняют API новыми вызовами. Можно сказать, что основное назначение файловой системы и соот­ветствующей ей системы управления файлами – организация удобного доступа к данным, организованным как файлы, то есть вместо низкоуровневого доступа к данным с указанием конкретных физических адресов нужной записи ис­пользуется логический доступ с указанием имени файла и записи в нем.

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

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

Для того чтобы можно было загрузить с магнитного диска собственно саму ОС, а уже с ее помощью и организовать работу той или иной системы управления файлами, были приняты специальные системные соглашения о структуре диска. Информация на магнитных дисках размещается и передается бло­ками. Каждый такой блок называется сектором (sector) , секторы расположены на концентрических дорожках поверхности диска. Каждая дорожка (track) обра­зуется при вращении магнитного диска под зафиксированной в некотором пред­определенном положении магнитной головкой чтения-записи (head). Накопитель на жестких магнитных дисках (НЖМД) содержит один или более дисков. Обычно под термином «жесткий диск» понимают весь пакет магнитных дисков. Группы дорожек (треков) одного радиуса, расположенных на поверхностях разных маг­нитных дисков, образуют так называемые цилиндры (cylinder).

Каждый сектор состоит из поля данных и поля служебной информации, ограни­чивающей и идентифицирующей его. Размер сектора (точнее – емкость поля данных) устанавливается контроллером или драйвером. Физический адрес сектора на магнитном диске определяется с помощью трех «координат», то есть представляется триадой [c–h–s ], где с – номер цилиндра (дорожки на по­верхности диска), h – номер рабочей поверхности диска (магнитной го­ловки), s – номер сектора на дорожке. Номер цилиндра лежит в диапа­зоне 0 . . . С –1, где С – количество цилиндров. Номер рабочей поверхности диска находится в диапазоне 0 . . . Н –1, где Н – число магнитных головок в накопителе. Номер сектора на дорожке определяется в диапазоне 1 . . . S , где S – количество секторов на дорожке. Например, триада адресует сектор 2 на рабочей поверхности 0 цилиндра 1.

Обмен информацией между оперативной памятью и дисками физически осуществ­ляется только секторами. Вся совокупность физических секторов на НЖМД представляет его так называемую неформатированную емкость.

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

Разделы диска могут быть двух типов – primary (обычно этот термин переводят как первичный ) и extended (расширенный ). При этом на диске обязательно должен быть по крайней мере один primary-раздел. Если primary-разделов несколько, то только один из них может быть активным. Именно загрузчику, расположенному в активном разделе, передается управление при включении ВМ и загрузке ОС.

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

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

Файлы бывают разных типов: обычные файлы , специальные файлы, файлы-каталоги.

Обычные файлы в свою очередь подразделяются на текстовые и двоичные . Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов – их собственные исполняемые файлы.

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

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

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

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

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

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

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

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

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

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

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

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

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

Различают два основных подхода к определению прав доступа:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Резюме

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

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

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

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

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

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

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

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

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

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

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

Файлы подразделяются на обычные, специальные и файлы-каталоги. Обычные файлы в свою очередь подразделяются на текстовые и двоичные.

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

Информация на магнитных дисках размещается и передается бло­ками. В некоторых ОС такая наименьшая единица обмена называется кластером. При этом кластер может состоять из нескольких блоков.

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

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

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

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

Контрольные вопросы и задания

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

2. Какие способы распределения виртуальной памяти чаще всего применяются, в чем их недостатки и преимущества?

3. Укажите отличие блок-ориентированных устройств ввода-вывода от байт-ориентированных?

4. В чем заключается смысл разбиения программного обеспечения ввода-вывода на несколько уровней?

5. Приведите примеры разделяемых и выделенных устройств ввода-вывода.

6. Опишите механизм прямого доступа устройств к памяти.

7. Дайте определение понятиям «система управления файлами» и «файловая система».

8. Какие функции в операционных системах выполняет система управления файлами?

9. Опишите структуру магнитного диска.

10. Дайте понятие логической организации файлов.

11. Охарактеризуйте наиболее известные способы физической организации файлов.

12. Какие уровни составляют многоуровневую модель функционирования файловой системы?




Top