운영체제 ( Operating System )
- 컴퓨터는 크게 하드웨어 ( Hardware )와
소프트웨어 ( Software )로 구분되어 있으며
이 두가지가 결합되어 동작한다.
- 소프트웨어는 크게 2가지로 분류가 된다.
① 시스템 소프트웨어 ( System Software )
- 컴퓨터의 기본기능과 응용프로그램들이
실행될 수 있는 환경을 제공 ( 운영체제 )
② 응용 소프트웨어 ( Application Software )
- 어느 응용분야에 사용되기 위하여 특별히 제작된 소프트웨어
(워드 프로세서 , 웹브라우저 등등 )
- 운영체제는 하드웨어와 사용자 사이에 위치하면서
상호작용하기 위한 수단을 제공하고 , 하드웨어를 제어한다.
서버/클라이언트(Server/Client)
- 네트워크에서 다른 클라이언트에게 서비스를 제공하는 컴퓨터
서버 : 서비스를 제공하는 컴퓨터
클라이언트 : 서비스를 제공받는 컴퓨터
- 서버와 클라이언트를 컴퓨터의 성능으로 구분하는 것이 아니라
어떤 역할의 프로그램을 설치하느냐에 따라 결정된다.
리눅스 개요
- 컴퓨터 운영체제
- 핀란드의 리누스 토발즈에 의해 최초로 커널이 개발되어
전 세계의 프로그래머들과 함께 지속적으로 개발되고 있다. ( Open Source )
그러므로 가장 빠르게 성장하고 있는 운영체제이다.
- 다중 사용자 ( Multi-User ) 환경 지원
- 유닉스와의 완벽한 호환기능
- 윈도우는 GUI도구를 사용하여 관리 및 운영
리눅스는 명령어를 사용하여 관리 및 운영
- 윈도우는 GUI를 사용하기 때문에 자원관리가 비효율적
리눅스는 자원관리가 효율적
- 윈도우는 사용친화적 시스템
리눅스는 서비스 중심형 시스템
GUI , CLI
① GUI (Graphical User Interface)
- 아이콘 기반으로 사용자가 그래픽환경에서 프로그램을 사용하는 환경
쉽고 직관적인 조작방식으로 현재 가장 널리 사용되는 방식
② CLI (Command Line Interface)
- 운영체제 동작을 지시하는 명령어를 입력하여 사용하는 환경
일반 사용자들은 사용하기 어려운 단점이 있으나
GUI보다 강력한 기능을 제공한다.
리눅스의 특징
① 운영체제로서의 대표적인 특성
- 완벽한 멀티테스킹(True Multi-tasking) - 리눅스는 완벽한 멀티태스킹을 지원한다.
- 하나의 프로세서는 이미 실행되고 있는 다른 프로세서에
관계없이 CPU의 자원을 제한 없이 활용할 수 있다.
- 멀티테스킹은 다중 사용자 시스템을 위한 기본적인 기능이며 리눅스는 최초의
개발 단계부터 보다 완벽한 멀티태스킹을 구현하기 위해서 작성되었다.
② 가상 메모리 (Virtual Memory)
- 리눅스는 페이징(Paging) 기법에 의한 가상 메모리 기능을 지원한다.
- 시스템에 설치되어 있는 실제의 메모리보다 많은 양의 메모리를
사용하기 위한 소프트웨어적인 처리 방법을 사용한다.
- 가상 메모리를 처리하기 위한 단위를 페이지라 한다.
- 하드디스크를 확장된 메모리 영역으로 취급하고, 프로그램을 페이지 단위로
분리한 뒤에 실행되어야 할 부분만을 하드디스크에서 실제의 메모리로
계속해서 전환시키는 방법을 사용함으로써, 시스템에 설치되어 있는 메모리
한계를 극복할 수 있다.
③ 공유 라이브러리 (Shared Libraries)
- 프로그램에서 사용되는 여러 가지 기능들을 별도의 파일로 독립시켜서
필요할 때만 연결해서 사용할 수 있게 하는 방법이다.
- 라이브러리 기능에 의한 프로그래밍은 중복된 코드의 생성을
피하고 효율성을 높일 수 있다.
- 공유 라이브러리는 하나의 라이브러리가 메모리에 적제 되었을 때 이를 여러 개의
프로그램들이 동시에 사용할 수 있도록 하는 기능이며, 이러한 원리는 win 95/98의
DLL(Dynamic Link Library)에서도 동일하게 적용된다.
④ 실시간 페이지 적재 기능 (demand loading excutables)
- 가상 메모리에 의해서 프로그램이 페이지 단위로 분리되어 있을 때
실행되는 순간에만 메모리로 적재되는 기능이다.
- 프로그램의 실행되지 않는 페이지는 하드디스크와 같은 보조 기억 장치에
위치하게 됨으로 메모리를 보다 효율적으로 사용할 수 있다.
⑤ 강력한 네트워크를 지원 TCP/IP와 BSD 소켓
- TCP/IP(Transmission Control Protocol/Internet Protocol)를 비롯한
SLIP(Serial Line Internet Protocol), PPP(Point-to-Point Protocol)와
BSD 소켓에 의한 네트워크 환경을 모두 지원한다.
- 통신과 같이 프로세스의 양방향 전달이 가능한 프로그램을 만들기 위해서
사용하는 라이브러리나 인터페이스를 소켓이라고 한다.
- 현재 세상에 나와 있는 대부분의 네트워크를 가능하게 할 수 있는 운영체제이다.
⑥ 리눅스는 다른 운영체제와의 공존이 가능
- Ms-Dos, OS/2, Windows, Windows NT 등과 같이 한 대의 컴퓨터에서 공존 가능
⑦ 뛰어난 안정성을 유지
- 상용 유닉스 시스템에 버금가는 안정성을 가지고 있다.
- 앞에서 설명한 커널이 어떻게 만들어 졌는가에 따라 좌우된다.
- 윈도우 NT 등과 비교해 볼 때 아주 빨리 버그를 수정하고 새로운 안정화 버전을
만들어 내기에 안정성은 타 OS보다 우위에 있다.
⑧ 빠른 업그레이드와 버그 수정
- 버그 발견 즉시 해커나 FSF에 의해 최소 하루 안에 버그 수정이 이루어지고 있다.
⑨ 완벽한 유닉스 호환 (Full Compatible with Unix)
- 리눅스는 POSIX 표준을 준수하기 때문에 이 표준에 따르는 System V나
BSD 유닉스와 완벽하게 호환될 수 있다.
- 모든 종류의 유닉스용 프로그램은 소스 코드에 의해서 리눅스로 이식될 수 있다.
⑩ 다양한 파일 시스템과 파일 포맷 (Various File System and File Format)
- 다양한 형태의 파일 시스템과 실행 파일 포맷을 지원한다.
- 유닉스, 미닉스, MS-DOS, 윈도우 95/98, OS2, MacOS 등에서 사용하는
다양한 종류의 파일을 활용할 수 있다.
- 이외에도 많은 기능들을 지원하고 새로운 기능들이 계속해서 추가되고 있다.
'LINUX(Server)' 카테고리의 다른 글
| 리눅스 기초 명령어 (2) | 2024.04.10 |
|---|---|
| 리눅스 구조 (0) | 2024.04.09 |
| VLAN (0) | 2024.04.07 |
| Switch, Router (2) | 2024.04.06 |
| Linux 명령어 테스트 (0) | 2024.04.05 |