![Windows 9x 소프트웨어가 Windows 7 64비트에서 실행될 수 있는 이유는 무엇입니까?](https://rvso.com/image/1518697/Windows%209x%20%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%EA%B0%80%20Windows%207%2064%EB%B9%84%ED%8A%B8%EC%97%90%EC%84%9C%20%EC%8B%A4%ED%96%89%EB%90%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
수년 동안(Windows XP가 출시된 지 오랜 후) 저는 오래된 Windows 9x 데스크톱 PC 컬렉션을 실행했습니다. 기본적으로 이 컴퓨터는 XP로 업그레이드하기에는 하드웨어 사양이 너무 낮았기 때문에(그리고 많은 비용이 들었습니다) 원래 소프트웨어인 Windows 98SE 및 Windows ME의 다양한 설치(모두 실행 중)와 함께 계속 사용했습니다. 32비트 버전).
이 경우에는 XP를 사용한 적이 없습니다. Win9x 시스템은 매우 안정적이어서 XP와 Vista가 등장하고 사라진 후에도 오랫동안 작동했습니다. 하지만 결국 일정 기간을 거쳐 Windows 7 64비트로 마이그레이션해야 했습니다.
나는 왜 이런 저런 프로그램이 Win7 64비트에서 실행되지 않는지 묻는 것과 같은 정말 멍청한 일을 하려고 하지 않습니다! :-)
예외 없이 32비트 Windows 98SE에서 실행했던 모든 소프트웨어는 Win7의 NT 64비트 아키텍처에서 기본적으로 작동했습니다. 오늘날에도 나는 여전히 다양한 소프트웨어, 특히 내가 일상적으로 사용하는 워드 프로세싱 프로그램과 HTML 편집기를 사용하고 있습니다.
64비트 NT에서 Windows 9x 프로그램을 실행할 때 예상했던 어려움을 경험하지 못한 기술적 이유가 있습니까? Win7의 '호환성' 설정에 대해 들었지만 '호환성 모드'에서 프로그램을 실행할 필요는 없었습니다.
저는 Windows 7이 32비트와 64비트 소프트웨어를 별도의 위치에 유지하고 다르게 처리한다는 것을 알고 있습니다. 그러나 이는 Windows 7용으로 작성된 32비트 및 64비트 프로그램과 관련이 있을 것으로 예상했습니다.
Windows 98 32비트 프로그램이 Windows XP/Vista/7 32비트 프로그램과 완전히 호환되는 것 같다는 사실에 놀랐으며, 그 이유를 알고 싶습니다. 정말 그들 사이에 차이가 없나요?
또한 이전 Windows 9x 프로그램 중 다수는 이식 가능했습니다. 저는 USB 스틱이나 Windows 7 데스크톱에 넣고 그냥 실행하는 습관이 있었습니다. 나는 어떤 문제도 경험하지 못했습니다. Program Files 폴더에서 실행되지 않는 경우에도 마찬가지입니다. 다시 한 번 기술적인 관점에서 O/S가 이에 반대하지 않는 이유를 알고 싶습니다.
내가 안전하지 않은 일을 하고 있는 걸까요? Windows 7 O/S는 매우 안정적인 것 같습니다. 하지만 해서는 안 될 일을 하도록 요청하고 있는 것인지 알고 싶습니다.
답변1
아무 문제가 없다고 불평하는 첫 번째 사용자가 될 것입니다. ;)
주류 미디어는 앱 호환성 영역에서 Windows에 과분한 평판을 주기 위해 많은 노력을 기울였지만 사실 Microsoft는 이전 버전과의 호환성에 크게 투자했으며 Windows 98용으로 작성된 대부분의 앱은 여전히 Windows 7에서 사용할 수 있습니다. , Windows 7은 Microsoft가 개발한 운영 체제 중 가장 안정적인 운영 체제입니다. 실수하지 마십시오. Windows 7과 Windows 98의 차이점은 엄청나지만 다음과 같습니다.
- Windows 98은 Microsoft가 일부러 다시 작성하지 않은 풍부한 Windows API를 활용했습니다. 예를 들어,화면에 직사각형 그리기,창 만들기또는메뉴 표시줄 표시여전히 동일합니다.
- Windows 7에서는 레거시 소프트웨어의 호환성 문제를 해결하기 위한 조치를 구현했습니다. 그 중 하나가 UAC 가상화입니다. Windows 98 앱은 설치 폴더에 앱 데이터를 썼습니다. Windows 7에서는 더 이상 이를 허용하지 않습니다. 그러나 레거시 앱의 경우 UAC 가상화는 앱 설치 폴더 외부의 데이터 쓰기 작업을
%LOCALAPPDATA%\VirtualStore
.
Windows 7에서 더 이상 작동하지 않는 Windows 98 시대 앱에는 16비트 앱(64비트 Windows에서는 실행되지 않지만 때로는 32비트 Windows에서 실행됨)과 해킹 또는 난해한 레거시 OS 서비스에 의존하는 앱이 포함됩니다.
답변2
여기서는 다소 복잡한 질문을 많이 하고 있지만 기본적인 대답은 "Microsoft는 이전 버전과의 호환성을 유지하기 위해 많은 노력을 기울입니다"입니다. 솔직히 더 나은 질문은 "왜 작동하지 않을까요?"일 수 있습니다. Win9x와 NT(Win7 포함)는 모두 Win32 API와 x86 명령어 세트(Intel의 x86 명령어 세트에 대한 AMD의 64비트 확장은 이전 버전과 호환됩니다.) 64비트 모드에서 실행되는 "x64" 프로세서는 32비트 프로그램도 실행할 수 있습니다.
일이 작동하지 않는 가장 큰 이유는 단순히 액세스 제어 때문일 것입니다. Win9x는 어떤 종류의 액세스 제어도 전혀 지원하지 않았습니다. 어떤 프로그램이라도 원하는 것은 무엇이든 할 수 있었습니다. 악의적으로 사용되면 악성 코드 작성이 정말 쉬워졌습니다. 악의적이지 않지만 게으르게 사용된다는 것은 많은 개발자가 프로그램이 설치 폴더에 데이터를 쓰도록 프로그램을 작성했음을 의미합니다. 이는 여러 가지 이유로 나쁜 생각이며 그 중 특히 보안이 중요합니다. "실제" OS에서 파일이 설치되는 기본 위치는 관리자가 아닌 사람이 파일에 쓰는 것을 허용하지 않으며 소프트웨어를 설치/업데이트하는 경우를 제외하고는 비관리자로 실행해야 합니다.
물론, "실행 중인 디렉토리에 쓰기" 전체가쉬운(개발자들이 게으르다고 말하긴 했지만...) 그리고 그렇습니다. 플래시 드라이브에 넣을 수 있다는 의미에서 소프트웨어를 "휴대용"으로 만듭니다. FAT 파일 시스템 및 FAT는 파일 권한을 지원하지 않습니다. 이런 식으로 소프트웨어 실행~이다액세스가 제한된 영역에 설치하고 그곳에서 관리자가 아닌 사용자로 실행하는 것보다 덜 안전하지만 컴퓨터를 다른 사람과 공유하지 않는 한 괜찮을 것입니다.
OS가 왜 반대하지 않는지에 대해서는... 왜 그렇게 기대하겠습니까? Program Files
는 아니다특별한폴더는 어떤 방식으로든 관례적으로 프로그램을 설치하는 장소일 뿐입니다. (이것은 실제로 정말 어리석은 규칙입니다. 경로에 공백이 있는 위치에 설치하면 일부 소프트웨어가 작동하지 않기 때문입니다. 그러나 MS는 개발자가 작업을 제대로 수행하지 못하도록 하고 싶었을 수도 있습니다.저것게으른...) 유일한 특별한 점은 Program Files
64비트 시스템에서 32비트 프로세스가 "Program Files" 폴더를 요청할 때 실제로 해당 Program Files (x86)
폴더로 이동한다는 것입니다. 그 외에도... OS를 사용하면 사용자가 액세스할 수 있는 어디에서나 프로그램을 실행할 수 있습니다. 일부 프로그램은 의도적으로 사용자 프로필이나 드라이브 루트의 자체 폴더( C:\Python27
개발자 컴퓨터에서 볼 수 있는 공통 폴더)에 설치됩니다. 그 프로그램은 잘 작동합니다.