Bochs는 어떤 용도로 사용하시나요?

cho's의 이미지

kernel프로그램을 하나가 여기저기서 관련 자료도 찾고 참조도 하고 있었는데 페이징 관련 해서 bochs에 대한 글이 있더군요.
bochs는 ia32 emulator인 것으로 알고 있는데 실제 linux에서 하면 되지 않나요?다른 분들의 글을 보면 실제 debugging이 가능해서 쓰시는것 같은데, 소스레벨 디버깅만을 위해서 사용하시는 건가요?
, 현재 쓰시고 계신분들은 어떤 용도로 어떻게 쓰시는 건가요? 커널 모듈을 만드실때 쓰시나요? 어떻게 사용하시나요? 제가 좀더 문서를 읽어봐야 되는데 대략적인 개념이 궁금해서 먼저 질문을 드립니다.

추가]OS를 대용해서도 쓸수 있나요?그렇다면 emulator의 특성상 느리지는 않나요?

mach의 이미지

떵개 cho wrote:
kernel프로그램을 하나가 여기저기서 관련 자료도 찾고 참조도 하고 있었는데 페이징 관련 해서 bochs에 대한 글이 있더군요.
bochs는 ia32 emulator인 것으로 알고 있는데 실제 linux에서 하면 되지 않나요?다른 분들의 글을 보면 실제 debugging이 가능해서 쓰시는것 같은데
, 현재 쓰시고 계신분들은 어떤 용도로 어떻게 쓰시는 건가요? 커널 모듈을 만드실때 쓰시나요? 어떻게 사용하시나요? 제가 좀더 문서를 읽어봐야 되는데 대략적인 개념이 궁금해서 먼저 질문을 드립니다.

질문보다는 소개해주신듯합니다.
저는 지금 처음 알았습니다. 이런 프로젝트가 있었는지를요.
대충읽어보니 좋군요. 8086부터 펜티엄까지를 emulation하고, 심지어 Mac버전도 있고,
VMWARE같은거로(just, like.....) 봐도 될까요?

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

elecguy의 이미지

bochs에 win98se을 설치하는데 거의 하루종일 걸렸습니다. ^_^;;
PC사양이 cel 1.3G, 메모리 256M 인데도 말이죠. 쩝.
PIII 667M, 메모리 128M에 VMWARE상에서 Win98설치하는데 한시간이 안 걸렸는데 말이죠.
아무래도 C++로 쓰여졌고 모든 명령을 에뮬레이션하고 물리적 파티션을 지원하지 않기 때문인 것 같습니다.
bochs 홈페이지에 보면 DOOM 같은 거 왠만하면 하지 말라고 나와 있습니다. 성질 버린다고....

폐인, 노가다 그 끝은..?

charsyam의 이미지

떵개 cho wrote:
kernel프로그램을 하나가 여기저기서 관련 자료도 찾고 참조도 하고 있었는데 페이징 관련 해서 bochs에 대한 글이 있더군요.
bochs는 ia32 emulator인 것으로 알고 있는데 실제 linux에서 하면 되지 않나요?다른 분들의 글을 보면 실제 debugging이 가능해서 쓰시는것 같은데, 소스레벨 디버깅만을 위해서 사용하시는 건가요?
, 현재 쓰시고 계신분들은 어떤 용도로 어떻게 쓰시는 건가요? 커널 모듈을 만드실때 쓰시나요? 어떻게 사용하시나요? 제가 좀더 문서를 읽어봐야 되는데 대략적인 개념이 궁금해서 먼저 질문을 드립니다.

추가]OS를 대용해서도 쓸수 있나요?그렇다면 emulator의 특성상 느리지는 않나요?


저 같은 경우는 그냥 제가 만드는 조그마한 커널(아주 조그마한 -_-) 을 돌려볼 때 사용합니다. 그럴 경우, VMWare 같은 건 너무 크더군요. 그럼 고운 하루~~~

=========================
CharSyam ^^ --- 고운 하루
=========================

mach의 이미지

elecguy wrote:
bochs에 win98se을 설치하는데 거의 하루종일 걸렸습니다. ^_^;;
PC사양이 cel 1.3G, 메모리 256M 인데도 말이죠. 쩝.
PIII 667M, 메모리 128M에 VMWARE상에서 Win98설치하는데 한시간이 안 걸렸는데 말이죠.
아무래도 C++로 쓰여졌고 모든 명령을 에뮬레이션하고 물리적 파티션을 지원하지 않기 때문인 것 같습니다.
bochs 홈페이지에 보면 DOOM 같은 거 왠만하면 하지 말라고 나와 있습니다. 성질 버린다고....

한마디로(단순해서요--;) 성능(속도)상으로는 vmware보다 느리다는 말씀인가요?

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

elecguy의 이미지

네, 무척 느립니다. Pen 75M 정도나 될까?
참고로 Win 2000 에서 테스트했습니다.
괜찮으면 리눅스에서 Win98 설치해서 쓸려고 했습니다. - 인터넷 뱅킹할때...
Win95 는 구할 수가 없어서 테스트 못해봤습니다.
VMWARE 형식의 plex86 프로젝트(linux만 지원)도 있는데 win98 설치하다 실패... T_T;;

폐인, 노가다 그 끝은..?

jj의 이미지

mach wrote:
8086부터 펜티엄까지를 emulation하고, 심지어 Mac버전도 있고,
VMWARE같은거로(just, like.....) 봐도 될까요?

mac 버젼도 있다. <- 이말이 중요한 말 같습니다.

제가 로우레벨수준에서 아키텍쳐를 잘 몰라서 자세하게는 모르겠구요, 에뮬레이션의 레벨이 다른걸로 알고 있습니다. VMWARE의 경우엔, 완전하게 모든걸 에뮬레이션 하는게 아니라고 알고 있습니다. 그래서 x86용밖에 없는걸로 알고 있구요. 그래서 당연히 VMWARE가 더 빠르죠...

그에 반해 bochs는 완전히 바닥부터 에뮬레이션 하는걸로 알고 있습니다. 그래서 mac용도 있고, 여러 플랫폼에 있는것 같더군요.

'더 로우레벨이라는 특성때문에 OS개발자들은 VMWARE보다 bochs 를 더 좋아한다.' 이런말을 들어본것 같네요.

또... 공개소프트웨어이고...

--
Life is short. damn short...

vacancy의 이미지

VMware의 경우엔 최대한 많은 명령을
CPU가 직접 실행하도록 하죠.
( 에뮬레이션을 하는건 특권 명령 등등 정도죠. )
그래서 최대의 퍼포먼스를 내도록 하는것이고요.
대신 가끔 잘되지 않는 OS들이 생기죠.

Bochs의 경우엔 모든 명령을 에뮬레이션하죠.
그래서 플랫폼에 상관없이 돌릴 수 있는 것이고요.
퍼포먼스는 좀 -_- 떨어지죠.

이 중간쯤 되는 것이 Virtual PC 인데,
VMware보다는 에뮬레이션 하는 비중이 높습니다.
( 그래서 Mac용도 나와있죠 아마. )
Bochs보단 훨씬 빠르고, 대부분의 OS를 다 지원하는듯요.
몇몇 부가 기능에서는 VMware보다 부족하지만,
( 퍼포먼스는 거의 비슷합니다. )
꽤 괜찮은 편인 것 같습니다.

전 그 몇몇 부가 기능들-_- 때문에 VMware를 씁니다만,
특별한 경우가 아니라면 Virtual PC가 적당한 것 같네요.
Bochs는 개발 용도 외엔 그다지 쓸모가 없는 것 같고요.
아직 VMware나 Virtual PC에 비해 이모저모 좀 떨어지는 것도 사실이고. ;;

ihavnoid의 이미지

엄연히 다른 생각(???)을 갖고 만든 프로그램입니다.

VMware는 만든 방식이, system에 영향을 주는 인스트럭션(페이지테이블을 고친다던지 등등)을 vmware 엔진을 호출하는 인스트럭션으로 변환을 해서 작동합니다. 나머지 인스트럭션은 그대로 놔두고 그냥 돌아가는 것이죠.

결국 그렇기 때문에, vmware의 경우에는 원래 프로세서 상에서 작동하는 것과 동일하게 돌아가는 것으로 알고 있습니다. 그렇기 때문에 원래 소프트웨어를 그대로 작동시킬 수 있게 됩니다. 일반적인 instruction들(연산, 메모리 load/store 등등)은 속도 변화 없이 그대로 연산이 되죠.

Bosch는 완전한 시뮬레이터(에뮬레이터?) 입니다. 모든 인스트럭션을 하나하나 직접 계산하여 돌리죠. 당연히 느릴 수 밖에 없습니다.

그렇기 때문에 vmware은 x86용밖에 없는 것입니다. x86 프로세서가 아니면 원래 x86 프로그램을 돌릴 수가 없으니깐요. 반면 Bosch는 완전 소프트웨어로 돌리기 때문에, 다른 플랫폼에서도 돌아가고요.

그래서, 엄연히 명칭도 다릅니다. vmware은 에뮬레이터가 아니라 'virtualization software' 라고 하더군요.

Consider the ravens: for they neither sow nor reap; which neither have storehouse nor barn; and God feedeth them: how much more are ye better than the fowls?
Luke 12:24

무한포옹의 이미지

bochs는.. 1CPU HOST os 에서도 설정하기에 따라 8-way 까지

에뮬레이션이 가능한 걸로 알고 있습니다. (효용성, 안정성은 차치하고..)

멋질 따름이죠.

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.