본문 바로가기
공부/정보보안기사

리눅스 구성 요소 (커널, 셸, 파일 시스템)

by Skogkatt의 개인 블로그 2020. 3. 29.
반응형

리눅스 구성 요소

리눅스 운영체제 핵심 구성요소

커널(Kernel)
  • 메모리에 상주하면서 시스템을 리하는 운영체제의 핵심
  • 운영체제 응용프로그램 수행에 필요한 여러 서비스를 제공한다.
  • 프로세스, 메모리, 입출력, 파일 관리 등
셸(Shell)
  • 사용자가 입력한 문장을 읽어 요청을 실행하는 명령어 해석기/번역기
  • 커널과 직접적으로 연결돼 있어 명령어를 해석한 결과를 다른 프로그램 또는 커널로 전송
  • Bourne 셸, C셸, Korn셸, bash셸 등
  • 리눅스의 표준 셸은 bash 셸이다. 다른 셸을 사용해도 상관은 없다.
파일 시스템(File System)
  • 파일 저장의 기본적인 구조, 시스템 관리를 위한 기본 환경을 제공
  • 계층적인 트리 구조 형태(디렉터리, 서브 디렉터리, 파일 등)
  • 리눅스 표준 파일 시스템은 ext4

셸(Shell)

셸의 기능

  • 시그널 처리
  • 프로그램 실행
  • 파이프, 리다이렉션, 백그라운드 프로세스 설정
  • 입력된 내용을 파악해 명령 줄 분석
  • 왕리드 카드, 히스토리 문자, 특수문자 분석
사용 가능한 셸 확인
# cat shells

사용자별 셸 정보
# cat /etc/passwd

셸 환경변수

  • 환경변수는 특정한 의미로 설정된 값을 의미한다.
  • HOME 이라는 사용자 계정의 홈 디렉터리가 있을 때 이를 사용하려면 $HOME을 입력하면 된다.
  • 유용하게 사용될 변수 및 설정해야 하는 값을 설정해 두는 것
현재 환경에 설정되어 있는 모든 변수 확인
# env

셸의 종류

bash 셸

  • 리눅스의 표준 셸
  • bash 셸이 실행될 때는 환경 파일을 읽어서 환경 파일에 설정된 값으로 실행된다.
  • bash 셸의 설정 파일은 .bash_profile[각주:1] /. bashrc [각주:2] / .bash_logout[각주:3] 이 존재한다.

파일 시스템(File System)

  • 리눅스의 파일은 가장 최상위 루트(Root)부터 하위로 만들어지며 루트 파일 시스템은 오직 한 개만 존재한다.
  • 일반 파일에는 텍스트 파일과 바이너리 파일로 분류된다. 파일들은 디렉터리에 저장된다.
  • USB, CDROM, CPU, Memory와 같은 하드웨어 장치를 관리하기 위한 특수파일은 /dev 디렉터리에 위치한다.
    특수파일은 문자단위 특수파일과 블록단위 특수파일[각주:4]로 분류된다.

리눅스 파일 종류

리눅스 파일 시스템 구조

부트 블록(Boot Block)
  • 리눅스 파일 시스템 구조는 부트 블록으로 시작되며 부트 블록은 컴퓨터 시스템을 부팅하기 위한 부팅에 관련된 이미지를 가지고 있다.
  • 이는 리눅스 운영체제가 시작되면 제일 처음 읽음으로써 리눅스를 기동하게 된다.
  • 부트 블록이메모리에 모두 올라가면 리눅스 운영체제는 먼저 init 프로세스를 기동 하게 된다.[각주:5]
슈퍼 블록(Super Block)
  • 부트블록 다음에 실행되는 블록으로 파일 시스템의 크기, 여유 공간(빈 블록 리스트), 파일 시스템의 이름, 디스크 이름 등의 정보를 가진다.
  • 슈퍼 블록이 가지고 있는 정보
    1)
    파일 시스템의 크기, 블록 수 등 이용 가능한 블록리스트
    2) 빈 블록 리스트에서 그 다음의 빈 블록을 가리키는 인덱스
    3) inode 목록의 크기, 파일 시스템에 있는 빈 inode 수와 목록
    4) 빈 inode 목록의 크기, 파일 시스템에 있는 빈 inode 수와 목록
    5) 빈 블록과 빈 inode 목록들에 대한 lock 필드
    6) 슈퍼 블록들이 수정되었는지 나타내는 플래그(flag)
    7) 파일 시스템 이름과 파일 시스템 디스크의 이름
inode
  • 리눅스 커널이 현재 사용하는 자료구조(파일 정보)를 유지하는 구조체이다. 리눅스는 파일에 접근 시 inode를 사용해 파일을 참조한다.
  • inode는 파일과 관련된 정보를 가지고 있으며 파일에 inode Number라는 일련의 숫자를  부여하여 관리한다.[각주:6]
  • inode가 가지고 있는 정보
    1) 파일 소유자 ID(사용자 ID)
    2) 파일 소유자의 그룹 ID
    3) 파일 크기
    4) 파일 생성 시간
    5) 파일 최근 사용 시간
    6) 파일 최근 변경 시간
    7) 파일 링크 수
    8) 접근 모드
    9) 데이터 블록 주소
indoe 정보 확인
ls -il

 

  1. 사용자 홈 디렉터리 파일, 개별적인 셸 환경 설정 [본문으로]
  2. 사용자 정의 변수, 함수 alias 정의 [본문으로]
  3. 사용자가 로그아웃 할 때 실행되는 파일 [본문으로]
  4. 동일한 크기로 기록되는 파일 [본문으로]
  5. init 프로세스의 프로세스 ID는 1번이 부여된다 [본문으로]
  6. 리눅스 사용자들이 볼 수 있는 파일명은 사용자들을 위한 별도의 것이고, 실질적으로는 파일이 생성되면 파일명과 함께 inode가 부여되는 방식이다. [본문으로]
반응형

'공부 > 정보보안기사' 카테고리의 다른 글

리눅스 패스워드 파일 (/etc/passwd, /etc/shadow)  (0) 2020.03.29
리눅스 부팅  (0) 2020.03.29
리눅스 개요  (0) 2020.03.28
프로세스 관리  (0) 2020.03.28
운영체제  (0) 2020.03.27

댓글