새 소프트웨어를 설치 한 후 컴퓨터를 다시 시작해야하는 경우가 있는데 왜 그렇지 않은 경우가 있습니까?
이 재부팅이 필요한 이유가 있거나 항상 그렇지 않은 이유가 있습니까?
새 소프트웨어를 설치 한 후 컴퓨터를 다시 시작해야하는 경우가 있는데 왜 그렇지 않은 경우가 있습니까?
이 재부팅이 필요한 이유가 있거나 항상 그렇지 않은 이유가 있습니까?
답변:
따라 다릅니다.
설치중인 소프트웨어가 운영 체제의 필수 부분에 영향을 미치는 경우 다시 시작해야합니다. 예를 들어 운영 체제의 새 커널입니다.
Windows 시스템에서는 사용자가 컴퓨터를 올바르게 사용하기에는 너무 어리석은 것으로 간주되기 때문에 자주 사용됩니다. 예를 들어, Microsoft 는 여기에 설명 된대로 네트워크 서비스를 다시 시작 해야하는 경우 "컴퓨터를 다시 시작"하라는 지시를 비롯하여 웹 사이트 에서 네트워킹 에 사용되는 "노드 유형"을 변경하는 방법에 대한 세부 정보를 게시 합니다 . 사용자가 서비스를 다시 시작하기에는 너무 어리석기 때문에 모든 것을 다시 시작하라는 메시지가 표시됩니다.
일부 소프트웨어의 경우, 이것이 습관이라는 결론에 도달했습니다. 소프트웨어가 운영 체제에서 중요한 일을해야한다고 생각하지 않는다면 귀찮게하지 않으며 문제가 발생하지 않은 것입니다 (문제가 있으면 쉽게 해결할 수 있습니다).
때때로 소프트웨어가 컴퓨터를 사용하는 동안에는 적용되지 않는 변경을 할 수 있습니다. 파일이 사용 중이거나 컴퓨터를 부팅하는 동안에 만 변경이 발생할 수 있으며, 컴퓨터의 네트워킹이 활성화되기 전에 만 수행 할 수있는 보안 문제가있을 수 있습니다. 바이러스 스캐너가 설치.
때로는 개발자가 프로그래밍을 느슨하게 만듭니다.
더 많은 것이 있다고 확신합니다.
새 소프트웨어를 설치할 때 많은 다른 소프트웨어 패키지에서 사용하는 dll (파일)을 새 버전으로 업그레이드해야하는 경우가 종종 있습니다. (이미 이미 설치 한 응용 프로그램을 업그레이드 할 때 더 그렇습니다.)
실행중인 응용 프로그램에서 dll을 사용하는 경우 일부는 메모리에로드되고 나머지는 필요할 때 디스크에서 읽습니다. 따라서 dll은 디스크에 고정됩니다. (잠기지 않은 경우 문제를 생각해보십시오!)
잠긴 DLL은 업데이트 할 수 없으므로 설치 프로그램은 다음에 머신을 다시 시작할 때 DLL을 새 버전으로 바꾸도록 Windows에 요청합니다. 따라서 다시 시작해야합니다.
일부 더 나은 설치 관리자는 설치 관리자를 실행하기 전에 닫아야하는 응용 프로그램을 알려주므로 다시 시작하지 않고 DLL을 업데이트 할 수 있습니다. 그러나 설치 프로그램의 UI가 더 복잡해지고 더 많은 지원 요청이 발생합니다.
응용 프로그램의 설치 관리자는 응용 프로그램의 상태를 저장하고 자체 종료 한 다음 DLL이 업데이트 된 후 다시 시작할 수 있습니다. DLL이 단일 응용 프로그램에서 사용되는 경우에만 수행 할 수 있습니다. 대부분의 자체 업데이트 응용 프로그램은이 작업을 수행합니다. 사용자가 많은 경우 대량 시장 응용 프로그램의 표준이되어야합니다.
위의 모든 사항은 테스트하기 어려운 복잡한 논리로 이어질 수 있습니다. 사용자 컴퓨터의 모든 상태를 추측해야하기 때문에 설치 프로그램을 테스트하는 데 시간이 오래 걸립니다. 따라서 사용자가 몇 번 더 다시 시작하더라도 설치 프로그램이 단순하고 항상 작동하는 것이 가장 좋습니다. .
설치 프로그램 재시작으로 인해 사용자가 다른 응용 프로그램을 구매하기로 결정하는 경우가 많지 않으므로 공급 업체는 사용자가 응용 프로그램을 구매하는 데 필요한 작업에 시간을 투자합니다.
재부팅 할 때 자체 정렬 된 응용 프로그램을 설치 한 후 얼마나 자주 문제가 발생 했습니까? 재부트만으로 정리되는 문제에 대처하는 많은 사용자의 지원 비용을 생각해보십시오. 소프트웨어가 필요하지 않다고 생각 될 때에도 소프트웨어를 설치 한 후에 항상 사용자가 재부팅을하도록하는 것은 매우 유혹적인 일입니다.
대부분의 운영 체제와 소프트웨어는 디스크 공간과 메모리 비용이 많이 드는 시대에 작성되었습니다 . 이제 응용 프로그램이 사용하는 모든 dll의 개인 복사본을 가져 와서 지우개를 업그레이드하지만 더 많은 저장 공간을 사용하게되었습니다.
서버에서 "컨테이너"로이 작업을 수행하지만 다른 응용 프로그램으로 한 응용 프로그램에서 저장 한 데이터에 액세스하려는 경우 "컨테이너"는 데스크탑 소프트웨어에서 제대로 작동하지 않습니다. (그렇지 않으면 iPhone 만 사용하십시오.)
그렇지 않으면 충돌이 발생하기 때문입니다. Raymond Chen 으로부터 :
사용중인 파일을 교체하더라도 시스템에 이전 버전을 사용하려는 코드가있을 수 있습니다. 예를 들어, 함께 작동하는 두 개의 파일이 있다고 가정하십시오.
- A.dll
- B.dll
두 파일을 모두 업데이트하지만
A.dll
사용중인 패치를 발행합니다 . 문제 없어요. 당신은 단순히 두 가지를 모두 교체합니다. 결과적으로 여전히 사용중인 프로그램A.dll
은 이전 버전 을 계속 사용하지만 새 프로그램은 새 버전을 사용합니다. 그리고 모든 프로그램은의 새 버전을 얻습니다B.dll
.이제는
A.dll
이전 버전을 사용하던 프로그램 에서 함수를 호출하기로 결정했습니다. 이전 버전은 당연히 필요B.dll
하지만 대신 새 버전을 가져옵니다. 변경 한 종류에 따라이B.dll
통화가 작동하거나 중단 될 수 있습니다. 두 DLL 모두 파트너가 동일한 일치 세트에서 온 것으로 가정합니다.
솔직히 말하면 소프트웨어 개발자는 업데이트가 항상 다시 시작된다고 가정하는 작업이 적고 따라서 $$도 줄어 듭니다. 이것은 아마도 개발자와 마찬가지로 Bean 카운터의 결정일 것입니다.
궁극적으로 이상적인 환경에서 다시 시작하지 않고 업데이트 할 수있는 업데이트는 거의 없지만 시스템에있을 수있는 다양한 구성으로 인해 사전 계획이 많이 필요하며 몇 가지 위험이 있습니다.
그것은 큰 문제를 일으키지 않고 코드가 실행되면서 코드를 변경하는 것이 매우 어렵다는 사실과 관련이 있습니다. 해결책 : 코드를 변경하기 전에 모든 것을 중지하여 아무것도 실행되고 있는지 확인할 수 있습니다. 그것은 아마도 필요할 것으로 예상되는 많은 시간을 필요로하는 무차별 대입 해킹이지만 특히 중요한 코드를 업데이트하는 경우에는 절대적으로 필요할 수 있습니다. 실제로이 중요한 코드를 재부트하지 않아도되는 업데이트를 전문으로하는 회사 전체가 있습니다. 그들이하는 방법은이 백서 http://www.ksplice.com/paper에 있습니다.
Windows에서는 사용중인 파일을 수정할 수 없으므로 Windows 용 중요한 시스템 파일을 수정하는 경우 다시 시작해야합니다. 따라서 안티 바이러스와 같이 Windows에 자체적으로 통합되는 프로그램과 마찬가지로 Windows Update에서 대부분의 업데이트를 재부팅해야합니다. 다시 부팅 할 때까지 Windows는 프로그램을 "설치"하는 데 필요한 마지막 몇 단계를 수행 할 수 없습니다.
이것을 Linux와 비교할 수 있으므로 재부팅을 거의 요구하지 않습니다. 재부팅하라는 메시지가 표시 되더라도 일반적으로 로그 아웃했다가 다시 로그인하면됩니다. 일반적인 Linux 환경은 완전한 OS를 만들기 위해 함께 작동하는 여러 가지 다른 프로그램으로 구성되어 있기 때문입니다. 설치 중에 중요한 파일이 수정되면 일반적으로 파일을 사용하는 하나의 특정 프로그램 만 다시 시작하면됩니다.