본문 바로가기
컴퓨터 지식창고

리눅스의 개념과 장점에 대하여 알아보자

by 재미보장 2021. 12. 12.

리눅스는 유닉스를 모태로 한다. 유닉스에서 나왔다고 봐도 되지만, 리눅스는 사실 오픈소스 개념으로 출시되고, 리눅스 제단이 있지만, 누구가 소스를 수정하여 재컴파일할 수 있다. 이번 포스팅에서는 리눅스의 기본개념에 대하여 자세히 알아보겠다.

리눅스란

리눅스로는 주로 서버를 운영한다. 서버라는 것을 잠시 설명하자면, 우리가 사용하는 스마트폰은 클라이언트에 해당된다. 클라이언트는 우리가 보는 화면에 떠 있는 프로그램 또는 기기를 말하고, 서버는 그 클라이언트의 요청에 응답해주는 것을 말한다. 대표적으로 카카오톡을 보면 우리가 사용하는 것은 클라이언트이다.

 

그리고 카카오톡을 다시 설치해도 로그인을 하면 데이터가 그대로 있는 것을 볼 수 있다. 그 데이터들은 서버에 저장이 되어 있던 것들이다. 일부 데이터가 지워진 것이 있다면 그것은 클라이언트 즉 내가 가진 단말에 저장이 되어 있던 데이터들이다. 이때 서버는 어딘가에 있다. 누군가가 제공을 한다. 물론 클라이언트도 누군가가 만들었는데, 클라이언트의 위치는 내가 가진 단말이다. 서버가 어딘가 있다는 의미는 우리는 모르지만, 존재한다는 의미이다. 사실 이 개념에서 확장된 개념 중에 클라우드 컴퓨터가 있다.

 

클라우드 컴퓨팅의 중요한 기술요소 중 하나는 가상화이다. 물리적 하드웨어가 어떻게 존재하는 것은 알지 못해도 우리가 사용하는 서버만 제공받으면 된다. 물리적으로 10개의 컴퓨터를 모아서 제공했을수도 있고, 반대로 1대의 컴퓨터에 여러 사람들이 논리적으로 나눠 동시에 사용할 수도 있는 이야기이다. 이 부분은 특별히 관여 하지 않겠다는 것이다. 받는 사람들 입장에서는 자기에게 주어진 공간을 사용할 수 있으면 되는 것이다. 제공자들은 그래서 전체 시스템의 사용에 대한 효율성을 높이는 것이다.

 

즉 그 만큼의 용량을 그 유저에게 주고 다른 사람을 사용하지 못하게 했을까? 논리적인 분할이라고 생각된다. 즉 10G만큼의 용량을 줬다기 보다는 10G까지 사용하게끔 통제를 하는 방식으로 줬다고 볼 수 있다. 이는 유저 입장에서 생각을 못할 수도 있다. 특히 스토리지 서비스를 제공 받는 경우는 좀 헤깔리게 느낄 수 있다. 왜냐면 해당하는 서비스의 화면에 보면 제공 용량이 있고, 남은 용량이 표시되어 있어서 마치 하드디스크를 연상케 한다. 결국 이러한 서비스, 웹페이지 등을 구축 운영할 때 사용하는 OS가 리눅스이다.

리눅스의 장점

1. 이식성과 확장성이 용이하다.

리눅스는 거의 대부분의 C언어와, 어셈블리 언어로 작성되어 있습니다.

C언어 자체가 특정 기계에 비의존적이기 때문에 프로그램을 다른 기계의 시스템으로 포팅하는 것이 쉽습니다.

이런 이유 때문에 OS 자체도 하드웨어에 적합하게 변형이 가능하며 x86 용으로 개발된 리눅스가 SPARC이나 맥의 Power PC, Alpha 등에 모두 적용될 수 있게 되었습니다.

 

2. 텍스트 모드 중심의 관리와 다양한 관리 환경의 제공

아직도 옛날 DOS처럼 텍스트 모드로 관리를 해야 하냐고 불평을 할 수 있으며, 편의성 측면에서 큰 단점으로 보일 수 있습니다. 그러나, 리눅스는 직접 설정 파일을 수정하여 세밀한 시스템의 설정이 가능하고 소스코드를 수정해 프로그램을 시스템에 최적화 시킬 수 있습니다. 또한, 윈도우 등의 GUI 기반의 OS와 다르게 프로그램을 일일히 실행시켜

설정을 저장하게 하는 등의 번거로움을 벗어나서 간단한 파일 수정 작업을 몇 개의 명령어 실행만으로도 간편하게

할 수 있다는 장점이 있습니다.  또한 간단한 스크립트 파일을 작성하여  자유롭게 시스템을 자동화 시킬 수 있다는 큰 장점이 있습니다.  게다가 요즘은 리눅스 시스템도 GUI 프로그램을 제공하며 웹서비스를 이용해 시스템의 관리와 모니터링을 쉽게 할 수 있기 때문에  다양한 관리 도구의 사용으로 인한 편리함을 누릴 수 있습니다.

 

3. 풍부한 소프트웨어 개발 환경 제공

유닉스 시스템과, 리눅스 시스템은 거의 모든 프로그래밍 언어를 제공합니다. 특히 GNU 소프트웨어가 무료로 제공되면서 수 백-수 천 만원의 프로그래밍 툴을 사용하지 않아도 되면서 모든 프로그래밍 툴이 무료로 제공되었습니다.

또한 모든 시스템의 소스가 개방되어 있기 때문에 소프트웨어 개발에 개방적입니다.

 

4. 다양한 네트워크 서비스 및 작업환경 지원

오픈 소스 소프트웨어 형태로 제공되는 많은 프로그램을 사용하여 다양한 웹서비스를 구축 및 서비스 할 수 있도 웹을 통한 작업환경을 구축 할 수 있다. Ex) 웹서버, 메일서버, 데이터베이스 서버, Proxy 서버, DNS, 파일서버, 프린트 서버,

라우터, 방화벽, 원격로그인, 브릿지, FTP, PHP 프로그램 등이 지원된다. 

 

5. 뛰어난 안정성

리눅스는 C언어 기바이므로 프로그래밍과 포팅에 용이하다. 또한 국제적이고 개방적인 개발 환경을 가지고 있으므로 

커널 및 응용 프로그램에 중대한 버그가 있을 경우 상업적 소프트웨어에  비해서 신속하게 이에 대한 패치가 개발되어 공개됩니다.  또한 커널, 파일 시스템, 쉘(Shell), 웹서비스 프로그램 등 리눅스 시스템의  기반이 되는 모든 프로그램이 소스코드가 공개되어 있어 직접 시스템을  최적화 할 수 있습니다. 이런 점에서 리눅스 시스템의 안정성이

매우 뛰어나다고 말 할 수 있습니다.

 

6. 시스템 보안성

물론 리눅스의 공개 코드 상에서 보안상 문제로 지적되는 경우가 있지만 리눅스 커널은 상당한 기간 동안의 연구, 전세계의 개발자들로부터의 의견 수렴 및 지속적을 거쳐 완성되기 때문에 기본적인 완성도가 높고, 리눅스 시스템의

대부분의 프로그램은 소스코드가 공개되어 있기 때문에 프로그램의 오류를  빠르게 확인하여 이에 대한 패치를 제공하고 보안 문제와 이에 대한 해결방안도  빠르게 보고되므로 관리자가 주의를 기울이기만 한다면 보안 문제가 비교적

용이하게 해결됩니다. 따라서, 그 어느 OS보다도 보안성이 뛰어나다고  할 수 있습니다.

 

7. 폭넓은 하드웨어 장치 지원

리눅스 커널이 공개되어 있고, 전세계의 다양한 분야의 개발자들이 참여하여 왔으며 하드웨어 관련 기업들의 참여가 확산되어 왔습니다. 이에 따라 리눅스 커널은 폭넓은 하드웨어 장치들을 지원하는 드라이버들을 포함하고 있습니다.

 

8. 시스템의 높은 신뢰성

리눅스는 RAID 기능을 지원하고 로컬 또는 인터넷을 통한 다양한 백업 방식을 지원한다. ext3, ext4 등의 파일 시스템은 fsck 등의 명령을 통해 안정적인 시스템 복구 기능을 지원한다. 따라서 리눅스 시스템은 서버 시스템으로서 높은 신뢰성을 가지고 있다.

 

9. 가성비(가격 대비 탁월한 성능)

리눅스는 비용을 들이지 않아도 CentOS, Debian 등 다양한 종류의 리눅스를 다운로드하여 설치 및 사용이 가능하다. 이러한 리눅스 운영체제는 고가의 서버 운영체제와 비교하여 전혀 손색이 없고 리눅스 서버 관리자의 역량에 따라 유료 서비스를 받지 않더라도 서버 시스템의 운영이 가능하다.

 

연관정보 : CPU 스케줄링에 대한 설명

 

 

CPU 스케줄링에 대하여 알아보자

CPU 스케줄링은 항상 실행중인 프로세스를 가지게 함으로써 중앙처리장치 이용률을 최대화 하는 것에 목적을 두고 있다. 이번 포스팅에서는 CPU 스케줄링의 개념과 스케줄링 알고리즘에 대하여

gguljaem.tistory.com

 

 

댓글