DrawingProcess
드프 DrawingProcess
DrawingProcess
전체 방문자
오늘
어제
«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
  • 분류 전체보기 (968) N
    • Profile & Branding (25)
      • Career (18)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (98) N
      • Book (67) N
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • 인생을 살면서 (64)
      • 나의 취미들 (7)
      • 나의 생각들 (42)
      • 여행을 떠나자~ (10)
      • 분기별 회고 (5)

개발자 명언

“ 매주 목요일마다 당신이 항상 하던대로 신발끈을 묶으면 신발이 폭발한다고 생각해보라.
컴퓨터를 사용할 때는 이런 일이 항상 일어나는데도 아무도 불평할 생각을 안 한다. ”

- Jef Raskin

맥의 아버지 - 애플컴퓨터의 매킨토시 프로젝트를 주도

인기 글

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
DrawingProcess

드프 DrawingProcess

[OS] 리눅스 구조: 커널(Kernel), 쉘(Shell), 프로세스(Process), 쉘 세션(Shell Session)
Study: ComputerScience(CS)/CS: OperatingSystem

[OS] 리눅스 구조: 커널(Kernel), 쉘(Shell), 프로세스(Process), 쉘 세션(Shell Session)

2022. 7. 25. 06:59
반응형

커널과 쉘, 유틸리티, 응용프로그램 관계도

리눅스 구조


리눅스 란?

  • 유닉스와 거의 비슷한 운영체제지만, 유닉스의 장점을 포함하면서도 새로운 여러 기능을 부가적으로 가지고 있는 운영체제입니다.
  • Linus Torvalds라는 필란드 사람이 대형 컴퓨터에서 사용하던 유닉스 소스를 수정하여 개인 pc에도 사용할 수 있는 공개 운영체제로 개발하였습니다.

 

유저 & 쉘 & 커널 관계

  • 유저가 CLI를 통해 명령어를 입력하면 명령어가 쉘에게 전달됩니다. 
  • 쉘이 명령어를 커널이 이해할 수 있게 번역해 커널에게 넘기면, 커널은 이 명령어를 통해 하드웨어를 컨트롤하여 다시 유저에게 output처리를 합니다.

리눅스 구성요소


커널 (Kernel)

  • '커널'이란 운영체제(OS)의 두 가지 구성요소 중 하나입니다.
  • 커널은 하드웨어를 직접적으로 제어하는 운영체제의 핵심이며 프로세스 관리, 메모리 관리, I/O 시스템 관리, 파일 시스템 관리 등을 수행합니다.
  • 흔히 리눅스의 우분투, 센토스 등의 배포판은 리눅스 커널을 기반으로 만들어졌다고 보면 되며, 리눅스 커널을 기반으로 만들어진 배포판들을 흔히 리눅스라고 칭합니다.
  • 1만 줄 이상의 C 프로그램과 1000여 줄의 어셈블리어로 구성되어 있어서 이식성이 좋습니다.
  • 커널은 주기억 장치에 적재되며, 리눅스가 부팅될 때 메모리로 로드됩니다.

 

쉘 (Shell)

  • '쉘'이란 운영체제(OS)의 두 가지 구성요소 중 나머지 하나입니다.
  • 쉘은 커널을 컨트롤할 수 있으며 커널은 하드웨어를 컨트롤합니다. 즉, 하드웨어를 유저가 컨트롤하기 위한 인터페이스라고 볼 수 있습니다.
  • 쉘을 사용하면 커널단의 복잡한 동작 방식을 알 필요 없이 쉘 상의 인터페이스로 시스템 자원들을 쉽게 관리할 수 있습니다.
  • 쉘의 종류는 bash, zsh 등이 있습니다.
  • 사용가능한 쉘의 목록을 확인하려면 다음과 같이 명령어를 입력합니다.
    • 더욱 자세한 설명은 [OS] Shell과 쉘(Shell) 스크립트(*.sh): bash shell를 참고해주시기 바랍니다.

 

프로세스 (Process)

프로세스란?

  • 커널의 관리 하에 현재 시스템에서 동작 중인 모든 프로그램을 프로세스라 합니다. 
  • 모든 프로세스는 고유의 권한과 책임을 가지고, 연산을 위해 컴퓨팅 자원을 이용하거나 서로 통신을 할 수 있습니다. 
  • 직관적인 이름을 가진 ps 명령어를 이용하면 현재 실행 중인 프로세스를 확인할 수 있습니다.

프로세스 구분: 동작 방식에 의한

  • Foreground process
    • 쉘/터미널에서 사용자가 입력한 명령을 해석하여 실행하고 그 결과를 출력하는 방식의 프로세스가 Foreground process입니다.
    • 입력한 명령이 실행되어 결과가 출력될 때까지 사용자가 다른 작업을 수행할 수 없습니다.
  • Background process: 
    • Foreground process와 달리 사용자 입력과 상관없이 실행되는 프로세스를 말합니다. 
    • 명령의 처리가 끝나는 것과 관계없이 곧바로 터미널에 프롬프트가 출력되어 사용자가 다른 작업을 수행할 수 있습니다. 
    • 명령어의 마지막에 &을 추가하면 특정 명령을 Background process로 실행할 수 있습니다.

프로세스 구분: 생성 주체에 의한

  • Init 프로세스: 리눅스 시스템이 부팅되면 가장 먼저 실행되는 프로세스로 파일 시스템 구조 검사, 파일 시스템 마운트, 서버 데몬 실행, 사용자를 위한 셸 실행 등의 작업을 수행합니다.
  • 데몬 프로세스: 사용자에게 특정 기능/서비스를 제공하는 프로세스입니다.
  • 부모 프로세스: 다른 프로세스를 생성하는 프로세스이며, init 프로세스를 제외한 모든 프로세스는 부모 프로세스를 가집니다.
  • 자식 프로세스: 부모 프로세스에 의해 생성되는 프로세스로 작업이 완료되면 부모 프로세스에게 결과를 전달한 후 종료됩니다.
  • 고아 프로세스: 부모 프로세스가 끝났는데도 불구하고 남아있는 자식 프로세스를 고아 프로세스라고 합니다.
  • 좀비 프로세스: 종료 신호를 부모 프로세스가 처리하지 못할 경우 자식 프로세스를 좀비 프로세스라고 합니다.

 

쉘 세션(Shell session)

  • 하나의 유저가 실행시킨 쉘을 의미하며 하나의 쉘/터미널*마다 하나의 쉘 세션만을 가질 수 있습니다.
  • 만약 터미널에서 세션 로그아웃이 발생하면 HUP(Hang UP) signal을 전달하여 해당 세션에서 실행된 모든 프로세스를 종료시킵니다.
    • 터미널/콘솔이란? 쉘을 실행하기 위한 Wrapper Program을 의미합니다. (엄밀히 말하면 콘솔은 HW, 터미널은 SW측면에서 시스템을 조작할 수 있는 체계를 말하지만 현재는 명확한 구분 없이 사용된다고 합니다.)
      • 터미널을 실행시켰을 때 커서 앞에 있는 문자를 Prompt라고 하고, 쉘을 통해 명령어를 전달할 준비가 되었음을 알려주는 기능을 합니다. ($: 보통 유저, #: 시스템 관리자)

 

참고


  • 커널과 쉘에 관하여: https://roadofdevelopment.tistory.com/6
  •  리눅스와 커널: https://studymake.tistory.com/104
  • [Linux] 리눅스란? / 커널/쉘/파일구조: https://mkil.tistory.com/186
  • [Linux] 리눅스의 기본 구조: kernel, shell, process and shell session: https://tigris-data-science.tistory.com/m/entry/Linux-%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B5%AC%EC%A1%B0-kernel-shell-process-and-shell-session

반응형
저작자표시 비영리 변경금지 (새창열림)

'Study: ComputerScience(CS) > CS: OperatingSystem' 카테고리의 다른 글

[OS] 쉘(Shell) 기본 문법: bash shell  (0) 2023.01.22
[OS] 리눅스의 쉘(Shell)과 설정 파일 적용 순서(feat. bash, zsh, ...)  (0) 2022.07.23
    'Study: ComputerScience(CS)/CS: OperatingSystem' 카테고리의 다른 글
    • [OS] 쉘(Shell) 기본 문법: bash shell
    • [OS] 리눅스의 쉘(Shell)과 설정 파일 적용 순서(feat. bash, zsh, ...)
    DrawingProcess
    DrawingProcess
    과정을 그리자!

    티스토리툴바