Операционные системы работа с файлами настройка
Современный Windows - это операционная система, управляющая работой персонального компьютера. Windows имеет удобный графический пользовательский интерфейс. В отличие от старой операционной системы DOS с текстовым интерфейсом, Windows не требует знания команд операционной системы и их точного ввода с клавиатуры. Подавляющее большинство операций по управлению работой персонального компьютера выполняются манипулятором мышь над графическими объектами Windows, либо короткими комбинациями клавиш (горячими клавишами) на клавиатуре.
Пользовательский интерфейс – это методы и средства взаимодействия человека с аппаратными и программными средствами компьютера.
Стартовый экран Windows представляет собой системный объект, называемый рабочим столом.
Рабочий стол - это графическая среда, на которой отображаются объекты и элементы управления Windows. На рабочем столе можно видеть значки (пиктограммы), ярлыки и панель задач (основной элемент управления). При запуске Windows на рабочем столе присутствуют, как минимум , три значка: Мой компьютер, Сетевое окружение, Корзина. На рабочем столе могут быть расположены и другие значки. Его можно использовать и как временное хранилище своих файлов, но по окончании работы в учебном классе они должны быть либо удалены, либо перемещены в собственные папки.
Значки являются графическим изображением объектов и позволяют управлять ими. Значок - это графическое представление объекта в свернутом виде, соответствующее папке, программе, документу, сетевому устройству или компьютеру. Значки, как правило имеют метки - надписи, которые располагаются под ними. Щелчок левой кнопкой мыши по значку позволяет выделить его, а двойной щелчок – открыть (запустить) соответствующее этому значку приложение.
Ярлык является указателем на объект. Ярлык – это специальный файл, в котором содержится ссылка на представленный им объект (информация о месте расположения объекта на жестком диске). Двойной щелчок мыши по ярлыку позволяет запустить (открыть) представляемый им объект. При его удалении сам объект не стирается, в отличие от удаления значка. Достоинство ярлыков в том, что они обеспечивают быстрый доступ к объекту из любой папки, не расходуя на это памяти. Отличить ярлык от значка можно по маленькой стрелке в левом нижнем углу пиктограммы.
Панель задач является инструментом для переключения между открытыми папками или приложениями. В левой части панели задач расположена кнопка "Пуск"; в правой - панель индикации. На самой панели изображаются все открытые в данный момент объекты.
Выше на рисунке показан рабочий стол Windows с открытым Главным меню, окном текстового процессора Word, значками и ярлыками и некоторыми свернутыми на панели задач документами.
Из других понятий Windows следует отметить понятия каталога и папки.
Каталог – поименованная группа файлов, объединенных по какому-либо признаку.
Папка – понятие, которое используется в Windows вместо понятия каталог в более ранних операционных системах. Понятие папка имеет расширенное толкование, так как наряду с обычными каталогами папки представляют и такие объекты, как Мой компьютер, Проводник, Принтер, Модем и др.
Запуск инструментов Windows из Linux
WSL может запускать средства Windows непосредственно из командной строки WSL с помощью [tool-name].exe . Например, notepad.exe .
Приложения, выполняемые таким образом, обладают следующими свойствами.
- Рабочим каталогом остается каталог командной строки WSL (в большинстве случаев; исключения описаны ниже).
- Они имеют те же разрешения, что и процесс WSL.
- Они выполняются от имени активного пользователя Windows.
- Они отображаются в диспетчере задач Windows так, как если бы они выполнялись непосредственно из командной строки.
Исполняемые файлы Windows, выполняемые в WSL, обрабатываются аналогично собственным исполняемым файлам Linux — конвейерной передаче, перенаправлению и даже фоновому режиму работы.
Чтобы запустить средство Windows ipconfig.exe , использовать средство Linux grep для фильтрации результатов IPv4, а также средство Linux cut для удаления полей столбцов из дистрибутива Linux (например, Ubuntu), введите:
Давайте рассмотрим пример сочетания команд Windows и Linux. Откройте дистрибутив Linux (например, Ubuntu) и создайте текстовый файл: touch foo.txt . Теперь используйте команду Linux ls -la , чтобы отобразить список файлов прямого доступа и сведения об их создании, а также средство Windows PowerShell findstr.exe , чтобы отфильтровать результаты и отобразить только файл foo.txt :
Средства Windows должны иметь расширение файла, его регистр символов должен совпадать с регистром в имени файла и эти файлы должны быть исполняемыми. Неисполняемые файлы, в том числе сценарии пакетного выполнения и собственные команды командной строки, такие как dir , можно выполнять с помощью команды cmd.exe /C .
Например, отобразите список содержимого каталога C:\ файловой системы Windows, введя:
Параметры передаются в двоичный файл Windows без изменений. Например, следующая команда откроет C:\temp\foo.txt в notepad.exe .
Этот способ также будет работать:
Учет регистра в именах файлов и каталогов
Чувствительность к регистру определяет, обрабатываются ли прописные (FOO.txt) и строчные буквы (foo.txt) как уникальные (с учетом регистра) или эквивалентные (без учета регистра) в имени файла или каталога. В файловых системах Windows и Linux чувствительность к регистру разная: в Windows он учитывается, а в Linux — нет. Дополнительные сведения о том, как настроить чувствительность к регистру, особенно при подключении дисков с помощью WSL, см. в статье Настройка чувствительности к регистру.
Взаимодействие между командами Windows и Linux
Средства и команды Windows и Linux в WSL могут использоваться взаимозаменяемо.
- Запустить средства Windows (например, notepad.exe) из командной строки Linux (например, Ubuntu).
- Запустить средства Linux (например, grep) из командной строки Windows (например, PowerShell).
- Совместное использование переменных среды между Linux и Windows. (сборка 17063+)
Использование библиотек для доступа к файлам и папкам
Когда дело дойдет до «благоустройства» Windows, Вам не придется начинать все с нуля. Для доступа к файлам и папкам и их упорядочения различными способами можно воспользоваться библиотеками – новым средством Windows.
Ниже представлен список четырех библиотек по умолчанию и их типичных назначений:
-
Библиотека документов. В этой библиотеке можно организовывать и упорядочивать текстовые файлы, электронные таблицы, презентации и другие документы.
По умолчанию папка «Мои документы» – хранилище для всех файлов, перемещенных, скопированных или сохраненных в библиотеку документов.
По умолчанию папка «Мои рисунки» – хранилище для всех изображений, перемещенных, скопированных или сохраненных в библиотеку изображений.
По умолчанию папка «Моя музыка» – хранилище для всех файлов, перемещенных, скопированных или сохраненных в фонотеку.
По умолчанию папка «Мои видеозаписи» – хранилище для всех файлов, перемещенных, скопированных или сохраненных в библиотеку видеозаписей.
Чтобы открыть библиотеки «Документы», «Изображения» или «Музыка», меню Пуск и нажмите Документы, Изображения и Музыка.
Дополнительные сведения о библиотеках см. Работа с библиотеками.
Просмотр текущего каталога в проводнике Windows
Вы можете просмотреть каталог, в котором хранятся файлы, открыв проводник Windows из командной строки:
Также можно использовать команду powershell.exe /c start . . Обязательно добавьте точку в конце команды, чтобы открыть текущий каталог.
Чтобы просмотреть все доступные дистрибутивы Linux и их корневые файловые системы в Windows проводнике, введите \\wsl$ в адресной строке.
Создание и удаление файлов
Зачастую новые файлы Windows создают с помощью программы. Например, текстовый документ можно создать в текстовом редакторе, а видеофайл – в видеоредакторе.
Некоторые программы создают файл сразу после открытия. Например, если открыть WordPad, будет открыта пустая страница. Она изображает пустой (и несохранившийся) файл. Начните ввод, а когда будете готовы сохранить результат работы, нажмите кнопку Сохранить. В диалоговом окне появится, введите имя файла, которое поможет найти его снова, нажмите кнопку Сохранить.
По умолчанию большинство программ сохраняет файлы в стандартных папках («Мои документы», «Моя музыка» и др.) – так файлы легче найти.
Если файл больше не нужен, его можно удалить с компьютера, чтобы иметь больше свободного места и не загромождать компьютер ненужными файлами. Чтобы удалить файл, откройте папку или библиотеку, в которой расположено файл, и выделите его. Нажмите клавишу Delete на клавиатуре, а затем в диалоговом окне Удаление файла нажмите кнопку Да .
После удаления файла он временно хранится в «Корзине». «Корзина» можно сравнить со страховочной сеткой: он позволяет восстановить случайно удаленные файлы и папки. Время от времени следует очищать «Корзину» для освобождения места на диске, которое занимают ненужные файлы. Чтобы узнать, как это сделать, см. Окончательное удаление файлов из корзины.
Хранение файлов и производительность в файловых системах
Мы не рекомендуем работать с разными операционными системами, если на это нет особой причины. Для ускорения производительности сохраняйте файлы в файловой системе WSL, если используете командную строку Linux (Ubuntu, OpenSUSE и т. д.). Если вы работаете в командной строке Windows (PowerShell, командной строке), сохраняйте файлы в файловой системе Windows.
Например, при хранении файлов проекта WSL:
- Используйте корневой каталог файловой системы Linux: \\wsl$\Ubuntu\home\\Project
- Используйте корневой каталог файловой системы Windows: /mnt/c/Users//Project$ или C:\Users\\Project .
Если вы видите /mnt/ в пути к файлу в командной строке WSL, это означает, что вы работаете с подключенного диска. Поэтому диск C:/ ( C:\Users\\Project ) в файловой системе Windows при подключении в командной строке WSL будет выглядеть следующим образом: /mnt/c/Users//Project$ . Файлы проекта можно хранить на подключенном диске, но производительность может повыситься, если вы будете хранить их непосредственно на диске \\wsl$ .
Совместное использование переменных среды между Windows и WSL с помощью WSLENV
Решение WSL и Windows совместно используют WSLENV — специальную переменную среды, созданную для взаимодействия Windows и дистрибутивов Linux, запущенных в WSL.
Свойства переменной WSLENV :
- она используется совместно и существует в средах Windows и WSL;
- это список переменных среды, которые совместно используют Windows и WSL;
- она позволяет форматировать список переменных среды для корректного использования в Windows и WSL.
- она может использоваться в потоке между WSL и Win32.
До выпуска сборки 17063 единственной переменной среды Windows,, к которой могла получить доступ WSL, была PATH (это позволяло запускать исполняемые файлы Win32 из WSL). Начиная со сборки 17063, WSLENV поддерживается. WSLENV учитывает регистр.
Открытие существующего файла
Чтобы открыть файл, дважды щелкните его. Обычно файл открывается в той программе, в которой он был создан или отредактирован. Например, текстовый файл откроется в текстовом редакторе.
Но не всегда бывает так. Например, после двойного щелчка файла изображения обычно открывается программа просмотра изображений. Чтобы изменить изображение, нужно воспользоваться другой программой. Щелкните правой кнопкой мыши, выберите пункт Открыть с помощью и выберите имя программы, которую следует запустить.
Файл – это элемент, который содержит информацию: текст, изображения или музыку. Открытый файл может быть очень похожим на обычный текстовый документ или изображение, которые можно увидеть на столе или в ящике. На компьютере файлы представлены пиктограммами, это позволяет легко распознавать тип файла по виду его пиктограммы.
Вот несколько типичных значков файлов:
Папка – это своеобразный контейнер, который можно использовать для хранения файлов. Если разложить на обычном столе тысячи бумажных документов, найти среди них нужный будет практически невозможно.
Вот почему люди часто хранят документы в папках на полках шкафов. Папки на компьютере выполняют ту же функцию. Вот несколько типичных значков папок:
В папках могут содержаться другие папки. Папка, расположенная внутри другой, обычно называется вложенной папкой. Можно создать любое количество вложенных папок, и каждая из них может содержать любое количество файлов и других вложенных папок.
Cтруктура окна системы Windows
Когда открывают папку или библиотеку, она отображается в окне. Различные компоненты этого окна облегчают перемещение в Windows и упрощают работу с файлами, папками и библиотеками.
Вот типичное окно и его компоненты:
С помощью области переходов можно получить доступ к библиотекам, папок, сохраненных результатов поиска и даже целых жестких дисков. Из раздела «Избранное» можно открывать часто используемые папки и результаты поиска, а из раздела «Библиотеки» можно получить доступ к своим библиотек.
Для просмотра папок и вложенных папок можно воспользоваться и папкой «Компьютер».
Панель инструментов позволяет выполнять стандартные задачи, например изменять вид папок и файлов, записывать файлы на компакт-диск или запускать показ слайдов цифровых изображений. Кнопки на панели инструментов изменяются, отображаются только уместны для каждого конкретного случая задачи.
Например, если щелкнуть файл изображения на панели инструментов появятся остальные кнопки, чем для музыкального файла.
С помощью адресной строки можно переместиться в другую папку или библиотеки, а также вернуться к предыдущей папке или библиотеке. Дополнительные сведения см. Навигация с помощью строки.
Область библиотек появляется только во время работы в библиотеке (например, в библиотеке документов). С помощью области библиотек можно настроить библиотеку или упорядочить файлы различными свойствами. Дополнительные сведения см. Работа с библиотеками.
С помощью заголовков столбцов можно изменить упорядочения файлов в списке. Например, щелкнув левую часть заголовка столбца, можно изменить порядок отображения файлов и папок щелкнув правую часть заголовка столбца, можно отфильтровать файлы различными способами. (Заметьте, что заголовки столбцов доступны только в режиме «Подробно»)
Здесь отображается содержимое текущей папки или библиотеки. Если воспользоваться полем поиска для поиска файла, отображается только файлы в текущем представлении (к нему относятся и файлы во вложенных папках).
В поле поиска можно ввести слово или фразу, чтобы найти элемент в текущей папке или библиотеке. Поиск начинается, уже началось введения. Поэтому когда, например, введено букву «В», появляется список всех файлов, имена которых начинаются с буквы «В». Дополнительные сведения см. Поиск файла или папки.
Область сведений позволяет просматривать стандартный набор свойств, связанных с выделенным файлом. Свойства файла – это информация о файле: имя автора, дата последнего изменения и описательные теги, которые можно добавить к файлу.
В области просмотра можно просмотреть содержимое большинства файлов. Выбрав электронной почты, текстовый файл или изображение, можно увидеть содержимое выбранного файла, не открывая его в программе. Если область просмотра не отображается, включите, нажав на панели инструментов кнопку Область просмотра .
В пятой части нашей серии статей мы показали, как можно использовать прерывания BIOS'а после перехода в защищенный режим, и в качестве примера определили размер оперативной памяти. Сегодня мы разовьем этот успех и реализуем полноценную поддержку работы с дисками с файловой системой FAT16 и FAT32. Работу с файлами на диске можно разбить на 2 части: работа с файловой системой и работа с диском на уровне чтения/записи секторов. Можно сказать, что для этого нам нужно написать «драйвер» файловой системы и «драйвер» диска.
Работа с диском на уровне чтения/записи секторов
Для начала научимся работать с диском.
Итак, мы можем вызывать прерывания BIOS'а. Помимо прочих возможностей, BIOS предоставляет интерфейс для работы с диском, а именно — прерывание int 0x13. Со списком сервисов, предоставляемых прерыванием, можно ознакомиться на википедии. Нас интересуют сервисы чтения и записи дисков.
Существует два способа адресации сектора на диске, с которыми работает BIOS – CHS(cylinder-head-sector) и LBA(logical block addressing). Адресация CHS основана на использовании геометрии диска, и адресом сектора является совокупность трех координат: цилиндр, головка, сектор. Способ позволяет адресовать до 8Гб. Прерывание int0x13 предоставляет возможность читать и писать на диск с использованием этой адресации.
Понятно, что 8Гб — это очень мало, и данный способ адресации является устаревшим, а все современные (и не очень) контроллеры жестких дисков поддерживают адресацию LBA. Адресация LBA абстрагируется от геометрии диска и присваивает каждому сектору собственный номер. Нумерация секторов начинается с нуля. LBA для задания номера блока использует 48 бит, что позволяет адресовать 128 ПиБ, с учетом размера сектора в 512 байт. Прерывание int0x13 предоставляет два сервиса для чтения и записи секторов на диск с использованием LBA. Их мы и будем использовать. Для чтения сектора прерывание in0x13 ожидает следующие параметры:
Прерывание возвращает следующие значения:
Один из параметров – номер диска. Нужно как-то узнать номер диска, с которым мы собрались работать. Нумерация происходит следующим образом: флоппи-диски (fdd), и все, что эмулируется как флоппи, нумеруются с нуля, а жесткие диски (hdd), и все, что эмулируется как они(usb-флешки, например), нумеруются с 0x80. Этот номер никак не связан с последовательностью загрузки в настройках BIOS’а. В нашем случае, диск, с которым мы собираемся работать, является тем диском, с которого мы загрузились.
Когда BIOS передает управление MBR, он загружает его по адресу 0000h:7C00h, а в регистре DL передает нужный нам номер загрузочного устройства. Это является частью интерфейса взаимодействия между BIOS и MBR. Таким образом, этот номер попадает в GRUB, где далее используется для работы с диском. GRUB, в свою очередь, передает этот номер ОС как часть структуры Multiboot information.
Сразу после передачи управления от GRUB’а к ОС в регистре EBX находится указатель на эту структуру. Первое поле структуры – это flags, и если в нем выставлен 2-й бит, то поле boot_device корректно. Это поле так же принадлежит структуре Multiboot information и в его старшем байте (размер поля – 4 байта) хранится нужный нам номер диска, который понимает прерывание int0x13. Таким образом, используя GRUB, мы получили недостающий параметр для чтения/записи секторов на диск.
Мы научились читать и писать сектора на диск, это, безусловно, важно. Но файловая система привязана не к целому диску, а только к его части – разделу. Для работы с файловой системой нужно найти сектор, с которого начинается раздел, на котором она располагается. Информация об имеющихся на диске секторах хранится в первом секторе диска, там же, где располагается MBR. Существует много различных форматов MBR, но для всех них верна следующая структура:
Информация о разделах хранится в таблице разделов. На диске может быть только 4 первичных раздела, с которых можно загрузиться. На запись о разделе приходится 8 байт. Первый байт — это флаги, если его значение 0x80, то раздел загрузочный. Код MBR в процессе своей работы пробегает по этим 4-м разделам в поиске загрузочного раздела. После его обнаружения, MBR копирует содержимое первого сектора этого раздела на адрес 0000h:7C00h и передает туда управление. Нас интересует LBA адрес первого сектора загрузочного раздела, так как именно на нем располагается наше ядро, и присутствует файловая система, которую мы собираемся читать. Для того чтобы получить этот адрес, нужно прочитать первый сектор диска, найти на нем таблицу разделов, в таблице разделов найти загрузочный раздел, а из его записи прочитать нужное поле.
Итак, у нас есть механизм для чтения сектора с диска и знание о расположении нужного нам раздела на диске. Осталось научиться работать с файловой системой на этом разделе.
Работа с файловой системой
Для работы с файловой системой мы будем использовать библиотеку fat_io_lib. Библиотека доступна под лицензией GPL. Она предоставляет интерфейс для работы с файлами и директориями, аналогичный имеющемуся в libc. Реализованы такие функции, как fopen(), fgets(), fputc(), fread(), fwrite() и т.д. Библиотека для своей работы требует всего лишь две функции: записать сектор и прочитать сектор, причем первая является необязательной. Функции имеют следующий прототип:
Библиотека написана на чистом С, что опять-таки нам на руку. Для использования в своей мини-ОС нам не придется менять в ней ни строчки. Библиотека ожидает, что чтение секторов происходит в рамках раздела с файловой системой.
Итак, у нас есть функции чтения/записи сектора на раздел и есть библиотека для работы с FAT16/32, которая использует эти функции. Осталось собрать все воедино и продемонстрировать результат. Но прежде чем перейти к коду, хотелось бы показать, что подход, который мы собираемся использовать, вполне применим в реальной жизни. Ниже представлена небольшая часть VBR windows 7, в которой происходит чтение сектора диска посредством прерывания int0x13. Этот код многократно вызывается в процессе загрузки системы, вплоть до момента отрисовки загрузочной анимации.
Для вызова этого кода, Windows 7, подобно тому, как это делаем мы, переходит из защищенного режима в реальный, и обратно. Это несложно проверить, запустив Windows 7 в QEMU. QEMU должен ожидать подключения отладчика. После подключения отладчика (gdb) ставим breakpoint на адрес (0x7c00 + 0x11d). Срабатывание breakpoint’а будет означать вызов этой функции. Кстати в Windows XP этот механизм отсутствует, для вызова прерываний BIOS'а там переходят в режим VM86.
! ВАЖНО! Все дальнейшие действия могут успешно осуществляться только после успешного прохождения всех шагов из пятой части нашей серии статей
Шаг 1. Изменим основную логику в kernel.c
1. Добавим в файле kernel.c следующие объявления:
Код, печатающий размер оперативной памяти
заменим на следующий код:
Память под переменные mbd и magic зарезервирована в файле loader.s, так что их можно использовать аналогично глобальным переменным из кода на С. Переменная magic содержит сигнатуру, подтверждающую, что для загрузки использовался стандарт Multiboot, эталонной реализацией которого является GRUB. Переменная mbd указывает на структуру multiboot_info_t, которая объявлена в multiboot.h. Номер загрузочного диска определяется следующим выражением — p_multiboot_info->boot_device >> 24. Функция InitBootMedia запоминает номер диска и ищет первый сектор файловой системы, чтобы затем все смещения считать от него.
Библиотека fat_io_lib для инициализации требует вызова двух функций: fl_init и fl_attach_media. Первая функция обнуляет внутренние структуры библиотеки, а вторая получает в качестве параметров функции чтения и записи секторов на диск, которые затем используются для обращения к файлам. Далее идет демонстрация работы с библиотекой: выводится список файлов в папке /boot/grub и распечатывается содержимое файла menu.lst.
2. Добавляем файл multiboot.h в папку include. Содержимое файла берем с сайта спецификации предыдущей версии.
Шаг 2. Добавим функции для работы с диском
1. В файл include\callrealmode.h добавим прототипы следующих функций:
2. В файле include\callrealmode_asm.h добавим в enum callrealmode_Func новое значение так, чтобы получилось следующее:
Добавим в union внутри структуры callrealmode_Data только что объявленную структуру callrealmode_read_disk. Должно получиться следующее:
3. В файл include\string.h добавим функции strncmp и strncpy, используемые в библиотеке fat_io_lib.
4. Добавим в файл callrealmode.c следующие объявления:
И несколько функций:
Функции ReadBootMedia и WriteBootMedia используются библиотекой fat_io_lib для чтения/записи секторов. Функция WriteBootMedia не обязательная и является заглушкой, так как в данном примере нет записи на диск. Ее реализация выглядела бы аналогично функции ReadBootMedia. Функция ReadBootMedia похожа на функцию GetRamsize из прошлой статьи с точностью до типа param.func, а вместо param.getsysmemmap используется param.readdisk. Функция InitBootMedia должна быть вызвана раньше двух остальных, так как она инициализирует значения g_BootPartitionStart и g_BootDeviceInt13Num.
5. Изменим callrealmode_asm.s. Добавим еще один тип CALLREALMODE_FUNC_READ_DISK вызываемых функций, должно получиться следующее:
Далее добавим еще одну проверку на тип функции и непосредственно код, читающий с диска. Должно получиться следующее:
Метка readdisk указывает на код, который формирует структуру DAP из структуры callrealmode_Data и вызывает int0x13. В коде после метки callrealmode_switch добавилось 2 инструкции, проверяющие, не нужно ли вызывать readdisk.
6. Добавим файл include\mbr.h, содержащий определения для работы с MBR. Его содержимое:
Структура MBRSector используется в функции InitBootMedia.
Шаг 3. Добавим библиотеку fat_io_lib и запустим
1. Скачаем архив fat_io_lib.zip и распакуем его в папку fat_io_lib в корне проекта.
2. Добавим пустые файлы assert.h и stdlib.h в папку include. Они нужны, что бы библиотека скомпилировалась.
3. Исправим Makefile. Добавим файлы из библиотеки в список целей для компиляции. Должно получиться следующее:
Теперь размер образа равен 10Mb. Это делается для того, чтобы команда mkdosfs отформатировала раздел в FAT16 вместо FAT12. FAT12 не поддерживается библиотекой fat_io_lib.
С этим дефайном библиотека не будет включать stdio.h, но будет использовать готовый прототип функции printf, который совпадает с нашим, и который уже реализован.
4. Пересоберем проект
sudo make image
Должно получиться следующее:
Как и в предыдущих частях, можно сделать dd образа hdd.img на флешку и проверить код на реальном железе, загрузившись с нее.
В результате мы реализовали работу с файловыми системами FAT16 и FAT32. Мы немного схитрили, использовав готовую библиотеку, но разбираться в устройстве FAT'а было бы менее интересно, да и вряд ли бы мы тогда уложились в 1 статью. Надеюсь, вам было интересно читать. Пишите в комментариях, если у вас возникнут проблемы в прохождении описанных шагов!
Отключение взаимодействия
Пользователи могут отключить возможность запуска средств Windows для отдельного сеанса WSL, выполнив следующую команду в качестве привилегированного пользователя.
Чтобы повторно включить возможность запуска двоичных файлов Windows, закройте все сеансы WSL и повторно запустите bash.exe или выполните следующую команду от имени привилегированного пользователя.
Отключение взаимодействия не будет сохраняться между сеансами WSL, оно снова будет включено при запуске нового сеанса.
Открывая папку или библиотеку, можно изменить вид файлов в окне. Например, можно увеличить (или уменьшить) пиктограммы или выбрать такое представление, которое будет отражать для различных файлов различные типы сведений. Чтобы внести такие изменения, воспользуйтесь кнопкой Представление на панели инструментов .
С каждым нажатием левой части кнопки «Вид» меняется представление файлов и папок благодаря циклическому переходу между пятью различными представлениями:
- «Крупные значки»;
- «Список»;
- «Подробно», в котором отображаются несколько столбцов с данными о файле;
- «Плитка» с уменьшенными значками;
- «Содержание», в котором отображается часть содержимого файла.
Если нажать стрелку в правой части кнопки «Вид», будет доступен еще больший выбор. Перетащите ползунок выше или ниже, чтобы точно настроить размер значков файлов и папок. Значки изменяют размер по мере перемещения ползунка.
Библиотеки предоставляют больше возможностей благодаря функции упорядочения файлов различными способами. Например, если нужно упорядочить файлы в медиатеке по жанру (таким как Jazz и Classical):
Структура окна папки
Типовое окно папки показано на рисунке.
Окно содержит следующие обязательные элементы.
- Строка заголовка - в ней написано название папки. Служит для перетаскивания окна.
- Системный значок. Открывает служебное меню, с помощью которого можно управлять размером и расположением окна.
- Кнопки управления размером: разворачивающая (восстанавливающая), сворачивающая, закрывающая.
- Строка меню (ниспадающее меню). Гарантированно предоставляет доступ ко всем командам данного окна.
- Панель инструментов. Содержит командные кнопки для выполнения наиболее часто встречающихся операций. Часто пользователь может сам настраивать эту панель размещая на ней необходимые кнопки.
- Адресная строка. В ней указан путь доступа к текущей папке. Позволяет быстро перейти к другим разделам файловой структуры.
- Рабочая область. Отображает значки объектов, хранящихся в папке, причем способом отображения можно управлять.
- Полосы прокрутки – позволяют прокручивать содержимое окна в горизонтальном или вертикальном направлении если информация не умещается в окне.
- Строка состояния. Выводит дополнительную информацию об объектах в окне.
Флаги WSLENV
В WSLENV доступны четыре флага, влияющие на способ преобразования переменной среды.
- /p преобразовывает пути WSL и Linux в пути Win32 и наоборот;
- /l указывает, что переменная среды представляет собой список путей;
- /u указывает, что эту переменную среды следует добавлять только при запуске WSL из Win32;
- /w указывает, что эту переменную среды следует добавлять только при запуске Win32 из WSL.
При необходимости флаги можно комбинировать.
Узнайте больше о WSLENV, ознакомившись с часто задаваемыми вопросами и примерами установки значения WSLENV для объединения других предварительно определенных переменных среды с суффиксом в виде косой чертой и флагами для указания способа перевода значения и передачи переменных скрипту. В этой статье также показано, как настроить среду разработки с помощью языка программирования Go для совместного использования GOPATH с WSL и Win32.
Работа с буфером обмена
ОС Windows создает и обслуживает специальную область памяти, называемую буфером обмена. Буфер обмена служит для обмена данными между приложениями Windows. Описанный выше второй способ копирования предполагает использование буфера обмена.
В меню Правка для операций с буфером обмена используются пункты Копировать, Вырезать и Вставить. Первые два помещают в буфер обмена объект, последний - копирует из буфера обмена. Если объект (часть текста, рисунок и т.д.) не выделен, то первые два пункта будут не активны. Если буфер обмена пуст, то не будет активен и третий пункт.
Операции с буфером обмена выполняются очень часто, поэтому на панель инструментов окна помещаются кнопки быстрого доступа.
Самый быстрый способ работы с буфером обмена - использование комбинаций клавиш: Ctrl+C - копировать; Ctrl+X - вырезать; Ctrl + V - вставить.
Файловые системы можно рассматривать на двух уровнях: логическом и физическом. Логический определяет отображение файловой системы, предназначенное для прикладных программ и пользователей, физический - особенности расположения структур данных системы на диске и алгоритмы, используемые при доступе к информации.
Файл - это набор данных, к которому можно обращаться по имени. Файлы организованы в файловые системы. С точки зрения пользователя файл является минимальным объемом данных файловой системы, с которым можно работать независимо.
- Файлы являются самым распространенным средством хранения информации в энергонезависимой памяти. Такая память надежнее, и информация на ней может храниться так долго, как это необходимо. Отметим, что большинство сбоев в работе ОС не разрушает, хранимой в файлах на диске, информации. Для обеспечения сохранности данных повышенной ценности, принимают дополнительные меры (горячее резервирование, резервное копирование и т.п.).
- Файлы обеспечивают самый простой вариант совместного использования данных разными приложениями. Это связано с тем, что файлы отделены от программ, которые их используют: любая программа, которой известно имя файла, может получить доступ к его содержимому. Если одна программа запишет в файл, а другая его потом прочитает, то эти две программы выполнят обмен данными.
Понятия файловой системы
Файловая система - это подсистема ОС, которая поддерживает организованный набор файлов, в основном в конкретной области дискового пространства (логическую структуру); низкоуровневые структуры данных, используемые для организации этого пространства в виде набора файлов (физическую структуру); программный интерфейс файловой системы (набор системных вызовов, реализующих операции над файлами).
Файловая система предоставляет прикладным программам абстракцию файла. Приложения не имеют информации о том, как организованы данные файла, как находят соответствие между именем файла и его данным, как пересылают данные с диска в памяти и т.д. - все эти операции обеспечивает файловая система.
Важно отметить, что файловые системы могут предоставлять интерфейс доступа не только к диску, но и к другим устройствам. Есть даже файловые системы, которые не сохраняют информацию, а генерируют ее динамично по запросу. Впрочем, для прикладных программ все такие системы имеют одинаковый вид.
К главным задачам файловой системы можно отнести:
· организацию ее логической структуры и ее отражение на физическую организацию размещения данных на диске;
· поддержку программного интерфейса файловой системы;
· обеспечение устойчивости против сбоев;
· обеспечение распределения файловых ресурсов в условиях многозадачности и защиты данных от несанкционированного доступа.
Ранее ОС поддерживали файлы различной специализированной структуры. Сегодня есть тенденция вообще не контролировать на уровне ОС структуру файла, отображая каждый файл простой последовательностью байтов. В этом случае приложения, которые работают с файлами, сами определяют их формат.
Такой упрощенный подход справедлив не для всех файлов. Есть специальные файлы, которые операционная система интерпретирует особым образом. Структура таких файлов в ОС, поддерживает соответствие с теми задачами, которые с их помощью решаются.
Еще одной категорией файлов является исполняемые файлы. Хотя их обычно не рассматривают вместе со специальными файлами, они использую жестко заданный формат, который распознает операционная система Часто бывает так, что ОС может работать с исполняемыми файлами различных форматов.
Еще одним вариантом классификации является разделение на файлы с прямым и последовательным доступом. Файлы с прямым доступом позволяют свободно переходить из любой позиции в файле, используя для этого, понятия указателя текущей позиции файла (seek pointer), что позволяет перемещаться в любом направлении с помощью соответствующих системных вызовов. Файлы с последовательным доступом могут быть считаны только последовательно, из начала в конец. Современные ОС обычно рассматривают все файлы, как файлы с прямым доступом.
Раздел (partition) - часть физического дискового пространства, предназначенная для размещения на ней структуры одной файловой системы и с логической точки зрения рассматривается как единое целое.
Раздел - это логическое устройство, что с точки зрения ОС функционирует как отдельный диск. Такое устройство может отвечать всем характеристикам физического диска (в этом случае говорят, что диск содержит один раздел); чаще всего он соответствует части диска (такую часть называют еще физическим разделом); бывает и так, что подобные логические устройства сочетают несколько физических разделов, находящихся, возможно, на разных дисках (такие устройств называют логическими томами - logical volumes).
Каждый раздел может иметь свою файловую систему (и, возможно, использоваться различными ОС). Для разделения дискового пространства на разделы используют специальную утилиту, которую часто называют fdisk. Для генерации файловой системы на разделе нужно использовать операцию высокоуровневого форматирования диска. В некоторых ОС под томом (volume) понимают раздел с установленной на нем файловой системой.
Реализация разделов позволяет отделить логическое отражение дискового пространства от физического и повышает гибкость использования файловых систем.
Каталог - это объект (чаще всего реализован как специальный файл), содержащий информацию о наборе файлов. О таких файлах говорят, что они находятся в каталоге. Файлы заносятся в каталоги пользователями на основании их собственных критериев, некоторые каталоги могут содержать данные, необходимые операционной системе, или ее код.
Каталог можно представить себе как символьную таблицу, которая реализует отображение имен файлов в элементы каталога (обычно в таких элементах сохраняют низкоуровневую информацию о файлах).
Древовидная структура каталогов
Базовой идеей организации данных с помощью каталогов является то, что они могут содержать другие каталоги. Вложенные каталоги называют подкаталогами (subdirecto-ries). Таким образом формируют дерево каталогов. Первый каталог, созданный в файловой системе, установленной в разделе (корень дерева каталогов), называют корневым каталогом (root directory).
При работе с файловыми системами Windows и Linux следует учитывать ряд моментов. В этом пошаговом руководстве рассматриваются некоторые из них, а также приводятся примеры поддержки взаимодействия для смешанного использования команд на основе Windows и Linux.
Копирование и перемещение файлов и папок
Иногда может возникнуть необходимость изменить место хранения файлов. Например, может потребоваться переместить файлы в другую папку или скопировать на съемный носитель (компакт-диск или карту памяти), чтобы предоставить доступ к ним другому лицу.
Большинство людей копируют и перемещают файлы Windows с помощью метода, который называется «перетаскивание». Откройте папку, содержащую файл, который требуется переместить. Далее откройте в другом окне ту папку, в которую нужно переместить эти элементы. Расположите окна на рабочем столе рядом, чтобы видеть содержимое обоих.
Перетащите файл или папку с первой папки в другую. Вот и все.
Пользуясь перетаскиванием, можно заметить, что иногда файл или папка копируется, а в другой раз – перемещается.
Если перетаскивать между двумя папками, расположенными на одном жестком диске, элементы будут перемещены без создания двух экземпляров одного файла или папки в одном месте.
Если перетаскивать в папку с другим расположением (например, сетевым) или на съемный носитель (например, компакт-диска), элемент копируется.
- Самый простой способ упорядочить два окна на рабочем столе – это воспользоваться параметром «Привязка». Дополнительные сведения см. Размещение окон на рабочем столе рядом друг с другом с помощью функции привязки.
- Если скопировать или переместить файл или папку в библиотеку, то сохранение происходит в расположении для сохранения по умолчанию библиотеки. Чтобы узнать, как настроить путь для сохранения библиотеки по умолчанию, см. Настройка библиотеки.
- Другой способ скопировать или переместить файл – перетащить его из списка файлов в папке или библиотеке в области переходов. В таком случае не будет необходимости открывать два отдельных окна.
Файловая система персонального компьютера
Файловая система обеспечивает хранение и доступ к файлам на диске. Принцип организации файловой системы - табличный. Поверхность диска рассматривается как трехмерная матрица, измерениями которой являются номера поверхности, цилиндра и сектора. Под цилиндром подразумевается совокупность всех дорожек, принадлежащих разным поверхностям и равноудаленных от оси вращения. Данные о том, в каком месте записан тот или иной файл, хранятся в системной области диска в специальной таблице размещения файлов (FAT-таблица). FAT-таблица хранится в двух экземплярах, идентичность которых контролируется операционной системой.
ОС MS-DOS, OS/2, Windows-95/NT реализуют 16-разрядные поля в FAT-таблицах. Такая система называлась FAT-16. Такая система позволяет разместить не более 65536 записей о местоположении единиц хранения данных. Наименьшей единицей хранения данных является сектор. Размер сектора равен 512 байтам. Группы секторов условно объединяют в кластеры, которые являются наименьшей единицей адресации к данным. Размер кластера зависит от емкости диска: в Fat-16 для дисков от 1 до 2 Гбайт 1 кластер занимает 64 сектора или 32 Кбайта. Это нерационально, поскольку даже маленький файл занимает 1 кластер. У больших файлов, занимающих несколько кластеров, в конце образуется незаполненный кластер. Поэтому потери емкости для дисков в системе FAT-16 могут быть очень велики. С дисками свыше 2,1 Гбайт FAT-16 вообще не работает.
В Windows 98 и старших версиях реализована более совершенная файловая система - FAT-32 с 32-разрядными полями в таблице размещения файлов. Она обеспечивает маленький размер кластера для дисков большой емкости. Например, для диска до 8 Гбайт 1 кластер занимает 8 секторов (4 Кбайта).
Файл - это именованная последовательность байтов произвольной длины. До появления Windows-95 общепринятой схемой именования файлов была схема 8.3 (короткое имя) – 8 символов собственно имя файла, 3 символа – расширение его имени. Недостаток коротких имен - их низкая содержательность. Начиная с Windows-95 введено понятие длинного имени (до 256 символов). Оно может содержать любые символы, кроме девяти специальных: \ / : * ? " < >|.
Расширением имени считаются все символы после последней точки. В современных операционных ситемах расширение имени несет для системы важную информацию о типе файла. Типы файлов регистрируются и связывают файл с открывающей его программой. Например файл MyText.doc будет открыт текстовым процессором Word, поскольку расширение .doc обычно связывается именно с этим приложением. Обычно, если файл не связан ни с какой открывающей программой, то на его значке обозначен флаг - логотип Microsoft Windows, а открывающую программу пользователь может указать сам, выбрав ее из предоставленного ОС списка.
Логически структура файлов организована по иерархическому принципу: папки более низких уровней вкладываются в папки более высоких уровней. Верхним уровнем вложенности является корневой каталог диска. Термины "папка" и "каталог" равнозначны. Каждому каталогу файлов на диске соответствует одноименная папка операционной системы. Однако, понятие папки несколько шире. Так в Windows-95 существуют специальные папки, осуществляющие удобный доступ к программам, но которым не соответствует ни один каталог диска.
Атрибуты файлов - это параметры, определяющие некоторые свойства файлов. Для получения доступа к атрибутам файла, следует щелкнуть правой кнопкой мыши по его значку и выбрать меню Свойства. Основных атрибутов 4: "Только для чтения", "Скрытый", "Системный", Архивный". Атрибут "Только для чтения" предполагает, что файл не предназначен для внесения изменений. Атрибут "Скрытый" говорит о том, что данный файл не следует отображать на экране при проведении файловых операций. Атрибутом "Системный" помечаются наиболее важные файлы ОС (как правило они имеют и атрибут "Скрытый"). Атрибут "Архивный" связан с резервным копированием файлов и особого значения не имеет.
Смешивание команд Linux и Windows
Ниже приведено несколько примеров смешиваний команд Linux и Windows с помощью PowerShell.
Чтобы выполнить команду Linux ls -la для вывода списка файлов и команду PowerShell findstr для фильтрации результатов слов, содержащих git, объедините команды:
Чтобы выполнить команду PowerShell dir для вывода списка файлов и команду Linux grep для фильтрации результатов слов, содержащих git, объедините команды:
Чтобы использовать команду Linux ls -la для вывода списка файлов и команду PowerShell > out.txt для вывода этого списка в текстовый файл с именем out.txt, объедините команды:
Команды, передаваемые в wsl.exe , перенаправляются в процесс WSL без изменения. Пути к файлам должны быть указаны в формате WSL.
Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Linux /proc/cpuinfo с помощью PowerShell, сделайте следующее:
Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Windows C:\Program Files с помощью PowerShell, сделайте следующее:
Поиск файлов в системе Windows
В зависимости от количества файлов и способа их упорядочивания, для поиска файла может потребоваться просмотр сотен файлов и вложенных папок – нелегкая задача. Чтобы сэкономить время и усилия, можно воспользоваться полем поиска.
Поле поиска находится в верхней части каждого окна. Чтобы найти файл, откройте папку или библиотеку, которая лучше всего подходит для начала поиска, щелкните поле поиска и начните ввод. Поле поиска фильтрует текущее представление на основе введенного текста. Файлы отображаются в результатах поиска, если запрос совпадает с именем файла, его тегами, другими свойствами файла и даже текстом внутри текстового документа.
Ища файл по свойству (например, тип файла), можно сузить поиск еще до начала ввода запроса. Для этого нужно щелкнуть поле поиска и выбрать какое-то из свойств, указанных под полем поиска. Таким образом к текстовому запросу будет добавлен фильтр поиска (например, «тип»), что поможет получить более точные результаты.
Если не удается найти файл, можно изменить всю область поиска, щелкнув параметр в нижней части списка файлов. Например, если не удалось найти файл в библиотеке документов, расширьте область поиска на другие библиотеки, щелкнув Библиотеки. Дополнительные сведения см. Поиск файла или папки.
Запуск инструментов Linux из командной строки Windows
Запускайте двоичные файлы Linux из командной строки Windows (CMD или PowerShell), используя wsl (или wsl.exe ).
Двоичные файлы вызываются следующим образом.
- Используется тот же рабочий каталог, что и для текущей командной строки или сеанса PowerShell.
- Файл выполняется от имени пользователя WSL по умолчанию.
- Требуются те же права администратора Windows, что и у вызывающего процесса и терминала.
Команда Linux после wsl (или wsl.exe ) обрабатывается как любая команда, выполняемая в WSL. Можно выполнять sudo, конвейерную передачу и перенаправление файлов.
Пример использования sudo для обновления дистрибутива Linux по умолчанию:
Имя пользователя дистрибутива Linux по умолчанию будет указано после выполнения этой команды, и вам будет предложено указать пароль. После правильного ввода пароля дистрибутив скачает обновления.
Структура окна папки
Типовое окно папки показано на рисунке.
Окно содержит следующие обязательные элементы.
- Строка заголовка - в ней написано название папки. Служит для перетаскивания окна.
- Системный значок. Открывает служебное меню, с помощью которого можно управлять размером и расположением окна.
- Кнопки управления размером: разворачивающая (восстанавливающая), сворачивающая, закрывающая.
- Строка меню (ниспадающее меню). Гарантированно предоставляет доступ ко всем командам данного окна.
- Панель инструментов. Содержит командные кнопки для выполнения наиболее часто встречающихся операций. Часто пользователь может сам настраивать эту панель размещая на ней необходимые кнопки.
- Адресная строка. В ней указан путь доступа к текущей папке. Позволяет быстро перейти к другим разделам файловой структуры.
- Рабочая область. Отображает значки объектов, хранящихся в папке, причем способом отображения можно управлять.
- Полосы прокрутки – позволяют прокручивать содержимое окна в горизонтальном или вертикальном направлении если информация не умещается в окне.
- Строка состояния. Выводит дополнительную информацию об объектах в окне.
Операции с файлами и папками
Копирование и перемещение
1 способ. Разместить на рабочем столе два окна: источник и приемник копирования. Выделить в окне-источнике необходимые значки. Несколько значков выделяются при нажатой клавише Ctrl. Перетащить мышью выделенные значки в окно-приемник, указав на любой из выделенных значков. При одновременно нажатой клавише Ctrl происходит копирование, без нее - перемещение элементов (при условии, что папки находятся на одном диске).
2 способ. Выделить копируемые элементы. Выбрать меню Правка/Копировать (Вырезать). При выборе "Вырезать" произойдет перемещение. Открыть папку-приемник. Выбрать меню Правка/Вставить.
Удаление файлов и папок
Удаление файлов выполняется выбором элементов и нажатием клавиши Delete. При этом отмеченные элементы перемещаются в специальную папку - Корзину. При очистке корзины происходит уничтожение файлов. Существует еще операция стирания файлов, когда специальными служебными программами кластеры, в которых содержались стираемые файлы, заполняются случайными данными.
Групповые операции с файлами
Если требуется выполнить операцию копирования или удаления с большим количеством файлов одновременно, то выделять их удерживая Ctrl не очень удобно. Можно выделить целую группу подряд идущих значков, щелкнув по первому их них и при нажатой клавише Shift - по последнему. Однако, в этом случае требуется определенным образом упорядочить значки. Для этого следует открыть папку с файлами и обратиться к меню Вид/Упорядочить значки. Существует 4 способа упорядочивания значков в папке: по имени, по типу, по размеру, по дате. Например, необходимо скопировать все файлы с расширением .txt. В этом случае следует упорядочить значки по типу, после чего все файлы типа .txt будут сгруппированы вместе и использовать клавишу Shift для их выделения. Аналогичный прием применяется для выделения "старых" файлов (упорядочение по дате), "маленьких" (упорядочение по размеру) и в других стандартных ситуациях.
Если в окне не показана полная информация о файлах (расширение, объем и дата создания), следует обратиться к меню окна папки Вид/Таблица и в окне будут выведены все характеристики файлов.
Переименование файлов и папок.
Переименование файла или папки выполняется либо через меню Переименовать, вызываемого щелчком правой кнопки мыши на соответствующем значке, либо щелчком по имени выделенного значка.
Замечание. Удаление или переименование невозможно, если указанный файл уже открыт каким-либо приложением.
Читайте также: