가상 머신?
가상 머신이란...
컴퓨팅 환경 (자원관리나 기계장치와의 통신 등)을 소프트웨어로 구현해 놓은 것을 말한다
컴퓨터 시스템을 에뮬레이션, 가상화하는 것을 뜻한다....
라고 위키 백과에서 소개하고 있습니다
원래 하나의 기계장치를 하나의 운영체제가 장악하여 그 기계장치들과 통신하고
자원을 관리하면서 소프트웨어를 실행시키거나 작업을 하지만
가상머신은 그 하나의 기계장치 안에서 여러 개의 독립적인 운영체제를 가진 컴퓨터를 사용할 수 있다는 것입니다
하이퍼바이저라는 친구가 가상환경을 구동할 수 있게 도와주는데 원래 컴퓨터 (호스트 pc)의 자원을 공유하며
실행되는 가상 컴퓨터 (게스트 pc) 이 둘이 독립된 환경에서 서로 영향을 주지 않고 실행될 수 있게 해줍니다
다른 컴퓨터 환경을 위해서 추가로 장치와 운영체제를 구매할 필요가 없다는 것이지요
그렇다 보니 다양한 플랫폼에서 구동될 수 있게 개발한 프로그램의 확인이라든지
위험해 보이는 파일을 열어본다든지, 일시적으로 무언가를 실험해 보고 싶은 환경을 구축한다든지 등
다양한 상황에서 유용하게 사용될 수 있습니다
저는 주로 고전게임 사이트들에서 많이 봤었는데 귀찮아 보여서 여태 안 써 보고 피하기만 하다가
결국 42seoul에 와서 맞이하게 돼버렸네요
어렸을 때 자주 사용했던 rom 게임 에뮬레이터도 가상머신인 건가...? 하는 의문이 들어 찾아보니
디테일하게 파고들면 차이점이 있긴 한가 봅니다
가상화는 하나의 물리적 컴퓨터를 여러 가상 컴퓨터로 분할하는 느낌이라면
에뮬레이터는 한 시스템의 속성을 다른 시스템으로 모방하는 환경을 만든다고 하네요
콘솔 이식작 게임들이 최신 컴퓨터로 구동해도 같은 데서 렉 걸리는 이유를 알 것 같습니다...
주로 살펴봤던 설정들과 서비스들
우리가 과제에서 공부하며 설정했던 서비스들을 살펴보면
비밀번호 정책, sudo 정책, root 접속 제한, 보안 모듈 등 대부분이 보안과 관련되어 있다는 걸 알 수 있습니다
단순 개인 용도의 가상머신을 구축하는 것이 아니라 (+리눅스로 서버 구축) 도 포함되어 있어서 가 아닐까 싶습니다
cron을 이용하여 주기적인 작업을 수행할 때 적어줬던 명령어가
해당 서버의 모든 유저들에게 메시지를 표시하는 wall 인것을 보면 납득이 가기도 합니다
그래서 한편으로는 두 개의 과제를 하나로 합쳐놓은 느낌도 들기도 합니다
공부해야 할 것이 단순 가상머신, 리눅스 운영체제뿐만 아니라 리눅스 서버까지도 공부하게 되었으니까요
bonus 부분에 있는 word press 로 블로그를 만들어보는 과정에서는 웹서버가 어떤 식으로 돌아가는지
대략적으로나마 감 잡을 수 있게 해주지만 여전히 어렵습니다...
두개로 분리해도 좋았을 것 같은데 왜 하나의 과제로 주어지는지까진 잘 모르겠습니다
GUI vs CLI
전자는 우리가 평소에 사용하는 컴퓨터와 같이 화면이 그래픽으로 구성되어 있는 환경을 뜻하고
후자는 터미널이나 명령 프롬프트처럼 검은 창에 글자만 둥둥 떠다니는 환경을 말합니다
왜 우리 과제에서는 후자인 CLI로 설치하는 경험을 시켰을까요?
그나마 추측하기로는 리눅스와 리눅스 서버에 대해 궁금해서 검색을 하던 도중 발견한
위 두 영상들에서 말하는 대로
'개인 PC로 사용하는 게 아닌 이상 정말 최소한의 기능만 가진 순수 리눅스만 필요할 것이고
그런 환경은 CLI인 경우가 많아서' 라는 생각이 듭니다
영상 내용들이 좀 길긴 하지만 다른 부분들도 재미있는 내용들이 많습니다
회사에서 윈도우 서버 대신 리눅스 서버를 선호하는 이유라든지...
아마 이 때문에 단순 가상머신 구동뿐만 아니라 서버 구축도 경험시키는 게 아닐까 싶습니다
왜 이름이 Born2beRoot일까?
영어 표현 중에 'born to be' 라는 표현이 있다고 합니다
뜻은 '~하기 위해 태어나다' '~할 운명을 타고나다' '천직이다' 등등이라고 하네요
과제를 진행하면서 root와 관련된 보안 설정들을 빡세게 설정해놓고 보면
우리가 가지고 있는 이 머신 외에는 그 누구도 root로 접속할 수 없다는 것을 깨닫게 됩니다
말 그대로 root가 되기 위해 태어난 머신, root가 되기 위한 운명을 타고난 유일무이한 존재가 되는 거죠
우리 컴퓨터에게 You are 'Born to be Root' 라고 말해줄 수 있겠네요
물론 제 개인적인 견해입니다
(써놓고 보니 su를 이용해서 root로 로그인할 수 있을것같습니다...ㅎㅎ;)