리눅스 소개

2009. 4. 7. 02:31

리눅스는 다중 작업, 다중 사용자 운영체제이고 다중 프로세스 시스템을 지원하는 고성능, 고가용성 운영체제이다. 그리고 이 모든 성능과 기능들은 무료로 제공된다. IEEE POSIX, System V, BSD와 소스 수준에서 많은 유닉스 표준과 거의 호환된다. 그밖에 윈도우 95/98, 윈도우 NT/2000/XP, Max OS, BSD 등과 같은 다양한 운영체제와 멀티 부팅을 통해 한 시스템에서 공존할 수 있다. 멀티 부팅의 경우 리눅스 부트로더 (LILO)와 그루브(GRUB; GRand Unified Bootloader)를 통해 부팅할 운영체제를 선택할 수 있고, 윈도우 2000/XP 등의 부트로더와도 호환된다.

인텔x86, 아이태니움, 스팍/울트라스팍, AMD 64, ARM, PA-RISC, Alpha, PowerPC, MIPS, m68k, IBM 390과 z시리즈 메인프레임 등 다양한 CPU 아키텍처에서 동작한다. 다수의 임베디드 프로세서에 포팅되었으며, 팜파일럿과 컴팩iPAQ와 같은 PDA에도 포팅되어 있다. 더욱이 클러스터를 활용한 수퍼컴퓨터의 영역에서도 사용된다.

다양한 파일시스템 유형을 지원하며, ext2fs와 같은 리눅스 전용 파일시스템외에 NTFS, VFAT, FAT16/32, 매킨토시, OS/2 등 수많은 운영체제의 파일시스템을 지원한다.

리눅스는 완전한 TCP/IP 네트워킹을 구현하고 있으며, 이더넷 카드, PPP, SLIP, PLIP, ADSL 등 장치 드라이버를 포함한다. IPv6 프로토콜 모음과 DHCP, AppleTalk, IrDA, DECnet, 패킷 라디오 통신 프로토콜인 AX.25 등 다양한 프로토콜을 지원한다.

FTP, Telnet, NNTP, SMTP, POP3, IMAP, NFS, Microsoft의 도메인에 참여할 수 있도록 해주는 마이크로소프트 프로토콜 등 완전한 TCP/IP 클라이언트와 서비스를 갖추고 있다.

리눅스는 커널 차원의 방화벽 지원이 있기 때문에 네트워크 패킷의 차단을 구현할 수 있다.

1. 커널 (Kernel)

리눅스 운영체제의 핵심 엔진부이다. 커널은 사용자 프로그램과 하드웨어 장치 간의 인터페이스, 멀티태스킹 구현을 위한 프로세서 스케줄링 등 다양한 시스템 제어를 위한 코드이다. 시스템 메모리를 최적으로 사용하기 위해 가상 메모리가 구현되어 있으며, 스왑 공간을 디스크에 할당할 수 있다.

2. 명령과 쉘(Shell)

쉘은 사용자가 입력한 명령을 실행하는 프로그램이다. 그밖에 작업 제어, 입출력 리다이렉트, 파이프 등을 지원하고 쉘 스크립트 프로그래밍을 위한 명령 언어를 제공한다. 현재 리눅스의 표준 쉘은 BASH (Bourn Again SHell)이며 '배쉬'라고 읽는다.

BASH외에 sh, csh, tcsh, ksh, zsh 등 다양한 유닉스 표준 쉘을 함께 제공하고 있다.

3. 텍스트 프로세싱과 워드 프로세싱

리눅스는 vi와 emacs라는 매우 훌륭한 편집기를 제공하여 다양한 용도로 강력한 텍스트 편집 기능을 제공하며, 오픈오피스를 통해 마이크로소프트 오피스와 거의 호환되는 오피스 프로그램 또한 제공하고 있다.

4. 개발 환경

GNU의 컴파일러인 gcc를 제공하여 C, C++, Object C, 포트란, 자바 등 대부분의 개발 환경을 제공하고 있다.

5. X-Window 시스템

1980년대 MIT에서 다양한 유닉스 시스템을 지원하는 윈도우 시스템인 X를 선보인 이래 리눅스의 윈도우 시스템으로 자리잡아 오고 있다. 현재 리눅스에서 사용가능한 X 버전은 X.org라 부르며 리눅스와 같은 PC 기반의 유닉스 시스템으로 자유롭게 배포 가능한 X11R6으로부터 개발한 것이다.

6. KDE와 GNOME

X 윈도우 시스템은 유연한 설계로 인해 다양한 데스크톱 환경을 가질 수 있으며 대표적인 데스크톰 환경으로 KDE와 GNOME('그놈'이라고 읽는다)을 제공하여 현대적인 윈도우 시스템을 제공하고 있다.

7. 배포판

리눅스 시스템은 커널을 개발하여 공개한 리누스와 수많은 오픈 소스 개발자들의 다양한 개발 커뮤니티들에 의해 만들어진 유틸리티 들의 조립품이며 이 모든 것들을 모아서 하나의 사용가능한 시스템으로 만들어 놓은 것이 배포판이다. 배포판 역시 개인으로부터 기업에 이르는 다양한 배포판 개발팀에 의해 만들어지며 수많은 배포판이 존재한다.

대표적이 배포판으로는 Redhat Enterprise, Fedora, Debian, Ubunto, GenOS, gentoo, SLACKWARE 등이 있다.

+ Recent posts