Как Ubuntu плавно переходит к более новому дистрибутиву, а операционная система все еще работает? Я обновляюсь с 10.10 до 11.04, и я обновлялся несколько раз раньше, и это так же просто, как запуск update-manager -d, загрузка и установка, а затем перезагрузка.
Как именно это работает? Как менеджер обновлений может обновить операционную систему, пока он все еще используется?
На уровне файловой системы, в отличие от Windows, в системе Unix вы можете удалить открытые файлы. Deletion просто удаляет имя файла, а не его содержимое, поэтому любые программы, все еще имеющие открытый файл, могут получить к нему доступ до тех пор, пока они не закроют файл, и только тогда будут освобождены данные.
Итак, обновление Процесс просто удаляет старые файлы, заменяет их новыми и определенными системными службами, перезапускает их, поэтому запускается новая версия.
Есть один или два компонента, которые нельзя перезапустить без перезагрузки весь компьютер, поэтому после их обновления вы получите запрос на перезагрузку, чтобы использовать новую версию.
Это похоже на другую функцию. Надеюсь, это поможет понять базовый процесс.
Я имею в виду возможность «переключать root» при загрузке операционной системы.
Когда загружается операционная система, корневая файловая система (read: "/") изначально доступен только в ОЗУ. Пока этот процесс загрузки запущен, он переключает / из ОЗУ на / файловую систему на жестком диске.
На уровне файловой системы, в отличие от Windows, в системе Unix вы можете удалить открытые файлы. Deletion просто удаляет имя файла, а не его содержимое, поэтому любые программы, все еще имеющие открытый файл, могут получить к нему доступ до тех пор, пока они не закроют файл, и только тогда будут освобождены данные.
Итак, обновление Процесс просто удаляет старые файлы, заменяет их новыми и определенными системными службами, перезапускает их, поэтому запускается новая версия.
Есть один или два компонента, которые нельзя перезапустить без перезагрузки весь компьютер, поэтому после их обновления вы получите запрос на перезагрузку, чтобы использовать новую версию.
Это похоже на другую функцию. Надеюсь, это поможет понять базовый процесс.
Я имею в виду возможность «переключать root» при загрузке операционной системы.
Когда загружается операционная система, корневая файловая система (read: "/") изначально доступен только в ОЗУ. Пока этот процесс загрузки запущен, он переключает / из ОЗУ на / файловую систему на жестком диске.
Как можно обновить Linux, пока он все еще используется?
В основном потому, что Linux (и с ним, большинство дистрибутивов) просто спроектирован именно так.
В Linux нет ничего, что могло бы помешать процессу диспетчера пакетов записывать в файл на диске, даже если это файл в настоящее время открыт приложением или файл является исполняемой или разделяемой библиотекой кода , который в настоящее время запущен . На очень низком уровне есть блокировки, которые защищают доступ к файлу во время одной операции записи / чтения, но они никогда не предназначены для хранения более чем миллисекунды и любого другого приложения, пытающегося записать в тот же файл будет просто ждать эти миллисекунды.
Вы можете заменить исполняемый файл во время его запуска, и он фактически ничего не сделает для выполняемого процесса, потому что процессу больше не нужен файл на диске - весь его код уже был загружен в память.
Вот почему в Linux, хотя вы можете обновить приложение во время его работы, обновление не будет в действительности вступать в силу до перезапуска приложения, которое вы обновили. В случае обновления фонового процесса, такого как системная служба, эта служба должна быть перезапущена. В случае, если вы обновили ядро, это означает перезагрузку.
Не будет заменять файлы программы во время запуска некоторых программ?
Некоторые из пакетов в в дистрибутиве Linux будут содержаться инструкции по установке, инструктирующие диспетчер пакетов останавливать определенные системные службы при обновлении пакета и повторно запускать эти службы после завершения обновления. Это предотвращает ситуации, когда, например, файлы конфигурации для конкретной службы обновляются, а работающая версия службы может не справиться с более новой версией файлов конфигурации.
В общем, регулярные пользовательские приложения не требуют запуска файлов конфигурации, за исключением файлов, которые он генерирует, и размещается в таких местах, как домашние каталоги пользователей. Поэтому при обновлении они не будут затронуты менеджером пакетов.
Это похоже на другую функцию. Надеюсь, это поможет понять базовый процесс.
Я имею в виду возможность «переключать root» при загрузке операционной системы.
Когда загружается операционная система, корневая файловая система (read: "/") изначально доступен только в ОЗУ. Пока этот процесс загрузки запущен, он переключает / из ОЗУ на / файловую систему на жестком диске.
Как можно обновить Linux, пока он все еще используется?
В основном потому, что Linux (и с ним, большинство дистрибутивов) просто спроектирован именно так.
В Linux нет ничего, что могло бы помешать процессу диспетчера пакетов записывать в файл на диске, даже если это файл в настоящее время открыт приложением или файл является исполняемой или разделяемой библиотекой кода , который в настоящее время запущен . На очень низком уровне есть блокировки, которые защищают доступ к файлу во время одной операции записи / чтения, но они никогда не предназначены для хранения более чем миллисекунды и любого другого приложения, пытающегося записать в тот же файл будет просто ждать эти миллисекунды.
Вы можете заменить исполняемый файл во время его запуска, и он фактически ничего не сделает для выполняемого процесса, потому что процессу больше не нужен файл на диске - весь его код уже был загружен в память.
Вот почему в Linux, хотя вы можете обновить приложение во время его работы, обновление не будет в действительности вступать в силу до перезапуска приложения, которое вы обновили. В случае обновления фонового процесса, такого как системная служба, эта служба должна быть перезапущена. В случае, если вы обновили ядро, это означает перезагрузку.
Не будет заменять файлы программы во время запуска некоторых программ?
Некоторые из пакетов в в дистрибутиве Linux будут содержаться инструкции по установке, инструктирующие диспетчер пакетов останавливать определенные системные службы при обновлении пакета и повторно запускать эти службы после завершения обновления. Это предотвращает ситуации, когда, например, файлы конфигурации для конкретной службы обновляются, а работающая версия службы может не справиться с более новой версией файлов конфигурации.
В общем, регулярные пользовательские приложения не требуют запуска файлов конфигурации, за исключением файлов, которые он генерирует, и размещается в таких местах, как домашние каталоги пользователей. Поэтому при обновлении они не будут затронуты менеджером пакетов.
На уровне файловой системы, в отличие от Windows, в системе Unix вы можете удалить открытые файлы. Deletion просто удаляет имя файла, а не его содержимое, поэтому любые программы, все еще имеющие открытый файл, могут получить к нему доступ до тех пор, пока они не закроют файл, и только тогда будут освобождены данные.
Итак, обновление Процесс просто удаляет старые файлы, заменяет их новыми и определенными системными службами, перезапускает их, поэтому запускается новая версия.
Есть один или два компонента, которые нельзя перезапустить без перезагрузки весь компьютер, поэтому после их обновления вы получите запрос на перезагрузку, чтобы использовать новую версию.
Как можно обновить Linux, пока он все еще используется?
В основном потому, что Linux (и с ним, большинство дистрибутивов) просто спроектирован именно так.
В Linux нет ничего, что могло бы помешать процессу диспетчера пакетов записывать в файл на диске, даже если это файл в настоящее время открыт приложением или файл является исполняемой или разделяемой библиотекой кода , который в настоящее время запущен . На очень низком уровне есть блокировки, которые защищают доступ к файлу во время одной операции записи / чтения, но они никогда не предназначены для хранения более чем миллисекунды и любого другого приложения, пытающегося записать в тот же файл будет просто ждать эти миллисекунды.
Вы можете заменить исполняемый файл во время его запуска, и он фактически ничего не сделает для выполняемого процесса, потому что процессу больше не нужен файл на диске - весь его код уже был загружен в память.
Вот почему в Linux, хотя вы можете обновить приложение во время его работы, обновление не будет в действительности вступать в силу до перезапуска приложения, которое вы обновили. В случае обновления фонового процесса, такого как системная служба, эта служба должна быть перезапущена. В случае, если вы обновили ядро, это означает перезагрузку.
Не будет заменять файлы программы во время запуска некоторых программ?
Некоторые из пакетов в в дистрибутиве Linux будут содержаться инструкции по установке, инструктирующие диспетчер пакетов останавливать определенные системные службы при обновлении пакета и повторно запускать эти службы после завершения обновления. Это предотвращает ситуации, когда, например, файлы конфигурации для конкретной службы обновляются, а работающая версия службы может не справиться с более новой версией файлов конфигурации.
В общем, регулярные пользовательские приложения не требуют запуска файлов конфигурации, за исключением файлов, которые он генерирует, и размещается в таких местах, как домашние каталоги пользователей. Поэтому при обновлении они не будут затронуты менеджером пакетов.
Это похоже на другую функцию. Надеюсь, это поможет понять базовый процесс.
Я имею в виду возможность «переключать root» при загрузке операционной системы.
Когда загружается операционная система, корневая файловая система (read: "/") изначально доступен только в ОЗУ. Пока этот процесс загрузки запущен, он переключает / из ОЗУ на / файловую систему на жестком диске.
На уровне файловой системы, в отличие от Windows, в системе Unix вы можете удалить открытые файлы. Deletion просто удаляет имя файла, а не его содержимое, поэтому любые программы, все еще имеющие открытый файл, могут получить к нему доступ до тех пор, пока они не закроют файл, и только тогда будут освобождены данные.
Итак, обновление Процесс просто удаляет старые файлы, заменяет их новыми и определенными системными службами, перезапускает их, поэтому запускается новая версия.
Есть один или два компонента, которые нельзя перезапустить без перезагрузки весь компьютер, поэтому после их обновления вы получите запрос на перезагрузку, чтобы использовать новую версию.