Windows 운영 체제에서는 업데이트하기 전에 소프트웨어를 닫아야 합니다. 업데이트하려면 Chrome을 다시 시작해야 하는 것과 같습니다. Linux 시스템(특히 Fedora와 같은 Linux ) yum
의 패키지 관리자는 dnf
소프트웨어가 열릴 때 어떻게 소프트웨어를 업데이트합니까? 업데이트된 버전은 소프트웨어를 다시 시작한 후에만 적용되지만, 소프트웨어가 실행되는 동안 패키지 관리자는 어떻게 업데이트하는지 알고 싶습니다. 업데이트 중에 일부 파일을 제거하고 교체해야 합니다. 파일이 실행될 때 이는 어떻게 수행됩니까?
답변1
파일 잠금은 Windows와 Linux(및 기타 UNIX 유사 시스템)에서 다소 다르게 작동합니다. Windows는 일반적으로 현재 프로세스에 매핑된 실행 가능한 바이너리의 수정을 방지합니다. 잠금으로 인해 이러한 바이너리의 수정/교체가 방지되므로 프로그램이 실행되는 동안 소프트웨어를 업데이트할 수 없습니다.
Linux에서는 잠금이 일반적으로 사용되지 않거나 협조적입니다(강제되지 않음). Linux에는 강제 잠금이 존재하지만신뢰할 수 없는. 실행 중인 프로세스에 매핑된 바이너리 실행 파일이 수정되거나 삭제되면(소프트웨어 업데이트 중) 파일 시스템은 마지막 핸들이 해제될 때까지 매핑된 디스크 공간을 회수하지 않습니다. 이렇게 하면 이미 실행 중인 프로세스가 이전 파일에 매핑된 페이지에 계속 액세스할 수 있습니다.