Що змушує Windows вимагати постійної перезавантаження, а Linux не робить? [дублікат]


21

Як і багато людей, я запускаю подвійні системи на своєму комп’ютері. Важливі оновлення потребують постійних перезавантажень у Windows, хоча я не думаю, що це сталося зі мною в Linux. Які властивості кожної ОС визначають, чи можливо це чи ні?


5
Мені все одно доведеться перезавантажувати свої системи Linux, щоб встановити оновлення ядра. Я знаю, що існує навіть спосіб, але я не вимагаю такого екстремального часу. Хоча рідко є оновлення ядра для моїх серверів або довгострокової підтримки, я одержую періодичні оновлення ядра для моїх більш кров'яних крайових систем - я не бачу великої різниці між Linux та Windows тут. Однак оновлення Linux є менш обструктивними, ніж оновлення Windows, оскільки вони не перетворюються на перезавантаження в гру очікування.
амон

1
Ну, власне ... 1. Це сьогодні менше проблем з Windows, ніж раніше. Коли це відбувається, це зазвичай тому, що хтось забув закрити програму, яка блокує деякі файли, які Windows потребує оновлення, а замість того, щоб не вдалося встановити, Windows просто реєструє ці зміни файлів для наступного завантаження. 2. Холодний перезапуск моєї поточної машини під управлінням Windows 10 займає близько 15 секунд, половина з яких - час POST.
Роберт Харві

@ Роберт - Яке ваше визначення закінчення запуску? Перехід до екрана входу / робочого столу не так вже й погано, він чекає, коли всі ці сервіси почнуть розпочати роботу, щоб ви могли фактично користуватися комп’ютером, який болить. Якщо ваш час включає в себе запуск послуг, то яка ваша установка? Звичайно, у мене немає останніх і найкращих, але у мене є досить гідні комп'ютери, і мій робочий комп'ютер займає близько 3 хвилин, а мій дім близько 2 1/2, перш ніж я можу почати працювати над ними.
Данк

@Dunk: Купіть SSD.
Бен Войгт

@ Бен-я не черговий у черзі вдома за новим комп'ютером, але мій син. Тож я буду його на Різдво і перевіряю це з перших рук. Однак звіти про тестові показники, які я читав, показують приблизно 50% підвищення швидкості, а не 1000%, як Роберт бачить у своїх системах. 1000%, безумовно, коштує клопоту з оновленням. 50% не так багато.
Данк

Відповіді:


49

Це наслідок технічних рішень.

У системі Linux можна видалити файл, який все ще використовується; файлова система використовує те, що по суті є формою підрахунку посилань, а відкриття файлу - це просто ще одна посилання на нього. Коли ви закриєте його, файл буде очищено. Як наслідок цього, можна замінити основні файли коду ОС та файли даних, не потребуючи їх вимкнення та перезавантаження (він же перезавантаження).

У Windows відкриття файлу блокує його у файловій системі, і його неможливо видалити. Це означає, що щойно запущений код не може бути оновлений без перезавантаження. Але це також означає, що ви завжди можете точно знати, яка версія працює у вашій системі; за моделлю Linux можна отримати важливе оновлення системного програмного забезпечення, успішно застосувати його і досі не працювати його у вашій системі, оскільки стара, неоновлена ​​версія все ще працює.

Це технічний компроміс, як і більшість речей в обчислювальній техніці.


6
@Ian Ні, ви можете перезапустити служби, щоб застосувати оновлення. Або, у випадку з ядром, ви можете використовувати ksplice, kpatch тощо, або нові функції в Linux 4.0.
няня

2
@ Дедуплікатор, звичайно; Я просто песимістичний щодо рівня прийняття. Одна команда розробників, з якою я працюю, оголосила, що вони більше не збираються приймати жодних патчів, додаючи підтримку додаткових функцій системних систем після помилок у достатній кількості старовинних системних випусків. відкручуватися (крім старих!) раз на секунду.
Чарльз Даффі

1
@krlmlr: Це не дозволяє видалити відкритий файл. З документації : "Функція DeleteFile позначає файл для видалення на закритті. Тому видалення файлу не відбувається, поки не закриється остання ручка до файлу." Ви все одно можете його замінити, використовуючи, MoveFileщоб видалити старий .
Бен Войгт

1
@Ian, маючи на увазі "тривіальне", я маю на увазі, що кожен, хто відповідає за створення системи оновлення дистрибутива Linux, буде знати, як це зробити з вершини голови, тому виникає питання, чи це гарна ідея запускатись автоматично (або як її викрити користувачеві), не можна.
Чарльз Даффі

2
@CharlesDuffy Я не знаю, як це працює під кришкою, але пакет Debian needrestart виконує роботу, яку ви описуєте, тобто автоматично перезапускає служби, виконавчі файли / бібліотеки щойно оновлені.
zwol

3

Це наслідок огляду прогнозованих очікувань користувачів.

Системи Linux моделюються після запуску unix на серверах. Перебіг часу в цих громадах був вихвалянням. Все, що скорочувало час, було погано. І це побічний ефект від очікування, що на комп’ютері було декілька користувачів і що час планування простоїв доводилося узгоджувати з декількома користувачами.

Windows була розроблена для ринку ПК. На той момент, коли було запроваджено знання про досвідченого користувача комп'ютера, знання про те, що ви можете вийти з однієї програми та запустити іншу без перезавантаження, було ознакою досвідченого користувача комп'ютера. Через це не було підстав не використовувати імена файлів як основний ідентифікатор при проектуванні ntfs.

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