Сколько оперативной памяти нам действительно требуется?

Современные операционные системы непринужденно потребляют гигабайты ОЗУ, перманентно согревая карманы и помещения тактами процессора своим несметным числом фоновых процессов. macOS, например, очень любит разбирать ваши фотографии из iCloud, размечая на них лица. Android сканирует Wi-Fi сети вокруг вас и сохраняет историю местоположения. iOS слушает ваше «Привет, Сири», которое звучит дважды после покупки iPhone и более никогда. На носимых устройствах для поедания ресурсов есть естественный ограничитель — батарея, поэтому iOS просто запрещает фоновую работу большинства приложений, а Android всячески противится. Но на десктопных и серверных ОС ограничений нет — электричество бесконечное и бесплатное, а значит можно счастливо высаживать в ноль батарею вашего ноутбука.

Но что из того, что происходит за кадром, действительно нужно именно вам, как пользователю? Когда ресурсов гора, дела никому нет, а мне выпала прекрасная возможность разобраться в вопросе, превращая компьютер за 20$ в рабочую машину.

Raspberry Pi в качестве десктопа, или мсье знает толк

Встречайте красавца — Raspberry Pi Zero 2 W. Процессор Arm Cortex-A53, 4 ядра, 1 ГГц и 512 Мб ОЗУ, наравне с Wi-Fi, HDMI и Bluetooth дерзко возвращают нас во времена больших деревьев, когда сопоставимой мощности коробка не влезала не только в часовой карман джинсов, но разве что в багажник авто. Подключаем монитор, мышь и клавиатуру, накатываем Raspberry Pi OS, загружаемся, открываем Google Chrome и наблюдаем полное молчание в радиоэфире. В смысле вообще, он просто не открывается. Смотрим на свободную память и выясняем, что наша красивая, как Renault Logan, ОС только что заняла порядка 50% ОЗУ, а то и больше. И современный браузер вдруг отказывается открывать сайт размером в 50 Мб в сжатом виде при свободных 200 Мб ОЗУ. Он даже интерфейс свой загрузить в это не способен.

Меняем дистрибутив на DietPi, и о чудо — жалкие 30 секунд и искомый сайт в браузере открыт!

Визуально не поменялось приблизительно ничего, а машинка дело сделала.

Выясняем, что наша ОС похудела в своих памятных ожиданиях до жалких 111 Мб. И для меня, как пользователя, не изменилось ничего. Кроме работоспособности нужного софта.

Ну так и что нам правда нужно, чтобы тыкать мышкой в браузер?

Лезем под капот

Давайте разберем процессы незамутненной лишним ОС — только необходимое самому пользователю.

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




Для Windows, macOS, iOS, Android, QNX, FreeBSD, Nextstep, Solaris, OS/400 и любых прочих ОС фактически отличаться будут лишь названия или компоновка процессов, а смысл и назначение останется тем же.

Начнем с процессов суперпользователя (root), то есть самой ОС, без них у нас ничего не получится. Всего 13 штук:

1. init — координирует процесс загрузки и конфигурации окружения для пользователя, мать драконов и отец всех прочих процессов.

2. sshd — сервер для удаленных подключений к ОС по SSH.

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

4. cron — планировщик задач, запускает всякое по расписанию, например отправить в Google все собранные по вам данные за последнюю минуту.

5. polkitd — контролёр привилегий процессов, когда черни нужно пообщаться со старшими, вместо аудиенции с оными предоставит писчего, бересту и курьерский сервис для доставки мессаджа, проще говоря — когда процессу нужны ресурсы, не даёт их целиком, а чутко следит за их использованием.

6. bluetoothd — когда мышкой делаем тык-тык, доставляет тык-тык до нашей странички, а ещё регулярно теряет эту мышку и снова находит, но чаще первое.

7. hciattach — подключает последовательные асинхронные приемо-передатчики к стеку Bluetooth, фактически физический протокол передачи данных от железа к ОС и обвязка к нему.

8. dhclient — DHCP клиент, нижайше просит дать роутер нам адресок какой, чтоб в сети были видные, самостоятельные и от других компьютеров всякое интересное получать.

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

10. systemd-logind — вас тут много, а он один, и следит, чтоб каждому юзеру выдали консоль, процессов пачку и чтоб обиженным никто не ушел, а ещё следит за нажатием кнопки ВЫКЛ.

11. systemd-journald — хранитель логов, сшивает вашу коллекцию Playboy, любовные письма, события ядра и прочее происходящее с системой.

12. login — стоит у ворот, тыкает алебардой в вас и спрашивает, кто такой, чего желаешь, и открывает ворота при правильном пароле.

13. dbus-daemon –system — менеджер системы доставки сообщений между процессами, –system часть занимается особо важными, мол новую флешку занесли, товарищ ядро, чего делать будем?

Вышеперечисленное нужно с виду самому ядру, но в том числе и нам, иначе Bluetooth мышку, клавиатуру и сеть админить придется руками, а вы так быстро не сумеете.

Теперь лично наши процессы, также 13 штук:

1. top — спонсор нашего скриншота, собирает и выводит информацию о запщуенных в системе процессах.

2. systemd –user — отвечает за все пользовательские подкапотные процессы, например включить вам Steam при запуске ОС, или перезапустить торрент-клиент, если его кто убил.

3. dbus-daemon –session — вышеназванный менеджер системы доставки сообщений, но уже для пользовательских приложений, мол товарищ телеграм, там у нас вайфай отвалился с концами, уведомляю, всего доброго, хорошего настроения.

4. sd-pam — сложная система проверки прав на методы (не спрашивайте, правда сложная).

5. bash — хранит доисторические мемы про патчинг KDE2 под FreeBSD, а также командный интерпретатор UNIX — место, где можно команды разные компьютеру давать с клавиатуры.

6. startx — входная точка, запускающая нам курсор мыши и дающая дальше включить менеджер окон, панельки, часики и прочее на экран не в режиме 80×25 символов.

7. xinit — скрипт для непосредственного запуска менеджера окон, рисования панелек, часиков и прочего на экран.

8. lxqt-session — запуск сессии GUI для пользователя, грузит не просто панельку, а именно вашу, любовно настроенную панельку с часами.

9. ssh-agent — хранилище разных ключей и паролей.

10. openbox — менеджер окошек, чтобы мышкой можно было туда-сюда двигать наш браузер.

11. lxterminal — окошко, в котором будет запущен bash.

12. lxqt-policykit-agent — агент аутентификации для фреймворка обработки привилегий процессов внутри LXQt (потерпите, мы уже заканчиваем).

13. xorg — великая и ужасная оконная система Linux, используемая для построения графического интерфейса пользователя.

И всё! Неужели в самом деле всё — спросит меня читатель, внимательно ознакомившийся со всем списком гаек и болтов Линукса, ничего не проскроллив и не забив на этот список свой собственный болт. В самом деле всё — отвечает ему писатель.

А как же распознавание лиц на фотографиях из облака? А где отправка телеметрии в Microsoft? А что передаст товарищу майору метаданные моих взаимоотношений с миром? Кто же будет выдавать подключенным к моему хотспоту пользователям IP адреса? Кто будет искать горячих пользователей Интернета, желающих пообщаться рядом со мной.

А вот и занятный факт. На самом деле, чтобы вы могли двигать мышкой по экрану, смотреть на бегущее время и запустить Google Chrome, вашей ОС нужно в современном мире порядка 128 Мб, да и то на Full HD монитор и зоопарк подключенных устройств ввода. А куда запущенная винда съела ещё 6 Гб сверху — вопросы к Microsoft, Apple, Google и Спортлото.

К слову о Windows

Цитата с сайта Microsoft: «Windows поставляется со встроенными приложениями, службами и функциями, которые помогут вам сделать больше».

И что же позволяет нам сделать больше? Фильтр SmartScreen в Microsoft Defender? Служба OneDrive, когда мы сидим на Google Drive? Голосовой ввод, слушающий наши микрофоны для распознавания речи? Программа предварительной оценки Windows? Оптимизация доставки, использующая нашу машину для доставки их собственного софта другим пользователям?

Плач Ярославны

Не раздражает ли вас, дорогие читатели, что злобные корпорации пользуют наши компьютеры для своих гадких целей оптимизации затрат, слежки и таргета рекламы? Казалось бы, да и чёрт с ним, у нас по 16 Гб ОЗУ минимум, ядер целый лоток, пусть греют комнату. Но чудес не бывает — страдает в первую очередь отзывчивость. Я хочу мгновенного отклика от ПК, в десятки миллисекунд, а CPU в этот момент надо отвлечься на отправку телеметрии, и мой компьютер должен стоить over 9000 денег, чтобы тянуть и мои скромные попытки его использовать, и сбор данных от производителя ОС.

Бежать полностью на Linux с Windows или macOS не выйдет, отключать все эти службы невозможно, но меня лично задолбало, что для стабильного скролла твитов нужно иметь машину, способную отрисовать мне в 60 кадров в 4K в сложной игре.

Сдаемся и терпим?

P. S. Работать на Raspberry Pi в качестве десктопа и правда можно, что очень отрадно и достойно для компьютера размером с половину банковской карты и ценой в 3 шаурмы. Вам не посоветую, но лично дико кайфую.

 

Источник

действительно, Нам, оперативной, памяти, сколько, требуется

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