Windows Subsystem for Linux a.k.a Bash on Ubuntu on Windows

16년 7월 배포된 윈도 10 레드스톤 버전에는 같은 해 4월에 MS Build 컨퍼런스에서 뜬금포 공개된 WSL이 들어있다.

그동안 CygWin이니 MinGW니 최근의 Babun이니 해서 Windows 내에서 Linux 전체 또는 일부를 사용할 수 있게 하는 프로젝트가 여럿 있었고, 각자 제 성과를 거두어온 바 있었다. 문제는 갖가지 방식 모두 Linux에서 쓰던 바이너리를 그대로 쓰진 못하고, Windows용으로 새롭게 포팅(맞나?)해야 하는 한계? 귀찮음? 이 있었다.

새로 탑재된 WSL이 위의 기존 방식들과 다른 점은, Linux 바이너리를 그대로 쓰면서 바이너리의 시스템 콜을 "커널" 단에서 에뮬레이션(틀렸지만 넘어갈게요. 이 글 누가 본다고..)해준다는 점이다. 그 덕분에, 우분투의 리눅스 시스템용 기존 소프트웨어 저장소를 그대로 쓸 수 있다!

아직 256색조차 제대로 지원이 안 되고, 한글 입력이 뭔가 어설프고 해서 여러 가지로 갈 길이 멀다. 그러나, Unix-like BSD 시스템을 바탕으로 해서 리눅스와 잘 어울리는 macOS의 자리를 뺐을 시도를 할 수 있게 된 점에서 큰 의의가 있다. 네이티브 Linux 지원이라니, 이전 스티브 발머 CEO 시절이라면 상상도 할 수 없는 일일 것이다.

안 되는 점

  • 256색 이상 지원 (X11로 별도의 터미널 에뮬레이터 창을 띄우면 해결)
  • Loop 장치 마운트 -- EXT4 파티션 이미지 같은 것들 마운트가 안 된다
  • Chromium 기반 프로그램들 (?) -- 잘 모르겠지만 어쨌든 실행이 안 되고 죽는다
  • GPU 지원 -- CUDA, TensorFlow 등등이 안 돌아간다.
  • 시작 시 자동 실행 -- 몇몇 꼼수가 있으나 그리 좋아 보이진 않는다.
  • SSH 데몬, 웹 서버 등 구동하기 -- 자동 시작이 안 되서 불편하고, 보안 취약점이 왕왕 존재할 수 있다.
  • 등등

Synopsys, Cadence 등 업체의 반도체 설계를 위한 EDA 툴 설치/실행

갖가지 안 되는 것들을 빼면 사실상 우분투 리눅스이기 때문에, 실 PC 또는 가상머신에서 돌아가는 프로그램이면 윈도 Bash에서도 돌아는 간다. 연산 결과가 죄다 틀린다던지, 어떤 오류가 있을지는 모르지만...

그래서, Synopsys Design Compiler를 윈도 Bash에서 돌려보았다.

  • Synopsys Solvnet 홈페이지에서 Installer 및 Design Compiler 설치 프로그램을 받아서, 안내대로 설치한다...
  • 라이선스 (나는 학교 것으로...), PATH 등 환경 변수를 설정해준다.

$ vim ~/.bashrc

export LM_LICENSE_FILE=blahblah

export PATH=/usr/synopsys/blah:$PATH

  • 실행해보면 동적 라이브러리가 없다고 오류가 발생한다. 정식 지원 환경인 Redhat이 아니기 때문일 텐데...

$ dc_shell

/usr/synopsys/blahblah/common_shell_exec: error while loading shared libraries: libblah.so.?: cannot open shared object file: No such file or directory

  • ldd 명령을 쓰면 바이너리 실행에 필요한 어떤 라이브러리가 없는지 알 수 있다.
  • 예로 든 dc_shell은 스크립트이고, 스크립트 내에서 common_shell_exec 바이너리를 실행한다. 그러니<

$ ldd /usr/synopsys/path/to/binary/common_shell_exec

  • 이제 없는 라이브러리 파일이 어떤 패키지에 들어있는지 알아낸 후 apt 명령으로 열심히 설치하면 된다.<
    • 구글에서 바이너리 이름으로 검색하거나
    • "apt-cache search " 명령으로 검색할 수 있다.
  • 아래 라이브러리를 설치했다. 그 전에 이것저것 더 깔았기 때문에, 실제로 설치가 필요한 패키지는 이보다 더 많을 수 있다.<

    $ sudo apt-get install libxss1 libsm6 libice6 libxft2 libjpeg62 libtiff5 libmng2

  • 문제는 최신 버전에 없는 구형 라이브러리를 요구하는 경우가 있는데...
    • 안타깝게도 libtiff3, libmng1이 libtiff5, libmng2으로 업그레이드되었다.
    • 대충 최신 라이브러리 파일을 예전 라이브러리 파일 이름으로 심볼릭 링크를 걸어본다.

      $ sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3

      $ sudo ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1

  • 이제 실행해보면 잘 돌아간다. 그런데 정말 잘 돌아가는걸까?
반응형

Python에서 GUI를 구현하는 라이브러리 중 wxWidget 기반의 wxPython은 결국 Python3가 대세가 된 지금도 Python2만을 지원하고 있다.

대신 Phoenix 프로젝트라는 이름으로 Python3 지원 및 기능 개선을 위한 개발이 진행 중이라고 한다. 피닉스... 이인제 의원님...

설치법

https://wiki.wxpython.org/How%20to%20install%20wxPython

16년 12월 현재, 아직 정식 버전이 나오진 않은 상태다. 대신 개발 빌드를 컴파일한 패키지를 받거나, 소스에서 빌드해야 한다.

소스 직접 설치

$ pip install wx ; 소스를 받아 직접 컴파일

미리 컴파일된 패키지 설치

$ pip install --user --trusted-host wxpython.org --pre -f https://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix 또는, https://wxpython.org/Phoenix/snapshot-builds/ 에서 컴퓨터 환경, Python 버전에 맞추어 wheel 패키지를 직접 받아서 설치해도 된다.

사용법

기존 wxPython을 안 써봤지만, 별 차이는 없나보다. 아래 튜토리얼을 참조하기로...

https://wiki.wxpython.org/How%20to%20Learn%20wxPython http://zetcode.com/wxpython/

반응형

어쌔신 크리드: 유니티

발매: Ubisoft

  • 오픈 샌드박스 게임의 장인 유비소프트가 야심차게 만든 어쌔신 크리드 프랜차이즈 신작이었으나, 당시 기준 끔찍한 고사양에 게임 진행이 불가능할 정도의 버그 덩어리, 애매한 스토리로 욕만 무지무지 얻어먹고 말아먹은 작품이었다.
  • 후속작 신디케이트로 명성을 복원하고, 이제부터는 2년에 한 번씩만 작품을 내놓겠다니 다행인 일.

플레이 전 샌각

  • 물론 전작 대비 크게 향상된 그래픽 품질, 전작보다 더욱 발전한 NPC AI는 이 작품의 좋은 점이다. 전투가 대충 버튼 몇 번 누질르면 되는 점, 사용자가 조작하는 부분보다 스토리텔링에 드는 시간이 배로 많은 점 때문에 이게 게임인가 싶을 수는 있겠지만, 이런 류 게임이 그렇지 뭐.
  • 2016년 현재는 컴퓨터 성능이 당시보다 더욱 높아졌고 왠만한 버그는 다 잡혔으며, 가격이 반 이하로 내린데다 무엇보다도 드디어 내 PC 업그레이드가 되었으니 이제야 플레이해볼 수 있게 되었다.

첫 감상

명성대로 그래픽 품질이 매우 뛰어나다. 그러나 출시 몇 년이 지났는데, 아직도 윈도 10 관련 강제 종료 이슈가 있네.

플레이 후

  • 전통의 휘파람이 사라진 바람에 어려워진 전투
  • 여전히 남아서 플레이어를 괴롭히는 버그
  • 프랑스 혁명 배경이지만, 군중은 거들 뿐.
    • 시민과 함께 점령전을 벌이는 트레일러 영상은 고짓말...
  • 힘 빠지는 스토리. 처음부터 끝까지 주인공은 엘리스 사랑꾼일 뿐.
  • 그래도 그래픽은 좋음, 특히 시민 NPC 그래픽이 점점 나아지는 듯.
반응형

+ Recent posts