GN⁺ 2025-03-31 | parent | ★ favorite | on: 리눅스를 윈도우로 바꿉시다(philipbohun.com)
Hacker News 의견
  • Linux 배포판에서 기본적으로 Windows 바이너리를 실행하는 Wine을 사용하는 배포판을 만들자는 의견이 있음

    • Debian에서는 sudo apt install wine-binfmt 명령어로 쉽게 설치 가능함
    • 다른 방법으로도 설정 파일을 수정하여 사용할 수 있음
  • Windows에서는 20년 된 exe 파일도 여전히 실행 가능하지만, Linux에서는 1년 된 바이너리도 업데이트로 인해 실행이 불가능할 수 있음

    • Windows는 앱 설치 시 모든 동적 의존성을 함께 패키징하는 반면, Linux는 앱 간에 동적 의존성을 공유함
    • 의존성을 변경하면 앱이 작동하지 않을 수 있음
    • 이를 해결하기 위해 Windows처럼 배포하거나 정적으로 링크하는 방법이 있음
  • 새로운 배포판이 필요하다고 생각하지 않음

    • 대부분의 Windows 앱은 Wine을 통해 작동 가능하지만, 한 앱을 작동시키기 위한 해킹이 다른 앱을 망가뜨릴 수 있음
    • 각 사용자가 개별적으로 설정을 조정해야 하며, 한 사람의 컴퓨터에서 작동하는 것이 다른 사람의 컴퓨터에서는 작동하지 않을 수 있음
    • 가장 간단한 해결책은 Wine이 포함된 컨테이너를 배포하여 모든 사용자가 동일한 아티팩트를 받고 항상 작동하도록 하는 것임
    • 공간 비효율적이지만, 컨테이너 사용을 위해 Wine을 슬림화하는 방법이 필요함
    • 라이선스와 소프트웨어 안티 패턴이 이 시스템의 유일한 장벽임
  • Zorin OS는 .exe 파일에 대한 Wine 지원을 거의 기본적으로 제공하며, Steam OS/Proton은 새로운 게임의 Linux 포트를 만들지 말고 Proton에 최적화하라는 공식 지침이 있음

  • Linux 배포판은 일반적으로 실행 파일을 동적으로 링크하고 이전 버전의 라이브러리를 유지하지 않음

    • Windows는 패키지 관리자가 없기 때문에 이전 버전의 실행 파일을 유지함
    • Windows Store와 최근 CLI 도구가 있지만, 전통적으로 Windows 애플리케이션 설치는 수동 다운로드와 설치를 통해 이루어짐
    • Linux에서도 동일한 방식으로 할 수 있지만, Linux 배포판의 패키지 관리자가 일반적으로 매우 우수함
  • Linux 시스템 호출은 매우 안정적이지만, 그 위의 C 라이브러리는 그렇지 않음

    • Windows도 동일한 문제가 있으며, Visual C++ 런타임의 일부로 libc를 배포함
    • Windows는 Visual Studio의 새로운 버전을 출시할 때까지 libc의 하위 호환성을 유지함
  • Lindows/Linspire를 원하는 사람처럼 들림

  • Windows ABI가 매우 안정적이라면, 왜 Win95나 NT를 사용하는 컴퓨터가 특정 소프트웨어가 작동을 멈출까봐 아무도 건드리지 않는지 궁금함

    • 산업 환경, 공공 도서관, 기업 데이터베이스 등에서 이러한 컴퓨터를 많이 볼 수 있음
  • exe 파일 실행을 위한 커널 패치가 필요하지 않으며, binfmt_misc가 이를 처리할 수 있음

    • wine-binfmt는 PE 파일을 자동으로 Wine을 통해 실행함