리눅스 기초 첫번째 포스팅입니다 (❁´◡`❁)
현재 날짜를 기준으로 제가 리눅스를 만난지 벌써 6개월에 접어들었네요
"엥 리눅스가 뭔데 (•_•)" 했던 날 부터 "리눅스 만질 줄은 알아" 까지 6개월이 걸린거 같아요
아. 그만큼 컴퓨터의 세계는 방대하다는 말입니다.
제가 공부하며 이해한 내용들을 다시금 되새기며 공부하기 위해서 블로그를 작성하게 되었습니다. 이 글은 영국에서부터...
서론이 길었습니다.
> 이번 시간에는 '리눅스란 무엇인가'에 대해서 간단하게 포스팅 해보겠습니다.
리눅스란 ?
👹리눅스 = 운영체제
리눅스는 운영체제입니다.
보통 컴퓨터를 사용 할 때 윈도우의 개념을 생각하면 됩니다.
👹 운영체제 = 하드웨어와 소프트웨어의 중재자
운영체제라는 것은 하드웨어와 소프트웨어를 중간에서 중재해주는 역할을 합니다.
👹 하드웨어 = 물리적인 장비
👹 소프트웨어 = 프로그램들
쉽게 이해하자면 이렇습니다.
하드웨어는 말 그대로 컴퓨터를 구성하는 CPU, Memory, RAM, HDD/SSD, NIC 등등등..
우리가 생각하는 손으로 만질 수 있는 것들을 이야기 합니다.
소프트웨어는 우리가 평소에 사용하는 프로그램들이 다 소프트웨어입니다.
보통 우리가 잘아는 게임이나 엑셀 같은 프로그램들이 '응용 소프트웨어'라는 것에 속합니다.
또 드라이버 라던지 시스템라이브러리 같은 것들을 '시스템 소프트웨어'라고 이야기 합니다.
*운영체제도 소프트웨어에 속합니다.
'설명하래면 정말 많은 양을 설명하게 될 양이지만
이번시간은 리눅스를 위해서 양보합시다 ^_^'
👹 운영체제의 역할
위에서도 이야기 했지만 하드웨어와 소프트웨어 중간에서 중재해주는 역할을 합니다.
👹 어떤 것을 어떻게?
하드웨어와 소프트웨어의 직접적인 연결을 돕습니다. 만약 키보드를 연결한다고 했을 때
어떻게 상호작용 해야하는지 운영체제가 알려줍니다.
하드웨어와 소프트웨어 자원을 효율적으로 관리합니다. 프로그램들이 실행 될 때 자원을
어떻게 나누어 쓸 지에 대해서 결정합니다.
보안을 관리합니다. 시스템의 보안이나 사용자의 권한등을 관리함으로써 보안을 유지 할 수 있습니다.
사용자에게 편리한 인터페이스를 제공합니다. 인터페이스가 있기 때문에 편리하게 컴퓨터를 사용 할 수 있습니다
이정도의 역할 등이 있지만 쉽게 이해하자면
운영체제는 '사용자가 사용하기에 편리한 환경을 만들어 준다'가 핵심이 될 것 같습니다.
이 이상은 운영체제에 대해서 포스팅 할 때 더 자세하게 다루도록 하며 이제 리눅스에 대해서 더 자세히 알아보겠습니다.
자 이제 다시 처음으로 돌아가서 '리눅스란 무엇인가' 에 대해서 드디어 본격적으로 알아보겠습니다.
👹 리눅스 = 운영체제의 한 종류
윈도우, macOS 처럼 우리가 널리 사용하는 운영체제 처럼 리눅스 또한 운영체제 입니다.
👹 리눅스 특징
- 가볍다 / 빠르다
- 오픈소스이다
- 안정성
추려보면 이런 특징을 가지는데요.
리눅스는 저사양 환경에서도 잘 동작할 정도로 가볍습니다.
- 리눅스는 필요한 리소스만 최소한으로 설치해서 사용할 수 있기 때문에 자원을 적게 사용합니다.
예를 들어 서버 환경에서는 그래픽 사용자 인터페이스(GUI)가 필요 없어서 그래픽 자원을 최소화할 수 있습니다.
- 리눅스는 리소스를 적게 쓰기 때문에 시스템 반응 속도가 빠르고 여러 작업을 동시에 할 때도 안정적입니다.
서버환경에서는 이런 점이 매우 중요하기 때문에 리눅스를 매우매우 많이 사용되고 있습니다.
- 리눅스는 오픈소스입니다. 소스 코드가 공개되어 있기 때문에 누구나 수정하고 배포할 수 있습니다.
- 안정성이 뛰어납니다. 리눅스는 시스템이 안정적으로 운영될 수 있도록 설계되어 있어서 서버나 중요한 시스템에서 자주 사용됩니다. 오랜 시간 동안 끄지 않고 안정적으로 작동해야하는 서버환경에서 사용됩니다.
👹 리눅스 구조
리눅스의 구조를 설명해보겠습니다.
크게 3가지를 설명이 되는데요 'Kernel'과 'Shell'이 가장 중요한 개념이 됩니다.
- 커널
- 셸
- 응용프로그램
빠른 이해를 위한 그림 👇
커널 / Kernel
커널은 리눅스의 핵심입니다. 프로세스 관리, 메모리 관리, 파일 시스템 관리, 장치 관리 등 컴퓨터의 모든 자원을 초기화 하고 제어하는 기능을 수행합니다
셸 / Shell
셸은 리눅스에서 사용자 인터페이스 입니다.
컴퓨터언어를 우리가 모르듯이 컴퓨터도 우리의 말을 모릅니다. 때문에 셸은 커널과 사용자 사이에서 '통역사' 같은 역할을 합니다.
응용프로그램
응용프로그램은 아까 위에서 말했던 소프트웨어들입니다. '사용자'가 사용하는 프로그램들이 되겠죠.
셸에게 명령어 입력 => 셸이 컴퓨터 언어로 해석 후 커널에게 전달 => 커널은 명령에 대한 수행 결과를 내놓음 => 셸이 해석
=> 사용자에게 전달(출력)
이런식으로 동작이 이루어집니다.
또한 리눅스는 기본으로 여러가지 Shell 중에서 bashShell을 사용합니다.
다음은 리눅스 배포판 입니다.
배포판을 이야기 하기 전에 배경설명을 해야하는데요. 간단하게만 짚고 넘어가겠습니다.
보통은 리눅스 토발즈가 리눅스를 개발했다고 하는데요. 정확하게는 토발즈는 리눅스 커널을 개발한 것입니다.
커널이 운영체제의 핵심이긴 하지만 커널만으로는 사용자가 운영체제를 활용 할 수 가 없습니다.
이러한 리눅스 커널에 응용 프로그램을 제공하는 것이 바로 GNU 프로젝트 입니다.
👹 GNU 프로젝트
- 리눅스의 발전을 지원하는 비영리 연합체. 자유 소프트웨어 재단.
- 수많은 기업, 대학, 개인이 참여중
- 리눅스 재단에 따르면 두세 달 간격으로 업데이트 버전이 배포되고 있다고 한다.
- 오픈소스이기 때문에 '누구나' 소스와 패치를 다운 가능
리눅스커널 + 응용프로그램 = 운영체제 활용가능
=> 하지만 일반 사용자가 직접 구성하려면 과정이 복잡하다.
때문에 커뮤니티나 여러 기업 등에서 커널과 GNU 응용프로그램을 적절히 구성하여 배포하기 시작한 것이 리눅스 배포판의 시초.
+ GNU 프로젝트는 리처드 스톨만이 리눅스보다 더 이른 시점에 GNU 선언문을 발표하고 재단을 설립했다고 한다.
저작권에 관련된 자유로운 목적을 보장한다고한다.
정보 출처: 시스템&네트워크 우분투 리눅스 / 이종원 지음 / 한빛 아카데미 = 에서 발췌하며 정리했습니다.
👹 리눅스 계통도
크게 레드햇, 데비안, 슬랙웨어 계열로 구분 할 수 있습니다.
각 계열에 따라 명령어는 조금씩 다른데요 크게 다르지않기 때문에 한가지를 공부하고
이외에 것들은 접하면서 익히는게 좋은 방법 같습니다
보통은 Ubuntu / CentOS / Rocky / Redhat 등 많이 쓴다고 하는데 아직 필자는 실무 경험이 없어서 잘 모르지만
CentOS가 서비스 종료되고서는 Rocky 리눅스를 많이 쓴다고 들었습니다. 하지만 각각 사용목적에 따라 사용을 달리하기에
필요한 것을 사용하면 될 것 같습니다.
마치며..O(∩_∩)O
제가 리눅스를 배운지 6개월차에 넘어들면서 느낀 리눅스는 빠르고 안정적며 보안성도 뛰어난 운영체제 였습니다.
활용도 또한 뛰어나 이제는 단순 서버를 뛰어넘어 클라우드 시스템에도 적용되어 많은 기술에 접목이 될 것 같습니다.
명령어를 치다가 손에 익으면 그 손맛을 잊지 못하게 되는데요. 이 글을 읽는 분도 리눅스를 접해보셨으면 좋겠다는 마음으로
글을 마치며 제 기술블로그에 꾸준함이 깃들길 바라겠습니다. 감사합니다. ༼ つ ◕_◕ ༽つ
다음에는 VMWare 및 리눅스 설치로 만나겠습니다.
'리눅스 > 기초' 카테고리의 다른 글
VMWare 설치. 그 위에 리눅스 올려. 하나 더 올려..? (0) | 2024.12.14 |
---|