맨 아래에 요약 있습니다.
1. 스팀OS란?
스팀OS란 밸브에서 개발한 리눅스 배포판으로서 곧 발매될 핸드헬드 게임기 스팀덱에 기본으로 탑재되는 운영체제입니다. 리눅스는 여러 종류가 있고 이 종류를 보통 배포판 , 영어로는 distribution(distro)라고 합니다.
배포판은 리눅스의 머리인 “커널”에 여러가지 소프트웨어를 결합해서 만들어집니다. 유명한 배포판 몇 개를 꼽아보자면 Debian(데비안), Ubuntu(우분투), Opensuse(오픈수서), Fedora(페도라), Arch linux(아치 리눅스) 등이 있습니다. 그리고 다양한 배포판들이 기존의 배포판을 기반으로 해서 만들어집니다.
스팀OS는 원래 데비안 기반의 배포판이었습니다. 밸브가 데비안을 선택한 데에는 나름의 이유가 있었겠지만 아무래도 리눅스 커뮤니티에서 가장 보수적인 배포판 중의 하나인 데비안으로는 한계가 있었던 듯합니다. 스팀덱에 포함되는 스팀OS 3.0은 데비안 기반이 아니라 아치 리눅스 기반으로 개발되었습니다. 아치 리눅스는 데비안의 대척점에 있는 배포판입니다.
아치 리눅스의 특징은 최신(bleeding edge), 무한한 커스텀에 있습니다. 아치 리눅스는 업데이트가 엄청 빠릅니다. 이런 리눅스 배포판을 롤링 릴리즈(Rolling release)라고 부릅니다. 기본적으로는 거의 매일 업데이트가 있고 커널 패치도 잊을 때마다 한 번씩 있을 정도입니다. 또한 아치 리눅스는 유저의 자유를 존중해서 그래픽 그래픽 유저 인터페이스 또는 데스크탑 환경이 기본으로 제공되지 않습니다. 데스크탑 환경이라는 것은 간단히 말해 UI 환경입니다. 리눅스는 다른 운영체제와는 달리 자기 입맛에 맞는 UI로 손쉽게 교체할 수 있습니다. 오늘은 윈도우 느낌을 내려고 KDE 플라즈마로 내일은 맥 느낌을 위해서 판테온(Pantheon)으로, 모레는 다 집어치우고 배어본으로 쓸 수도 있습니다. 그러다보니 아치 리눅스는 장난감처럼 가지고 놀기 아주 좋지만 시간이 많이 들기 때문에 너드들이 아니면 잘 쓰지 않는 배포판입니다.
그럼 스팀OS는 못 써먹을 물건인가 싶겠지만, 스팀 OS는 아치 리눅스가 아닙니다. 아치 리눅스 기반의 배포판이라는 것은 아치 리눅스의 좋은 점 만을 뽑아 사용하겠다는 것입니다. 스팀 OS는 자체 스팀 클라이언트 그리고 KDE 플라스마(plasma)라는 데스크탑 환경을 기본으로 탑재하고 있습니다. KDE 플라즈마는 윈도우에 가장 근접한 UI를 가지고 있습니다, 이렇게 생겼죠.
그렇기 때문에 스팀OS는 아치 리눅스의 최신 프로그램들을 가져오면서 매우 익숙한 윈도우 스타일 데스크탑 환경을 제공할 것입니다. 물론 밸브에서 특별히 KDE 플라즈마를 추가로 커스텀 했을 수도 있습니다. 또 중요한 것은 스팀OS가 아치 리눅스의 롤링 릴리즈의 수혜를 받아 게임 플레이 최적화에 특화한 업데이트를 신속하게 제공할 수 있다는 것입니다.
2. 윈도우 게임은 돌아가나요?
윈도우에 익숙한 게이머들에게 제일 중요한 질문은 윈도우로 출시된 게임이 스팀OS에서 구동되는지입니다. 정답은 게임에 따라 다르다입니다. 밸브는 2018년 8월에 proton(프로톤)이라는 프로젝트를 출시합니다. 프로톤이란 Wine(와인) 이라는 일종의 “번역 레이어” 프로그램을 기반으로 하여 게임에 최적화한 아종 프로그램(Fork, 포크)입니다. 간단하게 말하면 윈도우 게임을 리눅스에서도 실행할 수 있도록 하는 프로그램입니다. 그렇다면 모든 게임을 다 돌릴 수 있느냐 하면 그건 아닙니다. 그 이유는 프로톤은 에뮬레이터가 아니기 때문입니다.
에뮬레이터는 하드웨어를 모방하는 기술입니다. 그러므로 에뮬레이터 위에서 돌아가는 운영체제(Guest OS)는 정해진 바 없이 아무것이나 가능합니다. 가령 오라클 버츄얼 박스에는 윈도우를 올릴 수도 있고, 리눅스를 올릴 수도 있고 아마 맥도 될 겁니다(이론상). 그것이 저수준(LLE) 이건 고수준(HLE)이건 상관없이 에뮬레이터는 모방하려는 대상과 똑같은 결과를 산출하려고 시도합니다. 똑같은 하드웨어라면 똑같은 성능이 나와야 합니다.
하지만 프로톤은 에뮬레이터가 아닙니다. (애초에 프로톤의 원본인 WINE의 뜻이 Wine is not an emulator, 즉 와인은 에뮬레이터가 아니다라는 뜻입니다.) 그러므로 프로톤은 하드웨어를 모방하지도 않고 윈도우 이외의 다른 운영체제와의 공통점도 없습니다. 그리고 프로톤은 윈도우와 똑같은 성능을 모방하려고 하지도 않습니다, 오히려 더 좋게 만들려고 합니다. (더 기술적인 설명은 최하단에 첨부합니다.)
결론적으로 에뮬레이터는 비록 느릴지라도 모든 프로그램을 실행할 수 있습니다. 하지만 프로톤은 에뮬레이션에 비해서 훨씬 좋은 성능을 보장하지만 모든 프로그램의 실행을 보장할 수는 없습니다. 최소한 아직까지는 아닙니다. 하지만 너무 걱정할 필요는 없습니다. 밸브가 돈 벌어서 어디에 쓰고 있나 할 때 밸브는 열심히 프로톤을 개발하고 있었습니다. 웬만한 AAA 게임들은 단순한 실행을 넘어서 윈도우에 준하는 퍼포먼스를 보여줄 정도로 프로톤은 발전했습니다.
다만 문제는 프로톤은 커널 수준의 호환성을 보여주지는 못한다는 것입니다. 역시 에뮬레이터가 아니기 때문입니다. 그러다보니 anti-cheat(안티 치트) 나 Denuvo(데누보)가 적용된 게임들은 제대로 실행하지 못하는 상황입니다. 하지만 이 부분은 밸브가 스팀 덱 출시 전까지 anti-cheat를 실행할 수 있게 하겠다고 했으니 한번 기다려 봄 즉 합니다.
물론 최후의 수단으로는 윈도우를 설치하면 그만입니다. 돈이 좀 들긴 하겠지만요.
3. 리눅스에서 돌아가는 게임을 확인하는 법
한편, 윈도우 게임이 리눅스에서 돌아가는지를 확인하기 위해서 일일히 설치하고 실행해볼 필요는 없습니다. 바로 프로톤디비가 있기 때문이죠. (https://www.protondb.com/) 프로톤디비에서 찾고자 하는 게임을 검색하고 게임이 리눅스에서 얼마나 잘 돌아가는지를 확인할 수 있습니다. 게임의 성능이나 실행 여부에 따라 플래티넘부터 다양한 등급이 매겨집니다. 다만 유저들마다 사용하는 리눅스 배포판, 와인의 종류(루트리스, 프로톤, 글로리어스에그롤), 커널 버전 등이 전부 다르기 때문에 항상 성공하지는 않긴 합니다.
%. 프로톤의 작동방식
먼저 프로톤의 작동방식을 이해하기 위해서는 게임이 어떻게 작동하는지를 간단하게 알아야 합니다. 게임은 프로그램입니다. 그리고 대부분의 프로그램은 다시 다른 프로그램들과 상호작용하도록 설계되어 있습니다. 이걸 Dynamic linking(동적 링킹)이라고 합니다. 게임을 설치할 때 종종 보이는 .dll 파일이 바로 이런 동적 링킹을 하는 일종의 연결부, 인터페이스입니다.
많은 게임들이 Windows API라는 일종의 함수를 사용합니다. 그리고 이 함수는 게임 회사들이 직접 만드는 게 아니라 컴퓨터에 포함되어 있을 것으로 상정하고 게임 내에서 사용합니다. 따라서 게임을 설치한 이후에 DLL 파일이 설치되어 있지 않다면 게임 실행이 되지 않거나 중간에 멈추고 맙니다. 보통은 게임을 설치할 때 동적 링크할 파일이 존재하는가를 확인하고 없다면 따로 설치하긴 합니다.
리눅스에서 윈도우 게임을 실행하기 위해서는 이 Windows API가 필요합니다. 하지만 DLL 파일을 그냥 가져다 쓴다고 되는 것은 아닙니다. 그래서 인터페이스는 그대로 하고 내부 구현을 처음부터 만든 것이 바로 WINE이고 프로톤입니다. 쉽게 말하면 DLL 파일만 리눅스가 이해할 수 있는 내용으로 바꿔치기 하는 것입니다. 동적 링킹이기 때문에 게임 입장에서는 그 함수가 존재하기만 한다면 내용이 바뀌었어도 실행에 전혀 문제가 없습니다. 그래서 와인을 번역 레이어(Translation layer)라고 부릅니다. Windows api의 번역본을 준비해서 리눅스 커널이 이해할 수 있도록 하기 때문입니다. 그래서 WINE을 윈도우에 설치할 수도 있습니다. 다만 윈도우가 WINE의 구현을 이해하지는 못하기 때문에 Cygwin등을 통해서 매우 “재밌는” 설정 과정이 필요하긴 합니다.
하지만 프로톤이 만능은 아닙니다. 프로톤은 개발자들이 처음부터 Windows API를 재구현한 것이기 때문에 윈도우와 다르게 작동할 여지도 있고 아직 구현되지 않은 내용도 있습니다. 마지막으로 만약 게임이 커널과 직접 통신한다면(Syscall의 경우, 물론 그건 이미 게임이 아니라 의심스러운 “무언가”일 가능성이 높습니다.) 프로톤은 힘을 잃습니다. 안티치트나 데누보는 커널 단위에서 작동하기 때문에 프로톤 자체적으로는 해결되기 어렵습니다.
한편 프로톤은 때론 윈도우보다 성능이 더 잘 나오기도 합니다. 이는 프로톤이 에뮬레이터가 아니라 재구현이기 때문인데, 특히나 프로톤은 다이렉트X 함수를 Vulkan(벌칸)의 함수로 바꿔치기 합니다. 예전에는 DX9~DX11까지만 지원했는데 지금은 DX12도 지원하고 있습니다. 그래서 번역된 함수의 효율이 더 좋다면 프로톤이 윈도우보다 성능이 더 잘 나오는 것도 충분히 가능한 일입니다.
요약
1. 스팀OS란 스팀덱에 탑재되는, 업데이트가 매우 빠르고 윈도우의 외형에 가까운 리눅스 배포판이다.
2. 스팀OS에서 상당수의 윈도우 전용 AAA게임들이 실행되고 안티 치트도 곧 지원될 예정이다. 하지만 모든 게임이 실행되지는 않는다.
3. 프로톤디비(https://www.protondb.com/)에 들어가면 지금 실행가능한 게임을 확인할 수 있다.
제목을 간단한 설명이라고 정하고 글을 쓰긴 했는데 어째 좀 길어져 버리긴 했습니다. 그래도 대충 스팀OS가 뭔지, 윈도우 게임이 얼마나 잘 돌아가는지 안 된다면 왜 안되는지 그리고 프로톤디비 정도는 필요하다고 생각해서 나름 줄여서 넣었습니다.
와 감사합니다 본문을 천천히 정독하니 아래 정보글에 달린 댓글들이 이해가 되고 스팀OS가 얼추 개념이 잡히네요 하지만 자고 일어나면 다 까먹을 것 입니다
스팀 os 3.0이 왜 생기는지 알아야됩니다. 기존 데비안 배포판의 업데이트 종료가 지나서 스팀os를 업그레이드하려면 데비안을 그냥 쓰는게 편하겠죠.갑자기 배포판을 바꾸는 행위는 사용자의 불만을 만들 수 있지만 이는 기존부터 개인이 직접 커널을 업데이트하고 디바이스드라이버를 업데이트하고 사용하다가 시스템이 업데이트되면 커널이 다시 되돌아가고 그래픽카드 디바이스드라이버가 먹통되고 한마디로 쓸게 못되서 그냥 우분투에 스팀클라이언트를 설치해서 사용했죠. 아치리눅스로 바뀌면 항상 같은 코어를 사용하며 최신버전의 커널업데이트와 디바이스드라이버의 먹통은 사라지지만 아치리눅스의 코어가 언제 변경될지 모르는 상황에서 아치로 바꾼다는건 또 한번의 버려지는 스팀os가 되는거죠. 이게 코어가 변경되서 스팀os 4.0으로 둔갑해서 업데이트하면 되겠지만 결국 리눅스 게이머들중에 하나인 나같은 사람에게는 버려지는 os가 될거에요. 개인적으로 아피리눅스를 좋아하지만 롤링된 배포판들은 아치리눅스의 업데이트 속도를 못따라가서 사실상 쓰기 매우 불편한것도 사실이고요. 포로톤과 리눅스게임은 전혀 다른문제라는 것도 인식 해야되요. 리눅스 게임에서 가장 불편한 것은 역시나 한글 입력문제라서요. 리눅스게임에서 한글입력이 대부분 안되요. 이유는 wine api따위로 만든게 아니라서 그래요. 네이티브로 컴파일되서 입력기를 바인딩하지 못한거에요. Wine api를 사용한 게임들은 wine 입력기가 바인딩되서 한글이 정상적으로 입력되요. 결국 프로톤은 스팀 게임 중에 리눅스에서 실행되도록 노력의 결과지만 스팀에서 사양에 리눅스가 표시된 게임들은 그냥 리눅스 네이티브 게임이에요. 그러니 스팀을 wine으로 실행해서 wine api로 게임을 하는 프로톤과 리눅스 게임은 전혀 달라요.
ㅊㅊ 드립니다 !!
윈도우 까는걸 막는다고 하지 않았으므로 자기가 돌리고자 하는 게임이 스팀OS에서 돌지 않는다면 싹 밀고 윈도우 까는 방법도 있겠네요
제목을 간단한 설명이라고 정하고 글을 쓰긴 했는데 어째 좀 길어져 버리긴 했습니다. 그래도 대충 스팀OS가 뭔지, 윈도우 게임이 얼마나 잘 돌아가는지 안 된다면 왜 안되는지 그리고 프로톤디비 정도는 필요하다고 생각해서 나름 줄여서 넣었습니다.
와 유저게시판에 가장 어울리는 글이었어요 ㅊㅊ
ㅊㅊ 드립니다 !!
옛날 wine 이것저것 만질 땐 되긴된다... 급이었는데 지금은 어떨지 궁금하고 또 기대가 되네요 좀 쓸만하면 여기에 한글이랑 오피스만 딱 깔고 진득하게 써보고 싶은데... 기다 중입니다.
윈도우 까는걸 막는다고 하지 않았으므로 자기가 돌리고자 하는 게임이 스팀OS에서 돌지 않는다면 싹 밀고 윈도우 까는 방법도 있겠네요
미연시용으로 쓸건데 윈도우 깔아야겠네
스팀 OS 성능이 잘나오기를 기대 했었는대 그렬러면 개발사들이 관심을 가지도록 일정 유저수가 있어야 할거고 어렵긴 하네요
잘 모르는 내용인데 잘 읽히네요.
에뮬이 아니라 api였군요
스팀 os 3.0이 왜 생기는지 알아야됩니다. 기존 데비안 배포판의 업데이트 종료가 지나서 스팀os를 업그레이드하려면 데비안을 그냥 쓰는게 편하겠죠.갑자기 배포판을 바꾸는 행위는 사용자의 불만을 만들 수 있지만 이는 기존부터 개인이 직접 커널을 업데이트하고 디바이스드라이버를 업데이트하고 사용하다가 시스템이 업데이트되면 커널이 다시 되돌아가고 그래픽카드 디바이스드라이버가 먹통되고 한마디로 쓸게 못되서 그냥 우분투에 스팀클라이언트를 설치해서 사용했죠. 아치리눅스로 바뀌면 항상 같은 코어를 사용하며 최신버전의 커널업데이트와 디바이스드라이버의 먹통은 사라지지만 아치리눅스의 코어가 언제 변경될지 모르는 상황에서 아치로 바꾼다는건 또 한번의 버려지는 스팀os가 되는거죠. 이게 코어가 변경되서 스팀os 4.0으로 둔갑해서 업데이트하면 되겠지만 결국 리눅스 게이머들중에 하나인 나같은 사람에게는 버려지는 os가 될거에요. 개인적으로 아피리눅스를 좋아하지만 롤링된 배포판들은 아치리눅스의 업데이트 속도를 못따라가서 사실상 쓰기 매우 불편한것도 사실이고요. 포로톤과 리눅스게임은 전혀 다른문제라는 것도 인식 해야되요. 리눅스 게임에서 가장 불편한 것은 역시나 한글 입력문제라서요. 리눅스게임에서 한글입력이 대부분 안되요. 이유는 wine api따위로 만든게 아니라서 그래요. 네이티브로 컴파일되서 입력기를 바인딩하지 못한거에요. Wine api를 사용한 게임들은 wine 입력기가 바인딩되서 한글이 정상적으로 입력되요. 결국 프로톤은 스팀 게임 중에 리눅스에서 실행되도록 노력의 결과지만 스팀에서 사양에 리눅스가 표시된 게임들은 그냥 리눅스 네이티브 게임이에요. 그러니 스팀을 wine으로 실행해서 wine api로 게임을 하는 프로톤과 리눅스 게임은 전혀 달라요.
동의합니다. 본문에서는 아치 리눅스를 중립적으로 설명하긴 했는데 고정 하드웨어에서 아치 리눅스 기반 배포판을 쓰는게 맞는지는 좀 의문이 있습니다. 그래도 개인적으로는 밸브가 리눅스 게이밍에 대해서 보여준 노력을 보면서 앞으로 스팀OS 잘 관리해 줄거라고 믿고는 있습니다. 그리고 리눅스 네이티브 게임은 좀 지뢰가 많아서 문제가 있긴 한 것 같습니다. 험블 번들에서 게임을 받아서 보면 분명 리눅스 네이티브라고 되어는 있는데 정작 실행조차 안되는 경우가 많아요. 프로톤으로 실행하면 되는데 말이죠. 스팀 OS에서 그런 부분이 잘 조율되면 좋을 것 같네요. 한글 입력 문제도 프로톤이 훨씬 호환성이 좋기도 하구요.
와 감사합니다 본문을 천천히 정독하니 아래 정보글에 달린 댓글들이 이해가 되고 스팀OS가 얼추 개념이 잡히네요 하지만 자고 일어나면 다 까먹을 것 입니다