Расширение функциональности ядра
Оно может достигаться 2-мя различными способами:
1. Статически
Мы вносим собственные изменения в основное дерево исходных кодов ядра Linux, после чего производится пересборка ядра. В итоге мы получаем некоторую частную модификацию ядра.
Преимущество: в добавляемом коде доступны все имена объектов ядра (вызовы функций, экземпляры данных). Таким способом сборщики дистрибутивных образов патчат официальное ядро, включая туда дополнения, которые они находят нужными.
2. Динамически
Код оформляется в формате динамически подгружаемого модуля. При выполнении системы модуль динамически загружается и становится неотъемлемой частью кода ядра. Всё связывание кода модуля производится по абсолютным адресам имён в ядре, поэтому модуль может быть собран только под конкретную версию и модификацию ядра. Ограничением этого способа является то, что коду модуля доступны только те объекты, которые явно объявлены как экспортируемые.
Оно может достигаться 2-мя различными способами:
1. Статически
Мы вносим собственные изменения в основное дерево исходных кодов ядра Linux, после чего производится пересборка ядра. В итоге мы получаем некоторую частную модификацию ядра.
Преимущество: в добавляемом коде доступны все имена объектов ядра (вызовы функций, экземпляры данных). Таким способом сборщики дистрибутивных образов патчат официальное ядро, включая туда дополнения, которые они находят нужными.
2. Динамически
Код оформляется в формате динамически подгружаемого модуля. При выполнении системы модуль динамически загружается и становится неотъемлемой частью кода ядра. Всё связывание кода модуля производится по абсолютным адресам имён в ядре, поэтому модуль может быть собран только под конкретную версию и модификацию ядра. Ограничением этого способа является то, что коду модуля доступны только те объекты, которые явно объявлены как экспортируемые.
Демоны — что это такое?
Демон — программа, стартующая с main(), но никогда не завершающая своей работы, по-другому можно сказать, что это запущенный фоновый процесс. Чаще всего это сервера различных служб.
Чтобы пользовательский процесс стал сервером, он должен выполнить некоторую последовательность действий, которая называется демонизацией, состоящая в том, чтобы:
⁃ создать свой собственный клон вызовом fork() и завершить родительский процесс;
⁃ создать новую сессию вызовом setsid(), при этом процесс становится лидером сессии и теряет связь с управляющим терминала;
⁃ позакрывать все ненужные файловые дескрипторы.
Демон — программа, стартующая с main(), но никогда не завершающая своей работы, по-другому можно сказать, что это запущенный фоновый процесс. Чаще всего это сервера различных служб.
Чтобы пользовательский процесс стал сервером, он должен выполнить некоторую последовательность действий, которая называется демонизацией, состоящая в том, чтобы:
⁃ создать свой собственный клон вызовом fork() и завершить родительский процесс;
⁃ создать новую сессию вызовом setsid(), при этом процесс становится лидером сессии и теряет связь с управляющим терминала;
⁃ позакрывать все ненужные файловые дескрипторы.
Команда nm
Чтобы вывести список содержащихся в файле внешних функции:
Вывести идентификаторы C++ в удобочитаемом виде:
Вывести список содержащихся в файле неопределённых символов:
Перечислить все символы, в том числе и отладочные:
nm — команда, печатающая информацию о бинарных файлах, прежде всего таблицу имён. Вывод различает между разными типами имён, например, именами функций, вызываемых из данного файла и функций, описанными в нём. Команда nm используется в отладке, в частности для разрешения конфликтов имён.Чтобы вывести список содержащихся в файле внешних функции:
nm -g some_file_nameВывести идентификаторы C++ в удобочитаемом виде:
nm --demangle some_file_nameВывести список содержащихся в файле неопределённых символов:
nm -u some_file_nameПеречислить все символы, в том числе и отладочные:
nm -a some_file_nameЗачем ядру нужна виртуальная адресация?
Управление виртуальной памятью — это функция Linux, которая обеспечивает многозадачность в системе без каких-либо ограничений.
Подсистема диспетчера памяти Linux облегчает поддержку VMM, где доступ к памяти или устройству с отображением памяти осуществляется через виртуальные адреса.
В Linux все, как ядро, так и пользовательские компоненты, работает с виртуальными адресами, за исключением случаев, когда речь идет о реальном оборудовании. Именно тогда диспетчер памяти занимает свое место, выполняет преобразование виртуального адреса в физический и указывает на физическое местоположение памяти/устройства.
Управление виртуальной памятью — это функция Linux, которая обеспечивает многозадачность в системе без каких-либо ограничений.
Подсистема диспетчера памяти Linux облегчает поддержку VMM, где доступ к памяти или устройству с отображением памяти осуществляется через виртуальные адреса.
В Linux все, как ядро, так и пользовательские компоненты, работает с виртуальными адресами, за исключением случаев, когда речь идет о реальном оборудовании. Именно тогда диспетчер памяти занимает свое место, выполняет преобразование виртуального адреса в физический и указывает на физическое местоположение памяти/устройства.
Команда uniq
С помощью команды
Синтаксис:
⁃
⁃
⁃
⁃
⁃
С помощью команды
uniq можно искать одинаковые строки в массивах текста. С найденными совпадениями юзер может совершать множество действий — удалять их из вывода или наоборот, выводить только их.Синтаксис:
uniq options input_file output_fileОпции:
⁃
-u — выводит исключительно те строки, у которых нет повторов.⁃
-d — если какая-либо строка повторяется несколько раз, она будет выведена лишь единожды.⁃
-D — выводит только повторяющиеся строки.⁃
-i — при сравнении не будет иметь значение регистр, в котором напечатаны символы (строчные и заглавные буквы).⁃
-c — в начале каждой строки выводит число, которое обозначает количество повторов.Системные вызовы syscall
syscall() выполняет системный вызов, номер которого задаётся значением number и с заданными аргументами. Символьные константы для системных вызовов можно найти в заголовочном файле < sys/syscall.h >.
Системные вызовы syscall() в Linux на процессоре x86 выполняются через прерывание int 0x80. Соглашение о системных вызовах в Linux отличается от общепринятого в UNIX (через стек) и соответствует соглашению «fastcall». Согласно ему, программа помещает в регистр eax номер системного вызова, входные аргументы размещаются в других регистрах процессора, после чего вызывается инструкция int 0x80.
В тех относительно редких случаях, когда системному вызову необходимо передать большее количество аргументов (например, mmap), то они размещаются в структуре, адрес на которую передается в качестве первого аргумента (ebx). Результат возвращается в регистре eax, а стек вообще не используется.
Системный вызов syscall(), попав в ядро, всегда попадает в таблицу sys_call_table, и далее переадресовывается по индексу (смещению) в этой таблице на величину 1-го параметра вызова syscall() - номера требуемого системного вызова.
syscall() выполняет системный вызов, номер которого задаётся значением number и с заданными аргументами. Символьные константы для системных вызовов можно найти в заголовочном файле < sys/syscall.h >.
Системные вызовы syscall() в Linux на процессоре x86 выполняются через прерывание int 0x80. Соглашение о системных вызовах в Linux отличается от общепринятого в UNIX (через стек) и соответствует соглашению «fastcall». Согласно ему, программа помещает в регистр eax номер системного вызова, входные аргументы размещаются в других регистрах процессора, после чего вызывается инструкция int 0x80.
В тех относительно редких случаях, когда системному вызову необходимо передать большее количество аргументов (например, mmap), то они размещаются в структуре, адрес на которую передается в качестве первого аргумента (ebx). Результат возвращается в регистре eax, а стек вообще не используется.
Системный вызов syscall(), попав в ядро, всегда попадает в таблицу sys_call_table, и далее переадресовывается по индексу (смещению) в этой таблице на величину 1-го параметра вызова syscall() - номера требуемого системного вызова.
Демон журналирования ядра — klogd
Демон klogd(kernel-logging daemon) предназначен для перехвата и протоколирования сообщений ядра Linux.
Основные опции:
По умолчанию демон klogd вызывается системным вызовом для того, чтобы препятствовать отображению всех сообщений на консоль. Это правило не распространяется на критические сообщения ядра (kernel panic), так как эти сообщения все равно будут отображены на консоли.
Демон klogd(kernel-logging daemon) предназначен для перехвата и протоколирования сообщений ядра Linux.
Основные опции:
-c n — Устанавливает уровень журналирования по умолчанию для консольных сообщений в n.-d — Включить отладочный режим. -f <файл> — Журналировать сообщения в указанный файл.-i -I — Послать сигнал уже запущенному демону klogd. Опция -i посылает сигнал загрузить информацию о символах модулей ядра. Опция -I посылает сигнал перечитать заново как информацию о статических символах ядра, так и о символах модулей ядра.По умолчанию демон klogd вызывается системным вызовом для того, чтобы препятствовать отображению всех сообщений на консоль. Это правило не распространяется на критические сообщения ядра (kernel panic), так как эти сообщения все равно будут отображены на консоли.
Команда chgrp
Стандарт прав файлов пришёл в Linux из Unix. У каждого файла есть владелец и группа, помимо этого описываются права остальных пользователей. Права состоят из трёх пунктов: чтение, запись и выполнение. Для изменения прав используется команда umask, но для изменения непосредственно владельца и группы используются команды chgrp.
Команда меняет группу на new-group для файла some_file.txt в текущей папке:
А эта меняет группу на new-group для папки folder:
Параметры:
Стандарт прав файлов пришёл в Linux из Unix. У каждого файла есть владелец и группа, помимо этого описываются права остальных пользователей. Права состоят из трёх пунктов: чтение, запись и выполнение. Для изменения прав используется команда umask, но для изменения непосредственно владельца и группы используются команды chgrp.
Команда меняет группу на new-group для файла some_file.txt в текущей папке:
sudo chgrp new-group some_file.txtА эта меняет группу на new-group для папки folder:
sudo chgrp new-group folderПараметры:
-h – работать непосредственно с самими символьными ссылкам--dereference – работать с файлами (используется по умолчанию);-H – перейти по символической ссылке и изменить атрибуты файла/каталога. Сама ссылка остаётся без изменений. Используется вместе с параметром -R;-L - перейти по символической ссылке и продолжить рекурсивную обработку. Сама ссылка остаётся без изменений.Утилита DMESG
Ядро Linux, как и другие программы может и выводит различные информационные сообщения и сообщения об ошибках. Все они выводятся в буфер сообщения ядра, так называемый kernel ring buffer.
Для получения сообщений из этого буфера можно прочитать файл
Опции:
Ядро Linux, как и другие программы может и выводит различные информационные сообщения и сообщения об ошибках. Все они выводятся в буфер сообщения ядра, так называемый kernel ring buffer.
Для получения сообщений из этого буфера можно прочитать файл
/var/log/dmesg. Однако, более удобно это можно сделать с помощью команды dmesg.Опции:
-C — очистить буфер сообщений ядра;-c — вывести сообщения из буфера ядра, а затем очистить его;-d — выводит время прошедшее между двумя сообщениями;-H — включить вывод, удобный для человека;-k — отображать только сообщения ядра;-L — сделать вывод цветным (включается автоматически при использовании опции -H)-r — печатать сообщения как есть, не убирая служебные префиксы;-S — использовать Syslog для чтения сообщений от ядра, по умолчанию используется файл /dev/kmsgКонфигурационные параметры ядра
Все конфигурационные параметры параметры ядра, определяемые в диалоге сборки, бывают:
⁃ те параметры ядра, которые были выбраны в диалоге сборки с ответом
⁃ те параметры ядра, для которых в диалоге сборки были установлены символьные значения (чаще всего, это путевые имена в файловой системе Linux) — определены в файле
⁃ сложнее с теми параметрами ядра, которые были выбраны в диалоге сборки с ответом
Все конфигурационные параметры параметры ядра, определяемые в диалоге сборки, бывают:
⁃ те параметры ядра, которые были выбраны в диалоге сборки с ответом
'y' — соответствующие им конфигурационные параметры определены в файле <linux/autoconf.h> со значением 1. ⁃ те параметры ядра, для которых в диалоге сборки были установлены символьные значения (чаще всего, это путевые имена в файловой системе Linux) — определены в файле
<linux/autoconf.h> как символьные константы, имеющие именно эти значения. ⁃ сложнее с теми параметрами ядра, которые были выбраны в диалоге сборки с ответом
'm' (собирать такую возможность как подгружаемый модуль) — тогда символическая константа с именем именем CONFIG_XXX, соответствующим конфигурационному параметру, не будет определена в файле <linux/autoconf.h>, но будет определена другая символическая константа с суффиксом _MODULE: CONFIG_XXX_MODULE, и значение её будет, естественно, 1.Команда rmmod
Команда
В современных системах Linux
Только пользователи с правами администратора могут удалять модули.
Вы можете распечатать список всех модулей, загруженных в вашу систему, с помощью команды
Чтобы удалить модуль, можно использовать команду:
Команда
rmmod удаляет модуль из ядра Linux.В современных системах Linux
rmmod является частью двоичного файла kmod, который реализует несколько программ, используемых для управления модулями ядра Linux.Только пользователи с правами администратора могут удалять модули.
Вы можете распечатать список всех модулей, загруженных в вашу систему, с помощью команды
lsmod. Модули ядра хранятся в каталоге /lib/modules/<kernel_version>.Чтобы удалить модуль, можно использовать команду:
rmmod module_name-v — отобразить информацию о том, что делает команда.-f — если вы хотите удалить модуль, который используется или не предназначен для удаления. Использование этой опции крайне опасно, поскольку может вызвать сбой системы.Функция mmap и munmap
mmap и munmap соответственно отображают или удаляют файлы или устройства в памяти.
mmap работает, манипулируя таблицей страниц вашего процесса (структура данных, которую ваш ЦП использует для сопоставления адресных пространств. ЦП преобразует «виртуальные» адреса в «физические» и делает это в соответствии с таблицей страниц, установленной вашим ядром).
Когда вы обращаетесь к отображенной памяти в первый раз, ваш ЦП генерирует отказ страницы. Затем ядро ОС может вмешаться, «исправить» недопустимый доступ к памяти, выделив память и выполнив файловый ввод-вывод в этом вновь выделенном буфере, а затем продолжить выполнение вашей программы, как будто ничего не произошло.
mmap может дать сбой, если ваш процесс находится за пределами адресного пространства.
mmap и munmap соответственно отображают или удаляют файлы или устройства в памяти.
mmap работает, манипулируя таблицей страниц вашего процесса (структура данных, которую ваш ЦП использует для сопоставления адресных пространств. ЦП преобразует «виртуальные» адреса в «физические» и делает это в соответствии с таблицей страниц, установленной вашим ядром).
Когда вы обращаетесь к отображенной памяти в первый раз, ваш ЦП генерирует отказ страницы. Затем ядро ОС может вмешаться, «исправить» недопустимый доступ к памяти, выделив память и выполнив файловый ввод-вывод в этом вновь выделенном буфере, а затем продолжить выполнение вашей программы, как будто ничего не произошло.
mmap может дать сбой, если ваш процесс находится за пределами адресного пространства.
Команда sourse
Эта команда позволяет выполнить скрипт в текущем процессе оболочки bash. По дефолту для выполнения каждого скрипта запускается отдельная оболочка bash, хранящая все его переменные и функции. После завершения скрипта всё это удаляется вместе с оболочкой.
Синтаксис:
Если мы выполним какой-нибудь bash скрипт с помощью этой команды, то скрипт станет доступен в командном интерпретаторе. Однако, он есть только в текущем, в других интерпретаторах его нет. В этом и есть отличие команды sourse от export, которая позволяет экспортировать переменные окружения глобально.
Эта команда позволяет выполнить скрипт в текущем процессе оболочки bash. По дефолту для выполнения каждого скрипта запускается отдельная оболочка bash, хранящая все его переменные и функции. После завершения скрипта всё это удаляется вместе с оболочкой.
Синтаксис:
source имя_файлаЕсли мы выполним какой-нибудь bash скрипт с помощью этой команды, то скрипт станет доступен в командном интерпретаторе. Однако, он есть только в текущем, в других интерпретаторах его нет. В этом и есть отличие команды sourse от export, которая позволяет экспортировать переменные окружения глобально.
Команда delv
Команда
Если зона DNS не включает записи DS (требуется при активации (безопасности DNS) DNSSEC), то предполагается, что это неподписанная DNS, а не DNSSEC. Ответы даются как полностью проверенные, неподписанные или недействительные.
Если вы не укажете DNS-сервер в своем запросе,
Команда
delv связана с dig и nslookup, но углубляется в запись DNS, не только отправляя запрос DNS, но и проверяя его.Если зона DNS не включает записи DS (требуется при активации (безопасности DNS) DNSSEC), то предполагается, что это неподписанная DNS, а не DNSSEC. Ответы даются как полностью проверенные, неподписанные или недействительные.
Если вы не укажете DNS-сервер в своем запросе,
delv использует те, которые указаны в вашем локальном файле /etc/resolv.conf. Если запись недействительна, delv обычно указывает причину, по которой запись недействительна.delv <domain> mx +multiБлокировки. flock
В какой-то момент вам придется иметь дело с блокировками. Ее концепция довольно проста. Если вам нужно выполнить какую-то операцию над каким-то состоянием, к которому могут иметь доступ другие процессы, ваша операция должна «блокировать» все остальные действия до ее завершения.
В некоторых случаях это выполняется автоматически, в других вам необходимо установить простую систему блокировок, чтобы гарантировать, что условия гонки не возникнут.
Используя
В какой-то момент вам придется иметь дело с блокировками. Ее концепция довольно проста. Если вам нужно выполнить какую-то операцию над каким-то состоянием, к которому могут иметь доступ другие процессы, ваша операция должна «блокировать» все остальные действия до ее завершения.
В некоторых случаях это выполняется автоматически, в других вам необходимо установить простую систему блокировок, чтобы гарантировать, что условия гонки не возникнут.
Используя
flock, вы можете генерировать различные типы блокировок, которые могут быть получены во время параллельных операций. flock <name_of_lockfile>Void Linux
Независимый дистрибутив Linux, который использует диспетчер пакетов X Binary Package System (XBPS), который был разработан и реализован с нуля, и систему runit init. За исключением двоичных больших объектов ядра, базовая установка полностью состоит из бесплатного программного обеспечения.
Void Linux был создан в 2008 году Хуаном Ромеро Пардинес, бывшим разработчиком NetBSD, для тестирования менеджера пакетов XBPS.
Void был первым дистрибутивом, который по умолчанию включил LibreSSL в качестве библиотеки системной криптографии. В феврале 2021 года команда Void Linux объявила о возвращении на OpenSSL 5 марта 2021 года. Среди причин были проблемный процесс установки исправлений на программное обеспечение, которое в первую очередь было написано для работы с OpenSSL, поддержка некоторых оптимизаций и более ранний доступ к новым алгоритмам.
Независимый дистрибутив Linux, который использует диспетчер пакетов X Binary Package System (XBPS), который был разработан и реализован с нуля, и систему runit init. За исключением двоичных больших объектов ядра, базовая установка полностью состоит из бесплатного программного обеспечения.
Void Linux был создан в 2008 году Хуаном Ромеро Пардинес, бывшим разработчиком NetBSD, для тестирования менеджера пакетов XBPS.
Void был первым дистрибутивом, который по умолчанию включил LibreSSL в качестве библиотеки системной криптографии. В феврале 2021 года команда Void Linux объявила о возвращении на OpenSSL 5 марта 2021 года. Среди причин были проблемный процесс установки исправлений на программное обеспечение, которое в первую очередь было написано для работы с OpenSSL, поддержка некоторых оптимизаций и более ранний доступ к новым алгоритмам.
Komikku — для всех любителей манги!
Прежде всего, он предназначен для работы в среде рабочего стола GNOME, но вы можете использовать его в дистрибутивах Linux, работающих под управлением других сред рабочего стола.
Komikku — это программа для чтения манги с открытым исходным кодом, доступная только для Linux.Прежде всего, он предназначен для работы в среде рабочего стола GNOME, но вы можете использовать его в дистрибутивах Linux, работающих под управлением других сред рабочего стола.
Komikku можно использовать для просмотра манги онлайн и офлайн. Komikku доступен на Flathub. Однако вам необходимо настроить Flatpak и включить репозиторий Flathub в вашей системе. После этого вы можете установить его со своего терминала:flatpak install flathub info.febvre.KomikkuНедостатки линукса
Как и все, Linux не является безупречным выбором.
Трудности при освоении
Когда вы вступаете в мир Linux, вы должны быть готовы приложить немного усилий для изучения неочевидных вещей.
Разнообразие
У линукса очень много всевозможных дистрибутивов, в которых обычный новичок может просто не справится. Хоть большинство и рекомендует использовать лучшие дистрибутивы Linux, предназначенные для начинающих, выбор того, что вам может понравится, иногда ошеломляет.
Отсутствие проприетарного ПО
Не все заинтересованы в переносе своих инструментов/приложений в Linux. Следовательно, вы можете не найти все приложения, которыми вы раньше пользовались в Windows/macOS.
ОС не для игр
Если вы хотите играть на своем компьютере, Windows остается лучшим вариантом благодаря поддержке новейшего оборудования и технологий.
Когда дело доходит до Linux, есть много «если» и «но» для четкого ответа.
Как и все, Linux не является безупречным выбором.
Трудности при освоении
Когда вы вступаете в мир Linux, вы должны быть готовы приложить немного усилий для изучения неочевидных вещей.
Разнообразие
У линукса очень много всевозможных дистрибутивов, в которых обычный новичок может просто не справится. Хоть большинство и рекомендует использовать лучшие дистрибутивы Linux, предназначенные для начинающих, выбор того, что вам может понравится, иногда ошеломляет.
Отсутствие проприетарного ПО
Не все заинтересованы в переносе своих инструментов/приложений в Linux. Следовательно, вы можете не найти все приложения, которыми вы раньше пользовались в Windows/macOS.
ОС не для игр
Если вы хотите играть на своем компьютере, Windows остается лучшим вариантом благодаря поддержке новейшего оборудования и технологий.
Когда дело доходит до Linux, есть много «если» и «но» для четкого ответа.
Команда dos2unix
Команда, которая пытается помочь с кросс-платформенной совместимостью. Текстовые файлы часто имеют невидимые «управляющие» символы в конце строк, которые препятствуют синтаксическому анализу в Linux. Именно здесь команда dos2unix спешит исправить такие вещи.
Команда, которая пытается помочь с кросс-платформенной совместимостью. Текстовые файлы часто имеют невидимые «управляющие» символы в конце строк, которые препятствуют синтаксическому анализу в Linux. Именно здесь команда dos2unix спешит исправить такие вещи.
Dos2unix удаляет эти управляющие символы ^M и ^V, расположенные в конце строк, которые вы могли видеть, когда вы выполняете vi/vim файла. Конечно, вы можете удалить их, если знаете, как глобально заменить такие символы на vi, но в противном случае это проблематично.dos2unix some_file.txtКак создать открытый и закрытый ключи в Linux
Генерация ключей происходит с помощью команды
Также можно создать ключ, используя технологию DSA:
Особенной разницы между этими технологиями для простого обывателя нет, обе достаточно надежны, поэтому в выборе можно особенно не заморачиваться.
Далее предлагают указать место для хранения нашего ключа. По умолчанию это будет папка
Потом введите идентификационную фразу. (Это не фраза для соединения с удаленным хостом) Она нужна для разблокировки закрытого ключа. Ввод фразы не обязательный.
Теперь открытый и закрытый SSH-ключи могут быть сгенерированы. И если вы перейдете в директорию
Генерация ключей происходит с помощью команды
ssh-keygen. В консоле набираем:ssh-keygen -t rsaТакже можно создать ключ, используя технологию DSA:
ssh-keygen -t dsaОсобенной разницы между этими технологиями для простого обывателя нет, обе достаточно надежны, поэтому в выборе можно особенно не заморачиваться.
Далее предлагают указать место для хранения нашего ключа. По умолчанию это будет папка
.ssh в вашей домашней директории. Для того, чтобы согласиться с настройками по умолчанию, просто нажимаем «Enter».Потом введите идентификационную фразу. (Это не фраза для соединения с удаленным хостом) Она нужна для разблокировки закрытого ключа. Ввод фразы не обязательный.
Теперь открытый и закрытый SSH-ключи могут быть сгенерированы. И если вы перейдете в директорию
.ssh, там будут два файла: id_rsa(закрытый) и id_rsa.pub(открытый)5 причин почему Ubuntu лучше Windows
1. Безопасность.
Система Windows изначально была спроектирована как однопользовательская операционная система, поэтому все дополнительные механизмы добавления поддержки нескольких пользователей дорабатывались потом.
2. Обновления.
Пользуясь Windows вы, наверное, не раз сталкивались с ситуацией, когда система в самый неподходящий момент предлагала обновиться.
3. Настраиваемость.
Наверное многие из пользователей Windows пытались настаивать расположение панели, шрифты, иконки, курсоры. Это довольно сложно.
4. Легковесность.
Windows позиционируется как полноценная современная операционная система и для её работы необходимо современное оборудование и большой объем памяти.
5. Контроль над системой.
Windows пытаются принимать решения за пользователя и скрывают множество процессов. На первый взгляд, это облегчает работу с ОС. Но если у вас что-то перестает работать и надо разобраться почему, то сделать это не так просто.
1. Безопасность.
Система Windows изначально была спроектирована как однопользовательская операционная система, поэтому все дополнительные механизмы добавления поддержки нескольких пользователей дорабатывались потом.
2. Обновления.
Пользуясь Windows вы, наверное, не раз сталкивались с ситуацией, когда система в самый неподходящий момент предлагала обновиться.
3. Настраиваемость.
Наверное многие из пользователей Windows пытались настаивать расположение панели, шрифты, иконки, курсоры. Это довольно сложно.
4. Легковесность.
Windows позиционируется как полноценная современная операционная система и для её работы необходимо современное оборудование и большой объем памяти.
5. Контроль над системой.
Windows пытаются принимать решения за пользователя и скрывают множество процессов. На первый взгляд, это облегчает работу с ОС. Но если у вас что-то перестает работать и надо разобраться почему, то сделать это не так просто.