Bochs

파일:Attachment/bochs/bochsme.jpg
파일:Attachment/bochs/bochsme2.jpg

Bochs에서 Windows Me를 구동하는 사진이다.

파일:Attachment/bochs/bochsv88s.jpg

한글 입력도 가능하고, 기본적인 작업은 수행 가능하다.
홈 버튼과 카메라 위치를 보면 안드로이드가 아닌 것 같지만 그런 걸 신경쓰면 지는 거다 안드로이드 맞다 iOS에서도 Bochs를 쓸 수 있다는 사실은 잠시 잊자

윈도우 95 한글판 구동 영상

파일:Bochs logo.gif
공식 홈페이지
PC 버전 Bochs
안드로이드 2.5.1 버전[1], 안드로이드 2.6.8 버전, 안드로이드 2.6.8.20 버전
안드로이드 Bochs 네이버 카페

1 개요

컴퓨터, 모바일에서 x86 환경의 에뮬레이션을 가능하게 하는 무료, 오픈소스 프로그램이다. 발음은 'Box(박스)' 와 같다.

2011년 xda포럼에 korvs2003라는 굇수가 Bochs 2.5.1 버전을 안드로이드 버전으로 포팅했다. 링크

2016년 2월, Bochs 2.6.8이 안드로이드로 포팅되었다! 링크[2]

2016년 9월, 안드로이드 Bochs 버전이 2.6.8.20으로 업그레이드 되었다! 링크

지원하는 운영체제는 윈도우, 윈도우 CE, 리눅스, 안드로이드, iOS 등이다. 이 문서에서는, 주로 안드로이드 버전에 대해서 설명한다.

컴퓨터 버전의 최신 버전은 2015년 5월 3일자 2.6.8 버전이다. 이번년도에 업데이트 되면서 전에 있던 bximage 프로그램이 새로운 모습으로 보여줬다. 다만 여전히 QEMU의 안드로이드 버전은 컴퓨터 버전과 비슷하지만, 조작 방법이 터치 인터페이스에 맞게 최적화되어 있다.

2 특징

다른 에뮬레이터(QEMU, Limbo)에 비해서 굉장히 안정적이다. QEMU나 림보는 구동 속도는 빠르지만 자주 튕기지만, Bochs는 느리지만 튕김이 거의 없다.

2.1 구동 가능한 운영체제

2016년 7월 기준 구동 가능한[3] 운영체제는 다음과 같다.
확실히 구동이 가능한(인터넷에서 자료를 구할 수 있는) 디스크 이미지만 서술해주십시오.

알파·베타, 개조 운영체제

  • Windows Chicago (Windows 95 개발 버전)
  • Windows Nashville (1997년 출시를 목표로 개발하다가 취소된 운영체제. 개발하던 시점이 1996년이라 일명 Windows 96으로 불렸다.)
  • Windows Neptune (Windows 2000에 기초하여 개발하다가 취소된 운영체제로 이후 Windows XP에 흡수됐다.)
  • Windows Whistler (Windows XP 개발 버전)
  • MICRO XP (Windows XP Professional SP3를 개조하여 경량화한 비공식 버전)[7][8]
  • Windows Fundamentals for Legacy PCs[9]
  • Apple Rhapsody (Mac OS 서버 1.x의 베타버전)

2.2 하드웨어

지원하는 하드웨어는 아래와 같다.

  • x86 CPU[10]
  • 인텔 440FX 노스브릿지[11] + PIIX3 사우스브릿지
  • RAM (사용자가 용량을 임의로 설정가능)
  • Cirrus GD5446 그래픽카드 (Direct 9x 미지원)
  • Creative Labs SB16 사운드카드
  • Novell NE2000 네트워크 카드
  • 2개의 플로피디스크 드라이브 (5.25", 3.5" 모두 사용가능)
  • 최대 8개의 IDE 장치 (하드디스크, CD 드라이브)
  • 직렬, 병렬포트
  • USB 포트 등이다.[12]

2.2.1 CPU

CPU는 펜티엄 MMX 계열 초창기 모델로 추정. 일부 명령어셋을 지원하지 않는다. 다중 코어 설정이 가능하여, 100개 이상의 코어도 설정이 가능하다. 속도는 더 느려지지만. 컴퓨터판 Bochs 2.6.8 기준으로 CPU를 선택할 수 있다. 안드로이드는 2.6.8 업데이트로 CPU 모델 변경이 가능해졌다. atom_n270까지 지원.

2.2.2 그래픽카드

그래픽카드는 음향기기, 칩셋으로 유명한(아이팟, 아이폰에도 Cirrus의 칩셋이 사용된다) Cirrus Logic의 GD-5446[13] 을 사용한다. PCI 버스를 사용하며, 해당 칩셋을 사용한 실제 제품은 그래픽 메모리가 1-4MB 정도의 DRAM을 사용했다. Bochs에서도 그런 메모리 용량을 가지는지는 불명.
Direct 9x를 지원하지 않고, 성능이 낮아서 신형 운영체제 설치, 구동에 문제가 발생한다. 우분투 4.10 버전에서 '지원하지 않는 그래픽카드' 라고 나올 정도.

이 그래픽카드가 아주 에뮬레이터계의 명물인데, QEMU와 Limbo는 물론, LG에서 서비스한 Cloud PC에서도 사용되었다!! [14]

Bochs에서는 또 하나의 그래픽카드도 지원한다. 기본 VBE 그래픽 장치이다. 이 장치는 드라이버 지원이 되지 않아, 윈도우 95 같은 운영체제를 16색으로 사용해야 한다.. 물론 더 높은 운영체제의 구동은 힘들다.
하지만 별도의 드라이버를 찾아서 깔면 된다.

2.2.3 기타 장치

Creative Labs의 SB16 사운드카드에 대해서는 별 불평이 없다. 드라이버도 자동으로 잡히는 경우가 태반. 다만, 윈도우 XP에서 지원되지 않는다고 한다. 어차피 XP는 느려서 못 쓰지만. [15]

486~펜티엄 시절에 주로 이용되었던 네트워크 카드인, Novell의 NE2000[16] 네트워크 카드는 2.6.8 업데이트 이후로 지원한다.

CD 드라이브는 쓰기 작업이 불가능한 모양.

3 활용

파일:Attachment/bochs/bochsuse.jpg

'주변 사람에게 자랑하기' 가 8표다. 안습...

느린 속도와 인터넷 연결이 가능하지만, 실제 업무나 온라인게임, 기타 작업에 이용하는 경우는 매우 드물다.

3.1 게임구동으로의 목적

Bochs를 이용하여 고전 운영체제(DOS, 윈도우 95~2000 등)을 구동할 수 있다. 고전게임을 플레이하기 위한 목적으로 사용하는 경우도 흔히 있다.

이 경우, 운영체제는 DOS와 윈도우 95로 제한된다. 윈도우 98 이상의 운영체제는 속도가 굉장히 느리기 때문에, 게임을 구동하기에는 적합하지 않다.

주로 플레이되는 게임은 2D 게임등이다. (삼국지, 프린세스 메이커 등)
3D 게임은 성능상의 한계로 인하여 구동이 힘들다. 2D 게임인 스타크래프트1 은, 구동은 가능하지만 로딩이 매우 길다. 그리고 안드로이드 버전 스타크래프트 에뮬레이터도 나와있는 상태이고..

윈도우 95에서 롤러코스터 타이쿤1 이 잘 플레이 된다고 한다. 속도는 조금 느리지만, 문제되지 않는다고 한다. 다만 DLL 파일을 따로 모아야 한다고..

도스게임은 느리게 구동되지만(IPS 값에 따라 속도는 다르다.) 심시티 2000은 한줄기의 빛으로 잘된다. 다만 좀 느리다. 마우스도 잘 작동한다.(드라이버 실행 필요)

도스 및 윈도우 9x 계열의 게임은 도스박스 터보라는 앱으로 구동하는 것을 추천한다. Bochs에 비해서 훨씬 빠르다.

3.2 운영체제 구동의 목적

구형 운영체제를 구동하고 싶은 사람들도 Bochs 를 많이 이용한다. 주로 10대의 젊은이들로, 해당 운영체제를 사용해보지 못한 사람이 대부분. 어차피 Bochs 쓰는 사람도 10, 20대가 대부분
주로 시작 메뉴의 게임을 해보거나 내 컴퓨터의 파일을 뒤적거리다 재미없어하며 삭제하게 된다(...) 그도 그럴 것이, 디스크 이미지 용량이 장난이 아니기에... 도스, 윈도우 9x는 용량이 적어서 괜찮지만 윈도우 2000 이상부터 용량이 장난 아니게 깨진다. 구동하려면 최소 2GB~3GB 용량을 비워둬야 한다.

3.3 개발 중 디버깅의 목적

드물지만, 개발 중 디버깅을 위한 용도로 bochs를 사용하는 경우도 있다. 부트로더, DOS 위에서 실행되는 프로그램, 심지어는 커널 디버깅조차도 가능하다.
이런 류의 프로그램들을 개발할 때, 개발 초기에 믿을만한 디버깅 수단이 거의 없다는 것을 생각해보면[17] 이것은 매우 큰 이점이 될 수 있다.

사실 이런 디버깅이 가능한 것은 VMware, VirtualBox 등도 마찬가지이나, bochs에는 port 0xe9 hack, magic breakpoint와 같이 특별한 기능이 있어 디버깅에 조금 더 도움이 된다.

  • 0xe9 포트는 일반적으로 PC에서 어떠한 용도로도 사용되지 않는다는 것을 이용하여, bochs는 이 포트를 디버깅 용도로 지정하여 사용할 수 있게끔 하고 있다. out으로 포트에 데이터를 보내면, bochs의 콘솔에 원하는대로 디버그 메세지를 출력할 수 있다.
  • magic breakpoint는 말 그대로 breakpoint 용도의 기능이다. 이 기능은 bochs 내부에서 특정 명령어[18]가 실행되면 자동적으로 실행을 멈추도록 한다[19]. 이 시점부터 사용자는 마음껏 디버깅을 할 수 있다. 100% 소프트웨어 에뮬레이션을 사용하기에 가능한 일. 단, bochsrc라는 설정파일 내에 magic_break: enabled=1 이 기재되어 있어야 한다.

4 사용법

Bochs 2.5.1 기준으로
클릭은 기기의 하드웨어 볼륨 버튼으로 하며, 키보드는 화면 왼쪽 하단의 구석 부분(시작 아이콘이 있는 부분)을 터치하면 나온다.
뒤로 가기 버튼은 ESC, 메뉴 버튼은 Enter 이다. 화면 왼쪽 상단을 터치하면 Tab 이 눌러진다.
하드웨어 볼륨 버튼이 없다면, 클릭을 할 수 없다. 화면을 조금 만 오래 누르면 클릭이 되는데 불륨 키 보다 제약이 많고, 불편하다.

Bochs 2.6.8 은 설정이 가능하다. 터치식이다.

4.1 설치

4.1.1 안드로이드

2.5.1 기준

1. Bochs 2.5.1 애플리케이션 설치. 다운로드
2. /mnt/sdcard 에 SDL 폴더를 만든 후, Bochs SDL 파일의 압축을 푼다.
3. 앞에서 만든 SDL 폴더에 디스크 이미지 파일을 넣는다. (이때, 디스크 이미지 파일의 이름은 c.img 가 되게 한다.)
4. 애플리케이션을 실행한다.

2.6.8 기준

1. Bochs 2.6.8 애플리케이션 설치. 다운로드
2. 애플리케이션 설치 및 실행 후 종료
3. /sdcard/Android/data/net.sourceforge.bochs/files 폴더에 디스크 이미지 파일을 넣는다. (이때, 디스크 이미지 파일의 이름은 c.img 가 되게 한다.)
4. 애플리케이션을 실행한다.

잘 따라했다면, 디스크 이미지의 운영체제가 부팅되고, 사용할 수 있을 것이다.

4.1.2 iOS

Bochs의 iOS 버전을 기준으로 설명합니다. 원래 Bochs는 iOS 용도로 만들어지지 않았다. iSoft 팀이 Bochs를 아이폰, 아이패드에서 돌릴 수 있도록 개발한 것들을 사용해야 한다. 다운로드 링크, 설치 과정은 영상을 참고하자.

1. Bochs 앱 설치, 한번 실행 (구글에 검색해도 잘 안 나온다. 탈옥 후 시디아에서 이 저장소#를 추가하고 다운받아야 한다.)
2. 컴퓨터에 iFunBox 설치
3. 돌리고 싶은 운영체제의 LiveCD.iso 파일과 OS.ini 다운로드(Os.ini는 기본 설정이 거의 같으므로 다른 것을 수정해서 쓸 수도 있다.)
4. iFunBox를 열고 두 파일을 /User/Library/Bochs 에 가서 돌리고 싶은 운영체제의 이름을 가진 폴더를 만들고 안에 넣는다.
5. 실행.

4.1.3 오류

각각의 안드로이드 기종별로 오류가 발생할 수 있다. 참고로 오류라는 것은 안드로이드의 오류가 아니라, Bochs 애플리케이션의 오류를 말하는 것이다.
bochsrc.txt는 이 문서에서 '설정 파일' 로 부른다.

1) Bochs 실행 시 검은 화면이 되었다 1-2초 이내에 바로 튕김
-Bochs를 실행하면 화면이 가로로 변경되고 검은 화면이 되었다 튕긴다. 이 모든 과정은 1-2초를 넘지 않는다.
이 오류는 bochsrc.txt 또는 HDD 폴더(vvfat) 의 문제이다. 손상된 bochsrc.txt나 bochsrc.txt 안에 잘못된 방식의 명령어가 포함되면 이런 문제가 생긴다. bochsrc.txt를 다시 받아보거나 텍스트 편집기를 이용하여 잘못된 부분을 수정하면 된다.
대표적인 예로, 설정 파일을 텍스트 편집기로 열어보면 글의 시작 부분에 띄어쓰기가 하나 추가되어있을 경우가 있다. 그 띄어쓰기를 지워주면 된다.

-Hdd 폴더 문제는 해결이 간단하다. 내장 메모리의 hdd 폴더를 삭제하고 다시 생성해보자. 그래도 안된다면 삭제한 채로 실행해보자. 위의 과정을 거치면 문제는 대부분 해결된다.

2) Bochs 실행시 BIOS 화면이 출력되고 튕김

-Bochs실행시 BIOS 화면이 출력되고 디스크, CD 드라이브 정보가 출력되고 튕기는 현상이다. 이는 설정 파일에서 디스크, CD 설정을 잘못 하였기 때문이다. 잘못된 경로를 입력하였거나 3GB 이상의 디스크 이미지를 사용하면 이런 현상이 발생한다고 한다.[20]
이 문제가 발생한다면 설정 파일을 필히 확인해볼 것.

-디스크 이미지 자체의 문제도 있다. 다운로드, 압축 해제 과정에서 파일이 손상되면 이런 문제가 발생할 가능성이 높다. 안드로이드에서 이런 문제가 잦다.

3) Bochs 구동 중 튕김

구동 중에 튕겼다면, 너무 고사양의 프로그램을 구동하였거나 Bochs와 호환되지 않는 프로그램을 구동하면 이 문제가 발생한다. 아직 이 문제는 자세히 밝혀진 원인이 없다.

4.2 디스크 이미지, 내부 저장소와의 연동

사용자가 원하는 디스크 이미지를 적용하려면, 이미 있던 디스크 이미지를 삭제하고, c.img 로 이름을 바꾸어 SDL 폴더에 넣어주면 된다.
내장 메모리와의 연동이 필요하다고 생각되면, 내장 메모리(/mnt/sdcard)에 hdd 라는 이름의 폴더를 만들어 Bochs의 D 드라이브로 사용이 가능하다. 다만, 용량 제한이 있는지, 500MB 가량을 초과하면 부팅이 되지 않거나 드라이브 인식이 되지 않는 문제가 있다. 주의하자. 용량 큰 파일은 따로 디스크 이미지에 넣어두는게 좋다. 폴더 방식(vvfat이라고 한다.)을 이용한 드라이브는, 시스템 내에서 쓰기 작업이 되지 않는다.

내부 저장소와의 연동은, 실시간으로 연동되는 것은 아니다. hdd 폴더에 파일을 미리 넣고 Bochs를 실행해야만 폴더 내부의 파일을 인식할 수 있다. 꼭 기억하자.

5 bochsrc.txt 설정 파일

bochsrc 항목 참조
Bochs 에서는 무조건 이 설정 파일을 통하여 설정한다.

6 기타

  • 디스크 이미지의 내용 편집은 Ultra ISO라는 프로그램으로 가능하다. Winimage라는 프로그램도 있다. 이쪽은 플로피 디스크 이미지 편집에 좋다.
    • 디스크 이미지를 제작하려면, 컴퓨터가 필수적이다. 모바일은 너무 느리고, 오류가 발생하면 시간이 정말 아깝다. 윈도우 95 설치하는 데에 2시간은 기본이다(...)
    • 주로 컴퓨터 버전 Bochs로 설치하거나 QEMU Manager라는 프로그램으로 디스크 이미지를 만든다.
  • QEMU 폴더를 뒤져보면 qemu-img라는 프로그램이 있는데, 이게 물건이다. vdi, vmdk <==> qcow2 같은 변환이 가능하다. 즉, 버추얼 박스VMware에서 설치하고, 끝에 파일만 좀 변환해주면 QEMU에서 돌릴 수 있다는 것이다. 다만 VMware로 설치할 경우, 분할되어있는 vmdk 파일을 합치기 위해 또다시 프로그램을 받아야 하므로 버추얼 박스를 권장한다. 그리고 가끔 오류가 있는 듯.
  • Hacker's Keyborad라는 키보드 앱을 사용하면 보통의 키보드 애플리케이션 보다 다양한 확장키의 사용이 가능하다. 2.6.8 업데이트로 자체 키보드 생성
  • 비슷한 에뮬레이터로는 QEMULimbo PC Emulator가 있다. Limbo PC Emulator는 2013년 말, 개발이 중단되었다. 최신 버전은 0.9.9 이며, 업데이트 되면서 안정성이 크게 향상되었다. 이 에뮬레이터가 초보자 입장에서는 훨씬 편하고 좋다. QEMU는 불편한 UI와 낮은 안정성으로 인해 안드로이드에서 잘 사용되지 않는다. 하지만 속도는 굉장하다.
  • 4PDA에서 설문조사를 했는데 1위 자리를 Limbo PC Emulator에 빼앗긴 상황이 일어났다. 안습...

7 참조

  • 4PDA Bochs 표준이자 전세계적으로 규모가 Bochs 커뮤니티. 자세한 것은 4PDA BOCHS 항목 참조
  1. 2.6.8 버전이 개발되면서 거의 쓰지 않는다.
  2. 한국에는 5월 즈음에 알려졌다.
  3. Bochs에서 구동할 수 있는 것을 말한다.
  4. 이 운영체제를 구동하기 위해선 CPU를 core_duo_t2400_yonah로 맞춰주어야 한다.
  5. 또한 이 운영체제를 구동하기 위해선 CPU를 core_duo_t2400_yonah로 맞춰주어야 한다.
  6. 넥스트스텝의 발전형이라 볼 수 있다.
  7. 해외의 모 컴퓨터 덕후가 개조해서 만든 버전이므로 MS가 안정성과 사후 지원을 보증하지 않을 뿐만 아니라 저작권 문제도 걸릴 수 있으니 사용에 주의해야 한다.
  8. 설치 이미지 파일의 용량이 99MB, 설치 후 가상 메모리를 제외한 모든 하드디스크 점유 용량이 205MB에 불과하다고 한다. 설치 시간이 매우 짧아서 거의 컵라면에 물 붓고 좀 기다렸다가 먹기 시작할 때 즈음 완료된다는 말이 있을 정도... 그런데 이 버전의 제작자는 최대한 경량화시키는 것을 목표로 하다 보니 인터넷 익스플로러도 덜어내 쓸 수 없고(따로 설치하는 것도 안 되는 듯) IME도 없다(...) 다만, IME는 조금 만져주면 설치가 된다는 듯. 아예 이렇게 만든 경우도 있다(...)
  9. 'Windows 구형 PC를 위한 펀더멘털'. 약칭 Windows FLP. 2006년에 MS가 엔터프라이즈 고객용으로 제작한 제품으로 구형의 저사양 PC에서 비교적 잘 동작한다.
  10. 펜티엄 MMX 정도로 추정. 일부 명령어셋을 지원하지는 않음. 다중 코어 설정이 가능하다. 하지만 성능을 위해서 코어를 1개로 설정하는 게 좋다. 코어가 많으면 빠르다고 생각하기 쉬우나, 에뮬레이터에서 다중코어는 큰 부담이다.
  11. 펜티엄 프로 시절에 사용되던 칩셋이다
  12. 일부 하드웨어 장치는 안드로이드 버전과 호환되지 않는다.
  13. 펜티엄 시절부터 펜티엄2 초기 시절 까지만 해도 삼성이나 삼보같은 국내 대기업PC 에서 엄청나게 애용되었던 칩셋이다.(S3계열은 한글바이오스의 호환성문제가 있어서 애용되었던것 같다.) 2000년대 초반까지만 해도 학교컴퓨터에서도 사실상 표준일 정도.
  14. 적어도 Cloud PC의 CPU는 AMD Opteron 4코어, 윈도우7 이었는데.. 그래픽카드에 걸려 게임이 되지 않았다.
  15. 다만 'XP 중에서는' 그나마 빠른 러시아의 Micro XP가 있다. 하지만 이것도 하위 운영체제와 비교하면 느리고, 한글이 지원이 안되기 때문에 별로 사용되지 않는듯 하다.*
  16. DOSBox에서도 사용한다.
  17. 부트로더나 커널의 경우는 디버깅용 루틴을 만들기 전까지 전적으로 화면 그 자체에 '무엇이 출력되었는가' 를 보고 의지할 수밖에 없다. 시리얼 포트같은 수단이 있다면 그나마 나은 셈.
  18. xchg bx, bx. 실제 기계에서 해당 명령어를 사용해도 무해하며 아무 일도 일어나지 않는다. 왜냐하면 이 명령은 레지스터의 내용을 교환하는 명령인데, source와 destination이 모두 bx로 같으므로 클럭을 낭비하는 것 외에는 주목할만한 변화가 없기 때문이다.
  19. 어찌 보면 INT 3h와 비슷하지만, magic breakpoint는 어떠한 exception도 발생시키지 않는다.
  20. 3GB 이상인지는 확실치 않으나 대체로 그렇다는 의견이 다수이며 반대하는 사람은 없다.