}

블로그 소개


*여러분들의 따듯한 댓글은 5%, 팔로우는 10% 블로그 포스팅 속도와 퀄리티를 높여줍니다.*

프로필

팔로우 해주시면 포스트할 때 큰 힘이 됩니다!!! 사실 저도 이 팔로우가 무슨 기능이 있는지는 모르겠습니다만, 팔로우 수가 늘면 '날 응원해주는 사람들이 있구나' 생각이 들어서 큰 힘이 됩니다.

팔로어

다른 페이지로 이동


리눅스 독학 페이지 운영체제 독학 페이지 네트워크 독학 페이지 시스템 해킹 하드웨어 독학 페이지 프로그래밍 독학 페이지 보안 페이지

오스 페이지 다이어트 정보 페이지 게임 정보 페이지 인생 꿀팁


****사진을 클릭하시면 페이지로 이동할 수 있습니다!****

<===***===↓↓↓You can use translate using chrome ↓↓↓===***===>

2023년 9월 4일 월요일

리눅스를 배워야하는 이유 매우 자세히!!!

안녕하세요~! 마무입니다. 오늘은 컴퓨터 직종으로 가려면 거의 필수로 알고 다룰 줄 알아야하는 리눅스, 그 '리눅스를 사용하는 이유', '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"를 사용할 겁니다.

물론 분명 이런 의문이 들겁니다.

'아니... Centos를 공부하는 건 좋지만, 요즘 우분투도 많이 쓴다던데.. 그러면 둘 다 공부해야 하는 거 아니야? 너무 귀찮은데...'

라고 말이죠.

너무 걱정마세요~ 물론 당연히 우분투랑 Centos(Redhat)은 다른 부분이 좀 있긴합니다만, 정말 대부분의 조작용 명령어는 똑같습니다.(디렉토리 내 이동, 파일 생성 및 제거, 권한 부여, 대부분의 디렉토리등등)

그렇기에 Centos든 우분투든, 특정 리눅스를 사용할 줄 아는 사람은 다른 리눅스도 조금만 공부하면 그냥 바로 사용이 가능합니다.

또한 "레드햇(Redhat)"과 "Centos"가 어떻게 완전히 똑같을 수 있나 의문이 생기실텐데요, 그 부분은 위에서 언급한 "유닉스, 리눅스, 라이센스 역사 총 정리 포스트"를 보시면 이해가 될 겁니다.

자, 다시 본론으로 돌아와 그럼 왜 우리가 익숙한 윈도우만 쓰면 되지 왜 낯선 리눅스를 배워야 하느냐? 그것을 설명하기 위해선 제일 먼저 "GUI, TUI , CLI" 개념을 알아둬야 합니다.


2. GUI , TUI , CLI란


대다수의 사람들이 사용하는 윈도우는 "GUI"에 특화된 "운영체제"입니다.
그리고 리눅스는 "TUI 및 CLI"에 특화된 "운영체제"죠

여기서 오해하시면 안되는게 어디까지나 "특화" 됐다는 겁니다. 그래서 윈도우도 당연히 TUICLI를 쓸 수 있고 리눅스도 GUI를 쓸 수 있어요

GUI(Graphic User Interface) : 그래픽(시각적인 매체로), 유저(가), 인터페이스(상호작용 하는 것)

쉽게 말해서 마우스로 드래그, 클릭 한다거나 및 프로그램이 아이콘으로 표현돼죠?
그런 걸 말하는 겁니다.

TUI(Text User Interface) : 텍스트(글로) , 유저(가) , 인터페이스(상호작용 하는 것)

CLI(Command Line Interface) : 커맨드(명령어를 칠), 라인(줄이 있는), 인터페이스(상호작용 하는 것)

GUI란 건 대충 뭔지 알겠는데 TUI와 CLI가 뭔지는 도저히 감이 안잡히실 겁니다.

먼저 CLI의 대표적 예시론 윈도우의 "cmd, 파워쉘" 및 리눅스의 "터미널(bash, tsh, sh, csh 등등)"이 있습니다


윈도우 cmd
                                                  리눅스 터미널

위에 설명을 했던 것 처럼 명령어를 칠 수 있는 줄이 있죠? 

리눅스 터미널에 명령어 'ls'를 치고 엔터를 쳤을 때 밑에 나온 여러 영어들이 바로 결과입니다.

이처럼 "CLI"는 운영체제(정확히는 쉘)가 가지고 있는 특정 "명령어"를 통하여 운영체제를
조작할 수 있는 환경을 말합니다.

반면에 TUI의 대표적 예시는 리눅스의 vi나, 바이오스가 있습니다.


           리눅스의 vi 

           바이오스

TUI인 리눅스의 vi에선 아까 CLI와 같이 명령어 "ls"를 엔터를 쳐도
그냥 다음줄로 넘어갈 뿐 어떤 결과가 나타나지 않습니다.

이런 리눅스의 vi는 메모장과 다를바 없어보이죠? 실제로도 활용면에선 차이가 없다고 볼 수 있습니다. 

하지만 사용할 때 매우 큰 차이가 있는데요, 바로 메모장은 GUI구현이라 마우스로 클릭하면서 줄을 바꿀 수 있지만

이 TUI인 vi는 오직 키보드로만 컨트롤 할 수 있습니다.
그래서 리눅스 vi에 글을 작성하고 싶을 땐 "i" 나 "insert"키를 누르고, 저장하고 싶거나 나가고 싶을 땐 "esc"를 누른뒤 :wq를 해야하죠

사실 이 내용은 앞으로 리눅스의 vi에서 배울 내용으로 벌써부터 귀찮아 보일텐데~~
네, 귀찮아요 하지만  필요한 것이니 억지로 배우세요 ㅎ(제가 아주 쉽게 설명한 vi 포스트가 있으니 그걸 참고하시면 됩니다.)

네? 저기 vi라는 사진에서 보이는 오른쪽 상단의 x를 누르면 나가지는 거 아니냐고요?

... 맞습니다 나가집니다..

하지만!! 그건 vi를 GUI로 컨트롤 한 게 아닌, 현재 저 리눅스 vi를 GUI환경에서 구현한 것이고 닫는 것은 정확히 말하자면 'VI' 프로세스가 아닌 '터미널'이기 때문입니다.
즉 저 x 버튼은 vi 프로세스를 실행중인 터미널을 닫는 것이죠.

저희는 나중에 훗날 실무에서 원격 접속할 때 가장 많이 사용하는 putty란 원격 접속 무료 프로그램을 이용해 리눅스를 사용해 볼 것인데, 이 putty에서 vi를 사용 해보면 제대로 TUI의 특성을 제대로 느낄 겁니다.

쉽게 정리하자면

GUI : 마우스 ,키보드 사용가능

CLI : 키보드와 명령어 사용가능

TUI : 키보드만 사용가능



3. 리눅스를 배워야 하는 이유 


여기서 또 의문이 들죠, '왜 GUI가 특화된 윈도우 왜 안씀? TUI CLI가 뭔지 알겠는데
그걸 덮어버릴 정도로 GUI가 좋잖슴'

... 맞아요 GUI의 장점이 솔직히 TUI , CLI의 장점을 모두 덮어버릴 정도로 압도적이긴 하죠
그래서 GUI에 특화된 윈도우가 이 세상 PC의 표준 운영체제가 될 정도니까요~

그럼 리눅스 왜 쓰냐?


1. 공짜


리눅스가 공짜기 때문입니다.
네? 윈도우 10도 이제 공짜라고요?(과거 기준)

그건 유저들이 개인일 경우 사용할 수 있는 버전 windows 10 home이고요

실제로 이익을 창출하는 회사나, 서버는 윈도우를 사용할 시 windows 10 pro를 사용해야하며 회사원 하나의 컴퓨터 당 한 개씩 사야 하니.. 그걸 다 따지면 액수가 장난 아니겠죠?

https://www.microsoft.com/ko-kr/p/windows-10-pro/df77x4d43rkt?activetab=pivot%3aoverviewtab

위 사이트에 들어가면 윈도우 프로 가격이 나옵니다.

자 다시 본론으로 돌아가서 리눅스는 공짜기 때문에 회사나, 서버에서 사용할 때 많은 금액을 아낄 수 있습니다.

또한 학생들이 인베디드 머신 같은 것을 개발할 때도 리눅스가 공짜라 정말 좋죠.

사실 이렇게 말해도, '공짜'라는 개념이 왜 그렇게 큰지 아직 와닿지 않으실 겁니다.(저도 그랬었으니까요 ㅎㅎ..) 

이 공짜 개념이 왜 큰지 다른 예시를 들자면, 현재 컴퓨터 계열은 대량의 컴퓨터들을 가상화로 묶어 슈퍼컴퓨터 구현 또는 클라우드 서비스용 서버를 만들어(인터넷을 통해 서버 컴퓨터를 이용하게 해주는 서비스를 말합니다) 사용하거든요.

왜냐면 정말 좋은 하드웨어들을 이용해 슈퍼컴퓨터 하나 만드는 것보다적당한 성능의 컴퓨터 수백 대를 가상화로 하나의 컴퓨터로 만들어 병렬 계산하는 게 성능이나 보수적으로 더 좋기 때문이죠.

그런데 유로인 운영체제(Windows)는, 클라우드 컴퓨터 또는 슈퍼컴퓨터를 이루고 있는 하나하나의 머신마다 돈을 지불해야 합니다. 그러면 사실상 정말 상상을 초월하게 돈이 깨지거든요.

그렇기 때문에 현재는 무료 운영체제, 그 중 역사가 깊으며 서버 운영체제로 유명한 '리눅스'를 사용하는 것이 대세인 겁니다.

물론 이렇게 말해도, 아무래도 리눅스를 처음 공부하시는 분들은 학생이라 그 필요성을 잘 모르실 겁니다.. 

하지만!! 이후 서버를 무조건 이용하는 회사에 들어가거나클라우드 서비스를 이용해 토이 프로젝트를 만들어 보게 되시면 왜 리눅스를 공부해야 하는지 실감하게 됩니다!

왜냐면!!! 앞서 말했듯이 대부분의 클라우드 서버는 리눅스 운영체제로 만들어 사용되며, 또한 인터넷으로 원격 접속을 하기에, 빠른 반응을 위해 대부분 위에서 말한 'CLI'로 조작을 하기 때문이죠. (원격 접속 GUI을 하면 실시간으로 서로의 화면을 동기화 해야하기 때문에 높은 화질일 수록 버벅이며 느립니다.)


2. 가볍고, 안전하다


무게가 가볍다는게 아니란 건 다들 아실겁니다.

윈도우 10는 기본적으로 정~~~~말 많은 서비스나 프로그램이 기본적으로 깔려있습니다.
유저들이 사용하지 않는 기능도 참 많죠 그리고 GUI로 구현하기 때문에 자원도 훨씬 많이 잡아먹습니다.

윈도우 10를 포맷하고 다시 설치하는 걸 해보신 분들은 다들 아실겁니다 엄청 오래 걸리는걸 말이죠

그에 반해서 리눅스는 설치해보면 아시겠지만, 정말 허무할 정도로 당연히 있을 줄 알았던 프로그램이나 서비스가 없습니다. 그래서 필요할 때마다 다운을 해야하죠

이런식으로 운영체제가 무겁냐 가볍냐가 얼마나 중요하냐면, 무엇보다 안전이 중요한 
"서버"에서 윈도우 운영체제를 사용한다는 건 취약한 터지는 폭탄을 가지고 있는 것과 마찬가지입니다.

윈도우는 위에서 언급했듯이 정~~~말 많은 서비스가 있습니다. 그 말은 즉슨 그 많은 서비스 하나하나에 많은 취약점이 있을 수 있다는 겁니다.

비유를 하자면 막아야 할 문이 수천 개가 있다고 보시면 됩니다. 문이 그렇게 많으니 해커들이 침투할 만한 빈틈이 더 많겠죠?

그리고 많은 서비스 때문에 버그도 많습니다 운영체제쪽을 많이 공부를 해보신 분들은 다들 하나같이 윈도우를 욕합니다. (저희 교수님들도..) 너무 무겁고 버그가 많기 때문이죠.
(물론 빌게이츠를 싫어하시는 것도 이유긴 함)

하지만 리눅스는 유닉스 운영체제 다음으로 오래된 운영체제입니다(반전이죠?)

우리가 많이 사용하는 윈도우는 이제 고작 35년이 됐습니다, 하지만 유닉스는 대략 70년이 되어가죠! 거의 2배란 긴 시간동안 발전해 왔고! 또한 그만큼 안정성이 높죠!

?? 그럼 리눅스는요? 

리눅스는 사실 의미있는 첫 배포판 "SLS"이 나온 시기가 "윈도우"와 비슷합니다만!
리눅스는 애초 유닉스를 대용하기 위해 만든 운영체제로, 유닉스와 기능적으로 많이 유사합니다. 명령어도, 프로그램도 거의 유사한게 많죠!

그래서 그냥 유닉스의 역사 70년은 리눅스의 역사라고 봐도 됩니다. 

또한 "리눅스"는 무료 소프트웨어로서 배포판도 수 없이 많고, 전세계 수 많은 사람들이 나서서 커널을 수정하고 관리하며 버그를 찾아내지만"윈도우"는 마이크로소프트사의 운영체제라 회사 자체만으로 버그를 찾는 건 아무래도 리눅스보다 더 힘듭니다.

물론 자기들 윈도우가 취약하다는 걸 자기스스로도 잘 알기 때문에 서버용인 윈도우 운영체제를 따로 팝니다. 하지만 비싸다는 것...(그렇다고 안전성이 높냐? 그것도 쫌...)

그래서 지금도 대부분의 서버들은 유닉스나 리눅스를 서버용 운영체제로 사용하는 겁니다.


3. 작업속도가 빠르다


이 빠르다는 것은 상대적인 것으로 TUI나 CLI환경일 때 말하는 것입니다
리눅스를 사용하는 사람들은 대부분 CLI환경을 사용하는데요, CLI환경이 익숙하지 않았을 땐 GUI보다 느리지만 익숙해지면 GUI보다 훠어얼씬 빠르게 작업을 하실 수 있습니다.

서버일 경우 자원을 효율적으로 쓰는 것이 매우 중요한데(수 많은 사람들이 접속을 하니까)
이 때 CLI환경으로 작업할 시 훨씬 자원을 아낄 수 있죠

여러분이 생각하는 해커?의 느낌을 여기서 느껴볼 수 있습니다.
뭔가 키보드로 타다다다닥 빠른 속도로 작업하는 것을 말이죠(물론 사람마다 차이가 심함)

또한 'GUI'라는 것은 우리가 알다시피 마우스로 '클릭'하는 게 주로 사용하는 방법입니다. 
하지만 'CLI'라는 것은 애초 명령어로 컴퓨터로 조작하기 때문에, 해야할 작업들을 명령어로
주루룩 적어놨다가 한번에 실행시키는 등 '자동화'가 가능합니다.
(물론 그래픽 작업, 영상 편집 등처럼 GUI에서만 가능한 작업은 자동화가 안되지만요)

물론 저 위에서 설명했다시피 윈도우도 cmd, powershell이란 CLI가 있기에 자동화가 됩니다.
하지만 역시 개인적으로 그렇고 리눅스가 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


도움이 되셨다면 따뜻한 댓글 및 팔로우 클릭은 저에게 큰 힘이 돼 포스트 퀄리티 향상에 도움이 됩니다!! 그럼 다음에 더 좋은 포스트로 찾아뵙겠습니다!

댓글 4개:

  1. 오랜만에 방문했는데 새로운 글이 있어 반가워서 글 남겨요! 이전에 쓰신글들은 지금도 많은 도움이 되고있어요 감사합니다!

    답글삭제
    답글
    1. 진짜 개인적인 일로 매우 바빠서 그동안 포스트 못했었는데, 그럼에도 도움이 됐다니 정말 다행입니다. 저도 오랜만에 댓글 받아서 되게 기분이 신기하고 좋네요 ㅎㅎ 따뜻한 댓글 정말 감사합니다!

      삭제
  2. 그 어떤 책보다도 쉽게 잘 이해시켜주시네요! 진정한 고수는 쉬운말로 한다는데 마무님은 초고수신가봐요 ㅎㅎ 좋은글들 모두 감사합니다 꼼꼼하게 읽고 제걸로 만들게요 항상 좋은일만 가득하시길

    답글삭제
    답글
    1. 헛... 너무나 과분한 칭찬 감사합니다!!! 개인적 사정으로 시간이 없어 요즘 블로그 관리를 못하고 있지만, 가끔 들어올 때마다 이런 댓글을 보면 빨리 관리하고 싶단 생각이 듭니다! 감사합니다~

      삭제

#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!

#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.

#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!