본문 바로가기

msys

Goodbye COMMAND.COM, Welcome BASH 2016 빌드 컨퍼런스는 뜨거운 이슈가 없어 보였는데, 소리없이 커다란 관심을 끈 이슈가 하나 등장했다. MS가 캐노니컬과 협력하여 윈도우에 우분투(Ubuntoo) 서브시스템을 탑재한다는 것이 바로 그것이다. 사실, 윈도우는 유닉스 호환 운영체제다. 더 정확하게 말한다면 POSIX 표준을 준수하는 유닉스 호환 운영체제지만, POSIX 자체가 매우 낡은 표준이기 때문에 현대적인 유닉스와의 호환을 제공하는 것은 아니다. 특히, 유닉스 그 자체를 의미할 정도로 유닉스 시장을 장악한 리눅스의 성격을 생각한다면 더욱 그렇다. 여튼, 지금까지 윈도우는 생색 내기 수준의 유닉스 호환 기능을 제공해 왔다. 사용자 편의가 중요한 일반 데스크탑 시장에서는 여기에 신경 쓸 이유가 없지만, 서버 시장이나 개발자 관점에서 본다.. 더보기
CygWin Portable Install 윈도우에서 가상 머신을 사용하지 않고 유닉스 환경을 사용하는 방법 중 가장 대표적인 것은 CygWin이다. CygWin은 cygwin1.dll을 사용해서 POSIX 함수들을 구현하기 때문에, 많은 유닉스 프로그램들을 그대로 컴파일해서 사용할 수 있다. CygWin와 자주 비교되는 MSYS는 사실 CygWin에서 파생된 프로젝트다. CygWin이 호환성을 최우선으로 하는 것과 달리, MSYS는 윈도우 환경에서 GNU 툴들을 사용할 수 있도록 호환성을 제공하기는 하지만, 성능을 우선하고 있다는 점이 다르다. 호환성을 중요하다면 CygWin을, 호환성을 약간 희생하고 좀 더 높은 성능을 필요로 한다면 MSYS이 적당하다. MSYS가 CygWin보다 설치가 간단하고 성능도 괜찮지만 여전히 CygWin이 필요한 .. 더보기
MSYS Portable Install using MinGW MSYS는 시그윈(Cygwin)과 비슷하게, 윈도우 환경에서 최소한의 유닉스 시스템을 구성해준다. 시그윈이 유닉스 레이어를 구성하는 dll를 가지는 방식으로, 최대한의 호환성을 제공하는 것과 달리, MSYS는 최대한 유닉스 시스템과 호환성을 가지면서도 성능을 우선시한다. 즉, 생성되어 나오는 바이너리가 레이어를 거쳐 실행되는 시그윈과 달리, 직접적으로 윈도우 바이너리를 생성한다. 그러나 실행 성능은 좋다고는 할 수 없다. MSYS의 가치는, 수많은 유닉스 기반 프로그램들을 직접 컴파일할 수 있도록 해준다는데 있다. 유닉스 프로그램들은 주로 automake, autoconf와 같은 툴을 이용하여 배포되기 때문에, ./configure 스크립트를 처리할 수 있는 환경이 아니라면 프로그램이 이식성을 염두에 두.. 더보기