[리눅스공통] 리눅스의 특징 (장점, 단점)

Posted by nkjok
2019. 4. 27. 14:36 OS&기타/Linux
반응형

1. 리눅스의 특징

 


① 다중 사용자 및 다중 처리 시스템

하나의 시스템에 다수의 사용자들이 동시에 접속하여 사용할 수 있고(Multi-User), 각 접속자들은 다수의 응용 프로그램을 실행할 수 있다.(Multitasking)

② 완전히 공개된 시스템

운영체제의 핵심인 커널(Kernel) 뿐만 아니라, 같이 내장되어 배포되는 대부분의 응용 프로그램이 소스가 공개된 프로그램이다.

③ 뛰어난 네트워크 환경

가장 널리 쓰이는 이더넷(Ethernet), SLIP, PPP, ATM 등의 다양한 네트워크 환경을 지원하여 TCP/IP, IPX, AppleTalk 등 대부분의 네트워크 프로그램을 지원한다.

④ 다양한 파일 시스템 지원

DOS의 FAT, Windows의 FAT32 및 NTFS, CD-ROM에 사용되는 ISO 9660, OS/2의 HPFS, SCO 및 제닉스 등의 상용 유닉스, 파일 시스템을 지원한다.

⑤ 뛰어난 이식성

리눅스는 약간의 어셈브리와 대부분의 C언어로 작성되어 있다. C를 컴파일 할 수 있으며, 어셈블리 부분만 새롭게 만들고 C부분을 다시 컴파일 함으로써 쉽게 다른 시스템에 이식 할 수 있다.

⑥ 유연성과 확장성

리눅스는 상업용 유닉스(UNIX)의 모든 특성을 가지며 유닉스의 표준인 포직스(POSIX)를 준수하고 있다. 커널, 장치드라이버, 라이브러리, 응용프로그램, 개발도구 등 리눅스의 원시코드를 쉽게 접할 수 있다.

⑦ 뛰어난 안전성과 보안성

리눅스는 커널 소스가 공개되어 있어 Windows와 같은 폐쇄형 운영체제에 비해 보안상의 취약점이 쉽게 노출된 가능성은 있으나, 공개용 소프트웨어를 지지하는 수많은 전문 프로그래머들이 상용 운영체제보다 빠르게 오류 수정과 보안 관련된 패치를 발표하고 있다.

⑧ 우수한 가격대 성능비

기업환경에서 서버로 사용되는 유닉스를 x86 시스템에 최적화시켜 효율적인 방식으로 설계하였기 때문에 PC급 서버에서도 엔터프라이즈 급의 성능을 발휘 할 수 있다.

⑨ 다양한 응용 프로그램의 제공

리눅스에는 운영체제의 핵심인 커널을 비롯하여 다양한 응용 프로그램을 제공한다. 셀(Shell)과 기본 명령어, X Window 시스템(Xorg, KDE, GNOME 등의 그래픽 유저 인터페이스), 편집기(vi, emacs 등), 서버 및 클라이언트 프로그램(웹, 메일, FTP 등), 개발도구(C, C++, Java, Python 등), 보안도구(nmap, tcpdump 등), 게임 등을 포함하여 배포하고 있다.

⑩ 다양한 배포판의 존재

리눅스는 서버, 개발용, PC용 등 다양한 목적으로 사용 가능하고, 이에 따른 다양한 배포판이 존재한다. 국외에는 레드햇(Redhat), 데비안(Debian), 우분투(Ubuntu), 수세(SUSE) 등이 있고, 국내에는 한컴리눅스, SULinux 등이 있다.

 

 

 

 

2. 리눅스의 기술적인 특징

 


① 계층적인 파일 구조

리눅스의 파일 구조는 /(root)를 기준으로 그 하위 디렉터리에 usr, var, bin 등이 존재하고 다시 usr 디렉터리 밑에는 local, src 등의 디렉터리가 존재하고 이러한 구조를 계층적 파일 구조라 하고 트리(Tree) 구조라고도 한다.

② 장치의 파일화

장치(Device)란 하드디스크, 키보드, 프린트, 화면 출력 장치 등 시스템에 설치된 여러 가지 하드웨어적 자원을 말한다. 리눅스는 이러한 장치들을 모두 파일화하여 사용한다. 특정 하드웨어에게 명령을 수행하려면 해당하는 장치 파일에 명령을 내리면 된다.

③ 가상 메모리 사용

가상 메모리(Virtual Memory)란 하드디스크의 일부를 메모리처럼 사용되는 것을 말한다. 하드디스크는 데이터가 저장되는 공간이고, RAM(메모리)는 작업공간이라 할 수 있다. 프로그램을 실행시키면 작업공간에 해당하는 메모리로 공간이 이동되는 데, 메모리의 공간이 작으면 큰 프로그램은 실행시킬 수 없게 된다. 이러한 문제점을 극복하기 위해 사용되는 것이 가상메모리이고, 리눅스에서는 이 영역을 스왑(SWAP)라고 부른다.

④ 동적 라이브러리 지원

프로그램에서 특정한 기능을 하는 루팅(Routine)들을 모아 놓은 것을 라이브러리(Library)라 하여, 프로그램 개발 시 라이브러리중에서 필요한 루틴들을 받아서 링크(Link) 시킨다. 그래서 같은 루틴들을 공유하는 것이 공유 라이브러리(Shared Library)라 한다.

동적 공유 라이브러리는(Dynamic Shared Library)는 실행 파일 내부에 넣어두지 않고, 프로그램을 실행할 때 가져다 사용하므로 메모리의 효율성이 아주 높다.

⑤ 가상 콘솔

가상 콘솔(Virtual Console)은 하나의 모니터를 장착한 시스템에 여러 개의 가상 화면을 제공해서 사용하게 하는 기능이다. 리눅스는 기본적으로 6개의 가상 콘솔을 제공한다. [CTRL] + [ALT] + [F1] ~ [CTRL] + [ALT] + [F6] 까지 총 6개의 텍스트 기반의 로그인 창을 제공한다.

⑥ 파이프

파이프는 프로세스의 통신을 위해 도입한 것으로 어떤 프로세스의 표준 출력이 다른 프로세스의 표준 입력으로 쓰이게 하는 것을 말한다. 파이프는 '|' 기호를 사용한다.

⑦ 리다이렉션(Redirection)

리다이렉션은 어떤 프로세스의 입/출력을 표준 입출력이 아닌 다른 입출력으로 변경할 때 사용한다. 출력 결과를 파일로 저장하거나 파일의 내용을 프로세스의 입력으로 사용하는 기법이다.

 

 

 


3. 리눅스의 단점

 


① 기술 지원의 부족

리눅스에서 사용되는 대부분의 응용 프로그램들이 비상업적인 제품이다. 전 세계에 흩어져 있는 개발자들이 일일이 기술지원을 하는 것이 불가능하다.

② 특정 하드웨어에 대한 지원이 부족

리눅스가 다른 운영체제에 비해 이식성, 확장성 등이 뛰어나지만, 여전히 특정한 하드웨어에 대한 설치가 어렵고 모든 플랫폼에서 작동하지 않는다.

③ 사용자의 숙련된 기술 요구

현재 리눅스에서는 X-Window 기반 환경이 보편화 되면서 초기 텍스트 기반의 명령어를 입력하는 환경에 비해 쉬워졌지만, 아직도 중요한 설정은 명령어를 입력하거나 관련 환경 설정 파일을 편집기를 사용해서 수정하여야 한다.

반응형