다음을 통해 공유


Unix 골수가 Windows에서 사는 법 #4: SUA 삽질 – 코딩은 언제 할꺼냐? 당췌!

아직 재미있는 일은 시작도 안했건 만, 혹시나 그 동안 뭐하고 있었나 궁금할 지도 모를 양반들을 위해서 중간 보고 올리는 바이다. 요사이 공부 무지하게 하고 있다. 역시나 셈말 꾼이 터전을 옮긴다는 것은, 그간의 삶을 옮기는 것 만큼이나 버거운 일이다. ( 실제로 조사를 해봐도 그렇게 나온다지? 주로 쓰는 셈말을 바꿔치는 일이 그다지 흔치 않다는 게다. 뭐, 사람말이든 셈말이든 처음 생각의 틀을 잡을 때에 배워 쓴 말은 “엄마 말"(Mother Tongue)”이나 마찬가지. 영어를 열심히 공부해도 머릿 속에서 일어나는 생각은 우리말로 하게 되어있는 게지. 그렇다 해도, 알맞은 일에 알맞은 셈말을 배워 쓸 줄 아는 것은 쟁이가 갖추어야 할 바탕 가운데 바탕이겠다. )

아래는 그 간의 삽질 보고 되겠다.

  • 끝내는 SUA 의 모든 걸 다 깔아서, 거의 Unix 환경을 만들어 버렸다. ( .NET 공부한다더니 지금 뭐하고 있는 거냐?—;; 배보다 배꼽이 더 크쟎아~~. ) Windows 위에 Unix Subsystem을 만들어 올리는 방법은 다음과 같다.
    1. 맨 먼저 Windows 그 머시기냐 소프트웨어 깔고 지우고 하는 제어판가서 Subsystem for Unix Apps가 하는 놈을 깐다.
    2. Utils & Apps for SUA 이거 받아다 깐다.
    3. SUA에 가서 Complete Toolset 깐다. 이 때 괜히 패키지가 쓰임새 따라 아래 같이 여러 묶음으로 나누어 놓았는데 괜한 헛삽질 말고 “Complete Toolset” 받아 까는 것이 좋다. 이 때 준비할 것은 “무한한 참을 성”이다. 내image려 받는 속도가 가끔씩 살인적이다. ( 성질 급한 우리나라 네떡 꾼들에게는 주금인 것이지, 이런거 vv;; 어지간 하면 이런데도 돈 좀 들이지. 기왕 고생해서 만든 것을 뭐 이렇게 마무리하고 있냐.)
      • 특히 이거 깔 때, Local administrator로 깔아야 한다. 다시 말해, Administrators의 Group에 들어있는 id로 해서도 안된다. 그냥 앞뒤 가리지 말고, Domain에 등록된 id말고, 로컬 곧 컴터에서 administrator라는 id로 들어가서 돌려야 된다. (나 이거하다 무지하게 헛 삽질했다. vv;;)

      • pkg-current-bundlecomplete60.exe 돌리면 깔기 시작하는데 이거 역시 “느긋한 마음”이 가장 큰 준비물이다. ClaimsAV라고 병 걸린 놈(virus)이나 못된 놈(malware) 잡아내는 서비스(Unix 말로는 daemon이라고 하지들) 올리고 엔진 업데이트를 하나 본데, 이 오픈소스 프로젝트 하는 분이 잠적을 하셨는지 어쩐지 이거 계속 해볼려고 하다가 포기하고, 다음 단계로 넘어 가지 까지 시간 많이 걸린다. 그러니 그냥 놔두고 잊어먹고 있으면 된다.

      • 다 끝나면 Subsystem for Unix-based Applications라는 메뉴판에서 bash가 걸려있는 것을 볼 수 있다!! Olleh! 하지만 주로 쓰는 id에서 이거 별 문제 없이 쓰고 싶으면, administimagerator 계정에서 걍 항상 Run as administrator로 뜨도록 손봐주고, 또 글꼴 이쁜 거 쓰고 싶으면 코드 페이지도 손봐주고 화면 크기도 맞추고 해주는 게 속편하다. ( 다른 id로는 .lnk 파일 손도 못대게 묶어 놨다. 아 물론 삽질 좀 하면 되시겠으나 편하게 사시라고 ^^;; )

      • 옆에 DISPLAY라는 변수 보이시 것지들? X Window 뜬 다는 얘기 되것다. 진짜 뜬다. Xming이라는 이름인데, 이거 Minimalist GNU Win32. 줄여서 MinGW라고, GNU 컴파일러랑 갖가기 것들 Windows로 옮겨 놓은 꾸러미 있었는데, 그 힘을 빌어서 만든 것 같다. 역시 OSS의 “십시일반” 힘은 무시 못할 일이겠다. 여간 삽질 아니 었을 텐디. 그 토록 오랫동안.

      • 아 물론, 왼편 그림과 같은 Setuid 방식이나 어마 무시한 root power를 주는 것은 두 subsystem을 일치시키는데 한계가 있는 부분이다.

  오늘의 생각

    • Cygwin 같은 거 있다는 거, 나도 안다. 좀 쓰기도 했다. 패키지도 더 많고 깔기도 더 쉽다. 하지만 Cygwin은 dll 한 덩어리로 포장된 emulation layer 위에 올라간다. SUA와 처럼, 아래와 같은 아키텍처 image- 커널 위에 서브시스템으로 올라가는 구조가 갖는 장점을 누리지 못한다. 이러한 아키텍처는 끝내  “가상화(Virtualization)” 기술의 본질과도 깊은 관계가 있다. 이 것만 알아두자. 이런 연구 개발 노력이 일견 무한 삽질인것 처럼 보이지만, 현재의 어떤 뛰어난 기술도 과거의 우직하고 멍청한 삽질 없이는 생겨나지 않는다.
    • 아래는 SUA 시스템에 영향을 준 수많은 관련 기술 자산들이다. 마치 내 지나온 발자취를 그려 놓은 것 같아서 그냥 넘어갈 수 없었다.image
    • 어쩌다 보니 깔기는 했지만, 이 서브시스템이 얼마나 뛰어난 어플리케이션 호환성을 제공하는지, 실용성이 얼마나 괜챦은지에 대해서는 뭐라 말 못하겠다. 쓰다보면 알게 되겠지.
    • 살펴보니 적쟎이 공들인 것 인정한다. 하지만 할거면 이런 서비스 제대로 좀 했으면 한다. 어찌 어치 알아가지고, 내려 받고, 만져 주고… 아~~ 번거롭다. 그리고, 안정성 중요하지만 어떤 것은 너무 옛날 것들이다. image그냥 묵혀 버리기에는, 아래 같은 노력들이 너무 아쉽지 않은가? 가상화 기술로 VM에서 리눅스 올려 쓰라고? 하기사 cygwin 보다는 나은 방법인데… 아 나도 모르겠다.

 

아~~ 이제는 Unix 삽질은 고만하고, 코딩을…. 할꺼나?