"리눅스 배포판을 윈도우처럼 만들어야 합니다."
- 이 글은 기존 리눅스의 이식성과 배포 방식의 문제를 해결하기 위해 기본적으로 Wine을 통해 윈도우 실행 파일을 구동할 수 있는 리눅스 배포판을 만들자는 제안임
- 이를 통해 윈도우 사용자들이 거의 훈련 없이 리눅스로 쉽게 전환할 수 있으며, 리눅스의 오랜 호환성 문제도 함께 해결 가능함
리눅스 환경의 불안정성
- 윈도우에서는 20년 된
.exe파일도 실행이 가능한 반면, 리눅스에서는 1년 전 바이너리도 실행되지 않을 수 있음 - 이는 리눅스의 라이브러리 버전 차이와 업데이트로 인해 동일한 실행 파일이 다양한 배포판에서 동작하지 않게 되는 문제 때문임
- 리눅스의 시스템 콜은 안정적이지만, 그 위에 얹힌 C 라이브러리(
libc)는 불안정하며 사용자 영역 대부분이 이에 의존함
리눅스에서의 바이너리 배포 문제
- 리눅스에서는 실행 파일을 배포하는 주요 방법이 무려 네 가지나 존재하며 각각 문제를 안고 있음
- 생 바이너리: 대부분의 환경에서 동작하지 않음
- AppImage: 모든 의존성을 포함하지만, 완벽한 보존성은 미지수
- Flatpak: 앱마다 샌드박스를 제공함
- Snap: 또 다른 샌드박스 기반 패키지 관리자
- 이들 모두 설치, 업데이트, 삭제 방식이 서로 다르고 동시에 공존 가능함
- 장기적인 앱 보존 및 재실행에는 대부분 적합하지 않으며, 20년 후 실행 가능성은 거의 없음
Win32가 해결책인 이유
- 윈도우의
Win32 API는 리눅스에서 유일하게 안정적인 ABI(Application Binary Interface)라고 평가됨 - 윈도우는 직접 시스템 콜을 하지 않고 동적 라이브러리를 통해 호출함으로써 API의 안정성을 유지함
- 이 구조 덕분에 마이크로소프트는 내부적으로 커널을 변경하면서도 사용자에겐 동일한 인터페이스를 제공 가능함
- 반면 리눅스는 시스템 콜을 직접 호출하고, 라이브러리가 불안정하여 호환성 문제가 지속됨
- Wine은 이러한 Win32 구조를 구현하여 1990년대 윈도우 95 시절의 앱까지 실행 가능하게 함
- 특히 Win32 기반 앱만을 사용하면 Wine과 윈도우 간의 호환성 차이는 거의 없음
새로운 리눅스 배포판 구상
- 윈도우와 유사한 데스크탑 환경을 가진 리눅스 배포판을 만들자는 제안
- 이 배포판은 기본적으로 Wine이 설치되어 있으며, 작은 커널 패치를 통해 윈도우 실행 파일을 자동 인식 및 실행 가능하게 함
- 사용자당 Wine 환경(prefix)을 설정하고, 윈도우 스타일의 파일 시스템 및 GUI를 제공함
- 기존의 리눅스 환경도 백그라운드에 유지되며 고급 사용자가 접근 가능함
진정한 멀티플랫폼 지원
- Wine은 리눅스뿐만 아니라 FreeBSD, macOS, Android 등 다양한 OS에서 실행 가능함
- 모든 앱을 Win32 앱으로만 배포하면 별도 포팅 없이 여러 플랫폼에서 실행 가능함
- 하나의 앱으로 여러 운영체제 호환성을 확보할 수 있는 구조임
미래의 위협
- macOS와 Windows는 점점 더 폐쇄적인 방향으로 발전 중이며, 사용자의 통제권을 박탈하고 있음
- Windows는 자동 스크린샷과 AI 분석 기능을 추가 중
- macOS는 Gatekeeper를 통해 승인된 앱만 실행 가능하도록 제한
- 두 OS 모두 사용자의 활동을 감시하고 불법 파일 탐색 및 신고 기능까지 준비 중
- Microsoft는 온라인 계정 없이 Windows 사용을 점점 더 어렵게 만들고 있음
- 이로 인해 계정 정지 시 컴퓨터 자체를 사용할 수 없는 상황이 올 수 있음
이러한 흐름은 악의적이라기보다는 경제적, 정치적 압력에 의해 발생하는 문제로 해석함
리눅스를 윈도우로 포장하는 이유
- 새로운 리눅스 배포판은 이식성 문제를 해결하고, 윈도우 사용자에게 친숙한 전환 환경을 제공함
- Windows 11 업그레이드가 강제되는 시점에서, 쉽게 전환 가능한 대안을 제공할 수 있음
- 지금이야말로 사용자의 주권을 회복할 수 있는 리눅스 배포판을 구상할 적기라는 주장임