리눅스는 운영체제 중 하나이다.


운영체제란 ?


컴퓨터 하드웨어와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어로 사용자가 프로그램을 수행할 수 있는 환경을 제공한다. 좁게는 하드웨어와 응용 프로그램간의 다리 역할을 하는 커널을 의미하고, 넓게는 미들웨어(Middleware), 응용 프로그램 실행 환경과 사용자 인터페이스 프레임워크를 모두 포괄하여 정의한다.

운영체제의 목적은 컴퓨터 시스템을 편리하게 이용하는 것에 있고 CPU, 주기억장치, 입출력장치 등의 컴퓨터 하드웨어를 효율적으로 관리하는 데 있다. 


운영체제의 주요 역할


1. 컴퓨터의 하드웨어를 제어한다.

2. 작업의 순서를 정하며, 입출력 연산을 제어한다.

3. 프로그램의 실행을 제어하며, 데이터와 파일의 저장을 관리한다.

4. 사용자들 간의 하드웨어 자원을 공유할 수 있도록 한다.

5. 시스템 자원을 스케줄링하여 효율적으로 활용할 수 있게 한다.

6. 입출력을 쉽게 하는 기능을 제공한다.

7. 응용 프로그램의 작성과 실행을 편리하게 한다.

8. 오류의 발생을 막고 복구를 지원한다.

9. 데이터의 조직화, 네트워크 통신 처리 기능을 수행한다.

10. 편리한 사용자 인터페이스를 제공한다.


리눅스의 특징


1) 다중 사용자 및 다중 처리 시스템

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


2) 완전히 공개된 시스템

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


3) 뛰어난 네트워크 환경

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


4) 다양한 파일 시스템 지원

5) 뛰어난 이식성

6) 유연성과 확장성

7) 가상 메모리 (Virtual Memory)

> 리눅스는 페이징(Paging) 기법에 의한 가상 메모리 기능을 지원한다.

>시스템에 설치되어 있는 실제의 메모리보다 많은 양의 메모리를 사용하기 위한 소프트웨어적인 처리 방법을 사용한다.

>가상 메모리를 처리하기 위한 단위를 페이지라 한다.

>하드디스크를 확장된 메모리 영역으로 취급하고, 프로그램을 페이지 단위로 분리한 뒤에 실행되어야 할 부분만을 하드디스크에서 실제의 메모리로 계속해서 전환시키는 방법을 사용함으로써, 시스템에 설치되어 있는 메모리의 한계를 극복할 수 있다.


8) 공유 라이브러리 (Shared Libraries)

> 프로그램에서 사용되는 여러 가지 기능들을 별도의 파일로 독립시켜서 필요할 때만 연결해서 사용할 수 있게 하는 방법이다.

> 라이브러리 기능에 의한 프로그래밍은 중복된 코드의 생성을 피하고 효율성을 높일 수 있다.

> 공유 라이브러리는 하나의 라이브러리가 메모리에 적제 되었을 때 이를 여러개의 프로그램들이 동시에 사용할 수 있도록 하는 기능이며, 이러한 원리는 윈도우즈 95/98의 DLL(Dynamic Link Library) 에서도 동일하게 적용된다. 


9) 실시간 페이지 적재 기능 (demand loading excutables)

> 가상 메모리에 의해서 프로그램이 페이지 단위로 분리되어 있을 때 실행되는 순간에만 메모리로 적재되는 기능이다.

> 프로그램의 실행되지 않는 페이지는 하드디스크와 같은 보조 기억 장치에 위치하게 됨으로 메모리를 보다 효율적으로 사용할 수 있다. 


10) 리눅스는 다른 운영체제와의 공존이 가능

> Ms-Dos, OS/2, Windows, Windows NT 등과 같이 한 대의 컴퓨터에서 공존이 가능하다.


11) 뛰어난 안정성을 유지

> 상용 유닉스 시스템에 버금가는 안정성을 가지고 있다.

> 앞에서 설명한 커널이 어떻게 만들어 졌는가에 따라 좌우된다.

> 윈도우 NT 등과 비교해 볼 때 아주 빨리 버그를 수정하고 새로운 안정화 버전을 만들어 내기에 안정성은 타 OS보다 우위에 있다.


12) 빠른 업그레이드와 버그 수정

> 버그가 발견되는 즉시 해커나 FSF에 의해 최소 하루 안에 버그 수정이 이루어지고 있다.



리눅스의 단점


1) 기술지원의 부족

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


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

3) 사용자의 숙련된 기술이 요구



'Server > Linux' 카테고리의 다른 글

Linux // 기본 명령어 3  (0) 2018.01.09
Linux // 기본 명령어 2  (0) 2018.01.08
Linux // 구조 및 디렉터리 명령어 1  (0) 2018.01.05
Linux // 네트워크 설정  (0) 2018.01.04
Linux // 설치  (0) 2018.01.03

+ Recent posts