최근 수정 시각 : 2018-10-17 17:27:50

Bochs

파일:Bochs_logo.gif
공식 홈페이지
PC 버전 Bochs
Android 버전 Bochs

1. 개요2. 특징
2.1. 구동 가능한 운영체제2.2. 하드웨어
2.2.1. CPU2.2.2. 그래픽카드2.2.3. 기타 장치
3. 활용
3.1. 게임구동으로의 목적3.2. 운영체제 구동의 목적3.3. 개발 중 디버깅의 목적3.4. 설치
3.4.1. 안드로이드3.4.2. iOS3.4.3. 오류
3.5. 디스크 이미지, 내부 저장소와의 연동
4. 커뮤니티 목록
4.1. 4PDA
4.1.1. 소개 및 위력4.1.2. 2014년 , 2015년
5. 기타

1. 개요

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

지원하는 운영체제는 윈도우, 윈도우 CE, 리눅스, 안드로이드, iOS 등이다.

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

2. 특징

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

2.1. 구동 가능한 운영체제

x86 CPU를 대상으로 한 운영체제들은 거의 모두 구동할 수 있다.
확실히 구동되는 이미지는 아래와 같다.
  • Windows Chicago [4]
  • Windows Neptune [5]
  • Windows Whistler [6]
  • Windows Longhorn [7]

2.2. 하드웨어

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

2.2.1. CPU

CPU는 펜티엄 MMX 계열 초창기 모델로 추정. 일부 명령어셋을 지원하지 않는다. 다중 코어 설정이 가능하여, 100개 이상의 코어도 설정이 가능하다. 속도는 더 느려지지만. 안드로이드는 2.6.8 업데이트로 CPU 모델 변경이 가능해졌다.

2.2.2. 그래픽카드

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

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

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

2.2.3. 기타 장치

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

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

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

3. 활용

파일:attachment/bochs/bochsuse.jpg

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

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

파일:Bochs투표.png

17년에도 별 차이는 없는 듯 하다.

3.1. 게임구동으로의 목적

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

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

주로 플레이되는 게임은 2D 게임등이다. (삼국지, 프린세스 메이커, 문명1~2 등)
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 위에서 실행되는 프로그램, 심지어는 커널 디버깅조차도 가능하다.
이런 류의 프로그램들을 개발할 때, 개발 초기에 믿을만한 디버깅 수단이 거의 없다는 것을 생각해보면[19] 이것은 매우 큰 이점이 될 수 있다.

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

3.4. 설치

3.4.1. 안드로이드

플레이스토어에서 Bochs 애플리케이션을 받고 실행하면 여러가지 설정을 하는 메뉴가 나온다.
bochsrc 항목을 잘 읽어보고 제대로 설정했다면, 디스크 이미지의 운영체제가 부팅되고, 사용할 수 있을 것이다.

3.4.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. 실행.

3.4.3. 오류

각각의 안드로이드 기종별로 오류가 발생할 수 있다. 참고로 오류라는 것은 안드로이드의 오류가 아니라, Bochs 애플리케이션의 오류를 말하는 것이다.
- Bochs 에서 Start 시 검은 화면이 되었다 1-2초 이내에 바로 튕김
Start를 실행하면 화면이 가로로 변경되고 검은 화면이 되었다 튕긴다. 이 모든 과정은 1-2초를 넘지 않는다.
이 오류는 bochsrc 설정 오륲 또는 HDD 폴더(vvfat) 의 문제이다. 잘못된 옵션이 포함되면 이런 문제가 생기니 그 부분을 수정하면 된다.
HDD 폴더 문제는 해결이 간단하다. 내장 메모리의 HDD 폴더를 삭제하고 다시 생성해보자. 그래도 안된다면 삭제한 채로 실행해보자. 위의 과정을 거치면 문제는 대부분 해결된다.
- Bochs 실행시 BIOS 화면이 출력되고 튕김
Start 실행시 BIOS 화면이 출력되고 디스크, CD 드라이브 정보가 출력되고 튕기는 현상이다. 이는 디스크, CD 설정을 잘못 하였기 때문이다. 잘못된 경로를 입력하였거나 4GB 이상의 디스크 이미지를 사용하면 이런 현상이 발생한다고 한다.[22]
이 문제가 발생한다면 설정을 필히 확인해볼 것.
디스크 이미지 자체의 문제도 있다. 다운로드, 압축 해제 과정에서 파일이 손상되면 이런 문제가 발생할 가능성이 높다. 안드로이드에서 이런 문제가 잦다.
- Bochs 구동 중 튕김
구동 중에 튕겼다면, 너무 고사양의 프로그램을 구동하였거나 Bochs와 호환되지 않는 프로그램을 구동하면 이 문제가 발생한다. 아직 이 문제는 자세히 밝혀진 원인이 없다.

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

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

4. 커뮤니티 목록

  • 버추얼로이드 최근에 신설된 카페로, 제 2의 Bochs 커뮤니티로 예상되는 곳이다. 알려진 바로는 핵심 인원 대부분이 이쪽 카페로 빠진 모양. 블로그 등을 제외한 국내 커뮤니티에서 유일하게 윈도우 이미지를 구할 수 있는 곳이다.
  • 안드로이드 Bochs 핵심 인원이 대부분 탈퇴 및 자료도 날아가면서 남아있는 게 거의 없다. 그 이후론 글도 잘못 쓰면경고를 받는다. 경고로 끝나지도 않는다. 중복이면 30일동안 네이버에 글을 못쓰며, 심하면 영구적으로 활동이 불가할 수 있다! 현재는 활동이 저조하여 가입인사만 간혹 올라오는 정도다.
  • 4PDA Bochs 표준이자 전세계적으로 규모가 Bochs 커뮤니티.

4.1. 4PDA

4.1.1. 소개 및 위력

4PDA
4PDA는 러시아의 전자기기의 소식이나 리뷰 등을 다루는 웹사이트이다.
XDA와 비슷한 형태의 포럼도 지원하기에, 다양한 개발이나 연구가 진행중이다.

한국에서는 디스크이미지로 일부 알려져 있다. 한국에서 겨우 한글판 윈도우XP 디스크를 만들었을때, 여기는 이미 초경량화 버전이 나와서 비교적 빠른 속도의 XP를 보여주었다.역시 불굴의 불곰국 성님들

윈도우 CE, 모바일 시절에 QEMU 에서 주로 구동된 디스크이미지가 4PDA 제작한 디스크 이미지였다. 안드로이드 시절 이전에도 기술이 있었다는걸 보여주었다.

러시아 4pda 선호 에뮬레이터 설문조사에 알수 있듯이 요즘에는 림보 pc에뮬레이터 용으로 디스크 이미지를 많이 만듭니다.

2013년 중순, Limbo 이긴 하지만 인터넷이 가능한 윈도우 디스크이미지를 개발하였다!! 운영체제는 윈도우 NT 4.0 SP6 이다. 러시아어 버전이라, 한글이 표시되지 않는다.
한국 커뮤니티에서도 윈도우 95에 인터넷을 가능하게 하였다. [23]

그리고 2015년 들어서 더욱 많은 발전을 이루었다.
2000, 윈도우xp를 많이 경량화해서 부팅 후 핸드폰에게 약간의 쉴시간을 준 후, 인터넷을 열면 30초 남짓한 시간에 구글을 열 수 있다.
물론 한글입력도 된다.

최근 올라오는 자료들은 대부분 인터넷이 가능하며 Vista이상의 운영 체제는 지원 기간이 남았다고 자료 공유가 금지되어 있다.
(근데 느려서 배포해도 안쓴다 아마?)

4.1.2. 2014년 , 2015년

2014년 4월초, 4PDA가 결국 윈도우 3.11 에서 인터넷이 가능한 디스크이미지를 제작-배포하였다..!! 용량은 압축해서 100MB 정도.하지만 그래픽 드라이버는 미설치이다. [24]

4월 12일 MICRO XP가 제작되어서 올라왔다.

4월 15일 윈도우 시카고 빌드 122, 484 [25] 제작하였다. (그래픽드라이버 문제로 부팅문제가 있다.) 윈도우 시카고 빌더 78 버전이 5월 12일에 올라왔다. 특이하게 사운드 드라이버가 설치가 되어있다.

5월 7일 윈도우 7 PE 가 배포되고 있다. (다운로드 받으려면 다운로드 사이트에 회원가입을 해야하는 번거로움이 있다.)

약 한달여 동안 6월 8일 까지 다양한 디스크 이미지가 올라왔는데 림보에뮬레이터 전용으로 많이 올라왔다.

5월 초에서 중반까지 선호 에뮬레이터 설문조사한바가 있다.
결과는 림보 에뮬레이터가 1위 Bochs 가 2위 3, 4, 5위는 도스박스 터보, QEMU, andosbox로 차지 하였다.
아쉽다. 박스여!

에뮬레이터계는 파란만장했던 과도기가 끝나고 쇠퇴기에 접어들고 있다.
현재 윈도우, 리눅스, 도스 등 디스크 이미지가 어느정도 틀이 완성이 되었고 포화상태에 있기 때문에 에뮬레이터 성능이 더욱더 좋아지지 않는 한은 더이상의 발전은 어려울거 같다.
2015년 8월 현재 시카고(95의 베타버전 코드네임)가 많이 올라오고 os2를 제작하여 올린건 뺴고는 큰 성과가 별로 없다.

5. 기타

디스크 이미지의 내용 편집은 Ultra ISO라는 프로그램으로 가능하다. Winimage라는 프로그램도 있다. 이쪽은 플로피 디스크 이미지 편집에 좋다.* 디스크 이미지를 제작하려면, 컴퓨터가 필수적이다. 모바일은 너무 느리고, 오류가 발생하면 시간이 정말 아깝다. 윈도우 95 설치하는 데에 2시간은 기본이다(...)* 주로 컴퓨터 버전 Bochs로 설치하거나 QEMU Manager라는 프로그램으로 디스크 이미지를 만든다.

QEMU 폴더를 뒤져보면 qemu-img라는 프로그램이 있는데, 이게 물건이다. vdi, vmdk <==> qcow2 같은 변환이 가능하다. 즉, 버추얼 박스VMware에서 설치하고, 끝에 파일만 좀 변환해주면 QEMU에서 돌릴 수 있다는 것이다. 다만 VMware로 설치할 경우, 분할되어있는 vmdk 파일을 합치기 위해 또다시 프로그램을 받아야 하므로 버추얼 박스를 권장한다. 그리고 가끔 오류가 있는 듯. Workstation 기준으로 File->Map a virtual disk 해서 파일 복사 가능한데?

비슷한 에뮬레이터로는 QEMULimbo PC Emulator가 있다. Limbo PC Emulator는 2013년 말, 개발이 중단되었다. 최신 버전은 0.9.9 이며, 업데이트 되면서 안정성이 크게 향상되었다. 이 에뮬레이터가 초보자 입장에서는 훨씬 편하고 좋다. QEMU는 불편한 UI와 낮은 안정성으로 인해 안드로이드에서 잘 사용되지 않는다. 하지만 속도는 굉장하다.

4PDA에서 설문조사를 했는데 1위 자리를 Limbo PC Emulator에 빼앗긴 상황이 일어났다. 안습...
[1] 사실, 6.22/6.23버전 이후로는 모두 9x 운영체제에 포함된 버전이다.[2] 이 운영체제를 구동하기 위해선 CPU를 core_duo_t2400_yonah로 설정해야 한다.[3] 또한 이 운영체제를 구동하기 위해선 CPU를 core_duo_t2400_yonah로 설정해야 한다.[4] Windows 95 개발 버전[5] Windows 2000에 기초하여 개발하다가 취소된 운영체제로 이후 Windows XP에 흡수됐다.[6] Windows XP 개발 버전[7] Windows Vista 개발 버전[8] 아래 4개 운영체제는 플레이스토어 버전 Bochs에서 스타트 옆의 다운로드 버튼을 누르면 나오는 운영체제들이다.[9] NeXTSTEP의 발전형[10] Mac OS 서버 1.x의 베타버전[11] 펜티엄 MMX 정도로 추정. 일부 명령어셋을 지원하지는 않음. 다중 코어 설정이 가능하다. 하지만 성능을 위해서 코어를 1개로 설정하는 게 좋다. 코어가 많으면 빠르다고 생각하기 쉬우나, 에뮬레이터에서 다중코어는 큰 부담이다. 다른 가상머신과는 다르게, bochs는 100% 소프트웨어 에뮬레이션을 사용하므로 매우 느린 편이다. 게다가 CPU를 에뮬레이션하기 위해서 단 하나만의 코어를 사용하므로, 에뮬레이션하려는 CPU의 갯수가 늘어나면 그에 비례해서 더 느려진다 (...). 한때 이러한 부분을 멀티스레딩을 이용해서 (예를 들면, 1개의 스레드에서 1개의 CPU를 에뮬레이션하도록) 개선하자는 말도 있었지만, 적용될 날이 올...까?[12] 펜티엄 프로 시절에 사용되던 칩셋이다[13] 일부 하드웨어 장치는 안드로이드 버전과 호환되지 않는다.[14] 펜티엄 시절부터 펜티엄2 초기 시절 까지만 해도 삼성이나 삼보같은 국내 대기업PC 에서 엄청나게 애용되었던 칩셋이다.(S3계열은 한글바이오스의 호환성문제가 있어서 애용되었던것 같다.) 2000년대 초반까지만 해도 학교컴퓨터에서도 사실상 표준일 정도.[15] 적어도 Cloud PC의 CPU는 AMD Opteron 4코어, 윈도우7 이었는데.. 그래픽카드에 걸려 게임이 되지 않았다.[16] 드라이버 설치시 32비트 색상 가능[17] 다만 'XP 중에서는' 그나마 빠른 러시아의 Micro XP가 있다. 하지만 이것도 하위 운영체제와 비교하면 느리고, 한글이 지원이 안되기 때문에 별로 사용되지 않는듯 하다.*[18] DOSBox에서도 사용한다.[19] 부트로더나 커널의 경우는 디버깅용 루틴을 만들기 전까지 전적으로 화면 그 자체에 '무엇이 출력되었는가' 를 보고 의지할 수밖에 없다. 시리얼 포트같은 수단이 있다면 그나마 나은 셈.[20] xchg bx, bx. 실제 기계에서 해당 명령어를 사용해도 무해하며 아무 일도 일어나지 않는다. 왜냐하면 이 명령은 레지스터의 내용을 교환하는 명령인데, source와 destination이 모두 bx로 같으므로 클럭을 낭비하는 것 외에는 주목할만한 변화가 없기 때문이다.[21] 어찌 보면 INT 3h와 비슷하지만, magic breakpoint는 어떠한 exception도 발생시키지 않는다.[22] 4GB 이상인지는 확실치 않으나 대체로 그렇다는 의견이 다수이며 반대하는 사람은 없다.[23] 지금은 저작권때문에 삭제되었다.[24] 제작자가 그래픽 드라이버가 설치오류로 그냥 16색으로 업로드 해놓은 상태. 그냥 윈도우 3.11 울티메이트 버전을 사용하면 정신건강에 이롭다.[25] 윈도우 95 베타버전, 484 버전이 최종버전