[유닉스] 특징 및 구조


유닉스의 특징



  1. 단순성

    • 운영체제 자체를 단순화시켜 최소한의 필요한 기능만 제공
    • 자원에 관한 일관성 있는 관점 제공, 주변 장치를 파일과 같은 형식으로 사용
  2. 이식성과 확장성

    • 고급 언어인 C로 작성되어 다양한 플랫폼에 이식하여 사용 가능
    • 각 기능이 모듈화되어 있어 새 기능 추가시 모듈만 추가하면 됨
    • 주요 유닉스 계열의 운영체제 – 안드로이드(Adroid) OS – iOS – 맥(Mac) OS X – 리눅스(Linux) – BSD 유닉스(Unix) – 시스템 V – Sun 솔라리스(Solaris) – IBM AIX – HP HP-UX – Cray 유니코스(Unicos)
  3. 개방성

    • 소스 코드 공개
    • 대학에서 유닉스를 기반으로 여러 가지 유용한 소프트웨어 개발, 보급
    • 유닉스의 양적, 질적인 면에서 폭발적 성장을 촉진하는 원동력
  4. 대화형 시스템

    • 명령어 기반 사용자 인터페이스 이용
    • 유닉스가 이해할 수 있는 ‘명령’을 사람이 입력, 유닉스는 명령 처리 결과를 화면에 출력
  5. 다중 사용자 시스템, 다중 작업용 시스템

    • 여러 사용자가 컴퓨터에 동시에 접속하여 사용할 수 있는 운영체제
    • 사용자들은 직렬 회선(Serial Cable)으로 연결된 단말기를 통해 유닉스에 접속
    • 한 대의 컴퓨터에서 여러 작업을 동시에 수행
  6. 쉘 스크립트

    • 유닉스 명령어나 유틸리티 등을 사용하여 프로그램을 작성하여 사용
    • 큰 작업을 수행할 때 기존의 작은 프로그램들을 적절히 결합하여 수행하는 방식
  7. 다양한 부가 기능 제공

    • ftp, telnet, www 등 다양한 네트워크 관련 응용 프로그램 제공
    • 웹 서버, DB 서버, 메일 서버, 뉴스 서버, 네임 서버 등 네트워크 서버 기능 지원
    • 프로그래밍 및 디버깅 도구, 문서 편집 도구, 출력 관련 도구 제공



유닉스, 리눅스의 활용 분야



  1. 서버

    • 웹 서버, DB 서버, 파일 서버, 메일 서버, 뉴스 서버, 네임 서버, 클러스터링 등
  2. 임베디드 시스템

    • 통신 단말기 : 휴대폰, PDA, PMP, 무선 IP 공유기, IPTV 셋탑박스, 인터넷폰 등
    • 네트워크 장비 : 스위치, 방화벽, 게이트웨이 등
    • 가전 제품 : DVD Player, MP3 Player 등
    • 생산 설비 : 홈오토메이션, 공장 자동화, 산업용 로봇 등



유닉스 시스템의 구조



  1. 유닉스 시스템의 구조

    • 구성요소 : 하드웨어, 커널, 쉘 및 라이브러리, 사용자 및 응용 프로그램



  2. 커널

    • 운영체제의 핵심
    • 하드웨어를 운영 관리
    • 프로세스 관리 (Process management) – 여러 개의 응용 프로그램들이 동시에 수행되는 것처럼 실행될 수 있도록 프로세스 스케줄링
    • 파일 관리 (File management) – 디스크 상에 파일 시스템을 구성하여 파일을 관리
    • 메모리 관리 (Memory management) – 메인 메모리가 효과적으로 사용될 수 있도록 관리
    • 통신 관리 (Communication management) – 네트워크를 통해 정보를 주고 받을 수 있도록 관리
    • 주변 장치 관리 (Device management) – 모니터, 키보드, 마우스와 같은 장치를 사용할 수 있도록 관리
  3. 시스템 호출(system call)

    • 커널이 제공하는 서비스에 대한 프로그래밍 인터페이스 역할
    • 시스템 호출에 기반하여 공통적인 함수들의 모음인 라이브러리 존재
    • 응용 프로그램은 필요시 시스템 호출과 라이브러리를 자유롭게 사용
    • 사용자와 커널 사이의 중간자 역할
    • 사용자가 입력한 명령을 해석하여 커널에 전달
    • 커널이 명령 수행 결과를 돌려주면 사용자에게 전달
    • 본 쉘(sh, Bourne Shell), C 쉘(csh, C Shell), 콘 쉘(kch, Korn Shell), 배시 쉘(bash, Bourne Again Shell)
  4. 사용자 및 응용 프로그램, 유틸리티

    • 사용자가 개발한 프로그램, 응용 프로그램
    • 각종 개발 도구, 문서 편집 도구, 네트워크 관련 도구