DEV Community

Cover image for "Мобильная" разработка. [Операционные системы и терминал]
Arthur Kh
Arthur Kh

Posted on • Edited on • Originally published at masterarthur.xyz

3 1 1 2

"Мобильная" разработка. [Операционные системы и терминал]

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

А зачем нам вообще этот терминал и Bash?

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

Основные ОС

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

В мире операционных систем существует несколько крупных игроков: Windows от Microsoft; Linux, представляющий собой множество дистрибутивов на базе одноимённого ядра (например Android, Ubuntu, Arch и др.); macOS от Apple. Один из ключевых аспектов, определяющих работу и эффективность операционных систем - это файловая система.

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

Unix

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

  1. Терминал Unix:
    • Основы. Терминал в Unix - это интерфейс для взаимодействия с операционной системой через текстовые команды. Он предоставляет пользователю возможность запускать программы, управлять файловой системой и выполнять другие задачи без графического интерфейса.
    • Философия. Одной из ключевых концепций Unix является принцип: "Делай одно дело и делай его хорошо". Большинство инструментов терминала предназначены для выполнения конкретной задачи, и их можно комбинировать для создания сложных рабочих процессов.
    • Примеры команд. ls (список файлов), grep (поиск текста), chmod (изменение прав доступа к файлам).
  2. Файловая система Unix:
    • Иерархия. Файловая система Unix организована в иерархической структуре, начиная с корневого каталога /. От корня распространяются различные каталоги, такие как /bin (базовые команды), /etc (конфигурационные файлы) и /home (домашние каталоги пользователей).
    • Всё является файлом. В Unix принято считать, что "всё является файлом". Это означает, что устройства, сокеты и даже процессы можно представить в виде файлов в файловой системе.
    • Права доступа. В Unix каждый файл и каталог имеют набор прав доступа, который определяет, кто может читать, писать или выполнять данный файл. Это обеспечивает гибкое управление безопасностью.

А теперь посмотрим, каким именно образом Unix повлиял на все основные ОС, их файловые системы и использование в них терминала.

Linux и Unix

  • Совместимость с Unix. Linux прямо произошел из Unix-подобных систем и во многом соответствует стандартам Unix. Это означает, что большинство команд и интерфейсов, характерных для Unix, также применимы в Linux.
  • Терминал. Терминал Linux практически идентичен терминалу Unix. Здесь можно использовать широкий спектр инструментов и команд Unix.
  • Файловая система. Файловая система Linux (например, ext4) вдохновлена файловой системой Unix. Иерархическая структура директорий начинается с корневого каталога (/), что схоже с Unix.

macOS и Unix

  • Совместимость с Unix. macOS основан на Darwin, который, в свою очередь, произошёл от NeXTSTEP и BSD Unix. Таким образом, macOS наследует многие черты Unix.
  • Терминал. Терминал macOS предоставляет доступ к большинству стандартных Unix-команд благодаря его происхождению от BSD.
  • Файловая система. HFS+ и APFS - основные файловые системы для macOS. Они уникальны для Apple, но сохраняют многие Unix-подобные атрибуты, такие как права доступа и символические ссылки.

Windows и Unix

  • Совместимость с Unix. Изначально Windows не имел прямых наследований от Unix, но с дальнейшим его развитием, особенно с внедрением подсистемы Windows для Linux (WSL), появилась возможность работы с Unix-подобными инструментами.
  • Терминал. Стандартный командный интерпретатор Windows (cmd) сильно отличается от Unix-терминала. Однако с внедрением WSL пользователи смогли запускать полноценный Linux-терминал в Windows.
  • Файловая система. NTFS - основная файловая система Windows. Она имеет множество отличий от Unix-подобных систем, хотя с внедрением WSL добавилась поддержка файловых систем Linux.

Android

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

  1. Android и Unix:
    • Основы. Android базируется на ядре Linux, которое, в свою очередь, является Unix-подобной операционной системой. Это означает, что многие особенности и принципы Unix также присутствуют в Android.
    • Безопасность. Принципы безопасности Unix, такие как разделение привилегий и права доступа к файлам, также используются в Android для обеспечения безопасности данных и приложений.
  2. Терминал Android:
    • Доступ. В Android по умолчанию нет терминала, как в традиционных Unix-системах. Однако существует множество сторонних приложений (например, Termux, который мы будем использовать далее), предоставляющих терминальный интерфейс для продвинутых пользователей и разработчиков.
    • Команды. С использованием терминала в Android можно выполнять многие из команд Unix. Однако некоторые команды или инструменты могут отсутствовать или быть изменёнными в зависимости от конкретной сборки Android и установленных ограничений.
  3. Файловая система Android:
    • Основы. Файловая система Android, также как и Unix, организована в иерархической структуре. Однако есть некоторые уникальные каталоги и особенности, характерные только для Android.
    • Доступ. По умолчанию Android ограничивает доступ к некоторым частям файловой системы для обеспечения безопасности. Однако с правами суперпользователя (root) можно получить полный доступ ко всем файлам и каталогам.

Обязательно подписывайтесь на мой аккаунт dev.to и Telegram-канал, скоро будет ещё больше контента: https://t.me/MainArthur

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)