리눅스의 특징
(1) 운영체제로서의 대표적인 특성
① 완벽한 멀티태스킹(True Multi-tasking) - 리눅스는 완벽한 멀티태스킹을 지원한다.
② 하나의 프로세서는 이미 실행되고 있는 다른 프로세서에 관계없이 CPU의 자원을 제한 없이 활용할 수 있다.
③ 멀티태스킹은 다중 사용자 시스템을 위한 기본적인 기능이며 리눅스는 최초의 개발 단계부터 보다 완벽한 멀티태스킹을 구현하기 위해서 작성되었다.
(2) 가상 메모리 (Virtual Memory)
①리눅스는 페이징(Paging) 기법에 의한 가상 메모리 기능을 지원한다.
②시스템에 설치되어 있는 실제의 메모리보다 많은 양의 메모리를 사용하기 위한 소프트웨어적인 처리 방법을 사용한다.
③가상 메모리를 처리하기 위한 단위를 페이지라 한다.
④하드디스크를 확장된 메모리 영역으로 취급하고, 프로그램을 페이지 단위로 분리한 뒤에 실행되어야 할 부분만을 하드디스크에서 실제의 메모리로 계속해서 전환시키는 방법을 사용함으로써, 시스템에 설치되어 있는 메모리의 한계를 극복할 수 있다.
(3)공유 라이브러리 (Shared Libraries)
①프로그램에서 사용되는 여러 가지 기능들을 별도의 파일로 독립시켜서 필요할 때만 연결해서 사용할 수 있게 하는 방법이다.
②라이브러리 기능에 의한 프로그래밍은 중복된 코드의 생성을 피하고 효율성을 높일 수 있다.
③공유 라이브러리는 하나의 라이브러리가 메모리에 적제 되었을 때 이를 여러개의 프로그램들이 동시에 사용할 수 있도록 하는 기능이며, 이러한 원리는 윈도우즈 95/98의 DLL(Dynamic Link Library)에서도 동일하게 적용된다.
(4) 실시간 페이지 적재 기능 (demand loading excutables)
①가상 메모리에 의해서 프로그램이 페이지 단위로 분리되어 있을 때 실행되는 순간에만 메모리로 적재되는 기능이다.
②프로그램의 실행되지 않는 페이지는 하드디스크와 같은 보조 기억 장치에 위치하게 됨으로 메모리를 보다 효율적으로 사용할 수 있다.
(5) 강력한 네트워크를 지원 TCP/IP와 BSD 소켓
①TCP/IP(Transmission Control Protocol/Internet Protocol)를 비롯한 SLIP(Serial Line Internet Protocol), PPP(Point-to-Point Protocol)와 BSD 소켓(Socket)에 의한 네트워크 환경을 모두 지원한다.
②통신과 같이 프로세스의 양방향 전달이 가능한 프로그램을 만들기 위해서 사용하는 라이브러리나 인터페이스를 소켓이라고 한다.
③현재 세상에 나와 있는 대부분의 네트워크를 가능하게 할 수 있는 운영체제이다.
(6) 리눅스는 다른 운영체제와의 공존이 가능
①Ms-Dos, OS/2, Windows, Windows NT 등과 같이 한 대의 컴퓨터에서 공존이 가능하다.
(7) 뛰어난 안정성을 유지
①상용 유닉스 시스템에 버금가는 안정성을 가지고 있다.
②앞에서 설명한 커널이 어떻게 만들어 졌는가에 따라 좌우된다.
③윈도우 NT 등과 비교해 볼 때 아주 빨리 버그를 수정하고 새로운 안정화 버전을 만들어 내기에 안정성은 타 OS보다 우위에 있다.
(8)빠른 업그레이드와 버그 수정
①버그가 발견되는 즉시 해커나 FSF에 의해 최소 하루 안에 버그 수정이 이루어지고 있다.
(9) 완벽한 유닉스 호환 (Full Compatible with Unix)
①리눅스는 POSIX 표준을 준수하기 때문에 이 표준에 따르는 System V나 BSD 유닉스와 완벽하게 호환될 수 있다.
②모든 종류의 유닉스용 프로그램은 소스 코드에 의해서 리눅스로 이식될 수 있다.
(10) 다양한 파일 시스템과 파일 포맷
(Various File System and File Format)
①다양한 형태의 파일 시스템과 실행 파일 포맷을 지원한다.
②유닉스, 미닉스, MS-DOS, 윈도우 95/98, OS2, MacOS 등에서 사용하는 다양한 종류의 파일을 활용할 수 있다.
③이밖에도 많은 기능들을 지원하고 있으며 새로운 기능들이 계속해서 추가되고 있다.
'리눅스 ( Linux ) > 리눅스' 카테고리의 다른 글
Raid 구성 (0) | 2017.04.12 |
---|---|
가상머신의 이해 (0) | 2017.01.15 |
파일의 구성 및 종류 (0) | 2017.01.15 |
쉘이란? (0) | 2017.01.15 |
커널이란? (0) | 2017.01.15 |