시스템 프로그래밍(1)

조권휘·2022년 8월 14일
0

시스템 프로그래밍

목록 보기
1/14

Operating System

  • user와 하드웨어 사이의 사용을 쉽게 해주는 program
  • multi system을 사용한다.
  • process / scheduling
    • process : 실행 중인 program
    • scheduling : 1개의 process가 빠른 속도로 처리하기 위해 순서를 정해주는 것
  • OS 실행영역과 APP이 실행되는 영역이 다르다.
    • kernel space는 다른 것이 침범할 수 없는 영역이다.

UNIX

  • 1969년 Bell 연구소의 Ken Thompson과 Dennis Ritchie에 의해 개발되었다.

UNIX의 철학

  • 단순하게 만든다. → 각 program이 1개의 일을 한다.
    → 각 prototype을 빨리 만들 수 있다.
  • 효율성보다 이식성을 중요시한다. → 많은 기기에 OS를 탑재하게 한다.
  • shell script 기능이 있다.
  • 사용자의 입력개입(Capative user interface)를 피한다.
    → 그 때 그 때 답장을 한다.

    shell : OS에 명령을 내리는 창고와 같은 역할
    System Call : OS가 제공하는 function


Kernel

  • Linux 운영 체제(OS)의 주요 구성 요소로, 컴퓨터 하드웨어와 프로세스를 이어주는 핵심 인터페이스

Kernel의 역할

  • process, File, Memory, Device 등을 관리한다.
  • 시스템을 호출한다.

System Call vs Library Call

1. System Call

  • Resource Access를 위해 커널 모드로 들어가려고 프로그램이 커널에 요청하는 것.

2. Library Call

  • 프로그램이 프로그래밍 라이브러리에 정의된 기능을 Access하기 위한 요청

Shell

  • user interface를 처리하는 system
  • program, file을 관리
  • program을 실행
  • login 할 때 shell의 상호작용 : command 기록, 편집, 확장 등
  • Shell도 커널에 종속되어 있지만 독립적인 프로그램이다.

Linux Command

  • command, options/flags, parameter로 구분한다.
  • command : 명령어
  • options/flags : -X, --longname
  • parameters : 보통 files, string으로 command에 따라 사용이 달라진다.

Linux 기본 명령어

  • pwd : 현재 working directory를 출력
  • cd : 입력한 working directory로 이동
  • cat : file의 내용을 stdout에 출력
  • chmod : file의 접근권한을 변경
  • vi : file을 생성/편집
  • ls : 현재 directory의 내용을 출력
  • rm : file 제거
  • mv : file 이름 변경
  • cp : file 복사
  • touch : empty file 생성
  • mkdir : directory 생성
  • rmdir : directory 제거
  • passwd : user password 변경
  • split : file 분할

Linux File System

Home directory

  • user에게 할당된 directory
  • user가 처음 로그인 했을 때 현재 directory
  • 보통 /home 아래에 존재하고, root로도 표현

File/Directory Path

1) Absolute path (절대 경로)

  • root부터 현재 위치까지를 모두 표현한다.
  • e.g. /home/avr/java/Go.java

2) Relative path (상대 경로)

  • 현재 위치로부터 상대적으로 나타낸 경로
  • 현재 위치를 잘 파악하고 있어야한다.
  • . : 현재 아래의 directory
    e.g. ./java
  • .. : 현재 하나 위에 있는 directory
    e.g. ../include
  • tild ('~') : user의 홈으로 간다.
    e.g. cd ~

File Permission

  • File/Directory는 owner, group, others로 권한 설정을 한다.
  • 개별적으로 read, write, execute의 권한을 가지게 된다.

Permission을 바꾸는 방법

1) chmod [permission][filename]

  • permmit : 1 / not permit : 0
  • e.g. chmot 774 myFile.txt
profile
안녕하세요 :) Data/AI 공부 중인 한국외대 컴퓨터공학부 조권휘입니다.

0개의 댓글