안녕하세요~! 마무입니다. 오늘은 컴퓨터 직종으로 가려면 거의 필수로 알고 다룰 줄 알아야하는 리눅스, 그 '리눅스를 사용하는 이유', 'CLI, TUI, GUI', 'VMware란', '가상머신이란', '리눅스를 배우는 이유'를 매우 자세히 설명해드리겠습니다!
-----목차-----
1. 리눅스란
2. GUI, CLI, TUI란
3. 리눅스를 배워야 하는 이유
4. VMware 및 가상머신이란
---------------
여기에 없는 다른 정보들은
리눅스 독학 페이지 : https://mamu2830.blogspot.com/p/blog-page_13.html
네트워크 독학 페이지: https://mamu2830.blogspot.com/p/blog-page_15.html
운영체제 독학 페이지:https://mamu2830.blogspot.com/p/blog-page_14.html
에서 찾아보세요!
1. 리눅스란?
사실 리눅스를 처음 배우려는 사람들 대다수는 진로를 컴퓨터쪽으로 생각하는 분들이고, 어디선가 분명 '리눅스를 배워둬야 한다~', '리눅스를 배우면 좋다~' 이런말을 막연하게
들었기에 배우려고 한거라 리눅스가 도대체 뭔지 정확히 모르는 분들이 있을거라 생각합니다.(
뭔가를 배울 때 배움의 목적을 알아야 제대로 배운 활용할 수 있으니 먼저 알려드리겠습니다
유닉스, 리눅스, 라이센스 역사 총정리 포스트 : https://mamu2830.blogspot.com/2019/10/blog-post.html
리눅스는 어렵게 생각할 거 없습니다. 그냥 "운영체제"중 하나입니다.
저희의 대다수는 이미 "window 7, 10"을 사용하고 있지 않습니까?
저희가 자연스럽게 사용하던 윈도우가 바로 "운영체제" 이며 이것은 컴퓨터를 사용할 때 필수라고 할 수 있는 소프트웨어죠.
왜냐하면 우리가 컴퓨터를 떠올리면 자연스럽게 생각나는 파일 생성, 사용, 메모리에 데이터 올리고, CPU에 특정 데이터 연산을 맡기기, 마우스 이동, 클릭, 네트워크 설정 등등.... 이 모~~든게 전부 운영체제가 있어야만 가능한 일이기 때문입니다.
참고로 리눅스라는 것은 또 한 가지가 아니라 여러가지 배포판이 있습니다.
"센토스", "우분투", "칼리", "레드햇" 등등.. 그리고 그 배포판마다 장점을 가지고 있죠.
여기서 보통 "우분투"는 원래 개인PC용(macOS같은)으로 사용하기 좋아 유명했지만 요즘은 서버 운영체제로도 많이 사용되고 있으며, "칼리"는 해킹 툴이 많이 있어 해킹 공부할 때 사용합니다.
이 중에서 자기 목적에 따라 배포판을 다운 받아 사용하시면 됩니다만, 저희는 그 중 "서버용 리눅스"로서 많이 사용하고, 리눅스마스터 자격증에 제일 비중 높게 나오는 "레드햇"과 완전히 같은 "Centos"를 사용할 겁니다.
또한 "레드햇(Redhat)"과 "Centos"가 어떻게 완전히 똑같을 수 있나 의문이 생기실텐데요, 그 부분은 위에서 언급한 "유닉스, 리눅스, 라이센스 역사 총 정리 포스트"를 보시면 이해가 될 겁니다.
자, 다시 본론으로 돌아와 그럼 왜 우리가 익숙한 윈도우만 쓰면 되지 왜 낯선 리눅스를 배워야 하느냐? 그것을 설명하기 위해선 제일 먼저 "GUI, TUI , CLI" 개념을 알아둬야 합니다.
2. GUI , TUI , CLI란
대다수의 사람들이 사용하는 윈도우는 "GUI"에 특화된 "운영체제"입니다.
그리고 리눅스는 "TUI 및 CLI"에 특화된 "운영체제"죠
여기서 오해하시면 안되는게 어디까지나 "특화" 됐다는 겁니다. 그래서 윈도우도 당연히 TUI, CLI를 쓸 수 있고 리눅스도 GUI를 쓸 수 있어요
GUI(Graphic User Interface) : 그래픽(시각적인 매체로), 유저(가), 인터페이스(상호작용 하는 것)
쉽게 말해서 마우스로 드래그, 클릭 한다거나 및 프로그램이 아이콘으로 표현돼죠?
그런 걸 말하는 겁니다.
TUI(Text User Interface) : 텍스트(글로) , 유저(가) , 인터페이스(상호작용 하는 것)
CLI(Command Line Interface) : 커맨드(명령어를 칠), 라인(줄이 있는), 인터페이스(상호작용 하는 것)
GUI란 건 대충 뭔지 알겠는데 TUI와 CLI가 뭔지는 도저히 감이 안잡히실 겁니다.
먼저 CLI의 대표적 예시론 윈도우의 "cmd, 파워쉘" 및 리눅스의 "터미널(bash, tsh, sh, csh 등등)"이 있습니다
위에 설명을 했던 것 처럼 명령어를 칠 수 있는 줄이 있죠?
이처럼 "CLI"는 운영체제(정확히는 쉘)가 가지고 있는 특정 "명령어"를 통하여 운영체제를
조작할 수 있는 환경을 말합니다.
반면에 TUI의 대표적 예시는 리눅스의 vi나, 바이오스가 있습니다.
리눅스의 vi
바이오스
TUI인 리눅스의 vi에선 아까 CLI와 같이 명령어 "ls"를 엔터를 쳐도
그냥 다음줄로 넘어갈 뿐 어떤 결과가 나타나지 않습니다.
이런 리눅스의 vi는 메모장과 다를바 없어보이죠? 실제로도 활용면에선 차이가 없다고 볼 수 있습니다.
이 TUI인 vi는 오직 키보드로만 컨트롤 할 수 있습니다.
그래서 리눅스 vi에 글을 작성하고 싶을 땐 "i" 나 "insert"키를 누르고, 저장하고 싶거나 나가고 싶을 땐 "esc"를 누른뒤 :wq를 해야하죠
사실 이 내용은 앞으로 리눅스의 vi에서 배울 내용으로 벌써부터 귀찮아 보일텐데~~
네, 귀찮아요 하지만 꼭 필요한 것이니 억지로 배우세요 ㅎ(제가 아주 쉽게 설명한 vi 포스트가 있으니 그걸 참고하시면 됩니다.)
네? 저기 vi라는 사진에서 보이는 오른쪽 상단의 x를 누르면 나가지는 거 아니냐고요?
...
저희는 나중에 훗날 실무에서 원격 접속할 때 가장 많이 사용하는 putty란 원격 접속 무료 프로그램을 이용해 리눅스를 사용해 볼 것인데, 이 putty에서 vi를 사용 해보면 제대로 TUI의 특성을 제대로 느낄 겁니다.
쉽게 정리하자면
GUI : 마우스 ,키보드 사용가능
CLI : 키보드와 명령어 사용가능
TUI : 키보드만 사용가능
3. 리눅스를 배워야 하는 이유
여기서 또 의문이 들죠, '왜 GUI가 특화된 윈도우 왜 안씀? TUI CLI가 뭔지 알겠는데
그걸 덮어버릴 정도로 GUI가 좋잖슴'
... 맞아요 GUI의 장점이 솔직히 TUI , CLI의 장점을 모두 덮어버릴 정도로 압도적이긴 하죠
그럼 리눅스 왜 쓰냐?
1. 공짜
리눅스가 공짜기 때문입니다.
네? 윈도우 10도 이제 공짜라고요?(과거 기준)
그건 유저들이 개인일 경우 사용할 수 있는 버전 windows 10 home이고요
실제로 이익을 창출하는 회사나, 서버는 윈도우를 사용할 시 windows 10 pro를 사용해야하며 회사원 하나의 컴퓨터 당 한 개씩 사야 하니.. 그걸 다 따지면 액수가 장난 아니겠죠?
https://www.microsoft.com/ko-kr/p/windows-10-pro/df77x4d43rkt?activetab=pivot%3aoverviewtab
자 다시 본론으로 돌아가서 리눅스는 공짜기 때문에 회사나, 서버에서 사용할 때 많은 금액을 아낄 수 있습니다.
또한 학생들이 인베디드 머신 같은 것을 개발할 때도 리눅스가 공짜라 정말 좋죠.
2. 가볍고, 안전하다
무게가 가볍다는게 아니란 건 다들 아실겁니다.
윈도우 10는 기본적으로 정~~~~말 많은 서비스나 프로그램이 기본적으로 깔려있습니다.
유저들이 사용하지 않는 기능도 참 많죠 그리고 GUI로 구현하기 때문에 자원도 훨씬 많이 잡아먹습니다.
윈도우 10를 포맷하고 다시 설치하는 걸 해보신 분들은 다들 아실겁니다 엄청 오래 걸리는걸 말이죠
그에 반해서 리눅스는 설치해보면 아시겠지만, 정말 허무할 정도로 당연히 있을 줄 알았던 프로그램이나 서비스가 없습니다. 그래서 필요할 때마다 다운을 해야하죠
이런식으로 운영체제가 무겁냐 가볍냐가 얼마나 중요하냐면, 무엇보다 안전이 중요한
"서버"에서 윈도우 운영체제를 사용한다는 건 취약한 터지는 폭탄을 가지고 있는 것과 마찬가지입니다.
윈도우는 위에서 언급했듯이 정~~~말 많은 서비스가 있습니다. 그 말은 즉슨 그 많은 서비스 하나하나에 많은 취약점이 있을 수 있다는 겁니다.
비유를 하자면 막아야 할 문이 수천 개가 있다고 보시면 됩니다. 문이 그렇게 많으니 해커들이 침투할 만한 빈틈이 더 많겠죠?
그리고 많은 서비스 때문에 버그도 많습니다 운영체제쪽을 많이 공부를 해보신 분들은 다들 하나같이 윈도우를 욕합니다. (저희 교수님들도..) 너무 무겁고 버그가 많기 때문이죠.
(물론 빌게이츠를 싫어하시는 것도 이유긴 함)
하지만 리눅스는 유닉스 운영체제 다음으로 오래된 운영체제입니다(반전이죠?)
우리가 많이 사용하는 윈도우는 이제 고작 35년이 됐습니다, 하지만 유닉스는 대략 70년이 되어가죠! 거의 2배란 긴 시간동안 발전해 왔고! 또한 그만큼 안정성이 높죠!
?? 그럼 리눅스는요?
리눅스는 사실 의미있는 첫 배포판 "SLS"이 나온 시기가 "윈도우"와 비슷합니다만!
리눅스는 애초 유닉스를 대용하기 위해 만든 운영체제로, 유닉스와 기능적으로 많이 유사합니다. 명령어도, 프로그램도 거의 유사한게 많죠!
그래서 그냥 유닉스의 역사 70년은 리눅스의 역사라고 봐도 됩니다.
또한 "리눅스"는 무료 소프트웨어로서 배포판도 수 없이 많고, 전세계 수 많은 사람들이 나서서 커널을 수정하고 관리하며 버그를 찾아내지만, "윈도우"는 마이크로소프트사의 운영체제라 회사 자체만으로 버그를 찾는 건 아무래도 리눅스보다 더 힘듭니다.
물론 자기들 윈도우가 취약하다는 걸 자기스스로도 잘 알기 때문에 서버용인 윈도우 운영체제를 따로 팝니다. 하지만 비싸다는 것...(그렇다고 안전성이 높냐? 그것도 쫌...)
그래서 지금도 대부분의 서버들은 유닉스나 리눅스를 서버용 운영체제로 사용하는 겁니다.
3. 작업속도가 빠르다
이 빠르다는 것은 상대적인 것으로 TUI나 CLI환경일 때 말하는 것입니다
리눅스를 사용하는 사람들은 대부분 CLI환경을 사용하는데요, CLI환경이 익숙하지 않았을 땐 GUI보다 느리지만 익숙해지면 GUI보다 훠어얼씬 빠르게 작업을 하실 수 있습니다.
서버일 경우 자원을 효율적으로 쓰는 것이 매우 중요한데(수 많은 사람들이 접속을 하니까)
이 때 CLI환경으로 작업할 시 훨씬 자원을 아낄 수 있죠
여러분이 생각하는 해커?의 느낌을 여기서 느껴볼 수 있습니다.
뭔가 키보드로 타다다다닥 빠른 속도로 작업하는 것을 말이죠(물론 사람마다 차이가 심함)
이것 외에도 뭐 '유닉스'란 운영체제와 매우 매우 비슷하다 등 다른 장점들이 더 있습니다.
4. VMware와 가상머신이란?
가상 머신(Virtual Machine ,VM)이라는 것은
자신의 컴퓨터안에서 마치 또 다른 컴퓨터가 있는 것 처럼 구현해 놓는 걸 의미합니다
진짜 자신의 컴퓨터의 자원을 사용해서 소프트웨어적으로 컴퓨터를 구현한거죠
VMware는 그런 가상머신을 만들고 관리해주는 프로그램 중 하나 입니다.
그렇기에 가상의 컴퓨터를 만들 때도
운영체제가 필요하며, 메모리설정부터 디스크 크기까지 설정해줘야 합니다.
위 사진을 보시면 화면이 2개죠?
진짜 제 컴퓨터 윈도우 화면과 VMware에서 구현한 리눅스 화면입니다.
제가 아까 본 컴퓨터의 자원을 이용해서 VM을 구현한다 했었죠?
제 컴퓨터의 메모리는 16기가고 원래 사용하던
"master"란 이름의 리눅스 운영체제 VM에 메모리 3기가를 할당했습니다
그럼 VMware의 master를 켰을 때 실제로 메모리를 사용하겠죠?
리눅스를 안켰을 때
리눅스를 킬 경우
리눅스를 켰을 때
이렇게 실제로 메모리를 할당하는 걸 볼 수 있습니다.
자 이번 포스트에서는 이렇게 실제로 리눅스를 배우기 전, 우리가 왜 그렇게 리눅스를 공부하는지, 실무에서 왜 쓰이는 지, VMware 및 가상머신이란 무엇인지 자세히 알아봤습니다!
본격적으로 다음 포스트에서 VMware 또는 VirtualBox를 깔아서 리눅스를 설치해보겠습니다!
나는 유로 버전, 무료 버전 나뉜 거 신경 안 써!
---> vmware 설치편: https://mamu2830.blogspot.com/2019/07/vmware.html
나는 애초 무료인 걸 쓸래!
---> virtualBox 설치편: https://mamu2830.blogspot.com/2020/04/virtual-box.html
도움이 되셨다면 따뜻한 댓글 및 팔로우 클릭은 저에게 큰 힘이 돼 포스트 퀄리티 향상에 도움이 됩니다!! 그럼 다음에 더 좋은 포스트로 찾아뵙겠습니다!
오랜만에 방문했는데 새로운 글이 있어 반가워서 글 남겨요! 이전에 쓰신글들은 지금도 많은 도움이 되고있어요 감사합니다!
답글삭제진짜 개인적인 일로 매우 바빠서 그동안 포스트 못했었는데, 그럼에도 도움이 됐다니 정말 다행입니다. 저도 오랜만에 댓글 받아서 되게 기분이 신기하고 좋네요 ㅎㅎ 따뜻한 댓글 정말 감사합니다!
삭제그 어떤 책보다도 쉽게 잘 이해시켜주시네요! 진정한 고수는 쉬운말로 한다는데 마무님은 초고수신가봐요 ㅎㅎ 좋은글들 모두 감사합니다 꼼꼼하게 읽고 제걸로 만들게요 항상 좋은일만 가득하시길
답글삭제헛... 너무나 과분한 칭찬 감사합니다!!! 개인적 사정으로 시간이 없어 요즘 블로그 관리를 못하고 있지만, 가끔 들어올 때마다 이런 댓글을 보면 빨리 관리하고 싶단 생각이 듭니다! 감사합니다~
삭제