소스 코드
1. 개요
One-Core-API는 Windows XP 지원 중단 이후 개발이 시작된 오픈소스 호환 레이어이다. 현재도 개발이 진행 중이다. Windows XP 이후로 새로 생긴 Win32 API 및 라이브러리를 설치하여 최신 소프트웨어를 구동하게 해준다. Windows 98, Windows Me(이하 Windows 9x, 95는 지원 X)에서 최신 프로그램을 실행할 수 있도록 하는 소프트웨어인 KernelEX와 비슷하나 시스템 파일을 직접 패치하기 때문에 설치할 때 잘못했다간 벽돌이 될 수 있다.[1]최신 API를 지원하기 위해 Wine과 ReactOS의 일부 코드를 사용하고 있다. 그래서 몇몇 DLL 파일 설명에서 ReactOS가 언급되어 있다. 영문판 Windows XP를 타깃으로 만들어졌기에 그 외 언어 윈도우에서 설치할 수 있지만 일부 UI가 영어로 바뀐다. 이는 MUI를 사용하지 않고 직접 시스템 파일에 언어 패치를 적용하기 때문이다. 설치한 후에는 프로그램 속성의 호환성 탭의 OS 목록에 Windows Vista, 7, 8, 10이 추가된다. 만약 프로그램이 버전이 낮다며 실행되지 않는다면 속성에서 요구하는 버전 이상으로 설정한 후 다시 실행하면 된다.[2]
Windows Vista 및 Windows 2000에서도 비슷한 프로그램이 존재한다. 주로 '(윈도우 버전) Extended Kernel'라는 이름으로 통해 최신 소프트웨어를 구동할 수 있다. Windows XP Extended Kernel도 존재했으나 One-Core-API의 등장 이후 개발이 중단된 상태다.
2. 설치 방법
아키텍쳐에 맞게 다운로드해준다. 32비트와 64비트 모두 있다. 다음 순서로 진행한다.Base-> Additional Dlls -> Branding -> D3d -> Driver Update -> App Compat
이때 Windows 파일 보호 (WPF) 경고창이 뜰 수 있으나, 그냥 무시하고 취소를 누른다.
다음 패키지는 Base 없이 설치할 수 있다.
- App Compat
- Driver Update
3. 특징
KernelEX처럼 Windows Vista/7/8/10 이상용으로 만들어진 프로그램을 Windows XP 및 Windows Server 2003에서 구동할 수 있게 해 준다. 설치 시 DLL 파일을 덮어씌우는데, MUI를 사용하지 않는 XP 특성상 한글판에서 설치할 경우 일부 UI가 영어로 바뀌어 버린다.[3] 또한 설치 이후 프로그램 속성의 호환성 탭의 OS 목록에 Windows Vista, 7, 8, 10이 추가된다.One-Core-API는 다양한 설치 파일로 존재하며 각각의 설치 파일과 기능은 다음과 같다.
- Base - 기본 설치본으로 Win32 API DLL 파일들을 패치한다.
- Additional Dlls - Windows Vista부터 새로 추가된 DLL 파일들을 설치한다.
- API-SET - C++ 런타임 라이브러리를 설치한다. 참고로 Wine 기반이다.
- D3d - 최신 DirectX 런타임 라이브러리(10, 11)를 설치한다. 역시 WineD3D 기반이다.
- App Compat - 프로그램 설정의 호환성 탭의 OS 목록에서 Windows Vista, 7, 8, 10 항목을 추가시켜준다.
- Driver Update - 최신 하드웨어를 지원하는 드라이버를 설치한다. ACPI 2.0, NVMe, USB 3.0 등이 포함되어 있다.
- Branding
Modern Setup[4]
설치 후 일부 프로그램에서 인터넷에 정상적으로 연결할 수 없는 현상이 있다.
크롬, 디스코드, 유토렌트 등의 일부 프로그램은 실행파일로 구동이 가능하지만 설치 프로그램은 작동하지 않아서 설치된 컴퓨터에서 파일을 복사해와야 사용이 가능하다.
흔하지는 않지만 가끔씩 원래부터 XP를 지원하는 일부 프로그램이 One-Core-API 설치 후 오류가 나는 경우가 있다.
7-Zip도 64비트에서는 이걸 설치한 후 설치 프로그램이 작동하지 않아서 명령줄로 설치해야 한다.
4. 실행 가능한 프로그램 목록
- Chrome: 122 버전 정상 실행 확인.[5] 다만 실행 시
--no-sandbox
플래그를 지정해야만 실행이 가능하다. One-Core-API 3.0.3 버전부터 크롬 확장 프로그램과 파일을 다운로드 할 수 있게 되었다. - Visual Studio Code
- Mozilla Firefox 116 (다만 버그가 좀 있다.)[6]
- 파이썬 3.6
- Java 17
- .NET Framework 4.8 - 단 4.6부터는 설치 프로그램 자체가 작동하지 않으므로 재패키지된 버전으로 설치해야 한다.
- Adobe Reader DC
- Windows Vista 내장 보조프로그램
- DirectX 10, 11 기반 게임[7]
- 카카오톡 - 자체적으로 윈도우 커널 버전을 검사하므로 imagecfg로 커널(ntoskrnl.exe) 버전을 6.1로 바꾸거나, NNN4NT5로 커널 버전을 Windows 7로 속여야 실행 가능하다.[8] 일부 시스템에서는 소리가 나지 않을 수 있으니 주의해야 한다. 2023년 7월 기준 최신 버전인 3.5.2 버전 구동 확인. 다만 대화 백업/복원이 작동하지 않아 백업 후 최초 로그인 시 사용자 정보를 불러오지 못했다는 오류가 뜨는데 바로시작 버튼을 누르면 로그인된다. 다만 이 외에도 동영상 전송 시 설정에서 '동영상 원본으로 보내기'를 켜야 보내지며, 공감한 친구 목록이 불러와지지 않고 묶음사진 전체 저장이 안 되는 현상이 있다.[9] 또한 실험실의 '카카오톡 속도 개선'이 켜져 있으면 멀티미디어 발신 및 다운로드가 불가능한 현상 등 자잘한 버그가 발생한다. 로그아웃 시 뻗는 경우도 간혹 발생한다.
- KakaoTalkAdBlock[10]
- Node.js 12.x[11][12]
- Microsoft Edge: 115 버전까지 실행 가능하지만 인증서 오류로 (--ignore-certificate-errors) 옵션을 넣어줘야 정상적인 사용이 가능하다.
- WinRAR: 최신버전 (6.24) 구동 가능.
- Opera: 105 버전까지 구동할 수 있지만, --disable-gpu와 --single-process 명령줄을 넣어줘야 한다.
[1] 따라서 One-Core-API를 설치한 후 절대로 Avast나 AVG와 같은 백신과 같이 사용하면 안된다. 윈도우 정상 파일을 바이러스로 인식하고 삭제해버리기 때문에 자칫하면 블루스크린이 뜰 수 있기 때문이다.[2] 카카오톡 등 일부 프로그램은 호환성 모드만으로는 불가능하며, 커널 버전을 조작해야 실행된다.[3] 현재 다국어화가 진행되고 있으며, 한국어 또한 지원하게 된다. 하지만, dxdiag (Directx 진단 도구), 저장/저장안함 대화상자는 여전히 영어로 표시된다.[4] 3.0.3부터 없어졌다.[5] Windows 7도 미지원하는 버전이다.[6] 64비트에서는 54버전 이상도 구동할 수 없다.[7] 단, 넥슨 기반의 게임 (FC 온라인, 메이플스토리등은 NGM 설치 자체가 안 돼서 아예 구동 조차 할 수 없을 것이다.)[8] 다만 이렇게 하면 Chrome 구동이 불가능해진다. 웬만하면 Firefox 기반의 Mypal을 이용하도록 하자.[9] 따로따로 저장해야 한다.[10] 카카오톡 PC 버전의 광고를 차단하는 프로그램.[11] 공식적으로는 5.12.0까지만 지원된다. 여담으로 One-Core-API 없이 Node.js 8.6.0을 XP로 포팅한 버전이 있다.[12] One-Core-API 1.x에서는 Node.js 7.x 버전까지만 구동되었으나, 업데이트로 이후 Node.js 버전도 구동이 가능해졌다.