Як Ubuntu може оновлювати запущені програми, не закриваючи їх, поки Windows не може?


11

Запуск Ubuntu 12.04 64-розрядний.

Я в основному оновлююсь за допомогою терміналу sudo apt-get update && sudo apt-get upgrade.

Я цього не розумію: наявність Firefox або будь-якого іншого такого інтегрованого додатка активно працює разом із процесом оновлення, який працює одночасно в терміналі, який оновлює Firefox до нової версії. Мені відомо, що перезапуск Firefox призведе до відкриття Firefox як новішої версії.

Наприклад, під час оновлення в MS Windows 7 він вимагає закрити активний екземпляр тієї самої програми (якщо вона активна) перед оновленням.

Як Ubuntu замінює активний робочий додаток на більш нову версію, не втручаючись у його активний екземпляр?

Що саме відбувається в кінці процесу оновлення в цьому випадку?

Відповіді:


19

Для оновлення прикладів в MS Windows 7 він просить закрити Активний екземпляр тієї самої програми (якщо вона активна) для оновлення.

Як Ubuntu замінює активний робочий додаток на новішу версію, не втручаючись у його активний екземпляр. [Помічено для багатьох пакетів]

Я спробую пояснити це якомога простіше. Більшість файлових систем Linux дещо відрізняються від файлових систем Windows (NTFS). По суті обидва по суті містять таблицю індексів імен файлів (записів), що вказують на фактичні дані, що зберігаються на диску. У NTFS це називається MFT (головна таблиця файлів) - ви, можливо, бачили прокручування цього імені, якщо запускаєте a chkdsk.

Однак, «незначна різниця», яку я згадав, полягає в тому, що таблиці індексів Linux, якщо ви хочете, складаються з двох рівнів: індексу та inode . Вкладиші містять фактичні метадані файлу, включаючи його фізичне розташування на диску; "ім'я файлу" в індексі - це просто (жорстке) посилання на inode.

Коли ви оновлюєте / оновлюєте запущену програму, оновлені файли записуються на диск, вузли вказують на нові дані, створені / оновлені, а також імена файлів оновлюються для посилання на ці нові входи. Але для будь-яких файлів, які вже використовуються запущеною програмою (тобто ручки файлів існують), їхні файли продовжуватимуть вказувати на старі вставки (які містять старі дані) до закриття ручок файлів. Зазвичай це відбувається при виході з програми або для деяких системних файлів при перезавантаженні. На даний момент старі дані фактично видаляються з вашого диска.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.