얼마전부터... 이제 슬슬 openfoam 을 돌리기 위해 vm으로 윈도우 컴에 우분투를 깔고 하는데...
vm으로 하니 뭔가 못마땅한(?) 느낌이 들더라구요.
그래서 이참에.. 리눅스와 일맥상통하는 맥을 들여볼까 하고 있습니다
학부시절에는 가벼운 포트란 코드와 한글 ms 오피스는 맥프로로 하다가 대학원 오면서 처분해서 일반적인 사용에는 문제없을것 같은데...
리눅스 명령어와 동일한지, 특히 openfoam을 돌리기에 맥이 적합한지 궁금하네요.
(클리앙에 질문도 올리고 구글검색도 하며 적합한지는 알아볼 예정입니다)
혹시나 맥당에도 맥 기반 openfoam 을 사용하시는 분이 계실까 싶어 글 올려보아요 ㅎㅎ
vm으로 하니 뭔가 못마땅한(?) 느낌이 들더라구요.
그래서 이참에.. 리눅스와 일맥상통하는 맥을 들여볼까 하고 있습니다
학부시절에는 가벼운 포트란 코드와 한글 ms 오피스는 맥프로로 하다가 대학원 오면서 처분해서 일반적인 사용에는 문제없을것 같은데...
리눅스 명령어와 동일한지, 특히 openfoam을 돌리기에 맥이 적합한지 궁금하네요.
(클리앙에 질문도 올리고 구글검색도 하며 적합한지는 알아볼 예정입니다)
혹시나 맥당에도 맥 기반 openfoam 을 사용하시는 분이 계실까 싶어 글 올려보아요 ㅎㅎ
예전에 한 번 해보니 괜찮던데요
그런데 이게 파일이동에 제약이 많더라구요... 모든 걸 terminal 방식으로 하야하다보니...
유닉스 터미널 명령어는 대부분 동일합니다. 데비안 등으로 프리컴파일된 바이너리 파일이 실행이 안될 뿐이지 소스코드에서 재컴파일 하게 되면 대부분 실행 가능합니다. 다만 이 과정에서 make 파일 등 설정파일의 수정이 이루어져야하는데 이게 매우 험난한 일인데요, 그래서 패키지 인스톨러를 주로 사용합니다. 우분투의 apt-get 같은거죠. 맥os는 주로 brew (homebrew)를 사용하는데 대부분 많이 쓰는 프로그램들은 다 설치 가능합니다. openfoam 은 안써봐서 모르겠는데, 대충 검색해보니 brew 로 설치가능한 것 같습니다.
맥에서 bioinformatics tool들을 가끔 쓰는데, 소스 가져와서 컴파일하면 별 이상한 의존성 에러들이 많이 생겨서 brew로 깔아서 쓰는 경우가 많습니다.
터미널 명령어들도 세부 옵션으로 들어가보면 상당히 다르고 (homebrew 설치 후 gnu 기반 툴을 쓰면 이 문제는 해결됩니다만) 바이너리 호환은 당연히 아예 안 되죠.
소스가 있으면 컴파일 된다... 경험상 고치는 게 더 일이었습니다.
개발 일로 MacOS를 계속 써 오고 있는데, 결국 빌드 및 테스트는 VM 만들어 linux 설치해서 하고 있습니다. Mac에서 개발하고 그걸 옮기면 제대로 안 되어서 삽질하는 경우가 너무 많아서.
기반하여 좀 더 살펴봐야겠네요.
친절하게 설치에 관련한 매뉴얼이 올라와 있네요.
macOS는 POSIX를 만족하는 OS로 POSIX 규정대로 프로그램을 작성하면 별 문제없이 컴파일 및 실행되어야 합니다. 다만, 개개 프로젝트가 POSIX를 충분히 만족하도록 프로그램을 작성하지 않기 때문에 (즉, Linux만 특화해서 Makefile/autoconf, automake/cmake 등을 만들기 때문에) 타 언어에서 컴파일이 수월하지 않은 것입니다.
이로 인해 Linux 외 타 OS는 자체 OS 전용의 패키지 설치 시스템을 갖추는 경우가 많습니다. (macOS에서는 homebrew/macports, FreeBSD에서는 Ports 등)
POSIX 만족한다고 다가 아닌 것이. 막상 들어가 보면 POSIX 내에서도 버젼이니 변종이니 하면서 조금씩 호환이 안 되는 것들이 있습니다. 그리고 프로그램을 POSIX내의 라이브러리만 가지고 만드는 것도 아니다 보니 결국 여기 저기 뜯어 고치는 것들이 발생할 수 밖에 없지요. (한때 프로그램 만들어 여기 저기 OS 별로 포팅하는 작업을 하다 보니...)
Windows NT는 자체적으로는 POSIX를 지원하지 않습니다. 서브시스템 하에서만 지원하고, 이 서브시스템을 사용하는 프로그램은 없다고 봐도 무방하죠. 순전히 Windows NT를 정부에 납풍하기 위한 꼼수였습니다.
참고로 Linux 조차도 POSIX-compliant이지 Certified가 아닙니다.
하지만, 다른 OS들도 POSIX Certified 라고 그냥 다 옮기면 되는 건 아니라는 것이지요.
제가 Solaris에서 개발해서 AIX, HP-UX, True64, Linux, Windows 등으로 옮기는 작업을 몇 년간 해 보았는데, 그냥 되는 것은 한번도 못 봤습니다. 심지어는 같은 AIX 내에서도 버젼 별로 달라질 때도 있고 해서 결국 손이 가게 됩니다.
그냥 윈도우 컴 램 최대로 때려박고 vm으로 리눅스 돌리는게 나아 보이네요. 현재까지는..
계산은 리눅스 hpc로 계산하고..
말씀 감사합니다!