Linux многопользовательская или нет

Обновлено: 05.07.2024

Оригинал: All You Need To Know About Processes in Linux [Comprehensive Guide]
Автор: Aaron Kili
Дата публикации: 31 марта 2017 года
Перевод: А. Кривошей
Дата перевода: август 2017 г.

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

Типы процессов

В Linux есть два основных типа процессов:

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

Что такое демоны

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

процессы в linux

Создание процессов в Linux

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

Есть два распространенных способа создания нового процесса в Linux:

1. С помощью функции System(). Этот способ сравнительно прост, однако неэффективен и создает определенные риски с точки зрения безопасности.
2. С помощью функций fork() и exec() - более продвинутая техника с точки зрения гибкости, скорости и безопасности.

Как Linux идентифицирует процессы?

Поскольку Linux - многопользовательская система, и различные пользователи могут одновременно запускать разные программы, каждый запущенный экземпляр программы должен получать уникальный идентификатор от ядра системы.
Программы идентифицируются по ID процесса (PID), а также по ID родительского процесса (PPID), поэтому процессы можно разделить на следующие категории:

Родительские процессы - это процессы, которые в процессе работы создают другие процессы.
Дочерние процессы - это процессы, созданные другими процессами.

Процесс Init

Процесс Init - это родительский процесс для всех процессов в системе, это первая программа, которая исполняется при загрузке системы Linux; он управляет всеми другими процессами в системе. Init запускается непосредственно ядром системы, поэтому он в принципе не имеет родительского процесса.

Процесс Init всегда получает ID 1. Он функционирует как приемный родитель для всех осиротевших процессов.

Для определения ID процесса можно использовать команду pidof:

определение ID процесса

Найти ID процесса и ID родительского процесса для системной оболочки можно с помощью команд:

поиск родительского ID процесса

Запуск процессов в Linux

При старте команды или программы (например cloudcmd – CloudCommander), она запускает процесс в системе. Вы можете запустить процесс переднего плана (интерактивный), как показано ниже, он подключится к терминалу и пользователь сможет взаимодействовать с ним:

запуск процесса

Фоновые процессы в Linux

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

запуск фонового процесса

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

Для перевода процесса из фонового режима на передний план используется команда fg вместе с ID:

перевод процесса из фонового режима на передний план

Состояние процесса в Linux

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

Running (работа) - процесс работает (он является текущим процессом в системе) или готов к работе (ждет выделения ресурсов процессора).
Waiting (ожидание) - в этом состоянии процесс ждет события, которое должно запустить его, или выделения системных ресурсов.
Кроме того, ядро системы делит процессы в состоянии ожидания на два типа: перываемые процессы, состояние ожидания которых может быть прервано сигналом, и непрерываемые, состояние ожидания которых может быть прервано только аппаратным способом.
Stopped (остановка) - в этом состоянии процесс останавливает работу, обычно после получения соответствующего сигнала. Например, процесс может быть остановлен для отладки.
Zombie (зомби) - процесс мертв, то есть он был остановлен, но в системе осталась выполняемая им задача.

Как просмотреть активные процессы в Linux

В Linux есть несколько утилит для просмотра запущенных в системе процессов, наиболее широко известны команды ps и top:

1. Команда ps

Она выводит информацию о выбранных активных процессах, как показано ниже.

ps

2. top – утилита системного мониторинга

top - это мощная утилита, которая позволяет в режиме реального времени просматривать список запущенных процессов, как показано ниже:

top

3. glances – утилита системного мониторинга

glances - это сравнительно новая утилита для мониторинга активности системы с продвинутыми возможностями:

glances

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

Управление процессами в Linux

В Linux также имеются команды для управления процессами, например kill, pkill, pgrep и killall. Ниже приведено несколько примеров их использования:

команды для управления процессами

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

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

Отправка сигналов процессу

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

сигналы

Для отправки сигналов процессу используются описанные выше команды kill, pkill или pgrep. Однако программа ответит на сигнал, только если она запрограммирована распознавать такой сигнал.

Большинство сигналов предназначены для использования системой или программистами при написании кода. Следующие сигналы могут быть полезны пользователю:

SIGHUP 1 – отправляется процессу при закрытии контролирующего его терминала.
SIGINT 2 – отправляется процессу контролирующим его терминалом, если пользователь прерывает работу процесса клавишами [Ctrl+C].
SIGQUIT 3 – отправляется процессу, если пользователь посылает сигнал выхода из программы [Ctrl+D].
SIGKILL 9 – этот сигнал немедленно завершает (убивает) процесс без выполнения любых операций очистки файлов, логов и т.д.
SIGTERM 15 – это сигнал завершения работы программы (он по умоланию отправляется командой kill).
SIGTSTP 20 – отправляется процессу контролирующим его терминалом с запросом на остановку (terminal stop); инициируется при нажатии [Ctrl+Z].

Ниже приведены примеры использования команд kill для завершения работы Firefox при его зависании с использованием PID:

Для завершения программы с использованием ее названия используются команды pkill или killall:

Изменение приоритета процесса

В Linux все активные процессы имеют определенное значение приоритета (nice). Процессы с более высоким приоритетом обычно получают больше процессорного времени, чем процессы с более низким приоритетом.

Однако пользователь с привилегиями root может менять приоритет с помощью команд nice и renice.
В выводе команды top столбец NI отображает значения nice для процессов.

Вы можете использовать команду nice, чтобы задать значение nice процесса. Не забывайте, что обычный пользователь может присвоить процессу значение nice от 0 до 20, только если это процесс ему принадлежит.
Отрицательные значения nice может использовать только пользователь root.

Для понижения приоритета процесса используется команда renice:

Другие статьи об управлении процессами в Linux вы найдете на странице "Процессы в Linux-системе".

Linux — операционная система, в основе которой лежат Unix-подобные системы.

Первую версию системы ее создатель Линус Торвальдс представил в 1991 году. Он не стал разрабатывать программное обеспечение с нуля, а использовал программы проекта GNU, находящиеся в общем доступе. Символом Linux является пингвин Такс с желтыми лапами и клювом.

Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.

Символ Linux

Где используется

В первую очередь при знакомстве с операционной системой Linux важно понять, что Linux сам по себе — это ядро. То есть основа, на которую уже будут в дальнейшем нанизываться дистрибутивы для работы с программным обеспечением. Самыми популярными в данном случае являются Ubuntu, Red Hat и Debian. В общей сложности сейчас насчитывается более 9 тысяч дистрибутивов.

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

В качестве домашней операционной системы Linux выбирают реже. Около 5% пользователей предпочитают ее конкурентам — Windows и MacOS.

Преимущества и недостатки перед другими ОС

К преимуществам Linux в сравнении с другими операционными системами можно отнести следующее:

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

Недостатками Linux можно назвать такие пункты как:

  • У Linux могут быть проблемы с совместимостью с другими устройствами, например, принтерами, сканерами и роутерами, так как большинство из них созданы для работы с Windows. Это проблема решается сменой и настройкой дистрибутива, но это может вызвать сложности у неопытных пользователей.
  • Дистрибутивов на рынке очень много, что ставит пользователя перед выбором.
  • На Linux отсутствуют привычные программы вроде Photoshop, Microsoft Word и Excel.
  • Большинство пакетов в Linux связаны, из-за чего при установке программ один пакет тянет за собой обновление другого пакета, что не только замедляет установку, но и вынуждает иметь подключение к интернету в тот момент.

Основные характеристики ОС Linux

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

  1. Многозадачность. У ядра Linux есть функция разделения времени центрального процессора. Суть функции заключается в том, что ядро по очереди выделяет отрезок времени для выполнения каждой задачи. Таким образом, все процессы происходят независимо и не мешают друг другу.
  2. Многопользовательский доступ. OC Linux поддерживает одновременную работу нескольких пользователей, обеспечивая им все системные ресурсы с помощью различных удаленных терминалов. Точно так же, как и в других ОС, пользователей можно делить на группы и ограничивать их возможности чтения, записи и запуска на исполнение.
  3. Страничная организация памяти. Организация системной памяти Linux выполнена в виде страниц объемом 4K. В случае, если оперативная память закончится, система начнет поиск неиспользуемых страниц для того, чтобы переместить их на жесткий диск, откуда впоследствии их можно будет восстановить.
  4. Загрузка выполняемых модулей «по требованию». Ядро Linux работает так, что в оперативной памяти находится только нужная часть кода программа, которая используется, а остальные части остаются на диске.
  5. Динамическое кэширование диска. Память, приготовленная для кэша, уменьшается, если компьютеру или пользователю необходимо больше места.
  6. Запуск программ для других ОС. Для того, чтобы запуск программ, разработанных для других ОС, был возможен на ПК с Linux, там установлены эмуляторы DOS, Windows 3.1 и Windows 95.
  7. Сетевые возможности. Интеграция Linux возможна в любую локальную сеть. Поддерживаются все службы Unix, в том числе Networked File System (NFS), удаленный доступ (telnet, rlogin), работа в TCP/IP сетях, NFS, и dial-up-доступ по протоколам SLIP и PPP.
  8. Соответствие стандарту POSIX 1003.1. Частичная поддержка возможностей System V и BSD.
  9. Поддержка ряда популярных файловых систем (MINIX, Xenix, System V). Также у Linux есть своя файловая система объемом до 4 Терабайт и с именами файлов до 255 знаков.
  10. Прозрачный доступ к разделам DOS (или OS/2 FAT): раздел DOS выглядит как часть файловой системы Linux; поддержка VFAT.
  11. Специальная файловая система UMSDOS, которая позволяет устанавливать Linux в файловую систему DOS.

Ключевые концепции, как выглядит

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

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

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

Если говорить об интерфейсах, то в этом случае есть три основные концепции:

Клоны Microsoft и MacOS

Интерфейсы, напоминающие по своей логике другие операционные системы.

Интерфейс

Интуитивно понятный интерфейс UNIX-систем

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

Интерфейс UNIX-систем

Кроссплатформенные рабочие столы

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

Перечень операционных систем на базе ядра Linux

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

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

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

  1. DEB используется в Debian и дистрибутивах, основанных на нем.
  2. RPM используется в дистрибутиве Red Hat и других популярных дистрибутивах.

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

Дистрибутивы Linux можно разделить по направлениям использования. Например, для творчества стоит обратить внимание на Fedora Design Suite, Ubuntu Studio, KXStudio и Iro. А если компьютер используется для обучения, то хорошим выбором станут дистрибутивы Edubuntu и Uberstudent.

Многопользовательские системы не нужны. Этот подход должен уйти в прошлое. Линукс должен эволюционировать до однопользовательской системы.

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

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

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

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

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

Это вступительная статья про операционную систему Линукс (Linux). В ней мы пробежимся по основным моментам и особенностям ОС Линукс. Весь материал ориентирован на новичков и написан доступным языком.

1. Что такое Линукс простыми словами

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

Скриншот операционной системы Линукс

Существует несколько графических интерфейсов или GUI (мы рассмотрим их далее). В большинстве случаев он очень напоминает X Window System, поэтому, кто умеет пользоваться Windows легко освоит и Linux.

Кто является владельцем

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

Собственно говоря усилиями десятков тысяч программистов и был создан Линукс. Изначально первыми пользователями были опытные пользователи ПК. Сейчас все больше становится и обычных пользователей Линукса.

Отличительно и то, что Линукс работает на всех архитектурах: DEC Alpha, x86, x86-64, ARM и PowerPC.

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

Говоря про Linux нельзя не упомянуть про проект GNU — это концепция свободного бесплатного программного обеспечения. Основатель Ричард Столлман.

2. История появления Linux

В далеком 1981 году он стал работать над собственной операционной системой семейства Unix. В 1984 году на свет появилась первая ее версия доступная для скачивания. В то время ей пользовались буквально пару человек.

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

Логотип/талисманом Linux — пингвин Tux

В 20 веке Linux стал еще более популярным. Это уже давно не любительский проект, а полноценная операционная система, которая насчитывает миллионы строк кода.

3. Особенности Linux

Перечислим основные особенности ОС Linux.

Как выглядит консоль в Linux

2 Большинство серверов (хостинги, хранилища и прочее) используют в качестве основной ОС Линукс. Это связано с тем, что она бесплатна, проще настраивается и более стабильна. Однако среди обычных пользователей бесспорное лидерство занимает Windows. Лишь 5% населения пользуются Линуксом в качестве домашней операционной системы.

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

6 Файловые системы в Linux отличны от Windows:

  • ext4 — журналируемая файловая система (стандарт для Linux)
  • btrfs — новая файловая система, основанная на структурах B-деревьев
  • xfs — данную файловую систему отличает достаточно высокая производительность в части записи и чтения данных.

Стоит отметить, что Линукс поддерживает очень много файловых систем (в том числе Windows-ие NTFS, FAT32). Напомню, что Windows не поддерживает ext4. Про файловые системы Linux будет рассказано более подробно в отдельной статье.

7 Существует два вида дистрибутивов Linux, которые делятся по способу организации и управления программным обеспечением (пакетами)

  1. DEB — используются в дистрибутиве Debian и во всех основанных на нем дистрибутивах
  2. RPM — менеджер пакетов, использующийся в дистрибутиве Red Hat, а также во многих других популярных дистрибутивах (Fedora)

8 Процессы разделены по ресурсам. Чтобы добавить новое устройств нужен драйвер. Его можно написать самостоятельно и запустить в ядре. Драйверы устройств либо интегрируются непосредственно в ядро, либо добавляются в виде модулей, загружаемых во время работы системы.

9 В Linux все считается файлами: жесткие диски, разделы, папки, приводы оптических дисков, съемные носители информации.

4. Дистрибутивы Linux — что это и какие они бывают

Говоря простыми словами:

Существуют множество видов дистрибутивов Linux. Самые распространённые в мире дистрибутивами являются:

  • Linux Mint . Самый простой для пользователя дистрибутив. Очень напоминает Windwos 7. Основан на Ubuntu и Debian
  • Ubuntu . Долгое время считался самым популярным дистрибутивом. Стабильная и интуитивно понятная версия для ежедневного использования Основан на Debian
  • Debian . Лег в основу множества других популярных Линуксов.
  • Mageia . Предок бывшей и популярной ОС Mandriva.
  • Fedora . Универсальный, быстро развивающейся и современный Linux. Каждый год появляются новые версии.
  • OpenSUSE . стабильный и мощный дистрибутив
  • ArchLinux . Современный и быстро обновляющейся дистрибутив.
  • CentOS
  • PCLinuxOS
  • Slackware . Консервативный подход разработки и использования

Интересными дистрибутивами также являются и те, которые можно самостоятельно собрать. К таким относятся LFS, Gentoo, CRUX.

Существуют и чисто российские версии:

  • Rosa
  • ALT Linux
  • ASPLinux
  • НауЛинукс
  • Calculate Linux
  • Runtu
  • Rosinka
  • Astra Linux

5. Интерфейсы Linux

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

  • GNOME (GNU Network Object Model Environment) и Unity . Концепцию значков лаунчеров и отображения в стиле панели мониторинга для выбора
  • KDE (K Desktop Environment). Традиционная среда рабочего стола, но она имеет огромное количество функций и основной набор приложений
  • Cinnamon . Основан на GNOME. Традиционная среда рабочего стола, которая похожа на Windows 7.
  • LXDE (Lightweight X11 Desktop Environment). Легкая и приятная среда.
  • MATE является продолжением классического интерфейса GNOME
  • XFCE быстрая и легкая

6. Репозиторий Linux

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

Читайте также: