문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 에뮬레이터 (문단 편집) == 에뮬레이터의 예시 == 멀리 갈 필요 없이, 64비트 Windows에서는 32비트 에뮬레이션을 위해 WoW(Windows on Windows) 기능을 제공한다. 프로그램을 설치할 때 "Program Files"와 "Program Files(x86)"이 나뉘는 것이 그 이유. 프린터 대부분에는 HP 레이저젯 프린터의 시스템 규격을 모방하는 모드가 있다. 한때 여러 소프트웨어가 HP 프린터의 스펙에 맞춰져 제작되었기 때문에 해당하는 소프트웨어가 제대로 작동할 수 있도록 HP의 프린터와 같은 규격으로 프로그램과 통신하고 이를 실제 프린터의 신호로 변환하는 식으로 동작하여 프로그램으로는 HP 프린터인 것처럼 동작하게 하는 것이다. 이를 두고 프로그램을 속인다는 표현을 쓰기도 한다. [[애플 II]]와 [[MS-DOS]] 시절에는 OS 차원에서 한글을 지원하기가 어려운 환경이었기 때문에 메인보드의 슬롯에 '한글 카드'라는 물건을 꽂아서 사용한 적이 있다. 한글 글꼴과 한글의 입력/처리에 관하는 기능을 하는 카드인데, 이게 가격이 꽤 비쌌기 때문에 나중에는 한글 카드의 동작을 소프트웨어로 흉내내는 한글 에뮬레이터가 나와서 널리 쓰였다. 대표적으로 CHP, NKP[* 프로그램 파일명이 "CHP.COM", "NKP.COM"이어서 이렇게 불렸다. 둘다 삼보 상용조합형을 지원하는 한글 에뮬레이터.], DKBB[* '한글 도깨비'라는 한글카드를 소프트웨어적으로 흉내내주는 에뮬레이터다.]이 유명했다. 486~펜티엄 초기까지는 국산 그래픽 카드가 시장에서 많이 팔렸는데, 이 한글 에뮬레이터를 폰트롬까지 내장한 것들이 많았다. MS의 도스가 HBIOS.COM으로 완성형 한글을 지원하지만 윈도우 95가 출시되며 KSC5601 위주로 환경이 고정되었고, 도스 텍스트 화면을 볼 일이 없어지자 한글 에뮬레이터도 에뮬레이션도 단종되었다. [[허큘리스 그래픽 카드]]로 [[CGA]] 지원 게임을 실행할 수 있도록 CGA 에뮬레이션을 수행하는 '[[SIMCGA]]'라는 프로그램도 있다. 역시나 허큘리스가 CGA 환경을 가상으로 구동하여 CGA만 지원하는 프로그램을 구동하기 위하는 에뮬레이터다. 한국의 16비트 PC 환경이 한글 표시 문제로 변형 CGA를 사용하던 일부 고가 대기업 제품을 제외하면 허큘리스에서 SVGA로 바로 넘어가버렸기 때문에 1989년의 정부 결정으로 널리 보급된 교육용 컴퓨터 사양에서 SIMCGA는 오랫동안 애용되었다. [[PC통신]] 시절에 사용된 PC통신 프로그램의 본래 명칭은 <'''터미널 에뮬레이터>(Terminal Emulator)'''. 이것은 PC통신 자체가 서버는 [[유닉스]] [[터미널]]에서 돌아가는 환경이지만 유저들의 PC 통신 환경은 백에 아흔아홉(보다 더 될 것이다)은 유닉스가 아닌 도스나 윈도이기 때문에 프로그램으로 유닉스 터미널 규격을 모방하여 접속했기 때문이다. 오늘날에도 보편적으로 사용되는 에뮬레이터의 예로는 [[VMware]]와 [[Virtual PC]], [[VirtualBox]] 같은 가상 머신 프로그램들이 있다. 이쪽은 하드웨어 가상화 개념에 가깝지만 그래픽, 사운드 카드 같은 일부 특정 장비를 흉내내어 구현한다. 윈도 NT 계열로도 MS-DOS 소프트웨어를 호환하고자 만든 VDM(Virtual DOS Machine) 역시 일종의 에뮬레이션 구현을 바탕으로 하는 가상 머신. 다만, 오늘날에는 32비트 윈도에만 있고, 64비트 윈도에는 없다.[* x64의 long 모드로는 VDM 구동에 필요한 CPU의 기능인 가상 8086 모드(VM86)가 동작하지 않기 때문이다.] [[Linux|리눅스]]상에서 [[Microsoft Windows|MS 윈도우]] 가상환경을 지원하는 [[와인(소프트웨어)|Wine]]도 '''기능만 보면''' 에뮬레이터의 일종으로 볼 수 있다. 이 "'''Wine is not an emulator'''"의 약자라고 할 정도로 개발진은 에뮬레이터임을 부정하고 있고, 실제로 동작 방식이 일반적인 에뮬레이터와 다른 일종의 API 호환 레이어 같은 성격을 띄지만 이런 종류의 구현도 넓게 보면 에뮬레이터의 일종으로 볼 수 있다. ARM 기반 PC에서 x86 프로그램을 실행하거나 그 반대의 상황에서 바이너리를 변환해 주는 에뮬레이터를 사용한다. [[Java]] 같은 플랫폼 독립적인 프로그램들은 에뮬레이터와 비슷한 [[가상화|가상 머신]]으로 실행하는 방식으로 호환성을 확보한다. [[안드로이드(운영체제)|안드로이드]] 역시 OS 자체를 리눅스 커널 위에서 가상 머신(QEMU VM)으로 돌린다. 사실상 에뮬레이터와 가상 머신은 기본적으로 같은 기술이 바탕이지만 에뮬레이터는 특정 다른 장치의 동작을 모방하고, 가상 머신은 그럴 수도 아닐 수도 있는 차이가 있다. 가상머신의 좋은 예가 자바의 JVM과 안드로이드인데, JVM은 특정한 기기를 모방하는 것이 아니라 자체 스펙으로 추상화된 가상 기기로 동작하는 것일 뿐이다. 안드로이드는 가상 머신이지만 자신만의 기기 위에서 굴러가기에 에뮬레이터는 아니다. 따라서 에뮬레이터(특히 소프트웨어적인 에뮬레이터)는 가상 머신의 범주에 포함되는 영역이라고 할 수 있다. FPGA(field programmable gate array)를 이용하여 특정 하드웨어와 똑같이 동작하도록 설계하는 것도 일종의 하드웨어적인 에뮬레이트라고 할 수 있다. 실제로 원칩 [[MSX]]처럼 특정한 하드웨어를 재현할 수 있도록 한 FPGA 소스 코드와 메인보드 설계가 오픈 소스 형식으로 공개되어 있는 경우가 드물지 않게 있다. [[http://www.skibo.net/projects/pet2001fpga/|예시]]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기