LINUX.ORG.RU

История изменений

Исправление vbr, (текущая версия) :

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

Это какой вендузячий подход.

Да хоть пердячий, честно говоря мне плевать. Я вообще считаю все десктопные операционные системы плохими. Макось лучше всех, хотя всё ещё плоха. Линуксом я пользуюсь не потому, что считаю, что он хорошо устроен, а потому, что он проще всех остальных систем на сегодня. Там минимум лишнего (хотя там очень много лишнего, но в сравнение с вендой или макосью это ничто).

Моя операционная система мечты это:

  1. Отсутствие менеджера пакетов. Это ужасное изобретение, его не должно быть.

  2. Система должна поставляться единым базовым минимальным образом. На выбор - или консольный образ для сервера без GUI, или графический образ для десктопа или сервера с GUI. Консольный образ это что-то вроде minimal-образов докера. Только туда ещё добавляется ядро. Его главная цель - предоставить все базовые сервисы и библиотеки. Базовые сервисы это systemd, библиотека это glibc. Может быть ещё что-то, но выбор должен быть крайне скуден. И она вообще не обязана соответствовать замшелому POSIX-у в своём устройстве. Графический образ это примерно то же, плюс графика (базовый набор библиотек и shell). Можно обсуждать, что должно входить в минимальный набор утилит для базового графического образа, но это явно должно быть меньше того, что входит в GNOME, например. shell, settings, file manager. И насчёт file manager я даже не уверен. Причём все существующие DE для линукса ужасны, поэтому надо писать что-то новое. Похожее на GNOME, но с нормальным управлением, как в Windows 95 было, с пуском, панелью задач. Взять хорошие идеи со всех операционных систем, плохие (как это сделал GNOME) не брать.

  3. Обновления должны быть встроены в initramfs.

  4. Должна использоваться продвинутая ФС со снапшотами. LVM или ZFS или BTRFS или BCACHEFS.

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

  6. Вся базовая система иммутабельная, все мутабельные данные вроде логов и кешей хранятся в отдельных разделах. Ядро, initramfs подписаны, используется правильная криптография и интеграция с secure boot для гарантии того, что там ничего нельзя поменять без ведома пользователя.

  7. Для сервера все приложения ставятся через контейнеры. docker, podman, systemd-nspawn, вариантов много. Важно, что они не имеют отношения к производителю ОС. Ты просто ставишь что хочешь, задача базовой системы - обеспечить работу docker-а.

  8. Для десктопа тоже используется контейнеризация, хотя тут задача гораздо сложней. Наверное сегодня flatpak ближе всего к тому, что надо. Думаю, что тут хорошего ответа пока нет, как это всё делать.

  9. Вся философия в том, чтобы не давать пользователю никакого выбора. Также нужно выкидывать по максимуму все замшелые линуксовые утилиты и привычки (например поддержка нескольких пользователей - бред же, это никому не нужно) и переписывать всё по максимуму там, где это возможно. Ядро переписать невозможно. systemd - спорно. А вот DE нормальных в линуксе нет, DE переписать обязательно надо, и так, чтобы в нём хорошо работали flatpak версии существующих приложений. Философия в том, что производитель (намеренно не использую слово «дистрибутив», т.к. это не совсем дистрибутив, это именно операционная система в исходном смысле этого слова) предоставляет базовую систему и какие-то более-менее стабильные интерфейсы. А весь софт пишут другие разработчики. И к этому софту производитель ОС не имеет никакого отношения. Он его не собирает, он его не рекламирует, он лишь даёт работающий docker, а пользователь сам пишет docker run nginx или flatpak install gimp.

А если вернуться к исходному вопросу - повторюсь, обновления наживую это дичь. Это возможно, но это очень сложно. Поддержку этого надо программировать в софте. Это надо тестировать. Для типичного десктопа это никто не делает и не будет делать. А раз это невозможно сделать на практике, значит и не надо делать, надо обновляться надёжно и атомарно.

Обновление базовой системы должно сопровождаться перезагрузкой. Пускай даже через kexec или systemd soft-reboot, если это надёжно работает на любом железе (в чём я сомневаюсь). Конечно базовую систему нельзя обновлять просто так. Или новая мажорная версия раз в год, или обновление безопасности, тут уже ничего не поделаешь, надо ставить и ребутаться.

А обновления обычных приложений, при условии, что они на 100% изолированы от базовой системы и других приложений с помощью контейнеров - можно и без перезагрузки выполнять, тут проблем нет. Обновили, вывесили уведомление - мол обновление для гимпа готово, перезапустите гимп, чтобы пользоваться новой версией или отложите обновление, если пока не хочется обновляться.

Исправление vbr, :

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

Это какой вендузячий подход.

Да хоть пердячий, честно говоря мне плевать. Я вообще считаю все десктопные операционные системы плохими. Макось лучше всех, хотя всё ещё плоха. Линуксом я пользуюсь не потому, что считаю, что он хорошо устроен, а потому, что он проще всех остальных систем на сегодня. Там минимум лишнего (хотя там очень много лишнего, но в сравнение с вендой или макосью это ничто).

Моя операционная система мечты это:

  1. Отсутствие менеджера пакетов. Это ужасное изобретение, его не должно быть.

  2. Система должна поставляться единым базовым минимальным образом. На выбор - или консольный образ для сервера без GUI, или графический образ для десктопа или сервера с GUI. Консольный образ это что-то вроде minimal-образов докера. Только туда ещё добавляется ядро. Его главная цель - предоставить все базовые сервисы и библиотеки. Базовые сервисы это systemd, библиотека это glibc. Может быть ещё что-то, но выбор должен быть крайне скуден. И она вообще не обязана соответствовать замшелому POSIX-у в своём устройстве. Графический образ это примерно то же, плюс графика (базовый набор библиотек и shell). Можно обсуждать, что должно входить в минимальный набор утилит для базового графического образа, но это явно должно быть меньше того, что входит в GNOME, например. shell, settings, file manager. И насчёт file manager я даже не уверен. Причём все существующие DE для линукса ужасны, поэтому надо писать что-то новое. Похожее на GNOME, но с нормальным управлением, как в Windows 95 было, с пуском, панелью задач. Взять хорошие идеи со всех операционных систем, плохие (как это сделал GNOME) не брать.

  3. Обновления должны быть встроены в initramfs.

  4. Должна использоваться продвинутая ФС со снапшотами. LVM или ZFS или BTRFS или BCACHEFS.

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

  6. Вся базовая система иммутабельная, все мутабельные данные вроде логов и кешей хранятся в отдельных разделах. Ядро, initramfs подписаны, используется правильная криптография и интеграция с secure boot для гарантии того, что там ничего нельзя поменять без ведома пользователя.

  7. Для сервера все приложения ставятся через контейнеры. docker, podman, systemd-nspawn, вариантов много. Важно, что они не имеют отношения к производителю ОС. Ты просто ставишь что хочешь, задача базовой системы - обеспечить работу docker-а.

  8. Для десктопа тоже используется контейнеризация, хотя тут задача гораздо сложней. Наверное сегодня flatpak ближе всего к тому, что надо. Думаю, что тут хорошего ответа пока нет, как это всё делать.

  9. Вся философия в том, чтобы не давать пользователю никакого выбора. Также нужно выкидывать по максимуму все замшелые линуксовые утилиты и привычки и переписывать всё по максимуму там, где это возможно. Ядро переписать невозможно. systemd - спорно. А вот DE нормальных в линуксе нет, DE переписать обязательно надо, и так, чтобы в нём хорошо работали flatpak версии существующих приложений. Философия в том, что производитель (намеренно не использую слово «дистрибутив», т.к. это не совсем дистрибутив, это именно операционная система в исходном смысле этого слова) предоставляет базовую систему и какие-то более-менее стабильные интерфейсы. А весь софт пишут другие разработчики. И к этому софту производитель ОС не имеет никакого отношения. Он его не собирает, он его не рекламирует, он лишь даёт работающий docker, а пользователь сам пишет docker run nginx или flatpak install gimp.

А если вернуться к исходному вопросу - повторюсь, обновления наживую это дичь. Это возможно, но это очень сложно. Поддержку этого надо программировать в софте. Это надо тестировать. Для типичного десктопа это никто не делает и не будет делать. А раз это невозможно сделать на практике, значит и не надо делать, надо обновляться надёжно и атомарно.

Обновление базовой системы должно сопровождаться перезагрузкой. Пускай даже через kexec или systemd soft-reboot, если это надёжно работает на любом железе (в чём я сомневаюсь). Конечно базовую систему нельзя обновлять просто так. Или новая мажорная версия раз в год, или обновление безопасности, тут уже ничего не поделаешь, надо ставить и ребутаться.

А обновления обычных приложений, при условии, что они на 100% изолированы от базовой системы и других приложений с помощью контейнеров - можно и без перезагрузки выполнять, тут проблем нет. Обновили, вывесили уведомление - мол обновление для гимпа готово, перезапустите гимп, чтобы пользоваться новой версией или отложите обновление, если пока не хочется обновляться.

Исправление vbr, :

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

Это какой вендузячий подход.

Да хоть пердячий, честно говоря мне плевать. Я вообще считаю все десктопные операционные системы плохими. Макось лучше всех, хотя всё ещё плоха. Линуксом я пользуюсь не потому, что считаю, что он хорошо устроен, а потому, что он проще всех остальных систем на сегодня. Там минимум лишнего (хотя там очень много лишнего, но в сравнение с вендой или макосью это ничто).

Моя операционная система мечты это:

  1. Отсутствие менеджера пакетов. Это ужасное изобретение, его не должно быть.

  2. Система должна поставляться единым базовым минимальным образом. На выбор - или консольный образ для сервера без GUI, или графический образ для десктопа или сервера с GUI. Консольный образ это что-то вроде minimal-образов докера. Только туда ещё добавляется ядро. Его главная цель - предоставить все базовые сервисы и библиотеки. Базовые сервисы это systemd, библиотека это glibc. Может быть ещё что-то, но выбор должен быть крайне скуден. И она вообще не обязана соответствовать замшелому POSIX-у в своём устройстве. Графический образ это примерно то же, плюс графика (базовый набор библиотек и shell). Можно обсуждать, что должно входить в минимальный набор утилит для базового графического образа, но это явно должно быть меньше того, что входит в GNOME, например. shell, settings, file manager. И насчёт file manager я даже не уверен. Причём все существующие DE для линукса ужасны, поэтому надо писать что-то новое. Похожее на GNOME, но с нормальным управлением, как в Windows 95 было, с пуском, панелью задач. Взять хорошие идеи со всех операционных систем, плохие (как это сделал GNOME) не брать.

  3. Обновления должны быть встроены в initramfs.

  4. Должна использоваться продвинутая ФС со снапшотами. LVM или ZFS или BTRFS или BCACHEFS.

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

  6. Вся базовая система иммутабельная, все мутабельные данные вроде логов и кешей хранятся в отдельных разделах. Ядро, initramfs подписаны, используется правильная криптография и интеграция с secure boot для гарантии того, что там ничего нельзя поменять без ведома пользователя.

  7. Для сервера все приложения ставятся через контейрены. docker, podman, systemd-nspawn, вариантов много. Важно, что они не имеют отношения к производителю ОС. Ты просто ставишь что хочешь, задача базовой системы - обеспечить работу docker-а.

  8. Для десктопа тоже используется контейнеризация, хотя тут задача гораздо сложней. Наверное сегодня flatpak ближе всего к тому, что надо. Думаю, что тут хорошего ответа пока нет, как это всё делать.

  9. Вся философия в том, чтобы не давать пользователю никакого выбора. Также нужно выкидывать по максимуму все замшелые линуксовые утилиты и привычки и переписывать всё по максимуму там, где это возможно. Ядро переписать невозможно. systemd - спорно. А вот DE нормальных в линуксе нет, DE переписать обязательно надо, и так, чтобы в нём хорошо работали flatpak версии существующих приложений. Философия в том, что производитель (намеренно не использую слово «дистрибутив», т.к. это не совсем дистрибутив, это именно операционная система в исходном смысле этого слова) предоставляет базовую систему и какие-то более-менее стабильные интерфейсы. А весь софт пишут другие разработчики. И к этому софту производитель ОС не имеет никакого отношения. Он его не собирает, он его не рекламирует, он лишь даёт работающий docker, а пользователь сам пишет docker run nginx или flatpak install gimp.

А если вернуться к исходному вопросу - повторюсь, обновления наживую это дичь. Это возможно, но это очень сложно. Поддержку этого надо программировать в софте. Это надо тестировать. Для типичного десктопа это никто не делает и не будет делать. А раз это невозможно сделать на практике, значит и не надо делать, надо обновляться надёжно и атомарно.

Обновление базовой системы должно сопровождаться перезагрузкой. Пускай даже через kexec или systemd soft-reboot, если это надёжно работает на любом железе (в чём я сомневаюсь). Конечно базовую систему нельзя обновлять просто так. Или новая мажорная версия раз в год, или обновление безопасности, тут уже ничего не поделаешь, надо ставить и ребутаться.

А обновления обычных приложений, при условии, что они на 100% изолированы от базовой системы и других приложений с помощью контейнеров - можно и без перезагрузки выполнять, тут проблем нет. Обновили, вывесили уведомление - мол обновление для гимпа готово, перезапустите гимп, чтобы пользоваться новой версией или отложите обновление, если пока не хочется обновляться.

Исправление vbr, :

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

Это какой вендузячий подход.

Да хоть пердячий, честно говоря мне плевать. Я вообще считаю все десктопные операционные системы плохими. Макось лучше всех, хотя всё ещё плоха. Линуксом я пользуюсь не потому, что считаю, что он хорошо устроен, а потому, что он проще всех остальных систем на сегодня. Там минимум лишнего (хотя там очень много лишнего, но в сравнение с вендой или макосью это ничто).

Моя операционная система мечты это:

  1. Отсутствие менеджера пакетов. Это ужасное изобретение, его не должно быть.

  2. Система должна поставляться единым базовым минимальным образом. На выбор - или консольный образ для сервера без GUI, или графический образ для десктопа или сервера с GUI. Консольный образ это что-то вроде minimal-образов докера. Только туда ещё добавляется ядро. Его главная цель - предоставить все базовые сервисы и библиотеки. Базовые сервисы это systemd, библиотека это glibc. Может быть ещё что-то, но выбор должен быть крайне скуден. И она вообще не обязана соответствовать замшелому POSIX-у в своём устройстве. Графический образ это примерно то же, плюс графика (базовый набор библиотек и shell). Причём все существующие DE для линукса ужасны, поэтому надо писать что-то новое.

  3. Обновления должны быть встроены в initramfs.

  4. Должна использоваться продвинутая ФС со снапшотами. LVM или ZFS или BTRFS или BCACHEFS.

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

  6. Вся базовая система иммутабельная, все мутабельные данные вроде логов и кешей хранятся в отдельных разделах. Ядро, initramfs подписаны, используется правильная криптография и интеграция с secure boot для гарантии того, что там ничего нельзя поменять без ведома пользователя.

  7. Для сервера все приложения ставятся через контейрены. docker, podman, systemd-nspawn, вариантов много. Важно, что они не имеют отношения к производителю ОС. Ты просто ставишь что хочешь, задача базовой системы - обеспечить работу docker-а.

  8. Для десктопа тоже используется контейнеризация, хотя тут задача гораздо сложней. Наверное сегодня flatpak ближе всего к тому, что надо. Думаю, что тут хорошего ответа пока нет, как это всё делать.

  9. Вся философия в том, чтобы не давать пользователю никакого выбора. Также нужно выкидывать по максимуму все замшелые линуксовые утилиты и привычки и переписывать всё по максимуму там, где это возможно. Ядро переписать невозможно. systemd - спорно. А вот DE нормальных в линуксе нет, DE переписать обязательно надо, и так, чтобы в нём хорошо работали flatpak версии существующих приложений. Философия в том, что производитель (намеренно не использую слово «дистрибутив», т.к. это не совсем дистрибутив, это именно операционная система в исходном смысле этого слова) предоставляет базовую систему и какие-то более-менее стабильные интерфейсы. А весь софт пишут другие разработчики. И к этому софту производитель ОС не имеет никакого отношения. Он его не собирает, он его не рекламирует, он лишь даёт работающий docker, а пользователь сам пишет docker run nginx или flatpak install gimp.

А если вернуться к исходному вопросу - повторюсь, обновления наживую это дичь. Это возможно, но это очень сложно. Поддержку этого надо программировать в софте. Это надо тестировать. Для типичного десктопа это никто не делает и не будет делать. А раз это невозможно сделать на практике, значит и не надо делать, надо обновляться надёжно и атомарно.

Обновление базовой системы должно сопровождаться перезагрузкой. Пускай даже через kexec или systemd soft-reboot, если это надёжно работает на любом железе (в чём я сомневаюсь). Конечно базовую систему нельзя обновлять просто так. Или новая мажорная версия раз в год, или обновление безопасности, тут уже ничего не поделаешь, надо ставить и ребутаться.

А обновления обычных приложений, при условии, что они на 100% изолированы от базовой системы и других приложений с помощью контейнеров - можно и без перезагрузки выполнять, тут проблем нет. Обновили, вывесили уведомление - мол обновление для гимпа готово, перезапустите гимп, чтобы пользоваться новой версией или отложите обновление, если пока не хочется обновляться.

Исправление vbr, :

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

Это какой вендузячий подход.

Да хоть пердячий, честно говоря мне плевать. Я вообще считаю все десктопные операционные системы плохими. Макось лучше всех, хотя всё ещё плоха. Линуксом я пользуюсь не потому, что считаю, что он хорошо устроен, а потому, что он проще всех остальных систем на сегодня. Там минимум лишнего (хотя там очень много лишнего, но в сравнение с вендой или макосью это ничто).

Моя операционная система мечты это:

  1. Отсутствие менеджера пакетов. Это ужасное изобретение, его не должно быть.

  2. Система должна поставляться единым базовым минимальным образом. На выбор - или консольный образ для сервера без GUI, или графический образ для десктопа или сервера с GUI. Консольный образ это что-то вроде minimal-образов докера. Только туда ещё добавляется ядро. Его главная цель - предоставить все базовые сервисы и библиотеки. Базовые сервисы это systemd, библиотека это glibc. Может быть ещё что-то, но выбор должен быть крайне скуден. И она вообще не обязана соответствовать замшелому POSIX-у в своём устройстве. Графический образ это примерно то же, плюс графика (базовый набор библиотек и shell). Причём все существующие DE для линукса ужасны, поэтому надо писать что-то новое.

  3. Обновления должны быть встроены в initramfs.

  4. Должна использоваться продвинутая ФС со снапшотами. LVM или ZFS или BTRFS или BCACHEFS.

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

  6. Вся базовая система иммутабельная, все мутабельные данные вроде логов и кешей хранятся в отдельных разделах. Ядро, initramfs подписаны, используется правильная криптография и интеграция с secure boot для гарантии того, что там ничего нельзя поменять без ведома пользователя.

  7. Для сервера все приложения ставятся через контейрены. docker, podman, systemd-nspawn, вариантов много. Важно, что они не имеют отношения к производителю ОС. Ты просто ставишь что хочешь, задача базовой системы - обеспечить работу docker-а.

  8. Для десктопа тоже используется контейнеризация, хотя тут задача гораздо сложней. Наверное сегодня flatpak ближе всего к тому, что надо. Думаю, что тут хорошего ответа пока нет, как это всё делать.

  9. Вся философия в том, чтобы не давать пользователю никакого выбора. Также нужно выкидывать по максимуму все замшелые линуксовые утилиты и привычки и переписывать всё по максимуму там, где это возможно. Ядро переписать невозможно. systemd - спорно. А вот DE нормальных в линуксе нет, DE переписать обязательно надо, и так, чтобы в нём хорошо работали flatpak версии существующих приложений. Философия в том, что производитель (намеренно не использую слово «дистрибутив», т.к. это не совсем дистрибутив, это именно операционная система в исходном смысле этого слова) предоставляет базовую систему и какие-то более-менее стабильные интерфейсы. А весь софт пишут другие разработчики. И к этому софту производитель ОС не имеет никакого отношения. Он его не собирает, он его не рекламирует, он лишь даёт работающий docker, а пользователь сам пишет docker run nginx или flatpak install gimp.

А если вернуться к исходному вопросу - повторюсь, обновления наживую это дичь. Это возможно, но это очень сложно. Поддержку этого надо программировать в софте. Это надо тестировать. Для типичного десктопа это никто не делает и не будет делать. А раз это невозможно сделать на практике, значит и не надо делать, надо обновляться надёжно и атомарно.

Обновление базовой системы должно сопровождаться перезагрузкой. Пускай даже через kexec или systemd soft-reboot, если это надёжно работает на любом железе (в чём я сомневаюсь).

А обновления обычных приложений, при условии, что они на 100% изолированы от базовой системы и других приложений с помощью контейнеров - можно и без перезагрузки выполнять, тут проблем нет. Обновили, вывесили уведомление - мол обновление для гимпа готово, перезапустите гимп, чтобы пользоваться новой версией или отложите обновление, если пока не хочется обновляться.

Исправление vbr, :

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

Это какой вендузячий подход.

Да хоть пердячий, честно говоря мне плевать. Я вообще считаю все десктопные операционные системы плохими. Макось лучше всех, хотя всё ещё плоха. Линуксом я пользуюсь не потому, что считаю, что он хорошо устроен, а потому, что он проще всех остальных систем на сегодня. Там минимум лишнего (хотя там очень много лишнего, но в сравнение с вендой или макосью это ничто).

Моя операционная система мечты это:

  1. Отсутствие менеджера пакетов. Это ужасное изобретение, его не должно быть.

  2. Система должна поставляться единым базовым минимальным образом. На выбор - или консольный образ для сервера без GUI, или графический образ для десктопа или сервера с GUI. Консольный образ это что-то вроде minimal-образов докера. Только туда ещё добавляется ядро. Его главная цель - предоставить все базовые сервисы и библиотеки. Базовые сервисы это systemd, библиотека это glibc. Может быть ещё что-то, но выбор должен быть крайне скуден. И она вообще не обязана соответствовать замшелому POSIX-у в своём устройстве. Графический образ это примерно то же, плюс графика (базовый набор библиотек и shell). Причём все существующие DE для линукса ужасны, поэтому надо писать что-то новое.

  3. Обновления должны быть встроены в initramfs.

  4. Должна использоваться продвинутая ФС со снапшотами. LVM или ZFS или BTRFS или BCACHEFS.

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

  6. Вся базовая система иммутабельная, все мутабельные данные вроде логов и кешей хранятся в отдельных разделах. Ядро, initramfs подписаны, используется правильная криптография и интеграция с secure boot для гарантии того, что там ничего нельзя поменять без ведома пользователя.

  7. Для сервера все приложения ставятся через контейрены. docker, podman, systemd-nspawn, вариантов много. Важно, что они не имеют отношения к производителю ОС. Ты просто ставишь что хочешь, задача базовой системы - обеспечить работу docker-а.

  8. Для десктопа тоже используется контейнеризация, хотя тут задача гораздо сложней. Наверное сегодня flatpak ближе всего к тому, что надо. Думаю, что тут хорошего ответа пока нет, как это всё делать.

  9. Вся философия в том, чтобы не давать пользователю никакого выбора. Также нужно выкидывать по максимуму все замшелые линуксовые утилиты и привычки и переписывать всё по максимуму там, где это возможно. Ядро переписать невозможно. systemd - спорно. А вот DE нормальных в линуксе нет, DE переписать обязательно надо, и так, чтобы в нём хорошо работали flatpak версии существующих приложений. Философия в том, что производитель (намеренно не использую слово «дистрибутив», т.к. это не совсем дистрибутив, это именно операционная система в исходном смысле этого слова) предоставляет базовую систему и какие-то более-менее стабильные интерфейсы. А весь софт пишут другие разработчики. И к этому софту производитель ОС не имеет никакого отношения. Он его не собирает, он его не рекламирует, он лишь даёт работающий docker, а пользователь сам пишет docker run nginx или flatpak install gimp.

А если вернуться к исходному вопросу - повторюсь, обновления наживую это дичь. Это возможно, но это очень сложно. Поддержку этого надо программировать в софте. Это надо тестировать. Для типичного десктопа это никто не делает и не будет делать. А раз это невозможно сделать на практике, значит и не надо делать, надо обновляться надёжно и атомарно.

Исходная версия vbr, :

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

Это какой вендузячий подход.

Да хоть пердячий, честно говоря мне плевать. Я вообще считаю все десктопные операционные системы плохими. Макось лучше всех, хотя всё ещё плоха. Линуксом я пользуюсь не потому, что считаю, что он хорошо устроен, а потому, что он проще всех остальных систем на сегодня. Там минимум лишнего (хотя там очень много лишнего, но в сравнение с вендой или макосью это ничто).

Моя операционная система мечты это:

  1. Отсутствие менеджера пакетов. Это ужасное изобретение, его не должно быть.

  2. Система должна поставляться единым базовым минимальным образом. На выбор - или консольный образ для сервера без GUI, или графический образ для десктопа или сервера с GUI. Консольный образ это что-то вроде minimal-образов докера. Только туда ещё добавляется ядро. Его главная цель - предоставить все базовые сервисы и библиотеки. Базовые сервисы это systemd, библиотека это glibc. Может быть ещё что-то, но выбор должен быть крайне скуден. И она вообще не обязана соответствовать замшелому POSIX-у в своём устройстве. Графический образ это примерно то же, плюс графика (базовый набор библиотек и shell). Причём все существующие DE для линукса ужасны, поэтому надо писать что-то новое.

  3. Обновления должны быть встроены в initramfs.

  4. Должна использоваться продвинутая ФС со снапшотами. LVM или ZFS или BTRFS или BCACHEFS.

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

  6. Вся базовая система иммутабельная, все мутабельные данные вроде логов и кешей хранятся в отдельных разделах. Ядро, initramfs подписаны, используется правильная криптография и интеграция с secure boot для гарантии того, что там ничего нельзя поменять без ведома пользователя.

  7. Для сервера все приложения ставятся через контейрены. docker, podman, systemd-nspawn, вариантов много. Важно, что они не имеют отношения к производителю ОС. Ты просто ставишь что хочешь, задача базовой системы - обеспечить работу docker-а.

  8. Для десктопа тоже используется контейнеризация, хотя тут задача гораздо сложней. Наверное сегодня flatpak ближе всего к тому, что надо. Думаю, что тут хорошего ответа пока нет, как это всё делать.

  9. Вся философия в том, чтобы не давать пользователю никакого выбора. Также нужно выкидывать по максимуму все замшелые линуксовые утилиты и привычки и переписывать всё по максимуму там, где это возможно. Ядро переписать невозможно. systemd - спорно. А вот DE нормальных в линуксе нет, DE переписать обязательно надо, и так, чтобы в нём хорошо работали flatpak версии существующих приложений. Философия в том, что производитель (намеренно не использую слово «дистрибутив», т.к. это не совсем дистрибутив, это именно операционная система в исходном смысле этого слова) предоставляет базовую систему и какие-то более-менее стабильные интерфейсы. А весь софт пишут другие разработчики. И к этому софту производитель ОС не имеет никакого отношения. Он его не собирает, он его не рекламирует, он лишь даёт работающий docker, а пользователь сам пишет docker run nginx.

А если вернуться к исходному вопросу - повторюсь, обновления наживую это дичь. Это возможно, но это очень сложно. Поддержку этого надо программировать в софте. Это надо тестировать. Для типичного десктопа это никто не делает и не будет делать. А раз это невозможно сделать на практике, значит и не надо делать, надо обновляться надёжно и атомарно.