Linux

리눅스 운영체제 구조

J520 2021. 12. 7. 18:20

리눅스 운영체제 구조


 

1. 운영체제(Operating System)란

- 하드웨어 자원들을 관리하고 소프트웨어들을 실행하기 위한 서포트를 해주는 시스템 소프트웨어

리눅스는 운영체제의 하나로 크게 커널, 쉘, 유틸리티 등으로 이루어져 있음

 


2. 커널(Kernel)

- 메모리 상주 프로그램(memory resident program)으로, 부팅 시 가장 먼저 메모리에 올라오며 항상 메모리에 상주함

 


3. 유틸리티(Utility)

- 디스크 상주 프로그램(disk resident program)으로, 항상 디스크에 상주해 있다가 필요할 때만 메모리에 올라왔다 내려감
- command와 동일어(유저 요청 시 메모리에 올라옴)

 


4. 쉘(Shell)

- 유틸리티가 메모리에서 언제 올라오고 내려가야 하는지 교통정리(job control)를 해주는 프로그램
- 쉘은 사용자와 커널 사이의 인터페이스이며 사용자로부터 명령을 받아 여러 프로그램이나 명령을 실행

 


5. 커널-쉘-유틸리티의 관계

- 디스크에 커널, 유틸리티, 쉘이 있다가, 부팅 시 커널이 가장 먼저 메모리에 올라감

- 유저A가 터미널을 켜면 커널의 프로세스에 의해 해당 터미널 위에 쉘이 메모리에 올라감
- 유저B가 터미널을 켜면 커널의 프로세스에 의해 해당 터미널 위에 쉘이 메모리에 올라감
- 쉘은 유저의 커맨드 입력을 기다리다, 유저B가 커맨드 입력 시(ex:ppt) 커맨드에 대응되는 유틸리티를 디스크로부터 가져와 실행(ex:ppt 실행)

 


6. 번외 : Linux와 GNU 시스템

 자유 소프트웨어 재단의 리처드 스톨먼 같은 사람들은 GNU/Linux와 Linux라는 용어를 구분해서 지칭해야 한다고 말한다. 리눅스 그 자체는 커널을 의미하며, 커널이 운영체제의 핵심 부분이라는 것은 사실이지만, 그것만으로 운영체제의 역할을 수행할 수 있는 것은 아니라는 것이다.

 즉, 리눅스라는 용어는 커널 만을 의미하며, 리눅스 운영체제 자체를 지칭할 때는 '리눅스 기반의 GNU 시스템(GNU/Linux)'이라고 불러야 한다는 것이다.

 그러나 이미 GNU/Linux와 Linux를 거의 구분하지 않고 사용하고 있기 때문에 용어를 엄격하게 구분할 필요는 없는 것 같다. 다만 GNU/Linux와 Linux에 차이가 있다는 것을 알고 있으면 될 것 같다.

 


[참고]

https://olc.kr/course/course_online_view.jsp?id=35&s_keyword=Kernel&x=0&y=0

 

https://medium.com/pocs/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%BB%A4%EB%84%90-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B0%95%EC%9D%98%EB%85%B8%ED%8A%B8-1-d36d6c961566

 

리눅스 커널(운영체제) 강의노트 [1]

커널을 공부하는 마음가짐

medium.com


https://www.elprocus.com/linux-operating-system/

 

Linux Operating System : Types, Working, Differences & Its Commands

This Article Discusses about What is the Linux Operating System, Types, History, Architecture, Features, Advantages, Applications, etc.

www.elprocus.com

 

https://www.gnu.org/gnu/linux-and-gnu.ko.html

 

리눅스와 GNU 프로젝트 - GNU 프로젝트 - 자유 소프트웨어 재단

This translation may not reflect the changes made since 2000-02-20 <!-- TRANSLATORS: The link to the English page will follow this string. --> in the English original. Please see the Translations README for information on maintaining translations of this a

www.gnu.org

 

'Linux' 카테고리의 다른 글

CentOS 7 & Window hostname 영구변경  (0) 2019.04.11
CentOS 7에서 enp0s3을 eth0로 변경  (0) 2019.03.28
방화벽 관련 명령어  (0) 2019.03.08