워드프레스 웹사이트를 운영하다 보면, 워드프레스 외에도 간간히 리눅스 운영체제, 아파치 웹서버, MySQL 데이터베이스, PHP/Python/Perl 프로그래밍 언어 등에 대해 언급되는 것을 듣게 됩니다. 물론 이들에 대해 큰 지식이 없어도 워드프레스 웹사이트를 운영하는데는 전혀 지장이 없지만, 알아두면 도움이 될 것이므로 오늘은 이 중에서 리눅스 운영체제에 대해 간단히 정리해보겠습니다.
운영체제란
운영체제(OS: Operating System)는 컴퓨터의 하드웨어와 시스템 리소스를 제어하면서 각종 소프트웨어(응용 프로그램)들이 정상적으로 작동하도록 관리하는 최상위 소프트웨어입니다. 물론 운영체제가 개발되기 전에는 운영체제 없이 컴퓨터를 사용했겠지만, 21세기의 컴퓨터는 운영체제 없이는 사용이 거의 불가능하기 때문에 운영체제는 컴퓨터의 기능 상 없어서는 안되는 필수 소프트웨어라 할 수 있습니다.
컴퓨터용 운영체제는 대략 3종류로 구분됩니다.
- 데스크톱 운영체제: 데스크톱이나 노트북 등에 설치되는 운영체제로, 윈도우 Windows, 맥 macOS, 리눅스 Linux 등이 대표적인 데스크톱 운영체제들입니다.
- 모바일 운영체제: 스마트폰, 태블릿, PDA 등에 설치되는 운영체제로, iOS와 안드로이드 Android가 대표적인 모바일 운영체제들입니다.
- 서버 운영체제: 서버 컴퓨터에 설치되는 운영체제로 강력한 네트워크 기능을 갖고 있다는 특징이 있습니다. 리눅스 Linux, 유닉스 Unix, 윈도우 Windows, 맥 macOS 등이 알려진 서버 운영체제들입니다.
리눅스 운영체제란
리눅스 운영체제는 1991년 핀란드 출신 소프트웨어 개발자 ‘리누스 토르발스 Linus Torvalds’에 의해 개발되었으며, 소스 코드가 공개되어 있고 누구나 무료로 가져다 설치, 수정, 추가, 배포할 수 있는 오픈 소스 프로젝트로, 현재 가장 많은 웹서버에서 사용되고 있는 운영체제이면서 가장 많은 슈퍼컴퓨터들이 사용하는 운영체제이기도 합니다.
보통 인텔 컴퓨터를 구입하면 윈도우, 맥북을 구입하면 맥OS가 기본으로 설치되어 있기 때문에 소비자 입장에서는 얼핏 운영체제가 무료라고 생각할 수도 있습니다. 하지만, 이는 디바이스 제조 업체가 운영체제 개발사에 이미 라이센스 비용을 지불하고 이를 디바이스 판매 가격에 포함하였기 때문에 운영체제에 대한 별도 청구가 없는 것일 뿐이지, 이러한 운영체제의 라이센스들은 엄연히 유료입니다. 따라서, 리눅스가 무료이면서 오픈 소스 운영체제라는 점은 어찌보면 리눅스가 갖고 있는 가장 큰 특징 중 하나라고 해도 과언이 아닐 듯 합니다.
리눅스 운영체제의 장점
1. 오픈 소스
여타 알려진 운영체제들과 비교해 볼 때, 리눅스의 최대 강점이라 할 수 있는 부분은 오픈 소스 프로젝트라는 것입니다. 오픈 소스이기 때문에 수많은 개발자들이 참여하여 소스를 수정하고 개선해가며 다채로운 배포판을 통해 리눅스 운영체제를 점점 더 좋게 만들어가고 있습니다.
2. 무료 라이센스
리눅스는 공식 웹사이트(https://www.linux.org/pages/download/)에서 다양한 배포판의 설치 파일을 언제든 무료로 다운로드할 수 있으며, 실행, 연구, 공유, 수정의 자유를 최종 사용자에게 보장해주는 무료 라이센스 GNU 일반 공중 사용 허가서(GNU General Public License)가 적용됩니다.
3. 우수한 안전성과 보안
주요 운영체제들 중 리눅스가 가장 안전한 운영체제로 꼽히는 데는 대략 두 가지 이유가 있습니다.
첫 번째 이유는, 오픈 소스의 특성상 배포판이 너무 많기 때문에 공격의 대상이 될 확률이 다른 운영체제들에 비해 상대적으로 적다는 것입니다. 세부 카테고리까지 들어가면 리눅스의 배포판은 현재 300여에 육박하는 것으로 알려져 있기 때문에, 몇 개 안되는 버전과 에디션을 엄청난 수의 사용자들이 설치해서 쓰고 있는 윈도우 같은 운영체제에 비해 공격자들의 흥미가 분산될 수 밖에 없습니다.
두 번째 이유는, 역시 오픈 소스의 특성상 많은 개발자들이 리눅스의 개선을 위해 수시로 코드를 검토하고 있기 때문에, 보안 취약점이 비교적 빨리 발견되고 소스 수정이나 보안 패치 배포 등의 대응 또한 신속하게 이루어진다는 점입니다.
4. 가벼운 용량
설치하는 배포판과 소프트웨어의 양에 따라 차이는 있지만, 일반 리눅스 설치에 필요한 하드 디스크 공간은 200MB에서 500MB 정도입니다. 윈도우 10 64비트 버전을 설치하는데 필요한 하드 디스크 공간이 26GB인 것을 생각해볼 때, 상당히 가볍다고 할 수 있습니다.
5. 뛰어난 이식성과 유연성
리눅스는 얼마간의 어셈블리어와 95% 이상의 C언어로 되어 있기 때문에, 다른 시스템이나 환경에 쉽게 이식하여 사용할 수 있습니다. 아울러, 다양한 하드웨어를 지원하기 때문에 생활가전에 내장된 스마트 기능에서부터 개인용 PC, 그리고 슈퍼컴퓨터에 이르기까지 거의 모든 컴퓨팅 전반에 사용 가능한 유연성을 갖고 있습니다.
6. 멀티유저와 멀티태스킹
다중 사용자들이 동시에 접속하여 시스템을 사용할 수 있으며, 각 사용자들이 동시에 여러 응용 프로그램과 작업을 실행하더라도 CPU를 적절히 스케쥴링함으로써 시스템 성능에 영향을 주지 않습니다.
7. 강력한 네트워크 기능
리눅스 운영체제는 웹서버, DB서버, 메일서버, 뉴스서버, DNS(Domain Name System) 서버, IRC 서버, 파일 서버, 프린트 서버 등 거의 모든 서버 기능을 갖추고 있고 방화벽(Firewall)으로도 사용 가능하기 때문에, 세계 상위 백만개의 서버 중 약 96.3%가 리눅스 운영체제를 사용하고 있다고 할 정도로 서버 운영체제로서는 압도적인 점유율을 자랑하고 있습니다. 간단한 설정만으로도 강력한 웹서비스 환경을 만들 수 있기 때문에, 여분의 컴퓨터에 리눅스를 설치하면 개인도 얼마든 웹서버를 운영할 수 있습니다.
8. 쉘과 터미널 인터페이스
리눅스의 트레이드 마크와도 같은 쉘과 터미널 인터페이스는 효율성을 담당하고 있습니다. 리눅스 운영체제에는 다양한 기능을 실행할 수 있는 여러 종류의 쉘이 있으며, 많은 리눅스 유저들이 여전히 그래픽 사용자 인터페이스(GUI: Graphical User Interface)보다 터미널 인터페이스를 선호합니다. 이들은 불필요한 움직임이 많이 들어가는 마우스 클릭보다 터미널에서 명령어 입력으로 실행하는 편이 훨씬 더 효율적이고 빠르다고 이야기합니다.
9. 안정성
리눅스 운영체제는 안정적입니다. 윈도우처럼 시스템 성능을 리프레쉬 하기 위해 정기적으로 시스템을 재부팅할 필요도 없고, 오래 켜놓더라도 버벅거리거나 느려지는 경우가 거의 없습니다. 네트워크 서비스를 위해 24시간 내내 돌아가야 하는 서버 컴퓨터의 운영체제로 리눅스가 가장 많이 쓰이고 있는 이유입니다.
리눅스 운영체제의 단점
1. 지원의 미흡함
무료 배포용 오픈 소스 프로젝트이다 보니 여타 다른 운영체제들과 같은 회사 차원의 기술 지원을 기대하기는 어렵습니다. 사용 중 문제가 생길 시, 담당 책임자가 없기 때문에 혼자서 감당해야 하는 상황이 생길 수도 있습니다. 게다가, 응용 프로그램 자체의 풀이 적은 편인데다가 한글 입출력에 미흡한 부분이 많아 특히 국내 사용자들에게는 여러모로 아쉬운 부분이라 할 수 있습니다.
2. 사용자 인터페이스의 진입장벽
X Window를 설치하면 어느 정도 그래픽 사용자 인터페이스(GUI: Graphical User Interface)가 가능하긴 하지만, 여전히 주요 작업에서는 터미널 환경에서 명령어를 직접 입력해야 하는 경우들이 많기 때문에 윈도우나 맥OS의 마우스 클릭에 익숙한 사용자들에게는 이 부분이 낯설고 어렵게 느껴지는 진입장벽이 될 수 있습니다. 실제로 리눅스 명령어 사용법, 리눅스 vi 편집기 사용법, 리눅스 파일 시스템 등에 대해 어느 정도 지식을 갖춘 후에 원활한 사용이 가능한 것이 사실입니다.
3. 데스크톱 운영체제로서의 대중적 한계
서버 운영체제로서의 압도적인 점유율에 비해, 데스크톱 운영체제로서의 리눅스 점유율은 여전히 3% 정도에 불과합니다. 물론 이는 어디까지나 윈도우나 맥OS와의 경쟁 구도에 있어서의 결과인 것이지, 리눅스 자체만 놓고 볼 때는 초반에 비해 엄청난 성장을 이룬 것이고 지금 이 순간에도 계속해서 증가하고 있는, 꽤 의미있는 수치입니다. 다만, 서버 운영자들에 비해 데스크탑 사용자들은 운영체제 자체의 탁월함보다는 그 위에서 돌아가는 화려한 응용 프로그램들과 업그레이드 되는 다양한 기능들에 관심이 갈 수 밖에 없는데, 여기서 현재의 리눅스가 해줄 수 있는 말은 “그래도 꼭 필요한 응용 프로그램들은 다 있다” 정도인듯 합니다. 그럼에도 불구하고, 우수한 성능과 군더더기 없이 딱 필요한 것만 있는 리눅스 운영체제에 대한 관심과 인기가 점점 커지고 있는 것은 분명합니다.
리눅스 운영체제 구조
1. 커널(Kernel)
커널은 리눅스의 코어에 해당하는 부분으로, 하드웨어를 제어하며, CPU와 메모리, 응용 프로그램들의 실행 등을 시스템 전반을 관장하는 핵심적 부분으로, 쉘에 입력되는 명령어를 실행하여 그 결과를 다시 쉘로 반환합니다. 사실 리눅스라는 이름 자체가 이 커널을 지칭하는 것으로, 그 300여개의 다양한 배포판들이 모두 리눅스라고 불릴 수 있는 이유는 바로 이 리눅스 커널을 사용하고 있기 때문입니다. 리눅스 커널 아카이브(https://www.kernel.org/)에 가면, 리눅스 커널 자체만 다운로드할 수 있습니다.
2. 쉘(Shell)
쉘은 사용자로부터 입력받은 명령을 해석하여 커널로 전달해주는 역할을 합니다. 커널이 명령을 실행하고 나면 그 결과가 다시 쉘로 반환되며 이 또한 해석되어 사용자에게 전달됩니다. sh (Bourne Shell), ksh (Korn Shell), csh (C Shell), tcsh, bash (Bourne Again Shell), zsh 등 여러 쉘 종류가 있으며, 윈도우의 명령 프롬프트와 같이 ‘한 줄 명령 CLI(Command Line Interface)’을 통해 입출력을 하는 터미널 형태의 인터페이스를 갖고 있습니다.

지금 이 블로그가 위치하고 있는 클라우드웨이즈 호스팅 서버의 리눅스 쉘에 접속해보았습니다. 클라우드웨이즈는 리눅스/GNU 리눅스(Debian GNU/Linux) 배포판을 사용하고 있는 것으로 나오네요. 접속한 김에 몇 가지 쉘 명령어를 테스트하였습니다.
- cat /etc/shells 현재 설치되어 있는 사용 가능 쉘 전체 목록을 보여줍니다.
- grep [사용자명] etc/passwd 현재 사용중인 쉘을 확인할 수 있습니다 (/usr/bin/mysecureshell).
- chsh -s /bin/bash 현재 사용중인 쉘을 지정한 쉘(/bin/bah)로 변경합니다.
3. 응용 프로그램(Application)
사용자들은 텍스트 편집기, 개발 프로그램, 인터넷 프로그램, 이메일 프로그램, 이미지 편집 프로그램, 비디오 플레이어, 생산성 프로그램, 파일 압축 프로그램 등등 카테고리별로 다양한 리눅스 응용 프로그램들을 설치, 사용할 수 있습니다.
