LINUX(Server)

운영체제

천천히, 한 걸음씩 2024. 4. 8. 10:22

운영체제 ( 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