linux 기초

als13w
|2024. 7. 5. 21:01

운영체제(OS)

컴퓨터의 하드웨어와 소프트웨어 사이에서 소통을 도와주는 인터페이스. 하드웨어와 사용자 간의 중개자 역할을 하는 소프트웨어.

하드웨어 리소스 관리 & 응용 프로그램이 하드웨어를 효율적으로 사용할 수 있도록 지원함

EX) 유닉스, 리눅스, 윈도우, OS, X, 안드로이드 등

 

컴퓨터는 다양한 장치들이 한데 묶여서 각자의 역할이 상호작용하게끔 한다고 볼 수 있는데, 이 장치들이 상호작용을 하게끔 환경을 만들어 주는 것이 OS라고 할 수 있음

 

linux

유닉스 계열의 운영체제의 운영체제. 대형 컴퓨터에서 사용하는 유닉스 소스 코드를 수정하여 개인 PC에서도 사용할 수 있는 오픈 소스로 개발하고 자신의 이름을 따서 리눅스로 정함

즉, 유닉스를 개인 컴퓨터에서 사용할 수 있도록 한 것 = 리눅스

EX) 우분투, 레드핫, CentOS, 페도라, 데비안 등

  • 주요 모듈은 패키지 매니저를 통해 설치할 수 있음
  • 패키지 설치 명령 : 패키지간의 의존성을 확인해서 자동으로 설치해주기에 사용이 편리
    • 패키지 매니저
    • yum
      • 레드핫 계열, CentOS
    • apt-get
      • 데비안 계열, 우분투

주요 디렉토리

/bin : 기본 명령어 바이너리 저장

/dev : 장치 파일 저장

/etc : 설정 파일

/home : 사용자의 홈 디렉토리

/lib : 라이브러리 디렉토리

/lib64 : 64bit용 라이브러리 디렉토리

/mnt : 디스크 마운트 디렉토리

/opt : 사용자 응용 프로그램 설치 디렉토리

/proc :CPU, 메모리 등 시스템 정보 특수 파일 저장

/sbin : 필수 시스템 바이너리 파일 저장

/tmp : 임시 파일 저장. 주기적으로 지워지기 때문에 오래 저장할 파일을 보관하면 안됨

/var : 로그 등 시스템 운영중 계속 갱신데이터 저장

  • / : 최상위 디렉토리라고 불리는 기호. 가장 큰 집합체
  • 최상위 디렉토리에 가까울수록 상위디렉토리(반대쪽으로 갈 수록 하위 디렉토리)
  • 윈도우와 리눅스의 차이: 윈도우는 Grahical User Interface(=GUI)인 반면, 리눅스는 Text User Interface(=TUI)

 

커널

하드웨어와 애플리케이션 간에 상호 작용을 도와주는 OS의 핵심 구성 요소

 

유닉스 계열 시스템에서 사용하는 대화형 인터페이스

사용자의 커널 사이에서 사용자의 입력을 받아 명령을 해석해 커널에 전달 & 그 결과를 사용자에게 반환

EX) Bash, Tcsh, Ksh, Zsh, Fish 

 

프로세스(Process)

일반적으로 실행중인 프로그램 의미. 여러 개의 프로그램을 동시에 실행하는 것을 멀티태스킹이라고 하고, 이 프로세스를 관리하는 것이 운영체제의 주요 역할 중 하나임

 

리눅스의 프로세스 실행 방식

리눅스의 프로세스는 포그라운드(foreground)와 백그라운드(background) 방식으로 동작함

  • 포그라운드 방식 : 키보드 입력을 받아서 동작하는 방식. 실행되면 다른 작업을 처리할 수 없어서 작업이 끝날 때가지 대기함
  • 백그라운드 방식 : 사용자와의 대화 없이 실행되는 작업 방식. &를 붙여서 실행하고 다른 명령어를 추가적으로 입력할 수 있음
    • 백그라운드 방식으로 실행해도 사용자의 터미널 세션이 종료되면 실행중인 프로세스도 종료됨. 작업시간이 오래 걸리는 경우 nohup 명령어를 이용해 백그라운드로 실행하면 사용자의 터미널 세션이 종료되어도 작업이 종료될 때가지 프로세스를 실행함
# 포그라운드 방식 
$ sample.sh

# 백그라운드 방식 -- &추가 
$ sample.sh &

# nohup 커맨드(no hang up)
$ nohup sample.sh &