Я не знаю ответа на все ваши (под) вопросы, особенно когда речь идет о службах Windows. Тем не менее я могу объяснить общую разницу между поведением Windows и Linux.
Под "перезаписью" я понимаю запись в уже существующий файл. Альтернативой является удаление старого файла и создание нового файла с тем же именем. Я ожидал бы, что все установщики сделают это последним способом, потому что перезапись работающего кода - трудная задача (и сигнал тревоги для антивируса и т.д.).
Технически это вряд ли когда-либо "перезаписывает". Так что насчет удаления и создания заново?
Файловые системы на основе Inode, такие как семейство ext в Linux, позволяют удалять используемый файл. Windows с NTFS или FAT не ведет себя так. Подробнее здесь: Что Linux делает по-другому, что позволяет мне удалять / заменять файлы, если Windows будет жаловаться, что файл используется в настоящее время?
Установщик в Windows может попытаться изящно (или нет) остановить процессы, которые используют определенный файл, если он знает о них. В противном случае он не сможет выполнить свою работу, потому что файловая система будет запрещать удаление файла. Установщикам Linux вообще не нужно заботиться об этом.
Такое поведение в Linux настолько полезно, что мы склонны эмулировать его для файловых систем, которые сами не поддерживают его. Прочитайте мой ответ на другой вопрос (раздел "контекст") для некоторого понимания.
будет ли процесс повторно запускать новый исполняемый файл?
В общем, нет. Но так как процесс должен быть завершен в Windows, установщик (или сторожевой таймер) может "почувствовать себя обязанным" воскресить его - конечно, с новым исполняемым файлом, потому что старый уже удален. В Linux процесс может запустить исходный исполняемый файл, как будто ничего не произошло. Тем не менее, некоторые установщики в Linux могут перезапускать процессы (например, демоны) для принудительного запуска нового исполняемого файла.
В конце давайте посмотрим, что происходит, когда установщик ленив и выполняет только те задачи, которые необходимы для замены исполняемого файла новым. В Windows он должен убить процесс, а затем заменить файл; процесс больше не В Linux установщик просто заменяет файл, и процесс выживает.