본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. 윈도우와 리눅스를 함께 사용하는 방법 4가지

윈도우와 리눅스를 함께 사용하는 방법 4가지

· 댓글개 · 바다야크

윈도우와 리눅스 함께 사용하는 이유

개발자마다 의견이 다르겠지만, 24시간 돌아야 하는 시스템의 경우 윈도우보다는 리눅스가 더 안전하다고 생각합니다. 요즘은 작은 시스템도 네트워크에 연결해서 전체 시스템을 모니터링하고 관리하는 시대라서 네트워크의 중요성은 더욱 높아졌습니다. 윈도우도 네트워크 기능은 훌륭하지만, 리눅스는 태생부터 멀티 유저 시스템인 유닉스에서 나왔고 오랜 역사 동안 서버로서의 안정성과 네트워크의 강력함을 갖추었습니다.

그래서 24시간 1년 12달 운영하는 시스템은 윈도우보다는 리눅스를 많이 사용하는 것으로 알고 있습니다. 모든 현장을 확인한 내용이 아니고 들은 얘기로만 유추한 것이라서 윈도우 개발자가 들으면 펄쩍 뛸지 모르겠습니다. 윈도우도 계속해서 발전해 왔기 때문에 예전에 비해 안정성이 많이 높아졌겠지요. 그러나 윈도우 시스템이라고 하면 왠지 불안해 보입니다.

경험상으로도 그렇습니다. 서버용 윈도우는 다른지 모르겠지만, 지금 사용하고 있는 윈도우 PC는 그렇게 자주 업데이트를 하는데 리부팅을 해야 합니다. 어떨 때는 자동으로 리부팅되는 경우도 있어요. 테스트하려고 모니터링 프로그램을 걸어 놓았는데, 다음날 리부팅돼서 모든 프로그램이 종료되고 깨끗한 화면을 보았을 때 그 참담함이란.... 그래서 일부러 업데이트를 막아 놓는데요, 그러면 불안합니다.

그렇다고 윈도우를 버리고 리눅스만 사용할 수 없는 것이 MS 오피스부터 해서 자주 사용하는 프로그램이 대부분 윈도우 프로그램입니다. 리눅스 대용 프로그램이 있지만, 윈도우 프로그램만 못해요. "가능하다"와 "할 수 있다"의 차이라고 할까요?

그나마 요즘은 웹 프로그램이 많아져서 크롬 브라우저만 있으면 리눅스에서도 처리할 수 있는 일이 많아졌습니다. 에디터만 하더라도 Visual Studio Code를 윈도우와 리눅스 양쪽에서 사용하고 있습니다. 모바일 앱 중에는 MS윈도우·리눅스, ·애플 맥에서 사용할 수 있도록 웹 프로그램을 제공하기도 합니다.

유명 프로그램은 리눅스용 프로그램이 있지만, 윈도우용 프리웨어는 없는 것이 많아요. modbus-poll이 대표적이죠. 그러나 가장 큰 걸림돌은 MS 오피스입니다.

시스템 개발 업무가 프로그램만 작성하는 것으로 끝나지 않습니다. 문서 작업도 매우 많지요. 리눅스용 MS 오피스로 리브레오피스와 WPS오피스가 있지만, 결국 익숙해지질 못하네요. MS 오피스보다 생산성이 떨어지기도 하지만, 리브레오피스와 WPS오피스로 만든 문서를 윈도우에서 MS 오피스로 열면 글씨 크기가 달라서 문서 구성이 깨집니다. 설치를 잘못했는지 한글 입력할 때 스페이스키를 누를 때마다 마지막 글자가 사라질 때는 정말이지 아우~

그냥 마음 편하게 윈도우와 리눅스를 함께 사용하고 있습니다. 4가지 방법이 있는데요, 사용하는 방법과 장단점을 알아보겠습니다.

방법 1: 멀티 부팅

첫 번째 방법이 멀티 부팅입니다. 필요에 따라 윈도우 또는 리눅스를 선택해서 부팅하는 것이죠. 선택한 OS가 PC 하드웨어를 모두 사용하기 때문에 4가지 방법 중 가장 쾌적하게 사용할 수 있습니다. 시스템을 윈도우로만, 또는 리눅스로만 사용하기 때문이죠.

그러나 작업하다 보면 무지하게 답답합니다. 앞서 언급했듯이 개발자가 프로그램 코딩만 하는 경우가 적습니다. 프로그램 코딩하면서 문서 작성할 때도 많고요, 디버깅 툴로 열심히 확인하면서 작업해야 하기도 합니다. 리눅스에서 열심히 코딩하다가 문서 작업하려면 하던 일을 멈추고 윈도우로 부팅해야 합니다. 다시 코딩하려면 리눅스로 부팅해야 하고요.

결론은 하나의 PC에 윈도우와 리눅스를 함께 설치할 수 있는 방법이지만, 함께 사용하는 방법은 아닙니다.

저의 경우에는 전혀 도움이 안 되는 방법인데요, 그렇다면 서브 노트북을 이용하면 어떨까요? 리눅스로 부팅하고 윈도우 노트북을 함께 사용하는 것이죠. 그렇다면 PC에 리눅스로만 설치해서 사용하지? 하시겠습니다만, 어디까지나 서브 노트북이라고 말씀드렸습니다.

리눅스 PC와 MS 윈도우 PC 두 대를 동시에 사용하는 방법인데요, 멀티 부팅보다는 편하지만, 생산성은 떨어집니다. 프로그램을 실행하면서 실행 과정을 복사해서 문서 작성해야 하는데, 리눅스에서 복사한 내용을 윈도우 PC로 가져오기가 쉽지 않습니다. 파일 복사를 이용할 수 있지만, Ctrl-C·Ctrl-V하면 될 일을 파일에 저장하고 다른 PC에서 파일 불러 오기하려면 정말이지 어우~

이래서 하나의 PC에 윈도우와 리눅스를 같이 사용하면 여러 가지 편리합니다.

방법 2: VMware, Virtual Box

윈도우와 리눅스를 함께 실행하는 방법 중에 가장 마음 편한 방법은 VMware나 VirtualBox와 같은 가상 PC를 만들어 주는 프로그램을 이용하는 것입니다. 즉, PC 안에 PC를 만드는 것이죠.

PC의 CPU 코어와 메모리 용량의 일부분을 가상 PC에 뚝 떼어 주어야 해서 PC에 설치된 OS(호스트 OS)가 사용할 수 있는 시스템 자원 손실이 생겨서 부담이 되지만, 하나의 PC 안에서 윈도우 PC와 리눅스 PC를 동시에 사용할 수 있어서 매우 편합니다. 특히, 클립보드를 서로 공유로 문서 작업이나 개발 작업하는데 도움을 많이 받습니다.

가상 PC 프로그램을 사용하면 필요에 따라 윈도우 여러 개, 또는 리눅스 여러 개를 하나의 PC에 설치할 수 있습니다. PC에 윈도우를 설치(호스트 PC)하고 가상 PC에 리눅스를 설치하거나 호스트 PC에 리눅스를 설치하고 가상 PC에 윈도우를 설치할 수 있습니다. 경험적으로는 윈도우 호스트에 리눅스 가상 PC를 사용하는 것이 더 빠르네요.

가상 PC가 윈도우가 되었든, 리눅스가 되었든지 가상 PC도 PC라서, 마치 두 대의 PC를 다루듯 사용하면 돼서 PC 사양이 빵빵하다면 가장 권하는 방법입니다. PC 사양이 낮으면 호스트 OS, 가상 OS 둘 다 버벅거리는 단점이 있지만, 시스템이 느려지는 것 외에는 신경 쓸 일이 없습니다. 윈도우를 사용하던 대로, 리눅스를 사용하던 대로 사용하면 됩니다.

개발자가 아니더라도 PC를 깔끔하게 사용하고 싶은 분이나 블로거 중에는 윈도우 PC를 사용하면서도 가상 PC에 윈도우를 설치해서 프로그램을 깔아 보거나 환경을 바꾸어 보는 등의 실험을 하기도 합니다. 가상 PC에는 현재 상태를 기억하는 기능을 있어서 테스트한 후에 언제든지 이전 상태로 돌아갈 수 있습니다.

방법 3: cygwin

VMware·VirtualBox로 가상 PC를 사용하는 것이 좋지만, 시스템 리소스를 가상 PC와 나누어 사용해야 해서 시스템이 전반적으로 느려집니다. 사양이 낮은 PC에서는 버벅 거리는 것을 피부로 느낄 수 있는데요, 답답해서 사용을 포기하게 됩니다.

만일 PC 사양이 낮다면 cygwin으로 윈도우 안에서 리눅스를 실행할 수 있습니다. 설치하기 쉽고 사용하는 방법도 간단합니다. 마치 윈도우 안에 작은 리눅스가 실행되는 것처럼 보이는데요, 가상 PC와는 달리 시스템 리소스를 미리 cygwin에 나누어 줄 필요가 없어서 PC가 느려지는 문제가 없습니다. 즉, 윈도우에서 리눅스를 가볍게 실행할 수 있는 것이죠.

다만, 안타까운 것은 cygwin이 완벽한 리눅스가 아니라는 점입니다. 이뮬레이터 정도인데요, 이런 말씀을 드리는 이유는 모든 리눅스 프로그램이 cygwin에서 실행이 안 됩니다. 예를 들어서 프로세스를 나누어 주는 fork() 함수를 사용하는 프로그램은 실행이 안 됩니다.

그래서 윈도우 환경에서 리눅스 개발자라면 프로그램 코드는 윈도우에서 작성하고, 리눅스용 컴파일러를 cygwin에서 돌립니다. 컴파일러를 돌려서 리눅스 프로그램으로 만들 수 있지만, fork()처럼 리눅스 특성을 타는 함수를 사용한 프로그램은 실행할 수 없습니다. 즉, 디버깅을 할 수 없습니다.

그럼 뭐야? 제대로 실행하려면 리눅스 PC가 필요하네? 맞습니다. 리눅스에서 실행할 수 있는 컴파일러는 cygwin에서 실행할 수 있어서 컴파일해서 실행 파일을 만들 수 있어도 반드시 실행할 수 있다는 보장이 없습니다. 그렇다면 디버깅을 어떻게 하나?

윈도우에서 임베디드 리눅스 보드에서 실행하는 프로그램을 만들 때 cygwin을 사용합니다. 즉, 윈도우 PC에서 코딩하고 cygwin으로 컴파일한 후, 임베디드 리눅스 보드로 복사해서 실행하는 것이죠. 이래서 가상 PC를 권하게 됩니다. 무거워도 리눅스를 제대로 사용할 수 있기 때문이죠.

방법 4: coLinux

그렇다면 가벼우면서도 리눅스다운 리눅스를 돌리는 방법이 없을까요? 있습니다. coLinux를 사용하면 됩니다. coLinux에서는 fork() 함수를 사용하는 프로그램을 실행할 수 있습니다. 공유 메모리도 잘 되고 VNC를 이용해야 하지만, X-Windows를 실행할 수 있는 것을 보면 아마도 대부분의 리눅스 C 함수를 사용할 수 있는 것 같아요.

즉, 윈도우 PC에서 리눅스 프로그램 코딩과 커파일·실행·디버깅을 할 수 있습니다. 또는 X-Windows로 윈도우에서 리눅스용 애플리케이션을 실행할 수 있습니다.

한동안 coLinux로 리눅스 프로그램을 개발했는데, 사양이 낮은 PC에서도 쾌적하게 작업할 수 있었습니다. open source라서 부담도 적은데요, 마지막 뉴삭 2014년에서 멈춘 것을 보면 아쉽게도 지금은 업그레이드가 예전처럼 활발히 진행되지 않는 것 같아요.

더욱 안타까운 것은 x64 윈도우에서는 실행이 안 된다는 점입니다. coLinux FAQ의 내용 중 언급되어 있는데요, 64비트용 coLinux를 찾는 분이 적지 않은 것 같은데 과연 나올지 모르겠네요.

추천 방법은?

그렇다면 추천 방법은? PC 사양이 높다면 VMware·VirtualBox를 이용한 가상 PC, PC 사양이 낮은 32비트 XP·비스타라면 coLinux, PC 사양이 매우 낮다면 cygwin을 추천합니다.

이중에 강추 방법은 역시 가상 PC를 이용하는 것입니다. 윈도우 PC에서 리눅스를 가볍게 돌릴 수 있는 것은 coLinux이지만, 64비트용이 없고 32비트 PC라고 하더라도 설치할 때부터 고생할 수 있습니다. X Window를 띄울 수 있어도 VNC Server를 이용하는 것이라 가상 PC의 리눅스만큼 편하지 않습니다.

VMware·VirtualBox의 가상 PC를 사용하는 방법은 다른 방법에 비해 마음이 편합니다. 다른 방법과 달리 시스템 구성을 맞추기 위해 신경 쓸 일이 없습니다. WinPCap을 설치해서 가상 PC가 사용할 네트워크 카드를 만들 필요 없고, X Window를 사용하기 위해 VNC Viewer를 실행할 필요도 없습니다. 평소 사용하던 습관대로 PC처럼 사용하면 됩니다.

SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.