검수요청.png검수요청.png

에뮬레이션

위키원
tjdud (토론 | 기여)님의 2021년 7월 19일 (월) 11:26 판
이동: 둘러보기, 검색

에뮬레이션(emulation)은 어떤 계산기가 다른 종류의 계산기용으로 작성된 프로그램을 특별한 기구와 프로그래밍 기법을 이용하여 그대로 실행할 수 있도록 하는 것을 이른다.[1]

개요

에뮬레이션은 어떤 계산기가 다른 종류의 계산기 용으로 작성된 프로그램을 특별한 기구와 프로그래밍 기법을 이용하여 그대로 실행할 수 있도록 하는 것을 이른다. 또는 에뮬레이션을 하는 장치 또는 프로그램을 가리켜 에뮬레이터(emulator)라고 한다. 새로운 정보 기술이 출현할 때마다 이전의 프로그램에 대한 소스 코드를 입수할 수 있거나, 이전의 프로그램을 그대로 재현할 수 있을 만큼 충분히 상세한 문서화가 이루어지거나, 또는 최신 버전과 이전 버전의 호환을 돕는 연계 소프트웨어가 있다는 보장을 전제로 한다. 그러나 이러한 전제들이 현실적이지 않다는 점이 이 선택을 유일한 해결책으로 단정하기 어렵게 하는 제약이다.[2] 에뮬레이션은 서로 다른 기종의 프로그램 호환성을 갖게 하기 위한 수단이다. 대상에 대한 소프트웨어 모델을 만들고, 그것을 계산기로 작동하여 그 상태를 시뮬레이트하는 프로그램 시뮬레이션의 일종이라고도 생각 할 수 있지만, 에뮬레이터는 보통 마이크로 프로그래밍 기능 등에 의해 고속화를 꾀하고 있다. 에뮬레이터는 예를 들면 마이크로 컴퓨터를 개발하는 경우 등에 마이크로 컴퓨터(MDS) 개발 시스템의 일부로서 강력한 디버깅 루트를 제공하며, 과대한 진단 장치나 진단 프로그램은 불필요하다.[1]

종류

소프트웨어 에뮬레이션

소프트웨어 에뮬레이션은 원래 하드웨어적으로 수행되는 작업을 소프트웨어로 흉내내어 처리하는 것을 의미한다. 예를 들어 부동 소수점 연산을 처리하기 위해 CPU에 부동소수점 연산회로를 내장하는 대신 마이크로 프로그래밍을 이용하여 소프트웨어적으로 처리하는 경우, 대개 처리 속도는 늦어지나 가격은 그만큼 떨어진다.[3]

하드웨어 에뮬레이션

하드웨어 에뮬레이션은 원래 하드웨어와 똑같은 성능을 내도록 처리하게 만들어 회로 내에서 디버깅이 용이하게 한다. 개발 작업의 효율성을 극대화 시킨다. 예로는 인서킷 에뮬레이터 등이 있다.[3]

터미널 에뮬레이션

터미널 에뮬레이션이란 스마트 터미널의 일종으로 볼 수 있는 PC를, 마치 덤 터미널처럼 동작하게 함으로써, 메인 프레임이나 나름대로 고유의 접속 인터페이스를 가지고 있는 컴퓨터와 상호 작용하는데 사용될 수 있게 하는 능력이다. 터미널 에뮬레이션을 사용하면, PC 사용자들은 메인 프레임에 로그온하여, 메인프레임 운영 체계 하에 있는 프로그램들에 직접 액세스할 수 있다. 터미널 에뮬레이션 기능을 사용하려면, PC나 PC가 접속되어 있는 랜 서버에 특수한 프로그램을 설치해야 한다. 대체로, 메인 프레임 컴퓨터를 사용하는 기업들은 자사의 모든 PC나 랜 서버에 터미널 에뮬레이션 프로그램을 설치한다. 사용자들은 윈도우 운영체계를 이용해 스스로 작업하면서, 또 다른 창을 열어 메인 프레임의 응용프로그램을 실행시킬 수 있다. 터미널 에뮬레이션 프로그램은 다른 응용프로그램들처럼 사용자에게 별도의 창을 제공하는 독립된 프로그램 작업처럼 실행된다. 그러나 일부 특정한 메인 프레임 운영 체계나 애플리케이션 인터페이스를 위한 터미널 에뮬레이션 창은 GUI 콘텐츠 대신에 텍스트만을 표시하는 경우도 있다. 예를 들어, IBM 3270 디스플레이 터미널 또는 AS/400의 5250 디스플레이 터미널 등과 같이, 갖가지의 터미널 에뮬레이션 기능이, 특유한 형태의 터미널들을 위해 필요해진다. 터미널 에뮬레이션을 수행하는 프로그램은 데이터 링크 제어나 세션 제어를 포함한 일부 통신 계층에 있는 메인 프레임으로부터 들어오는 데이터 스트림을 이해해야만 한다. 예를 들어, 원격 다이얼업이나, 전용 회선, 또는 ISDN 등과 같이, 터미널 에뮬레이션 프로그램을 이용하는 PC가 메인프레임에 어떻게 접속되느냐에 따라 특별한 하드웨어가 필요할 수도 있다.[4]

게임 에뮬레이션

닌텐도 스위치 게임 애플 M1 맥

개발자 Daeken는 닌텐도 스위치(Nintendo Switch) 게임을 애플 M1 맥에서 실행하는 영상을 업로드 하였다. 애플의 메탈 그래픽 프레임 워크에 벌컨을 매핑하는 방식으로 에뮬레이션하는 방식이었다. 그는 슈퍼 마리오 오디세이가 macOS Big Sur에서 구동되는 것을 보여줬습니다. 아직은 기술적인 한계 때문에 게임 실행 후에는 완벽하게 구동되는 모습은 모습은 아니었지만 그는 젤다의 전설 브레스 오브 더 와일드(Breath of the Wild)도 설치한 모습도 보여줬다. 덕분에 이 영상은 많은 닌텐도 유저분들 그리고 애플 M1 유저들에게 관심을 받고 있는다. 이처럼 닌텐도 스위치 게임이 애플 M1 맥에서 에뮬레이션 될 수 있는 이유에 대해서 8-Bit는 '닌텐도 스위치가 ARM 프로세서로 구동되기 때문에 에뮬레이팅이 쉬운 것으로 보인다'라고 설명했다. 그렇지만 닌텐도가 자사 게임의 에뮬레이션을 반대하고 있기 때문에 실제로 닌텐도 스위치 게임을 이러한 에뮬레이션 방식으로 만나기는 쉽지 않을 것 같다. 다만 이러한 사례들을 ARM 아키텍처 기반의 애플 M1의 확장성을 다양하다는 것을 확인할 수 있는 사례라고 할 수 있는데, 이미 아이폰과 아이패드 앱들의 실행가 가능해진 애플 M1을 탑재한 맥들에서 앞으로 어떤 일들이 일어나게 될지 기대가 되는 부분이라고 할 수 있다. [5]

macOS Big Sur 11.3에서 아이폰/아이패드 앱을 위한 게임 컨트롤러

맥 OS(MAC OS) 큰 Sur 11.3 베타(Big Sur 11.3 Beta), 애플(Apple)은 정제 및 방식 개선되었다. 아이 패드(ipad)와 아이폰(iphone)에서 실행되는 앱은 M1 맥을, 최신 베타 , 애플은 키보드나 게임 컨트롤러와 같은 기능에 키보드와 마우스 콤보를 허용하고, M1 장치에 대한 게임 컨트롤러 에뮬레이션을 추가했다. 새로운 게임 컨트롤러 기능은 맥루머스(MacRumors) 기고자 인 스티브 모저(Steve Moser) 가 발견했다 . ‌iPhone‌ 또는 ‌iPad‌ 앱을 실행할 때 기본 설정을 열면 터치 기반 ‌iPhone‌ 및 ‌iPad‌ 앱을 Mac 컨트롤로 더 잘 실행하는 데 사용할 수 있는 Touch Alternatives 및 게임 컨트롤 인터페이스가 나타난다. 컨트롤러 에뮬레이션을 켜면 일반 게임 컨트롤러 버튼이 키보드 키와 마우스 버튼에 매핑된다. 예를 들어 X는 Q에 매핑되고 방향 스틱은 WASD에 매핑되고 Y는 E에 매핑된다. L1과 L2는 각각 Tab과 Shift 키를 눌러 액세스 할 수 있으며 스페이스 바는 A 버튼이다. 컨트롤러 에뮬레이션을 사용하면 컨트롤러 지원이 내장된 iPhone‌ 및 ‌iPad‌ 게임을 ‌M1‌ Mac에서 실행할 때 키보드 및 / 또는 마우스로 정확하게 제어 할 수 있다. 이 기능은 게임 컨트롤러가 없는 사용자를 위해 설계되었으며, 컨트롤러를 연결하기 만하면 플레이 할 수 있다. mac OS 11.3 Big Sur 베타에는 (Tap), 스와이프(Swipe), 드래그(Drag) 및 틸트(Tilt)와 같은 터치 기반 기능을 키보드 키에 매핑하기 위한 앞서 언급한 Touch Alternatives 패널도 포함되어 있으며 ‌iPhone‌ 및 ‌iPad‌ 앱 창을 더 크게 만드는 기능이 있다.컨트롤러 에뮬레이션 및 터치 대안은 서로 독립적으로 작동하며, 이러한 기능 중 하나만 한 번에 활성화 할 수 있다. 게임 컨트롤러 지원과 관련하여 Sony 및 Microsoft의 많은 현재 컨트롤러는 ‌M1‌ Mac과 호환되며, 베타는 최신 PlayStation 5Xbox One X 컨트롤러에 대한 지원을 추가한다.[6]

에뮬레이터

에뮬레이터는 어떤 하드웨어나 소프트웨어의 기능을 다른 종류의 하드웨어나 소프트웨어로 모방하여 실현시키기 위한 장치나 프로그램이다. 컴퓨터 사용 시의 여러 제약을 극복하고 호환성을 실현하는 방법의 하나로 사용된다. '흉내 내다'(emulate)라는 뜻에서 붙여진 이름인데, 본래의 기능을 흉내 내어 유사한 기능을 할 수 있도록 했다는 뜻에서 사용하게 되었다. 예를 들어 하나의 프로그램을 실행시킬 때 사용 중인 컴퓨터의 입출력 장치 등의 조건이 실행 프로그램과 일치하지 않는다면 프로그램은 절대로 실현되지 않는데, 이러한 상황에서 프로그램이 작동되도록 하는 방법으로 많이 이용된다. PC통신에 접속한 개인용 컴퓨터를 호스트 컴퓨터의 단말기처럼 동작하게 하는 통신 에뮬레이터와 같은 프로그램이 대표적이다.[7]

아케이드 기판

마메

마메(Multiple Arcade Machine Emulator)는 오락실 기판 에뮬레이터이다. 대표 타이틀은 갤러그(Galaga)이다. 아케이드 기판 게임을 모두 지원하겠다는 당찬 포부로 제작된 에뮬레이터로서, 소스 공개를 통해 다양한 변종 버전이 개발되고 있다. 얼마 전부터는 기존의 오락실 기판의 에뮬레이터에서 벗어나, CPS기판의 게임들과 네오지오(NEO-GEO) 게임 등을 지원하여 가장 많은 수의 롬 파일을 지원하고 있다.[8]

칼러스(Callus)

  1. 분류 : 오락실 기판 에뮬레이터
  2. 대표타이틀 : 스트리트 파이터(Street Fighter)
  3. 일본 캡콤사의 CPS(Camcom’s Play System) 기판을 지원하는 대표적인 에뮬레이터이다. 빠른 실행과 최적화, 안정화에 중점을 두고 개발됐다. 캡콤(Capcom) 게임 중 2D에 최적화를 이뤘다. 현재는 개발이 중단됐다.[8]

네오레이지X(Neo Real Arcade Game EmulatorX)

  1. 분류 : 오락실 기판 에뮬레이터
  2. 대표 타이틀 : 더 킹 오브 파이터즈(The King of Fighters)
  3. 일본 SNK에서 제작한 오락실용 기판인 네오지오에 최적화를 이뤘던 네오레이지(Neorage)의 후속 에뮬레이터이다. 저사양에서도 무리 없이 실행되며 안정적인 구동 역시 장점이다. 네오지오 롬파일의 특성상 덤프과정에서 대용량의 롬파일들이 추출, 롬파일의 크기에 따라 로딩 시간의 편차가 큰 편이다.[8]

윈 카왁스(WinKawaks)

  1. 분류 : 오락실 기판 에뮬레이터
  2. 대표 타이틀 : 던전 앤 드래곤스(Dungeons & Dragons )
  3. 네오지오 기판과 캡콤의 CPS1, 2 기판을 동시에 지원하는 개성 넘치는 에뮬레이터이다. 그래픽과 사운드 등 다양한 세부 옵션의 설정이 가능한 완벽한 에뮬레이팅을 보여주고 있다. 특히 넷플레이와 게임의 플레이 영상을 저장할 수 있다는 점은 독창적인 요소로 손꼽힌다. 비교적 높은 사양의 PC와 중급 이상의 그래픽 카드가 필요하다.[8]

ZiNc

  1. 분류 : 오락실 기판 에뮬레이터
  2. 대표 타이틀 : 철권 2(TEKKEN 2)
  3. 소니(Sony)의 ZN1,2기판과 남코의 시스템11기판, 캡콤의 CPS1,2기판을 지원하는 대표적인 3D 에뮬레이터. 캡콤의 3D게임을 전문적으로 지원했던 고사양 에뮬레이터 임팩트(Impact)의 개발팀이 제작한 만큼 대용량의 램과 최신의 3D그래픽 카드 등 고사양을 필요로 한다. 최근에는 윈도우와 리눅스 기반의 PC를 모두 지원한다.[8]

Snes9X(Super Nintendo Entertainment System 9X)

  1. 분류 : 슈퍼패미콤 에뮬레이터
  2. 대표 타이틀 : 파이널 판타지 6(FINAL FANTASY 6)
  3. 슈퍼패미콤 에뮬레이터의 대명사로 군림 중인 Snes9X. 반투명 기능을 비롯해 강력한 강제 저장 및 로드 기능, 뛰어난 그래픽과 사운드를 통해 ZSNES를 누르고 독보적인 위치를 차지하는데 성공했다. 초창기 슈퍼패미콤의 게임부터 2000년대 초반에 등장한 다양한 게임들을 지원하며 완숙기에 접어든 형태를 취하고 있다.[8]

네뷸라(Nebula)

  1. 분류 : 오락실 기판 에뮬레이터
  2. 대표 타이틀 : 삼국전기(Knights of Valou)
  3. 네뷸라는 은하계의 안드로메다 성운을 의미하는 말로, 수많은 CPS2 에뮬레이터 중 빛을 발하고자 했던 제작자들의 목표를 이름으로 사용했다. 초창기에는 라이벌이었던 파이날 번(FinalBurn)에 비해 부족했지만 유저의 욕구를 적극 수용하며 발전을 거듭, 대표적인 에뮬레이터로 자리 잡았다.[8]

블루 MSX(Blue MSX)

  1. 분류 : PC 에뮬레이터
  2. 대표 타이틀 : 이스(YS)
  3. PC98기종과 마찬가지로 MSX 역시 PC용 게임의 에뮬레이터라는 점에서 기존의 에뮬레이터와 차별화된다. 1983년 미국 MS와 일본 아스키가 PC의 호환성을 목표로 제작한 8비트 퍼스컴의 통일규격인 MSX (MicroSoft eXtended)의 게임을 모두 지원하며 MSX와 흡사한 사운드를 들려준다.[8]

ePSXe

  1. 분류 : PS1 에뮬레이터
  2. 대표 타이틀 : 메탈기어 솔리드(METAL GEAR SOLID)
  3. CD 혹은 CD 이미지를 이용해 소니의 PS1 게임을 거의 완벽에 가깝게 재현한 에뮬레이터. 가상 CD를 이용해 실행되는 만큼 가상 CD프로그램인 데몬이나 LCD프로그램과 짝을 이뤄 사용된다. 복잡한 인터페이스가 단점이다.[8]

프로젝트64(Project64)

  1. 분류 : 닌텐도(Nintendo)64 에뮬레이터
  2. 대표 타이틀 : 젤다의 전설(The Legend of Zelda)
  3. 64비트 가정용 게임기인 닌텐도64 전용 에뮬레이터.CD롬 방식 채택한 소니의 PS1이나 세가의 세턴과는 달리 롬 카트리지 방식을 사용, 기존 에뮬레이터와 같은 방식인 만큼 초기부터 높은 완성도를 선보였다.[8]

PC용 안드로이드 에뮬레이터

안드로이드 앱을 PC에서 동작시킬 수 있는 방법이 있다. 그건, 안드로이드 에뮬레이터라고 하는 프로그램을 실행시키는 것으로 할 수 있다. 게임을 좋아하는 사람들이 한꺼번에 여러 계정을 동시에 육성하기 위한 방법으로 사용하거나, 매크로 등 적합하지 않은 방법을 하기 위한 수단으로 사용하는 경우도 있다. 안드로이드 에뮬러 종류는 상당히 많다. 대표적으로 NOX라는 블루 스택(Blue Stack)이 있으며, 유사한 다른 것들도 많이 있다. 다만, 포켓몬 고(Pokemon Go) 같은 실제 GPS를 사용해야만 하는 앱은 실행되지 않으므로 이점은 참고 하기 바랍니다.[9]

NOX

NOX는 Windows 및 Mac버전 녹스앱플레이어로, 녹스앱플레이어는 무료 안드로이드 에뮬레이터로서 사용자에게 편리한 apk파일 사용과 컴퓨터에서 모바일게임 & 모바일앱을 사용할 수 있게 돕는다. 간단한 설치를 통해 PC 키보드와 마우스로 모바일 게임을 즐길 수 있다.[10]

블루스택 앱플레이어

블루스택은 2011년에 개발된 최초의 앱 플레이어이며, 유일하게 공식으로 앱플레이어 기술 특허를 가지고 있는 정식 회사이다. 중국 회사인 타 앱 플레이어와 다르게 미국에 본사를 두고 있어 보안에 매우 신경 쓰고 있다. 유럽 정보 보호 법령 GDPR에 따르고 있다. 기본적으로 일반 사용자들이 PC 환경에서 핸드폰 환경과 동일하게 애플리케이션 사용을 하도록 하는 게 목적이라 설치 및 사용이 매우 간편하다. 추가 설치할 것들도 전혀 필요 없고, 구글 플레이 등 기본적인 프로그램도 포함되어 있어 사용하기 쉽다. 다양한 키 매핑 지원을 통해 키보드와 마우스로 편리하게 게임을 즐길 수 있다는 것이 장점이기도 하다. 최근 MMORPG 및 고사양 게임에 맞춰 64bit2도 지원을 하고 있어 최적화가 잘 되어 있는 상태이며, 더 빠른 속도와 뛰어난 성능을 가진 블루스택5 beta 버전이 출시되었으며 국내 서비스 중이다. 사용하기 쉽고 PC로 안드로이드 게임을 돌리려는 사람들 사이에선 가장 유명하다. 대부분의 게임이 원활하게 돌아가고 멀티 인스턴스동기화 지원 등을 통해서 리세마라 계정 양산용으로도 유용하게 사용되고 있다. 플랫폼이 스마트폰이지만 입력 체계에서 멀티 터치를 쓰지 않는 컨트롤 방식, 대표적으로 보편적인 MMORPGCRPG, 액션 RPG등을 하다 보면, 컨트롤에 있어서 터치보다는 마우스, 수동 터치보다는 매크로가 이득이라는 것을 알 수 있다. 블루스택 4버전부터는 엔진 설정을 통해 사용자가 원하는 대로 CPU 코어와 램을 설정할 수 있도록 지원하고 있다.[11]

미뮤 앱플레이어

미뮤(MEMU) 앱플레이어는 Microvirt에서 개발하고 "(주)민앤지(Minwise Co., Ltd.)" 에서 서비스하는 안드로이드 에뮬레이터이다. 맥이나 리눅스도 지원하는 타사 에뮬레이터들과 달리 마이크로소프트 윈도우 운영체제만 지원한다.자체 내장된 변형 Hyper-V 기반 에뮬레이션이다. 실행 중 MemuHyperv Interface라는 이름의 프로세스가 백그라운드에서 실행되는데 이것이 미뮤에 내장된 Hyper-V 인터페이스이다. 다만, 이 프로세스는 미뮤 실행 시에 반드시 먼저 로딩되어야 하는데, 윈도우 10 정식 Hyper-V 서비스가 메모리에 상주한 상황에서 미뮤를 실행시키면 미뮤의 인터페이스와 기존에 메모리에 상주한 Hyper-V 서비스가 충돌하고, 당연히 운영체제와 직접 연동되어 작동하는 정식 Hyper-V 쪽에 프로세스 우선권이 있기 때문에 미뮤용 인터페이스의 로딩이 되지 않는다. 즉, Hyper-V가 설치되어 있는 윈도우에서는 상기한 이유로 미뮤 앱플레이어가 실행되지 않으니 주의해야 한다. 기본적으로 Hyper-V의 실행이 전제되는 서버용 OS에서 미뮤 앱플레이어의 사용을 권장하지 않는 이유가 이것이다. 따라서 Hyper-V를 정식으로 설치해서 사용해야만 하는 시스템에서는 Hyper-V를 정식으로 지원하는 블루스택(Hyper-V 버전)을 사용하는 것 외에 다른 대안이 없다. Hyper-V 기반 에뮬레이션은 상기한 대로 마이크로소프트 윈도우 운영체제 외의 타 운영체제 지원이 불가능하다는 단점이 되기도 하지만, 윈도우 운영체제를 사용할 경우 타 에뮬레이터보다 더 안정적으로 실행된다는 장점이 되기도 한다. 배틀그라운드 모바일, 콜 오브 듀티 모바일 같은 일부 게임은 자체 키 맵핑이 미리 설정되어 있어 일일이 키를 정해주는 수고가 필요하지 않다. 나아가 스마트 키 맵핑이어서 구급상자 등을 사용하기 쉽다. 개발자 옵션의 Animator 길이 배율을 사용 안 함으로 설정하면 폴더가 열리지 않는 문제가 있다.[12]

LDPlayer

LDPlayer는 2017년 출시된 VirtualBox 기반, 안드로이드 계열 에뮬레이터로 한국의 녹스 게임즈와 중국의 창지 네트워크가 공동 개발하여 서비스를 제공했다. 2019년 1월 부로 국내 공동 개발사인 녹스 게임즈가 폐업 수순을 밟게 되어, 현재는 중국의 창지 네트워크가 창지 인터내셔널로 사명을 변경하고 단독으로 서비스 하고 있는 것으로 보인다. 상대적으로 같은 VirtualBox 기반인 녹스 앱플레이어와 비교해도 체감 성능이 날 정도로 에뮬레이터 자체가 가볍고, 시스템 최적화가 잘 되어 있으며, 게임 패드를 통하는 게임 플레이가 지원된다. 3D 액션게임, MMORPG나 모바일 FPS등을 플레이 할 때, 콘솔 게임처럼 쾌적하게 즐길 수 있다. 설치 용량이나 리소스 사용량 대비, 성능이나 최적화가 우수한 편에 속한다. 일부 메모리 누수 등의 심각한 문제를 가진 어플이나 게임이 아니라면 설치PC에 크게 부담을 주지 않는 편이라고 봐도 무방하다. 또한 블루 스택, 녹스에 만연한 랜덤 계정 매칭 현상이 LDPlayer에는 거의 발생하지 않는다. 공식 홈페이지에서 각 버전 별 업데이트 로그와 다운로드가 가능하다. 매월 플레이어 자체 최적화 및 개선 패치와 더불어 최신 게임과 인기 게임, 실행 시 심대한 오류가 있는 게임은 따로 버그리포트와 피드백을 받아 주기적으로 패치를 내놓고 있다.[13]

지니모션

지니모션(Genymotion)은 기업용 Genymobile 회사에서 만든 x86 컴퓨터를 위한 안드로이드 에뮬레이터. 원조는 AndroVM 인데 여기서 좀 더 기업처럼 돼서 개발된 것이다. 지니모션은 그냥 AVD가 떨어져 나온 버전이라고 보면 된다. 다만 AVD에 비해 상당히 빠르게 에뮬레이터를 작동 시켜주기 때문에 안드로이드 스튜디오 같은 개발툴과 연결해 앱 테스트기로 이용되기도 한다. 한글 폰트도 있어서 한국어 선택하고 구글 한글 키보드를 깔면 한글 입력도 문제없다. 다만 구글 한글 키보드만으로는 잘 안될 수 있으니 Go키보드와 같은 다른 키보드 어플을 추천한다. 사용하기 위해서는 반드시 홈페이지 가입 후 다운로드 받아야 하며 반드시 버추얼 박스도 있어야 한다. 즉, 버추얼 박스의 애드온 같은 것. AndroVM 시절부터 그랬다. 홈페이지에서 함께 패키징된 걸 받을 수 있다. 설치 후의 안드로이드 OS들은 진저브레드 2.3.7부터 누가(7.0.0)까지 제공한다. 다운로드한 뒤 계정 로그인 단계에서 유료 라이센스 등록자인지 무료 개인 사용자인지 선택 가능하다.[14]

서비스 종료

비교

에뮬레이션과 시뮬레이션

에뮬레이션과 시뮬레이션(simulation)은 모두 어떤 시스템의 일부 또는 전체를 흉내 낸다는 공통점이 있지만 시뮬레이션은 몇 가지 특성을 주고, 거기에 대한 결과를 산출해보는 것이고, 에뮬레이션은 완전 똑같은 방법으로 다른 대상을 하드웨어 동작까지도 흉내 내는 것을 말한다.[3] 예들 들어, 게임 중에 시뮬레이션 게임들이 있다. 그 시뮬레이션 게임들은 실제 상황을 시뮬레이션 해서 만드는 것이다. 즉, 실제와 완전히 똑같을 필요까지는 없고 시뮬레이션하는 대상이 지니는 주요 특성만을 재현해주면 되는 것이다. 비행 시뮬레이션 이라면 하늘을 나는 것처럼 3D표현으로 화면에 보여주고 하늘을 나는 것처럼 조작할 수 있게 해주면 되는 것이다. 물론 실험용 시뮬레이션이라면 바람이나 기후에 의한 영향이라던지 기체의 상태에 의한 영향 같이 더 자세한 특성들을 재현해줘야 하는 것이지만 그렇다고 해서 모든 것, 즉 화면 모습의 텍스쳐를 실제 현실처럼 자세하게 재현할 필요까지는 없다. 심지어는 어떠한 시뮬레이션의 경우는 단순히 그 상황에 대한 관측 수치만 제공하는 경우도 있다. 그에 반해 에뮬레이터는 재현하고자 하는 대상을 완벽하게 재현하는 것이 목표이다. 어떠한 PDA를 에뮬레이션하려고 한다면 PDA에 사용된 cpu가 처리할 수 있는 명령어들을 그대로 처리할 수 있는 가상의 cpu를 구현해야 하고 PDA에 사용된 디스플레이와 같은 해상도에서 PDA와 동일한 성능으로 PDA에서 돌아가는 프로그램을 사용할 수 있어야 한다. 간단히 말하자면 에뮬레이터는 어떠한 하드웨어를 소프트웨어 적으로 재구현하는 것이다. 그리고 그 설명에서는 "시뮬레이터는 하드웨어도 포함할 수도 있지만, 에뮬레이터는 소프트웨어적으로만 구현하는 것을 의미한다." 라고 이해하면 된다. 저 차이는 두가지를 완벽하게 구분하는데 사용하기는 힘든 특성이다. 즉, 시뮬레이션은 소프트웨어적, 하드웨어적, 혹은 소프트웨어 + 하드웨어 등을 동시에 사용하여 어떠한 상황에 대한 자세한 데이터를 수집하거나 보여주는 것이 목적이고, 에뮬레이션은 어떠한 하드웨어를 소프트웨어적으로 구현하여 대상 하드웨어를 사용하는 것과 동일하게 사용하는 것이 목적이라고 할 수 있다.[15]

에뮬레이션과 가상화

에뮬레이션(Emulation)과 가상화(Virtualization)는 비슷한 점이 많지만 운영 상 차이점도 많다. 새로운 아키텍처에서 기존의 운영체제에 접근하려 한다면 에뮬레이션을 선호할 테지만, 반대로 가상화된 시스템은 기초 하드웨어와 독립적으로 작동한다. 짧게 말해, 에뮬레이션은 하나의 시스템이 다른 시스템을 흉내 내도록 하는 것이다. 예를 들어, 한 소프트웨어가 시스템 A에서는 구동하고 시스템 B에서는 구동하지 않을 때, 시스템 B에서 시스템 A의 동작을 "에뮬레이션"한다. 그러면 해당 소프트웨어는 시스템 A의 에뮬레이션에서 구동하게 된다. 이 때, 가상화에서는 시스템 A를 B와 C 두 개의 서버로 분리한다. 이 "가상" 서버들은 독립적인 소프트웨어 컨테이너(Container)로써, 자체적으로 CPU, RAM, 스토리지, 네트워킹소프트웨어 기반 자원에 접근할 수 있으며 독립적으로 재부팅도 가능하다. 이 둘은 정확히 실제 하드웨어처럼 작동하며, 애플리케이션 또는 다른 컴퓨터는 그 차이점을 인지하지 못한다. 이 각각의 기술은 저마다의 용도, 장점, 단점이 있다.[16]

  • 에뮬레이션: 에뮬레이션의 예에서 소프트웨어는 하드웨어를 대신해 하드웨어와 같은 방식으로 동작하는 환경을 구성한다. 이 때, 에뮬레이션 프로세스에 사이클을 할당함으로써 프로세서에 피해를 주는 대신에 사이클은 실행 연산으로 활용된다. 따라서 CPU 연산능력의 상당 부분을 이 환경을 구성하는데 사용하게 되는데, 흥미롭게도 사용자는 에뮬레이션 환경에서 가상 서버를 구동할 수 있다. 이렇게 에뮬레이션의 자원 낭비가 심한데도 불구하고 이를 고려해야 하는 이유는 여러가지 효율 높은 활용성 때문이다. 또한 에뮬레이션은 여러 시스템을 위한 소프트웨어를 설계할 때 유용하다. 코딩을 단일 머신에서 수행할 수 있으며 애플리케이션은 자체 창에서 동시에 실행되는 복수의 운영체제 에뮬레이션에서 구동할 수 있다.[16]
    • 다른 하드웨어용 운영체제 구동 (PC에서 맥(Mac) 소프트웨어 구동 또는 컴퓨터에 콘솔 기반 게임 구동)
    • 다른 운영체제용 소프트웨어 구동 (PC에서 맥 전용 소프트웨어 구동 또는 반대의 경우)
    • 호환 하드웨어가 없는 상태에서 레거시(Legacy) 소프트웨어 구동
  • 가상화: 가상화(Virtualization)의 경우, 물리적인 위치 또는 배치에 상관 없이 컴퓨팅 자원을 효율적이며 기능적인 방식으로 활용한다. 충분한 RAM과 스토리지를 갖춘 고성능 머신은 가상화로 각각 자원을 보유한 여러 대의 서버로 분리될 수 있다. 가상화를 사용하지 않으면 일반적으로 단일 서버로 배치되는 이런 단일 머신들은 각각 회사의 웹이나 이메일 서버를 호스팅할 수 있다. 따라서 기존에 충분히 활용하지 않던 컴퓨팅 자원을 적극적으로 활용할 수 있다. 이는 비용 절감에 크게 도움이 된다.에뮬레이션 환경은 하드웨어와 상호 작용하는 소프트웨어 브리지가 필요한 반면에 가상화는 하드웨어에 직접 접근한다. 단, 가상화는 전반적으로 속도가 빠르기는 하지만 이미 기본 하드웨어에서 구동할 수 있는 소프트웨어 구동으로 제한된다. 에뮬레이션과 가상화를 통해 기업은 대부분의 가상 시스템 기능을 수행할 수 있다. 두 서비스가 비슷하게 들리겠지만, 중요한 것은 '소프트웨어를 어떻게 활용하는가'이다. 소프트웨어를 더욱 빨리 실행하고 싶다면 가상화를 통해 게스트 코드를 CPU에서 직접 실행할 수 있다. 반대로, 에뮬레이터는 게스트 코드 자체를 구동하여 CPU를 다른 작업에 활용할 수 있다.[16]
    • 기존 x86 CPU 아키텍처와의 광범위한 호환성
    • 모든 하드웨어와 소프트웨어에 물리적인 장치로 표시
    • 인스턴스가 독립적으로 작동함

각주

  1. 1.0 1.1 에뮬레이션〉, 《네이버 지식백과》
  2. 에뮬레이션〉, 《네이버 지식백과》
  3. 3.0 3.1 3.2 시리즈, 〈에뮬레이션과 시뮬레이션 차이〉, 《티스토리》, 2014-07-08
  4. terminal emulation ; 터미널 에뮬레이션〉, 《텀즈》
  5. 이퓨, 〈닌텐도 스위치 게임 애플 M1 맥에서 가능? 에뮬레이션 성공적!〉, 《네이버 포스트》, 2020-12-24
  6. 리밋피, 〈macOS Big Sur 11.3에서 아이폰/아이패드 앱을 위한 게임 컨트롤러 에뮬레이션이 지원될 예정.〉, 《네이버 카페》, 2021-03-28
  7. 에뮬레이터〉, 《네이버 지식백과》
  8. 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 archanjels0, 〈에뮬레이터 종류 및 특징〉, 《네이버 블로그》, 2008-05-21
  9. 9.0 9.1 코카티비, 〈PC용 안드로이드 에뮬레이터의 용도와 종류〉, 《티스토리》
  10. 녹스 앱플레이어, 〈NOX〉, 《녹스 앱플레이어》
  11. 블루스택〉, 《나무위키》
  12. 미뮤 앱플레이어〉, 《나무위키》
  13. LDPlayer〉, 《나무위키》
  14. 지니모션〉, 《나무위키》
  15. Embedded Lab/linux, x86,〈에뮬레이터와 시뮬레이터의 차이〉, 《티스토리》, 2013-03-24
  16. 16.0 16.1 16.2 Data Scientist cinema4dr12,〈가상화 vs 에뮬레이션, 차이점은 대체 무엇일까?〉, 《티스토리》, 2014-04-27

참고자료

같이 보기


  검수요청.png검수요청.png 이 에뮬레이션 문서는 게임에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.