💾 Archived View for tilde.team › ~rami › win_wrong.gmi captured on 2023-05-24 at 19:30:45. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-03-01)
-=-=-=-=-=-=-
רמי
SUBJECT: “Что не так с Windows?”… or Windows: What’s wrong?
AUTHOR: Rami Rosenfeld
DATE: 21/01/22
TIME: 00.00
LANG: ru
LICENSE: CC BY-NC-ND 4.0.
TAGS: gnu, linux, software, opensource, free, app, windows, security, privacy
(Краткий пользовательский ликбез - в сравнении с GNU/Linux)
Version: 0.1.3 от 21.01.22
Ниже следует серьезно переработанный и глобально дополненный материал, публикуемый в новой версии. Распространение данного текста с активной ссылкой на блог всячески приветствуется, особенно при нехватке контраргументов :) в форумном и общежитейском общении с поклонниками MS Windows!
Предыстория
Как-то в приватном общении на одном из русскоязычных технических форумов отвечал - без флейма и доказательств типа “сам дурак!” - случайному собеседнику на вопрос (публикую с его разрешения):
Вы пишете, цитирую: “попутно убедился в тотальной невозможности любых мер по поддержанию должного уровня приватности и анонимности в среде Windows”. Мои эксперименты с “допиливанием” ОС семейства Windows показали, что Вы правы практически полностью, за исключением XP. Я думаю, что это единственная ОС из всего семейства, которую можно превратить в “невидимку” + можно добиться практически полной вирусонепроницаемости без антивиря и внешнего файера. В связи с чем прошу хотя бы тезисно обозначить Ваши претензии к Windows XP. Может я чего упустил?
… Сегодня подобный вопрос возник снова, и я решил создать (в первую очередь для самого себя, чтобы лишний раз не трепать языком и не ломать пальцы о клавиатуру) мини-HowTo, которое позволило бы кратко обозначить основные проблемы Windows (любых версий). Вторая часть ликбеза посвящена возможностям GNU/Linux, с упором на обеспечение его безопасности.
При подборе аргументов я старался не вникать в высокие материи и излагал свои доводы так, чтобы информация была доступна для понимания любому неподготовленному человеку. Поэтому заранее предупреждаю: некоторая часть данной статьи может показаться знакомой компетентным пользователям.
Итак, ответы…
На протяжении примерно четверти века я непрестанно твержу: “Безопасность любого компьютера должна быть комп-лекс-ной!” И речь здесь идет не только о защите браузера и коммуникаций “пользователь” - “конечный сайт”. Поэтому, уж поскольку я много лет назад перешел с Windows XP на RedHat, вначале мне проще перечислить, чего не имеется в первой из вышеупомянутых ОС (равно как и в последующих версиях Windows):
A. ГЛАВНАЯ ПРОБЛЕМА: несвободное (проприетарное) программное обеспечение - это относится и к самой ОС, и к большинству прикладного софта к ней. Соответственно, всю ОС и все программы с закрытыми исходными кодами, которые недоступны для стороннего исследования, проверки и аудита, уже(!) можно считать недоверенной средой. Подобный софт “не принадлежит” пользователю, наоборот - “пользователь принадлежит ему” (в шутку принято говорить так: “Не пользователь имеет программное обеспечение, а программное обеспечение “имеет” пользователя”). Соответственно, любые ОС и ПО в силу их закрытости ведут себя, как им вздумается, причем эти процессы невозможно проконтролировать.
B. Проприетарные (собственнические) лицензии, под которыми выпускается как ОС, так и программы под нее, не предоставляют конечному пользователю практически никаких прав, зато накладывают огромное количество ограничений, прямых запретов и обязанностей. Данный подход весьма метко именуется “цифровыми наручниками”. Чтобы убедиться в справедливости этого утверждения, самостоятельно откройте любую сопроводительную лицензию, часто обозначаемую как EULA (end-user license agreement), и внимательно ознакомьтесь с ее содержанием.
N.B.! Не обольщайтесь и будьте внимательны в использовании: т.н. проприетарные “бесплатные”, “Free”, “Freemium” и “Shareware” лицензии к ПО под Windows относятся к аналогичной категории “цифровых наручников”.
C. Огромнейшая проблема любых последних версий Windows - это тотальная телеметрия! Отчеты о различных пользовательских действиях, а также о множестве процессов, происходящих в ОС, напрямую передаются разработчикам (большой вопрос - и только ли разработчикам?), причем этот функционал является скрытым и неотключаемым. Таким образом, у пользователя Windows действительно “нет никаких секретов” перед Microsoft. Повторюсь: телеметрия ОС и программ под нее зачастую является неотключаемой в стандартных настройках и требует специальных познаний, связанных с тщательным и кропотливым редактированием реестра Windows или настроечных ini-файлов программ. Именно поэтому весьма справедливо телеметрия именуется “анальным зондом”.
N.B.! Кстати, далеко не факт, что внесенные вами запрещающие изменения не обнулятся при очередном обновлении (могу предполагать, что примерно так и происходит).
D. Платность! Сразу оговорюсь - я принципиальный противник нарушения требований проприетарных лицензий и авторских прав разработчиков; соответственно - никогда не устанавливаю взломанные или нелегально модифицированные операционные системы или программы, а также сторонние сборки типа “Windows Zver-DVD”, и не призываю к этому всех присутствующих.
К примеру, рассмотрим, какую сумму необходимо затратить маленькой рекламной фирме из 3-5 сотрудников (поговаривают, что сейчас это самое модное направление бизнеса - куда ни плюнь, обязательно попадешь в какого-нибудь “дизайнера”) на приобретение минимального набора софта, обеспечивающего работу с графикой и видео. Для простоты и удобства будем рассчитывать стоимость ОДНОЙ операционной системы и ОДНОЙ программы для ОДНОГО компьютера.
Итак, чтобы использовать Windows, а также необходимый набор проприетарных узкоспециализированных программ по профилю деятельности, главе условной фирмы необходимо потратить (в ценах 2019 г., взятых произвольно - из веб-магазина "S...ne" - при округленной стоимости доллара 65 руб.):
а) примерно 205$ - если я захочу приобрести отдельный “коробочный” инсталляционный носитель с Windows 10 Pro (плюс лицензию и регистрационный ключ); для сравнения - Windows 10 Home Edition (для домашнего пользования) продается по цене примерно 129$ - но это лишь стоимость самой электронной лицензии (в подобном случае пользователь “на руки” не получает ничего!)
б) 577$ - на пиксельный редактор Adobe Photoshop CC 2019 (с лицензией Enterprise - всего на 12(!) месяцев).
в) 191$ - на векторный редактор CorelDRAW Graphics Suite 2019 (с лицензией - всего на 12(!) месяцев).
г) 577$ - на издательскую систему (средство верстки) Adobe InDesign CC 2019 (с лицензией Enterprise - всего на 12(!) месяцев).
д) 394$ - на офисный пакет MS Office Standard 2019.
е) 577$ - на видеоредактор Adobe Premiere Pro CC 2019 (с лицензией Enterprise - всего на 12(!) месяцев).
ж) 60$ - на антивирус Kaspersky Small Office Security 6 (вариант лицензии для мини-организаций рассчитан на 5 ПК/мобильных устройств и всего на 12(!) месяцев).
з) 200$ - на “1С:Предприятие 8” для обеспечения бухгалтерских и прочих расчетов.
ИТОГО:
2 781 доллар США или 180 765 рублей. (2019 г.)
или 208 575 рублей. (2022 г. - из расчета 75 руб. за доллар)
… Впечатляет?!
E. Отсутствие полноценного дискового шифрования, включая:
а) системный раздел;
б) раздел подкачки;
в) пользовательский раздел.
F. Отсутствие дополнительного надежного (повторюсь: “на-деж-но-го”) шифрования данных пользовательских аккаунтов или отдельных каталогов в них.
G. Отсутствие возможности надежного полнораздельного шифрования съемных носителей (флэшек, винчестеров и т.п.)
H. Как итог предыдущих пунктов: полное отсутствие в ОС “из коробки” каких-либо симметричных, асимметричных и комбинированных средств шифрования, доступных конечному пользователю: GnuPG, LUKS, EncFS и т.п. В GNU/Linux первые две системы - неотъемлемая часть ОС.
I. Небезопасная и непрозрачная система обновлений ОС. Печально, но факт: вы не можете отключить автоматическое обновление Windows в ее последних версиях стандартными средствами (если не ошибаюсь - вообще(!) не можете), равно как и не состоянии управлять и даже наблюдать за обновлением ОС. Для сравнения: в GNU/Linux я полностью контролирую данный процесс (ибо вижу поименно, какие пакеты приходят для обновления; могу легко манипулировать ими: запрещать отдельные обновления, отменять их, т.е. делать даунгрейды и т.п.). Кроме того, в GNU/Linux каждый пакет имеет жесткие зависимости, подписан отдельной цифровой подписью, что исключает его подделку/видоизменение при автоматическом скачивании из официального репозитория или с “зеркала”.
J. Игнорирование разграничения прав пользователей и игнорирование разграничения прав отдельных процессов и прикладных программ, а также доступа к ним. Приведу простой пример. Как правило, на стандартном компьютере с Windows первый (он же единственный) пользователь однозначно обладает административными правами; причем редко кто заботится о создании хотя бы примитивного пароля как к пользовательскому, а уж тем более - к отдельному администраторскому аккаунту. Буду максимально честен - к подобному опасному идиотическому подходу пришла распространенная среди школьников, хипстеров и ламеров операционная система GNU/Linux под названием Ubuntu и ее многочисленные деривативы (см. мою отдельную статью: “Почему sudo используют только чудаки”).
Таким образом, любая критичная с точки зрения безопасности (и однозначно запрещенная в среде GNU/Linux!) операция в Windows выглядит следующим о��разом:
а) запускаем исполнимый файл (который может быть вредоносным);
б) предупреждение ОС: “Для его запуска необходимо обладать административными правами…” (или что-то подобное);
в) смело жмем на кнопку ОК;
г) ОС (осторожно): “Вы действительно хотите …?”
д) Наш ответ: “Да!”
е) ОС (без тени сомнения): “Ну что же… валяйте! Разрешаю!”
О какой, стесняюсь спросить, “безопасности” тут может идти речь?!
K. Отсутствие нативного обеспечения sandbox, “песочницы”, т.е. средства (“бесправного”) запуска любых процессов в изолированной среде. Для сравнения: в GNU/Linux даже встроенным средствами SELinux (Security-Enhanced Linux; система принудительного контроля доступа) я могу запустить любой пакет в песочнице буквально одной простенькой командой.
L. Отсутствие нативного запуска “виртуальных машин”. У меня это встроенная функция; соответственно, поверх хоста я могу запустить любую(!) изолированную операционную систему: от Windows и до самых экзотических… Ну и дальше - безопасно работать из-под нее.
M. Отсутствие TmpFS (разумного подхода к обеспечению безопасности, когда промежуточные данные перенаправляются исключительно в RAM, оперативную память). Соответственно, в Windows все многочисленные временные данные сохраняются на HDD и могут быть легко восстановлены гипотетической атакующей стороной.
N. Отсутствие вменяемого и логичного разбиения физического диска при первоначальной инсталляции ОС. По умолчанию, Windows будет установлена на единственный раздел (называемый “Диском С”), в котором будут располагаться:
а) загрузчик;
б) сама система;
в) прикладные программы, установленные пользователем;
г) настройки системы и всех прикладных программ;
д) все пользовательские данные и профили;
е) файл подкачки.
Таким образом, при успешном :) и качественном крахе системы, вы лишитесь всего и сразу! Помните поговорку “Не кладите все яйца в одну корзину”? … Вот-вот!
O. Отсутствие нативных, надежных и проверенных средств уничтожения данных. GNU/Linux, напротив, обладает встроенным функционалом.
P. “Родной” фаэрволл в Windows (добавлено позже: по крайней мере, мое утверждение относится к версии XP) - это отдельная и очень большая проблема. Будем считать, что его там вообще нет. Это, кстати, не мое умозаключение, а результаты исследований со специализированного сайта Matousec, много лет подряд занимающегося тестированием и сравнением брандмауэров и т.п. (к сожалению, сейчас эти данные там недоступны).
Q. Вирусная активность. Могу ли я дальше ничего не объяснять подробно? :) Приведу лишь маленький пример; вы, наверное, обращали внимание на объем баз, скачиваемых/обновляемых вашим антивирусом? Так вот, отдельная сигнатура (условно говоря, хеш-сумма) определенного вируса, может занимать 4/8/16 байт. При расчете: 1 сигнатура = 4 байта (с использованием алгоритма CRC32) и “весе” антивирусной базы в 256 Мб, мы придем к количеству примерно в 67(!) миллионов вирусов, написанных под Windows! Причем, (зоо-)парк вирусов под Windows имеет свойство увеличиваться в геометрической прогрессии.
Более того, сами антивирусные программы обладают свойствами “троянского коня” - они зачастую передают телеметрические и прочие(!) пользовательские данные производителям, особенно при “облачной” проверке файлов; так что будьте готовы к тому, что ваш любой(!) файл, например секретный документ или фото голой подружки, :) обязательно покинет компьютер и будет отправлен на чужой сервер.
Не секрет, что комплексные антивирусы (т.н. Internet Suit), рекламирующие “безопасность при работе в интернете” и “проверку любой ссылки/закачки”, по сути, являются успешным примером завуалированной атаки man-in-the-middle (“человек посередине”), т.к. в данном случае они служат своеобразными прокси-серверами, перехватывающими и затем расшифровывающими любые получаемые/передаваемые данные для “проверки на вшивость” и зашифровываемыми обратно. Кстати, в некоторых случаях стойкость алгоритмов шифрования в HTTPS-соединения при подобном подходе снижается, т.к. антивирус может использовать менее надежный алгоритм.
R. Небезопасная и непрозрачная система обновлений прикладных программ. Как правило, для “правильного” и “чистого” обновления какой-либо программы в Windows необходимо вручную осуществить следующие действия:
а) корректно экспортировать и сохранить критичные данные из пользовательского профиля (пароли, закладки и т.п.);
б) деинсталлировать старую программу;
в) зачистить множественные обрывки в реестре и на винчестере при помощи дополнительного софта;
г) найти официальный(!) сайт производителя;
д) самостоятельно выбрать(!) и скачать оттуда инсталлятор, подходящий для текущей ОС и для ее разрядности (32/64);
е) зачастую - установить в ОС дополнительную среду исполнения, например Java-машину, .NET, Visual C++ и т.п.; замечу, что вы должны найти и скачать из доверенных источников вышеупомянутое ПО самостоятельно;
ж) установить программу;
з) настроить ее;
и) импортировать в программу сохраненные пользовательские данные.
Учитывая, что большинство обычных пользователей набирает в Яндексе/Гугле название программы и качает ее из первого же(!) попавшегося источника (т.е. с любой файлопомойки или недостоверного, но прорекламированного сайта; в этом можно убедиться самостоятельно - просто обратите внимание на первые строки выдачи результатов поиска в распространенных поисковых системах или вспомните недавнюю историю про фейковый и злонамеренный “русский TOR”), результат их действий вполне предсказуем. И это не говоря уже о том, что даже в “официальный” проприетарный дистрибутив, скачанный с не менее официального сайта, производители - и на вполне легальной основе! - могут встроить кучу стороннего “мусорного” софта (и отказаться от него возможно только перейдя в “расширенные настройки установки”; впрочем, бывают отдельные тяжелые случаи, когда установку дополнительных программ, навязываемых пользователю, запретить нельзя).
В GNU/Linux, как вы, наверное, понимаете, такая ситуация невозможна в принципе (см. ниже).
S. Пользователю предлагаются всего две файловые системы - FAT и NTFS.
T. Отсутствие отслеживания зависимостей между компонентами (пакетами) со стороны общесистемного инсталлятора (в GNU/Linux это apt-get, yum, dnf). Как результат, любая(!) сторонняя программа может занести с собой при установке любые(!) компоненты (библиотеки и т.п.), необходимые для ее работы, абсолютно не обращая внимания на тот факт, что они в ОС:
а) уже имеются;
б) не подходят по версии к другому, т.е. уже установленному ПО; таким образом, возможен конфликт.
U. Дичайшее и неоправданное потребление системных ресурсов! Не так давно я занимался восстановлением Windows 10 Home (c заводского образа, расположенного на скрытом разделе) на ноутбуке. Так вот, после переустановки свежей ОС и тотального отключения всех ее телеметрических сервисов - как вручную, так и при помощи интерфейса программы O&O ShutUp10 - а также удаления ПО, щедро предустановленного производителем Lenovo, и прочего мусорного софта, оперативная память, равная 2 Gb, все равно была задействована на 60-70%! Для сравнения: сразу 3 разные версии Fedora Linux на трех стареньких нетбуках с 1 GB RAM, потребляют у меня… не более 220-240 Мб памяти (вместе с запущенными при загрузке ОС сервисами-демонами!)
V. Отсутствие возможностей менять интерфейс операционной системы, видоизменять и подстраивать его под свои нужды.
(…) И это - только навскидку! Извините, устал перечислять. Да и буквы алфавита заканчиваются!
А вот как это устроено в GNU/Linux:
САМОЕ ВАЖНОЕ: Свободны - как сама операционная система, так и все пакеты (т.е. программы, библиотеки, скрипты, фреймворки и т.п.) к ней; причем “свободны” с точки зрения Free as a Freedom, not as “free beer” ("Свободны как в слове “Свобода”, а не как в словосочетании “халявное пиво”).
Напомню, что представляют из себя пользовательские свободы с точки зрения основной лицензии - GNU GPL (and lesser, т.е. ее производные):
Свобода номер ноль - это свобода запускать программу так, как вам этого хочется.
Свобода номер один - это свобода изучать исходный код программы и изменять его так, чтобы программа работала в соответствии с вашими пожеланиями.
Свобода номер два - это свобода помогать остальным, свобода распространять точные копии программы среди других пользователей.
Свобода номер три - это свобода вносить вклад в сообщество. Это свобода распространять модифицированные копии программ, если вам этого хочется.
Если у пользователя программы есть все четыре свободы, программу можно отнести к свободному программному обеспечению. Свободное ПО - это общественный строй, который определяет, как распространять и использовать программы.
(цитируется по интервью Ричарда Мэттью Столлмана, он же rms, основоположника операционной системы GNU и лицензии GNU GPL)
Полноценное и тотальное распределение ограничивающих прав - как на каталоги, каждый отдельный файл, так и на группы пользователей.
Полноценное полнодисковое шифрование LUKS (The Linux Unified Key Setup). При инсталляции ОС шифруются:
а) “/” - системная область;
б) “/swap” - раздел подкачки;
в) “/home” - пользовательский раздел;
г) “/var” - раздел переменных данных (логи, кэш, временные файлы и т.п.)
г) опционально - другие разделы.
Дополнительное шифрование пользовател��ского раздела, находящегося в общесистемном каталоге “/home”.
Вынос загрузчика ОС на внешний носитель (простейший аналог аппаратного ключа).
Обеспечение системы принудительного контроля доступа - SELinux в enforcing-режиме. SELinux следующим уровнем, работающим после классической модели безопасности Linux; применение политик безопасности и ролей (т.е. каждая программа обладает минимальным набором прав в соответствии с ее заявленным функционалом).
Простейший пример: любой произвольный текстовый редактор имеет права записывать данные на носители или посылать задания на печать, но если он проявит иную нехарактерную активность, например, попытается записать компакт-диск, :) то немедленно будет блокирован. Этот функционал немного схож с HIPS (Host-based Intrusion Prevention System, системой предотвращения вторжений, которой обладают некоторые серьезные антивирусы для Windows; хороший пример качественного HIPS имеется в Comodo Internet Security), однако в GNU/Linux он является встроенным в саму ОС. Впрочем, предустановленные для большинства приложений правила (они периодически скачиваются и устанавливаются вместе с системными обновлениями) можно видоизменять под свои нужды, однако делать это необходимо с максимальной осторожностью. Напомню: категорически не рекомендуется переводить SELinux в разрешительный режим permissive или отключать его.
Глобальный менеджер системных сервисов - systemd.
К примеру, чтобы инициализировать/запустить/остановить или проверить состояние/статус любого сервиса (ранее они именовались “демонами”), необходимо выполнить простейшую команду:
systemctl enable/start/stop/status name.service (или name.socket)
Надежный и удобный в настройке предустановленный фаэрволл, например, firewalld, работающий в режиме “запрещено все, кроме того, что явно не разрешено”.
Взгляните, вот как одной консольной командой закрываются все(!) порты сразу по двум протоколам TCP/UDP, и одновременно из правил фаэрволла удаляются неиспользуемые службы:
firewall-cmd --permanent --remove-port=1-65535/udp && firewall-cmd --permanent --remove-port=1-65535/tcp && firewall-cmd --permanent --remove-service=samba-client mdns ssh (...)
Впрочем, эти же действия осуществляются и посредством GUI, т.е. графического интерфейса фаэрволла.
Журналирование действий ОС, прикладных пакетов и тотальный централизованный контроль за логами (подчеркиваю - за любыми(!) логами), а также их анализ - journald. Это изумительную по простоте и удобству систему я хочу кратко продемонстрировать на отдельных примерах:
Просмотр логов, созданных сервисом name.service (можно набрать просто “name”):
journalctl -u name
Просмотр логов, созданных сервисом name только в текущей сессии загрузки системы:
journalctl -b -u name
Просмотр логов, созданных сервисом name сегодня (и т.п., например “с… до”):
journalctl -u name.service --since today
Просмотр активности определенного пользователя (с использованием его UID):
journalctl _UID=1000
Просмотр последних 15 записей всех логов ОС и ПО:
journalctl -n 15
Просмотр полного лога в реверсивном режиме (последние записи отобразятся первыми):
journalctl -r
Просмотр в режиме реального времени (с автообновлением):
journalctl -f
Удаление логов по временному промежутку:
journalctl --vacuum-time=2months
journalctl --vacuum-time=1days
Виртуализация: начиная с простейшей “sandbox” (“песочницы”), в которую легко “оборачивается” любая прикладная программа и ей присваивается определенная ограничительная “роль”, и заканчивая полноценными виртуальными машинами, когда из-под хоста запускается “гостевая ОС”, разворачиваемая из ISO-файла.
К примеру, вот как просто (подчеркну: от обычного пользователя) запустить ваш браузер в изолированном от ОС ограничительном окружении:
sandbox -X --type sandbox_web_t browser_name
Перенаправление временных и промежуточных данных в TmpFS (т.е. они записываются не на HDD, а исключительно в RAM и уничтожаются с обесточиванием); в отдельных продвинутых дистрибутивах существуют также методы борьбы с атакой, используемой во время т.н. cold reboot (“холодной перезагрузки”).
Обновление ОС и всего прикладного ПО из официальных репозиториев; автоматическая проверка электронной цифровой подписи (ЭЦП) каждого пакета. Прозрачные (“говорящие”) названия каждого пакета и доступность расширенной информации о нем, в том числе - о его зависимостях.
Весь системный и прикладной софт:
а) автоматически скачивается из официальных репозиториев (источников пакетов и их обновлений);
б) при этом используется защищенный канал к любому из “зеркал” репозиториев;
в) как я уже упоминал, каждый пакет подписан цифровой подписью и его злонамеренное видоизменение невозможно.
Инкрементальное обновление (механизм deltaRPM). Во время апдейта всех пакетов операционной системы и всех пакетов прикладных программ с зеркал официальных репозиториев скачиваются только изменения в отдельных пакетах, но не новые пакеты (программы) целиком. Это удобно, быстро, плюс - экономит трафик. Например, система информирует: “Предлагаю обновиться на 360 Мб…”, а потом, чуть позже, сообщает: “deltaRPM сократила объем закачки на 34%, итого загружено NN Мб!”
Простота и наглядность при установке/удалении программного обеспечения, обновлении ОС и ПО.
К примеру, чтобы обновить всю операционную систему (rpm-based) и все пакеты (прикладные программы, библиотеки и т.п.) в ней, необходимо выполнить всего одну команду:
dnf upgrade
Для автоматизированной установки необходимых программ списком (вместе с их зависимостями) команда столь же примитивна:
dnf install program_1 program_2 program_3 (...)
То же самое относится к массовому удалению ненужных программ (немаловажно - и зависимостей к ним):
dnf remove program_1 program_2 program_3 (...)
Кстати, конечному пользователю вовсе необязательно помнить и приводить подробным списком все программы (пакеты), необходимые, например, для разработки и компиляции исходных кодов языка Си. Все компоненты для его использования можно установить методом “груповой инсталляции”:
dnf group install @c-development
Добавлю, что репозиториях любой ОС предусмотрены самые разнообразные группы пакетов, например Office и т.п.
Столь же просты и удобны команды поиска программы в репозиториях, а также получения расширенной информации о них. И поверьте, для этого нет необходимости искать в интернете сайт официального производителя или обращаться к Википедии:
dnf search program_name
dnf info program_name
Весьма часто пользователю необходимо запретить обновление какого-либо софта. Это достигается перечислением имени пакета(-ов) в конфигурационном файле менеджера пакетов:
exclude=program_1 program_2 program_3 (...)
Гарантированное многопроходное уничтожение (а не простое удаление) критичных данных, включая логи ОС, демонов/сервисов и пользовательских файлов.
Резервное копирование критичных и пользовательских данных с заданием периодичности и автоматической синхронизации, а также шифрование бэкапов.
Встроенная по умолчанию система генерирования (импорта-экспорта, хранения, редактирования и присваивания степени доверия) открытых/приватных ключей стандарта OpenPGP, а также пользовательских паролей к различным веб-программам, интернет-аккаунтам (XMPP, WebDAVs, OpenCloud) и прочих ключей, например SSH.
Встроенная по умолчанию в файловые менеджеры опция шифрования, заверения при помощи электронной цифровой подписи, аутентификации и расшифрования файлов по стандарту OpenPGP (см. абзац выше).
Расширенное планирование и последующий автоматический запуск любых процессов посредством systemd.timer (или устаревшим crontab).
Обеспечение приватности и защищенности любых коммуникаций, включая веб-серфинг, E-mail, голосовое (VoIP) и IM-общение: SSL/TLS, SSH, SFTP, SCP, The Onion Router (TOR), GnuPG, OTR (Off-the-Record Messaging); OMEMO (OMEMO Multi-End Message and Object Encryption), ZRTP (Z+Real-time Transport Protocol), используемый для Voice over Internet Protocol (VoIP). Шифрование и верификация DNS-соединений, минуя DNS-провайдера: DNSCrypt, DNSSec.
Отсутствие вирусов и прочих вредоносных программ. Кстати, если уж речь зашла о вирусах, могу добавить: в GNU/Linux их практически нет - этому способствует множество факторов: корректное (ограничительное) распределение прав групп, отдельных пользователей, а также присвоение атрибутов файлам и каталогам; сама архитектура ядра, система контроля SELinux и т.п. Официальной статистики о вирусах, разработанных под Linux, не существует, а редко встречающиеся данные значительно устарели; так, в Википедии утверждается, что “число вредоносных программ под Linux увеличилось с 2005 года. В частности, произошло удвоение количества вирусов с 422 до 863 [единиц]”(!)
Отдельно отмечу, что практически все вирусы в среде GNU/Linux необходимо “запускать руками”, т.е. пользователь обязан самостоятельно активировать вредоносный файл (предварительно отключив имеющиеся системы защиты и предоставив ему при этом необходимые права). Именно поэтому, как правило, все вирусы для GNU/Linux созданы в тестовых целях - на предмет изучения гипотетических уязвимостей ОС. Ну а большинство обнаруженных уязвимостей исправляются производителями буквально в течение нескольких дней после обнаружения (буду честен: временами не все происходит так гладко, как хотелось бы).
Опционально в ОС может быть установлены сетевая система предотвращения и обнаружения вторжений, например Snort, система сканирования на руткиты, бэкдоры и локальные эксплойты - rkhunter (Rootkit Hunter) и им подобные, а в качестве необременительного довеска - антивирус ClamAV.
“Собор и базар”. С предыдущим абзацем (об устранении уязвимо��тей) тесно связан подход к созданию GNU/Linux и прикладного ПО к нему, именуемый “базар”; эта важная тема впервые была раскрыта в основополагающем эссе Эрика Реймонда. Если создание исходных кодов для Windows происходит в централизованном и “закрытом” иерархическом режиме (такой подход именуется “собор”), а конечный пользователь никак не может повлиять на этот процесс, то в GNU/Linux любой пользователь, исходя из вышеперечисленных “четырех свобод”, обеспеченных лицензией GNU GPL, имеет полное право:
а) искать уязвимости в ОС и пакетах/программах;
б) самостоятельно исследовать уязвимости и сообщать о них разработчикам;
в) создавать дополнительный улучшенный функционал пакетов и программ;
г) свободно распространять его в т.н. “форках” (“вилках”, т.е. в ПО под иным названием и новым функционалом, но с обязательным соблюдением исходной свободной лицензии);
д) делиться результатами своего труда и исходными кодами с другими пользователями;
е) предлагать их разработчикам для включения в мейнстрим.
Именно благодаря такому подходу (иногда его называют “миллионы глаз”), уязвимости в GNU/Linux обнаруживаются и закрываются весьма быстро.
Разнообразие DE (Desktop Environment, графическое окружение рабочего стола) и графических оболочек для операционной системы. Насколько я помню, в Windows существует одна-единственная унифицированная схема оформления интерфейса ОС (расположения меню, элементов управления и т.п.) и пара-тройка цветовых гамм. Пользователи же GNU/Linux имеют возможность выбирать себе DE примерно среди десятка разнообразных окружений. Наиболее популярными сейчас являются GNOME 2, GNOME 3 (в них используется оболочка GNOME Shell), KDE, XFCE; среди относительно новых - Cinnamon, MATE и прочие.
Лично мне больше всего импонирует GNOME, руководствующийся принципом: “одна задача - одно приложение”. Поясню этот подход подробнее: если производители других DE порою переусердствуют в желании обеспечить пользователя всем необходимым - и в предустановленной ОС зачастую можно встретить сразу два-три средства со схожим функционалом (например, различные терминалы для работы с командной строкой), т.е “каждой твари по паре”, то GNOME выгодно отличается своим минималистичным подходом.
Предустановленное ПО (см. предыдущий пункт). Конечные пользователи GNU/Linux после установки получают не “голую” ОС, а полноценную среду, уже настроенную на работу и выполнение основных задач. И если в свежеустановленной Windows, по сути, нет ничего, кроме примитивного текстового редактора, весьма уязвимого и малофункционального браузера и морально устаревшего плейера, не умеющего обрабатывать некоторые распространенные кодеки, пользователь GNOME может воспользоваться полноценным и качественным программным обеспечением. Вот его стандартный набор ПО:
GNOME Terminal - эмулятор терминала;
GNOME Maps - географические карты (online);
GNOME Documents - менеджер документов;
GNOME Photo - менеджер изображений;
GNOME Contacts - менеджер контактов;
GNOME Games - набор игр;
GNOME Weather - метеорологическая станция;
GNOME Disks - средство создания, редактирования разделов на носителях (включая полнодисковое шифрование; иногда дополняется отдельной программой GParted);
Eye of GNOME - средство просмотра графики (как правило, зачастую его дополняют простым фоторедактором gThumb);
Web (ex-Epiphany) - браузер; впрочем, как правило, производители заменяют его на Firefox;
Evolution - почтовый клиент + PIM - мощное сервер/клиентское средство планирования, работы с задачами, событиями, заметками, контактами, календарем;
Ekiga - средство IP-телефонии;
Empathy - приложение мгновенного обмена сообщениями, поддерживающее множество протоколов, а также видео- и голосовое общение;
FileRoller - всеформатный менеджер архивов;
Totem - видео-/аудиоплейер; иногда дополняется аудиоплейером Rhythmbox;
Nautilus - файловый менеджер;
Alacarte - редактор меню;
Brasero - программа для работы с CD/DVD.
Sound Juicer - приложение для извлечения звуковых дорожек с компакт-дисков;
Tomboy - программа создания заметок;
Gedit - расширенный текстовый редактор (он понимает большинство языков разметки и программирования);
Seahorse - средство создания, хранения шифровальных ключей GNUPG, SSH и регистрационных данных (связок “логин/пароль”) к разнообразным пользовательским аккаунтам;
Evince - средство просмотра электронных документов (pdf, djvu и т.п.).
LibreOffice - офисный пакет (создание и редактирование документов, электронных таблиц, презентаций, графики и математических формул); Примечание: не относится к GNOME, но предустанавливается практически во всех распространенных дистрибутивах GNU/Linux.
КРАТКИЕ ИТОГИ
Надеюсь, из вышеприведенного материала вы смогли проанализировать и усвоить некоторые отличия двух операционных систем. И напоследок хочу добавить следующее: исходя из неоспоримых преимуществ, надежности и повышенной безопасности, а также длительного срока техподдержки у серьезных производителей дистрибутивов (та же RedHat обеспечивает расширенную поддержку/обновление своих продуктов в течение 14 лет) GNU/Linux успешно используется:
а) на промышленных серверах (особенно в критических областях): атомной энергетике и т.п.;
б) в научной сфере; например, при обслуживании Большого адронного коллайдера (в европейском CERN’e); в знаменитой американской физической лаборатории им. Энрико Ферми; при обработке астрономических данных (результатов исследования межзвездного пространства);
в) на метеорологических серверах, обсчитывающих в реальном времени миллионы погодных данных со всего света;
г) в военной области; например, даже в РФ большинство из т.н. “отечественных операционных систем”, применяемых в МО РФ и прочих силовых ведомствах, основано на исходных кодах RedHat: “ROSA Linux”, “Заря”, “Мобильная система Вооружённых Сил”, “ГосЛинукс”;
д) в дата-центре на новейшем американском эскадренном миноносце с ракетным вооружением Zumwalt;
е) примерно на 60-70% веб-серверов;
ж) при обеспечении веб-хостинга; так, даже по состоянию на далекий 2014 г., 7 из 10 самых надежных хостинговых компаний в мире использовали GNU/Linux;
з) практически на 100% мировых суперкомпьютеров (см. их т.н. “список Top 500”);
и) на “фермах” высокопроизводительных компьютеров, создающих цифровые спецэффекты и графику для фильмов (интересный факт: кинотриллогия “Властелин Колец” создавалась на Linux-ферме из 192 двухъядерных процессоров Silicon Graphics (1200/1100 series), которые исправно и непрерывно трудились в режиме “24/7” длительное время, необходимое для рендеринга изображения и наложения спецэффектов;
к) в подавляющем большинстве электронных мини-устройств, применяемых в IoT (“интернете вещей”) и системах “умный дом”; так, Linux Embedded можно обнаружить в автоматике, контрольно-измерительных приборах, системах видеонаблюдения, “умных” часах, холодильниках, телевизорах, а также в смартфонах, электронных книгах, телефонах и множестве аналогичных бытовых устройств.
КОНЕЦ
На этом - пока что все… Изменения, дополнения и возражения с благодарностью принимаются!
© Rami Rosenfeld, 2022. CC BY-NC-ND 4.0.