리눅스는 많은 회사들에서 사용하는 운영체제입니다. 일반 사용자들은 MS의 Window가 많이 익숙하겠지만
개발자 또는 엔지니어들은 윈도만큼이나 익숙한 게 리눅스 일 겁니다. 지금부터 알아볼 것은 리눅스는 무엇인지
모두에게 익숙한 window을 쓰지 않고 왜 Linux를 사용하는 건지 사용하는 건지 어떻게 사용하는 건지 알아보겠습니다.
리눅스 란?
많은 사람들이 리눅스를 GNU 프로젝트에서 시작했거나 혹은 왜 만들어졌는지를 잘 모릅니다. 하지만 리눅스를 만든 이유를
안다면 리눅스를 좀 더 이해하기 좋습니다.
리눅스의 시작은 리눅스 토발즈라는 사람입니다. 그 당시에는 Minix라는 운영체제와 UNIX를 사용하고 있었습니다.
그러나 Minix는 운영체제로써 그 한계가 명확했고 UNIX는 강력한 확장성과 여러 가지 다양한 기능들이 있었지만 접근성이 매우 낮았습니다. 그래서 리누스 토발즈는 강력하고 유연한 운영체제를 만들고 싶어 했고 그 결과가 리눅스입니다.
리눅스 토발즈느 개발한 리눅스를 인터넷에 공개적으로 올렸습니다 그래서 리눅스는 오픈소스라 부르기도 합니다.
오픈소스의 가장 큰 특징은 크게 3가지입니다.
1. 커널 공개
리눅스를 흔히 오픈 소스라고 부르는데 그 이유가 바로 커널이 공개되어 있기 때문입니다. ( GPL 계념)
리눅스를 만든 리누스 토발즈부터 자신이 개발한 커널을 인터넷에 공개하고 사람들이 자유롭게 사용하게 허용했습니다.
2. 공동 개발
리눅스의 커널이 공개되고 자유롭게 사용함에 따라서 수많은 개발자들이 리눅스 개발 및 개량에 힘썼고 다양하고 유용한
기능들이 추가가 되었습니다,
3. 다양한 분야에 적용
이처럼 다양한 개발자들이 리눅스를 개발 및 개량함에 따라서 서버, 데스크톱, 임베디드 등 다양한 분야에서 고루 사용되는
운영체제가 되었습니다.
그 후 리눅스는 GNU 프로젝트와 결합되면서 다양한 유틸리티들이 만들어지기 시작했고 Ubuntu, Debian , Fedora 등
다양한 리눅스 배포판이 등이 만들어지며 선택의 폭이 넓어졌습니다.
그리고 스마트폰이 발전함에 따라서 안드로이드가 만들어지며 모바일에서도 리눅스를 사용할 수 있게 되었습니다.
서버와 리눅스
서버에서 리눅스를 사용하는 이유는 아래와 같습니다.
1. 안정성
리눅스는 높은 안정성을 가졌으며 대용량 데이터 처리에 좋습니다.
2. 성능
리눅스는 효율적인 자원관리를 제공하여 높은 성능을 제공합니다.
3. 유연성
다양한 소프트웨어와 하드웨어를 지원하며 사용자에 맞게 커스텀할 수 있습니다.
4. 커뮤니티
전 세계적으로 활발한 커뮤니티가 존재하며 사용자들은 다양한 정보를 공유하고 문제를 해결할 수 있습니다.
서버 (Server) 란?
서버는 앞에서 네트워크에 대한 글은 보셨다면 알고 계실 겁니다.
서버의 역할은 클라이언트에게 받은 요청에 대하여 정보를 생성해서 클라이언트에게 서비스하는 역할을 합니다.
서버에 종류는 아래와 같습니다
1. Web Server
웹 페이지를 배포하는 서버입니다. 우리가 흔히 http://www.google.com에 접속하면 보면 처음에 보는 화면이 웹 서버에서 보여주는 화면입니다.
2. 애플리케이션 서버
사용자가 원격으로 액세스 할 수 있는 애플리케이션을 배포하거나 호스팅 해주는 서버입니다.
대표적으로 쇼핑몰 사이트나, 금융 사이트입니다.
3. 메일서버
전자 메일을 수신하고 송신해 주는 서버입니다.
4. 데이터베이스 서버
사용자가 데이터베이스에 연결할 수 있도록 해주는 서버이며 사용자의 정보, 사진, 동영상 등에 대한 정보를 담고 있는 서버입니다.
유튜브에서 여러 동영상들이 데이터베이스 서버에 저장된 데이터입니다.
5. 프록시 서버
서버와 클라이언트의 중간에 위치하는 서버로 클라이언트의 요청에 따라서 각 서버에 맞게 정보 등을 추가하거나 삭제해서 전달 및 라우팅을 해주는 서버입니다.
리눅스를 서버로 이용하는 이유를 알기 전에 서버에 공통적으로 적용되는 개념 몇 가지를 알아보고 가겠습니다.
1. 운영체제
서버를 효율적으로 관리 및 사용하기 위한 여러 프로그램의 집합으로 파일 시스템으로 파일을 관리하는 프로그램을 의미합니다.
커널과 시스템 프로그램을 포함하는 의미라고 보시면 됩니다.
2. 파일 ( File)
운영체제에서 저장되는 특정 데이터입니다. 예시로 텍스트 파일, 이미지 파일 등이 있습니다.
3. 파일 시스템
파일을 관리하기 위한 시스템입니다. 파일의 구조 및 경로, 저장방법, 정렬방법 등을 관리하는 시스템입니다.
4. 커널
메모리에서 하드웨어를 제어하는 코드를 통해서 소프트웨어와 커뮤니케이션을 하고 시스템의 모든 자원을 통제하는 역할입니다.
5. 시스템 프로그램
장비를 효율적으로 운영하기 위해서 하드웨어의 동작을 지시 및 제어하는 역할을 합니다.
6. 쉘
명령어 해석기입니다. 사용자가 명령을 내리면 쉘을 통해서 커널이 해석할 수 있는 기계어로 변경해서 전달하는 역할을 합니다.
위에 내용은 리눅스를 포함해서 윈도도 가지고 있는 기본적인 내용입니다.
리눅스의 고유 특징은 아래와 같습니다. 해당 특징 때문에 리눅스를 서버에 환경에서 많이 사용하는 이유가 되기도 합니다.
1. 실시간 페이지 적재 기능
메모리를 페이지 단위로 할당하고 스왑 (swap) 하며 운영체제가 필요한 만큼만 메모리를 사용해서 효율적으로 메모리를 관리
2. 네트워킹이 뛰어남
TCP / IP를 완벽하게 구현하며 여러 가지 네트워크 프로토콜을 지원합니다.
3. 가상 콘솔
하나의 물리적인 모니터에 여러 가지 가상 화면을 두는 기능
4. POSIX의 호환
유닉스 시스템의 표준 인터페이스인 POSIX와 호환됩니다.
5. Tree형태 파일 시스템
파일 시스템의 시작이 / (루트)에서 시작되며 모든 디바이스들이 이 아래에 연결
6. 효율적인 가상 메모리
하드 디스크를 RAM처럼 사용할 수 있습니다.
7. 동적 공유 라이브러리 제공
프로그램마다 공통된 입력, 출력, 저장, 읽기 등의 기능이 프로그램마다 들어가 있지 않고 프로그램이 필요할 때마다 가져가 쓸 수 있습니다.
8. 다중 작업 ( Multi Tasking)
한 시스템에서 여러 사용자가 동시에 여러 가지 프로그램을 사용할 수 있습니다.
9. 모든 것이 파일로 저장
명령어를 비롯해서 모든 것이 파일로 저장되어 사용됩니다.
이러한 리눅스의 고유 특징 때문에 많은 분야에서 사용될 수 있는 운영체제가 되었고 그래서 보통 서버 라고 하면 리눅스를 사용하게 되었습니다.
'IT 공부 내용 정리 > 서버' 카테고리의 다른 글
리눅스의 디렉토리 (0) | 2024.11.19 |
---|