[Liunx] Unix System Overview

귀찮Lee·2023년 3월 20일
0

Liunx

목록 보기
4/5

◎ Unix Architecture

  • Unix Architecture

    • kernel : 크기가 작고 핵심적인 부분
    • system call : kernel의 인터페이스, 시스템 계층 중의 하나
    • shell : 실행을 위한 인터페이스
    • library routine : system call을 기반으로 정의
    • application : library routine을 사용할 수 있는 프로그램, 직접적으로 system call을 사용하기도 함
  • OS의 의미

    • 엄밀한 의미의 OS : kernel만을 의미
    • 넓은 의미의 OS : kernel + SW
      • shell, library, system call, 시스템 유틸리티, 응용프로그램

◎ Unix 제공 기능

  • Login

    • multi-user system; 다수의 사람이 한정된 자원에 접근하기 위해 도와주는 기능
    • "login name + password"로 시스템 로그임
    • /etc/passwd에 정보를 저장
      • 형식 : login name:password:UID:GID:comment:home directory:shell
      • ex) gwichan:password1!:205:105:Stephen Rago:/home/sar:/bin/ksh
  • Shell

    • Unix는 기본적으로 command line interface를 사용
    • 사용자의 명령을 읽어 들어 실행하는 명령어 해석기가 필요
    • Shell의 종류
      • Unix의 많은 분화를 통해 많은 shell의 종류가 있음
      • Bourne shell : 대중적으로 많이 활용됨 (/rsin/sh)
      • Bourne-again shell,C shell,Korn shell,TENEX C shell, ...

◎ File System

  • 구성

    • File과 Directory로 구성되어 있음
    • Directory : Directory entry (file name + attribute pointer)들의 집합
  • Attribute

    • 파일(폴더)의 정보를 가지고 있음
    • type, size, owner, permission, access time 등으로 구성됨
  • File name

    • Null과 '\'를 제외한 문자열로 구성
    • BSD(Unix의 한 종류)의 경우 255자 이내
    • Special filename
      • . : current directory
      • .. : parent directory
  • Path name

    • 작성 방법은 상대 경로와 절대 경로로 나뉨
    • 상대 경로 : working directory를 기준으로 작성
      • ex) kw/a.exe
    • 절대 경로 : 가장 상위 directory를 기준으로 작성, "/"으로 시작
      • ex) /usr/bin
  • File discriptor

    • 커널에서 파일을 확인하기 위해 사용하는 값
    • 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값
    • 0 이상의 정수를 사용함

◎ Program vs Process

  • Program

    • 디스크에 있는 실행가능한 파일
  • Process (task)

    • 현재 실행중인 프로그램
    • Process id : 프로세스를 구별하기 위한 인식자

◎ Error Handling

  • 음수 값을 반환하면서 Error를 일으킴
    • <errno.h> : errno symbol과 constant가 정의되어 있음
    • 각각 constant는 E로 시작함

◎ User Identification

  • user ID

    • 정수를 통해 유저를 식별함
    • 시스템 관리자(system administrator)를 통해 할당됨
    • 0 : root or superuser
  • group ID

    • 프로젝트 단위로 사람들을 묶어 관리할 때 사용
  • 숫자를 사용하는 이유

    • 문자를 사용할 경우, 추가적인 disk 공간을 필요로 함
    • 문자를 사용할 경우, 글자들끼리 비교하는데 비용이 더 든다.

◎ Signals

  • 프로세스에게 해당 상황이 발생했다고 알림
  • 프로세스가 Signal 받았을 때 처리 과정
    • signal을 무시
    • default action을 실행함
    • 개인적으로 정의된 action을 실행함
  • ex) kill, ...

◎ Time value

  • 종류

    • clock time : 프로세스가 실행된 전체 시간, 다른 프로세스의 수에 영향을 받음
    • user CPU time : 유저 명령에 의해 실행된 시간
    • system CPU time : 커널이 CPU를 소비한 시간
  • 해당 자원이 충분히 사용되고 있는지 확인할 수 있고, 어느 부분에서 병목현상이 생기는지 확인할 수 있다.

profile
장비를 정지합니다.

0개의 댓글