티스토리 뷰

Linux

[Linux] kernel(OS)

Hwan'ss 2019. 7. 21. 16:32

1. 운영체제(OS)란?

  • 하드웨어 자원들(cpu, memory, disk, tty)를 관리하고 프로그램들을 지원해주는 것
  • 쉽게 말해 하드웨어를 감추고 겉으로 다른 프로그램들을 지원해준다고 보면 됨
  • 하드웨어를 감춘다는 것은 프로그램을 사용하는 사람이 편하게 쓸 수 있게 각종 기반 작업을 지원하는 것임
  • 간단하게 예를 들어 일반적으로 우리는 파워포인트나 워드를 쓸 때 프로그램이 cpu와 memory와 어떻게 소통하는지 등에 대해 신경쓰지 않는데 이것은 바로 운영체제 때문이다.

2. 커널(Kernel)이란?

  • 커널은 본질적으로 프로그램이다. 우리가 흔히 하는 main()으로 시작하는 프로그램을 말함
  • 하지만 다른 모든 프로그램과는 다르게 커널만이 가지고 있는 특별한 점이 있다.
  • 바로 'Memory Resident'라는 점인데 메모리에 항상 상주해 있는 것이 바로 커널이다.
  • 커널이 아닌 다른 프로그램들은 메모리에 있어도 되고 없어도 되는데 이것을 'Disk Resident'라 하는데 필요 할 때 마다 그 때 그 때 메모리에 로딩해서 사용하면 된다는 것을 말함

3. 쉘(Shell)이란?

  • 우리 디스크에는 수십 수백개의 프로그램들이 존재한다. 이 프로그램들이 언제 메모리에 로딩되고 언제 메모리에서 해제되는지 누가 관리해줄까? 관리해주는 프로그램이 꼭 필요하지 않을까?
  • 위와 같은 필요에 의해 탄생한 것이 쉘이다. 많은 프로그램들의 메모리 교통 정리를 해 주는 역할을 함.

4. 커널과 쉘, 그리고 유틸리티의 관계

  • 맨 처음 시스템을 부팅하면 제일 먼저 메인 메모리에 Kernel이 올라온다. 커널 실행파일이 메모리에 로딩된다는 말임
  • 리눅스는 멀티 유저 시스템으로 하나의 시스템에 다양한 유저가 들어온다는 것을 상기해야 함
  • 유저가 터미널에 전원을 키면 그 터니멀 위에서 쉘(Shell)이란 프로그램이 메인 메모리에 올라온다. 그 후 쉘은 유저가 키보드로 커맨드를 입력하기를 기다린다. 유저가 커맨드를 입력하면, 쉘을 커맨드에 대응하는 유틸리티를 디스크로부터 가져와서 실행시킴.
  • 각 유저로부터 전원이 들어올 때마다 이 3개의 프로그램(커널, 쉘, 유틸리티)의 관계가 형성됨을 알 수 있음
  • 위의 내용들을 다시 한번 정리하면 커널은 운영체제(OS)이며 항상 메모리에 상주해 있다. 나머지 프로그램들은 유틸리티이며 디스크에 상주한다는 것이다. 유틸리티는 항상 디스크에 있다가 필요할 때마다 메모리에 올라오고 사용하지 않을 때는 다시 내려간다. 유틸리티를 우리는 커맨드라고 칭하며 커맨드들의 교통정리를 하는 것이 쉘의 역할이다.

 

 

2019.07.21(일)

'Linux' 카테고리의 다른 글

[LINUX] VMware Network setting(Port porwarding) - Custom  (0) 2019.09.11
[LINUX] CentOS Tomcat war 배포  (0) 2019.09.10
[LINUX] CentOS Tomcat install  (0) 2019.09.10
[LINUX] VMware CentOS install  (0) 2019.09.10
[LINUX] 리눅스란?  (0) 2019.07.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
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 31
글 보관함