Почему Linux загружается и выключается быстрее, чем Windows

by itisgood

Вы когда-нибудь задумывались, почему операционные системы на основе Linux, такие как Ubuntu, Linux Mint, Elementary OS, Kali Linux и т. д., загружаются и выключаются быстрее, чем операционная система Windows?

В этой статье мы разберем это для вас.

Почему Linux загружается быстрее, чем Windows?

Сначала мы обсудим, почему Linux загружается быстрее, чем windows.

Многие факторы влияют на время загрузки как Linux, так и Windows.

Некоторые из заметных причин:

Ядро:

Ядро – это ядро операционной системы.

Оно имеет полный контроль над всем, что происходит в системе.

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

Поэтому при загрузке Kernel загружает все эти функции одновременно.

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

Что заставляет Windows загружаться немного медленнее, чем Linux.

Службы и программы:

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

Хотя в случае с Linux это ограничено.

Обратная совместимость :

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

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

В то время как дистрибутивы Linux не имеют функции обратной совместимости.

Фрагментация:

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

В Windows файлы фрагментированы.

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

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

Вы можете заметить это по задержке во время загрузки новой и используемой системы Windows.

А в файловой системе Linux используется EXT, которая не требует фрагментации.

Потому что Linux распределяет файлы более разумно.

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

Так что чтение и запись во время запуска быстрее.

Окружение рабочего стола:

Другая основная причина более быстрой загрузки Linux – это Desktop Environment (DE).

Что довольно быстрее, чем в Windows.

Почему выключение Linux быстрее, чем Windows?

Теперь мы собираемся обсудить, почему Linux выключается быстрее, чем Windows.

Службы в Windows задерживают выключение:

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

Иногда у каждого сервиса может быть много событий.

Например, «Прекращение службы NTP», «Драйвер принтера получил сигнал на завершение», «Драйвер принтера сбрасывает очередь» «Выход драйвера принтера».

Эти события являются «объектами» и их создание и уничтожение происходит медленно, что приводит к увеличению времени отключения.

Однако во время выключения в Linux большинство процессов просто пишут строку на консоли или /var/log/messages и завершают работу.

Далее идет подготовка внешних устройств к отключению (будь то даже хоть 3D сканеры – > подробнее )

Что делает плавным отключение.

Кеш:

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

Но кеши лучше обрабатываются в Linux, с периодическим выполнением «fsync», на лучших файловых системах.

GUI:

Графический интерфейс пользователя (GUI) в Windows сохраняет много информации о состоянии, большая часть которой хранится в виде объектов, которые влияют на время выключения.

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

Большая часть информации о состоянии находится в простых текстовых файлах.

Процесс и программы:

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

А для завершения каждого процесса Linux требуется меньше времени, и большинство программ могут быстро реагировать и выходить быстрее во время завершения работы.

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

 

You may also like

4 комментария

Володимир 11.01.2019 - 14:06

У вас написано ошибочно про Linux:
раздел статьи “Фрагментация”:
“…
Вместо того, чтобы размещать несколько файлов рядом друг с другом на жестком диске, файловые системы Linux разбрасывают различные файлы по всему диску, оставляя большое количество свободного пространства между ними.
Так что чтение и запись во время запуска быстрее.”

Скорее всего Вы имели ввиду, что это в Windows файл может быть разбросан небольшими различного размера кусками по всему диску и поэтому для его “сборки” системе Windows требуется некоторое время, которое будет БОЛЬШЕ, чем у Linux, где такой фрагметнации в файловой системе EXT не существует.
Так что чтение и запись во время запуска у Linux будет быстрее, а Windows при этом будет собирать файлы по частям из разных фрагментов по секторам/блокам, затрачивая на это дополнительное время (“холостой” проход головок чтения/записи по диску, когда файл считывается за несколько проходов по диску и головки могут перемещаться в прямопротивополные места на диске, на что может тратиться довольно много времени).

Reply
itisgood 11.01.2019 - 14:33

Спасибо за разъяснение простым языком!

Reply
Володимир 11.01.2019 - 14:19

Службы везде задреживают время выключения, не только в Виндовз.
В Linux это процессы и они конечно отличаются от служб Виндовс. Но всё же это везде объекты, поэтому при выключении процессы в Linux НЕ “просто пишут строку на консоли” ))
Примерно так происходит выключение в Linux:
-Завершение процессов пользователя
-Сигнал SIGTERM всем процессам
-Сигнал SIGKILL всем процессам
-Монтирование файловых систем в режиме только для чтения
-Подготовка внешних устройств к отключению
-Блокировка пространства пользователя, чтобы гарантировать, что ни один код пользователя больше не будет запущен
-Завершение работы и отключение питания большинства периферических устройств
-Отключение питания компьютера

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

Reply
itisgood 11.01.2019 - 14:44

Спасибо за подробное описание процесса выключения.
Имелось ввиду, что нет создаваемых объектов

Reply

Leave a Comment