Основы Linux — командная строка и файловая система

15 марта стартует курс «Python для Пентестера » от команды codeby . Курс состоит из двух частей — базовой и продвинутой. В базовой части курса рассматриваются основные материалы по языку Python. В продвинутой части идёт материал, который поможет применять Python пентестеру в создании своих инструментов. Запись на курс до 25 марта. Подробнее …

Определения

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

  • Сетевая система (Network) содержит один сервер или его аналог в любом виде, в т. ч. виртуальном, с обслуживающимися им компьютерами в локальной сети.
  • Кластерная система (Cluster) содержит несколько серверов в общей сети.
  • Распределенная система (Distributed) содержит несколько серверов, объединенных по глобальной сети WAN (Wide area Network).

С таким определением, например, NFSv3 можно отнести к сетевой файловой системе (network file system). GFS2 – это кластерная файловая система. GlusterFS – это распределенная файловая система. NFSv4, в свою очередь, это некий гибрид между сетевой файловой системой, но с поддержкой нескольких серверов, внедренных в нее.

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

  • Распределенные файловые системы

Распределенные (в таком определении) файловые системы состоят из нескольких географически разнесенных серверов, соединенных по модели sharing nothing, где каждый активный сервер имеет собственную СХД. Кроме того, распределенные файловые системы делятся на два типа: параллельные системы (Parallel file systems) и полностью параллельные файловые системы (Fully parallel file systems).

  • Параллельные файловые системы

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

  • Полностью параллельные файловые системы

Полностью параллельными такие системы называются в том случае, когда не только данные, но и метаданные (различные индексы и пр.), также распределяются параллельно между всеми клиентами. Примеры таких систем – OrangeFS и Ceph.

Соотношения между сетевыми системами (Network), кластерными системами (Cluster), распределенными (Distributed), а также параллельными (Parallel) и полностью параллельными системами (Fully parallel) могут быть представлены следующим образом.

ответа

Файловая система EXT4 + TRIM:

  • EXT4 с TRIM повышает производительность за счет сокращения ненужной записи циклов на накопитель SSD, поскольку они ограничивают цикл записи-перезаписи.
  • Ubuntu и некоторые другие варианты Linux поддерживают EXT 4 с TRIM из коробки.

SWAP-раздел:

  • Убедитесь, что у вас нет пространства SWAP на SSD, чтобы уменьшить циклы записи.
  • Если у вас есть механический диск, вам необходимо создать пространство SWAP на механическом диске и избегать его на SSD.

Разделение разделов:

  • Раздел должен начинаться с чистой границы 1 МБ, чтобы размер блока файловой системы выравнивается с размером блока SSD.

Поэтому используйте EXT4 + TRIM с SWAP на механическом жестком диске или без SWAP на SSD.

Выберите ext4 и установите его с помощью опции discard для TRIM или используйте FITRIM (см. ниже). Также используйте опцию noatime , если вы боитесь «износа SSD».

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

Читайте также:  Linux командная строка — что это такое, как вызвать

Чтобы легко гарантировать правильное выравнивание данных, начальный сектор каждого раздела должен быть кратным 2048 (= 1 MiB). Вы можете использовать fdisk -cu /dev/sdX для их создания. В последних дистрибутивах он автоматически позаботится об этом для вас.

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

  • Файловые системы:

Ext4 — самая распространенная файловая система Linux (в хорошем состоянии). Он обеспечивает хорошую производительность с помощью SSD и поддерживает функцию TRIM (и FITRIM), чтобы поддерживать хорошую производительность SSD с течением времени (это позволяет удалить неиспользуемые блоки памяти для быстрого доступа к записи). NILFS специально разработан для флеш-накопителей, но не действительно работает лучше, чем ext4 в тестах. Btrfs по-прежнему считается экспериментальным (и на самом деле не работает лучше либо ).

  • Производительность SSD и amp; TRIM:

Функция TRIM очищает блоки SSD, которые больше не используются файловой системой. Это позволит оптимизировать долговременную производительность записи и рекомендуется на SSD из-за их дизайна. Это означает, что файловая система должна быть способна сообщить диску об этих блоках. Опция discard для ext4 выдаст такие команды TRIM , когда блоки файловой системы будут освобождены. Это онлайн-сброс .

Однако это поведение подразумевает небольшие накладные расходы. Начиная с Linux , вы можете избежать использования discard и выбрать вариант batch discard вместо FITRIM (например, из crontab). Утилита fstrim делает это (онлайн), а также параметр -E discard . Однако вам понадобится «последняя» версия этих инструментов.

Возможно, вы захотите ограничить запись на вашем диске, поскольку SSD имеет ограниченный срок службы в этом отношении. Не волнуйтесь слишком много, но , сегодня самый плохой SSD на 128 ГБ может поддерживать как минимум 20 ГБ письменных данных в день более 5 лет (1000 циклов записи на ячейку) , Более лучшие (и более крупные) могут длиться намного дольше: вы, вероятно, скорее всего замените его к тому времени.

Если вы хотите использовать swap на SSD, ядро ​​заметит невращающийся диск и будет рандомизировать использование swap (уровень износа уровня ядра): тогда вы см. SS (Solid State) в сообщении ядра при включении swap:

Добавление замены 2097148k в /dev /sda1. Приоритет: -1 экстентов: 1 через: 2097148k SS

  • Планировщики ввода /вывода:

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

Что такое дистрибутив Linux?

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

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

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

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

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

Читайте также:  Удалённый рабочий стол Ubuntu: возможные варианты подключения

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

  • DEB – формат файлов пакетов, использующихся в дистрибутиве Debian и во всех основанных на нем дистрибутивах;
  • RPM – менеджер пакетов, использующийся в дистрибутиве Red Hat, а также во многих других популярных дистрибутивах.

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

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

Подробней про дистрибутивы Linux мы поговорим в следующем материале.

На сегодня у меня все, пока!

Нравится25

Не нравится

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

3.3.1 Стандарт иерархии файловой системы

Как и другие дистрибутивы Linux, Kali Linux организован в соответствии со стандартом Filesystem Hierarchy Standard (FHS), что позволяет пользователям других дистрибутивов Linux с легкостью ориентироваться в Kali. FHS определяет назначение каждой директории. Директории верхнего уровня описываются следующим образом.

  • /bin/: основные программы
  • /boot/: Ядро Kali Linux и другие файлы, необходимые для его раннего процесса загрузки
  • /dev/: файлы устройства
  • /etc/: файлы конфигурации
  • /home/: личные файлы пользователей
  • /lib/: основные библиотеки
  • /media/*: точки монтирования для съемных устройств (CD-ROM, USB накопители и т.д.)
  • /mnt/: временные точки монтирования
  • /opt/: дополнительные приложения, предоставляемые третьими лицами
  • /root/: личные файлы администратора (файлы root)
  • /run/: непостоянные файлы рабочего процесса, которые не сохраняются после перезагрузки (еще не включённые в FHS)
  • /sbin/: системны программы
  • /srv/: данные, используемые серверами, расположенными в этой системе
  • /tmp/: временные файлы (эта директория часто опустошается после перезагрузки)
  • /usr/: приложения (эта директория в дальнейшем разделяется на bin, sbin, lib согласно такой же логике, что и в директории root). Кроме того, /usr/share/ содержат данные с независимой архитектурой. Каталог / usr / local / предназначен для использования администратором для установки приложений вручную без перезаписи файлов, обрабатываемых системой пакетирования.(dpkg).
  • /var/: переменные данные, обрабатываемые демоном. Это включает в себя файлы журналов, очереди, буферы и кеши.
  • /proc/ и /sys/ являются характерными для ядра Linux (и не являются частью FHS). Они используются ядром для экспортирования данных в пользовательское пространство.

3.3.2 Домашняя директория пользователя

Содержимое пользовательской директории не является стандартизированным, но, тем не менее, существует несколько заслуживающих внимания условностей. Одна из них заключается в том, что пользовательский домашний каталог часто обозначается тильдой («~»). Это очень полезно знать, потому что интерпретаторы команд автоматически заменяют тильду верной директорией (которая находится в переменной среде HOME и чье обычное значение является /home/user/).

Традиционно файлы конфигурации приложения часто хранятся непосредственно в вашем домашнем каталоге, но их имена файлов обычно начинаются с точки (например, клиент электронной почты mutt хранит конфигурацию в ~/.muttrc). Обратите внимание, что имена файлов, начинающиеся с точки, по умолчанию скрыты; команда ls перечислит их лишь, в том случае если указана опция –a, а графические файловые менеджеры должны быть явно настроены для отображения скрытых файлов.

Некоторые программы также используют несколько файлов конфигурации, организованных в одном каталоге (например, ~ / .ssh /). Некоторые приложения (например, веб-браузер Firefox) также используют свой каталог для хранения кеша загруженных данных. Это означает, что эти каталоги могут в конечном итоге потреблять много дискового пространства.

Эти файлы конфигурации, которые хранятся прямо в вашей домашней директории, часто коллективно называющиеся dotfiles, долгое время расширяются до такой степени, что эти директории могут быть загромождены ими. К счастью, совместная работа под эгидой привела к созданию спецификации базового каталога XDG (XDG Base Directory Specification) конвенции, целью которой является очистка этих файлов и каталогов. В этой спецификации указано, что файлы конфигурации должны храниться в ~/.config, файлы кэша в -/.cache, а файлы данных приложения в -/.local (или вих суб-директориях). Эта конвенция постепенно набирает обороты.

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

Это интересно:

  • Как установить Kali Linux: подробная инструкция для установки на компьютер и в виртуальную машину
  • Книга «Тестирование на проникновение с Kali Linux» 2.0 на русском языке
  • Как установить Kali Linux на флешку и на внешний диск (простой способ)

Расширение файловых систем с помощью Web.

До создания распределенных файловых систем совместное использование файлов через сеть ограничивалось простыми передачами файлов с помощью использования протокола передачи файлов – FTP (File Transfer Protocol). Появление Всемирной паутины в значительной степени упростила процесс работы с FTP – теперь не нужно знать команды, потому что протокол FTP интегрирован в большинство броузеров. Способность легко передавать файлы через Web также вела к расширению Паутины и существенному улучшению основного протокола передачи гипертекста – HTTP (HyperText Transfer Protocol), который сейчас является основанием для многих систем распределенного использования файлов.

Самая известная из них – это WebDAV, которая расшифровывается как «Web-система распределенной авторизации и контроля версий» (Web-enabled Distributed Authoring and Versioning). WebDAV – это набор расширений к протоколу HTTP, обеспечивающий совместную среду для пользователей, которая позволяет им скачивать, упорядочивать и редактировать файлы, хранящиеся на Web-серверах.

Поддержка WebDAV встроена во многие популярные Web-серверы, например – Apache, где это основывается на опознавательных механизмах сервера. (От простых файлов .htaccess до интегрированных NIS, LDAP, или даже механизма аутентификации Windows). Использование WebDAV для доступа и модификации файлов через Web встроено в операционные системы Mac OS X, в новые версии Microsoft Internet Explorer, а так же доступно и в Linux при использовании таких приложений, как менеджер файлов Nautilus. Хотя это и не файловая система в традиционном смысле, но вы можете даже смонтировать WebDAV в Линуксе, используя загружаемый модуль ядра под названием davfs.

WebDAV обеспечивает такие стандартные для распределенных систем возможности, как блокировка файлов, создание, переименование, копирование, удаление файлов, а так же поддерживает такие продвинутые возможности, как meta-данные файла (более подробная информация о файле – заголовок, тема, создатель, и т.д). В ближайшем будущем WebDAV будет включать интегрированную поддержку управления версиями, которая упростит работу многих пользователей над общими файлами, отслеживая изменения, авторов этих изменений, и другие аспекты общего использования документа. Эти возможности контроля над версиями обеспечиваются в соответствии с протоколом DeltaV, который активно разрабатывается Рабочей группой DeltaV – подразделением Проектировочной группы Интернета (IETF – Internet Engineering Task Force). Некоторые проекты, например, Subversion (WebDAV и DeltaV-основанная замена стандарту CVS), уже доступны в альфа-версии. Subversion обеспечивает систему контроля над версиями и сохранение архива файла на основе базы данных, имеющей API языка C, и моделирует версионную файловую систему, легко доступную через Web.