[리눅스 시스템 프로그래밍] 1.1 리눅스

리눅스는 핀란드 대학생이었던 리누즈 토발즈가 1991년 개발한 운영체제입니다. 이후 리눅스는 GNU 프로젝트로 유지 보수 및 발전하였고 GCN/Linux로도 부릅니다. 특히 레드햇, 페도라, 우분투 등의 배포판들이 생기면서 시스템 프로그래머를 꿈꾸는 이들 뿐만 아니라 일반 사용자들까지 대중적으로 사용하고 있습니다. 최근에는 IBM이나 구글, 선, 오라클 등의 많은 IT 업체들의 지원을 받아 비약적으로 발전하고 있습니다.

 

리눅스는 유닉스 운영체제를 연구하기 위한 목적으로 만들었습니다. 이러한 이유로 리눅스의 커널은 유닉스의 복사본이라고도 부릅니다. 리눅스를 GNU 프로젝트로 포함하면서 아파치, MySQL, PHP를 넘어서는 GNU의 대표 프로젝트로 자리잡았습니다.

 

리눅스 운영체제는 명령행 인터페이스(Command Line Interface)와 그래픽 사용자 인터페이스(GUI)를 지원합니다. GUI는 윈도우즈 운영체제처럼 데스크톱 환경에서 동작하며 KDE, GNOME 등의 대중적인 개발 환경도 제공합니다. 특히 명령행 인터페이스(CLI)는 UNIX와 매우 흡사하여 유닉스 시스템을 학습하기 위한 목적으로도 사용합니다.

 

많은 이들이 쉽게 접근하여 사용할 수 있는 리눅스 배포판에는 설치 프로그램과 커널, 디바이스 드라이버, 시스템 유틸리티들과 데스크톱 환경 및 다양한 응용을 포함하고 있습니다.

 

[그림 1.1] 리눅스 배포판 구성 요소
[그림 1.1] 리눅스 배포판 구성 요소

 

리눅스는 다양한 환경에서 동작할 수 있습니다. 라즈베이 파이처럼 손바닥만한 크기의 작은 시스템이나 슈퍼 컴퓨터도 운영할 수 있습니다. 이미 리눅스는 서버 시스템에 가장 많이 사용하는 운영체제이며 웹 호스팅 서버의 50%를 점유하고 있습니다. 그리고 슈퍼 컴퓨터 상위 500 대 중에 426대가 리눅스 환경입니다. 또한 스마트 기기들에도 리눅스의 점유율은 점점 높아져가고 있습니다.

 

이러한 리눅스는 GNU에서 버전 관리를 철저하게 수행합니다. 리눅스 버전은 크게 주번호와 부번호, 패치 번호로 구성합니다. 특히 부번호와 패치번호는 번호에 따라 안정화 버전과 개발버전이 있습니다. 홀수는 개발중인 버전이며 짝수는 안정화버전입니다.

 

예를 들어 2.3.5 는 주번호는 2이고 부번호는 3으로 개발 단계를 의미합니다. 그리고 패치번호는 5입니다. 그리고 2.4.12는 주번호는 2이고 부번호는 4로 안정화 버전을 의미합니다. 그리고 패치 번호는 12입니다.

 

리눅스의 다양한 프로젝트는 문서화 작업 프로젝트(Linux Document Project)를 통해 정보 공유를 진행합니다. 리눅스 한글 문서화 프로젝트 사이트는 http://kldp.org로 많은 HOW TO 문서를 찾을 수 있습니다. 또한 많은 소프트웨어 패키지에는 이들 문서를 포함하고 있으며 /usr/doc 디렉토리와 /usr/share/doc 디렉토리에서 확인할 수 있습니다. 그리고 명령행에서 man [질의] 을 통해 쉽게 문서 내용을 확인할 수 있습니다.

 

[그림 1.2] 명령행에서 man ps 실행화면
[그림 1.2] 명령행에서 man ps 실행화면