CS 기초 지식/네트워크

[ 운영체제 ] OS, 그리고 커널과 쉘

쑨토리 2023. 8. 17. 21:20

운영체제란?

  • 운영체제란 : OS (Operating System) , 특정한 기능을 하는 하나의 프로그램이다. 
  • 주요 운영체제 : 윈도우, UNIX 계열 OS(리눅스), 맥OS
  • OS는 정확히는 커널(kernel)을 의미하지만, 사용자, 응용프로그램(application), 운영체제(kernel), 컴퓨터 하드웨어와 같이 커널에 여러가지가 추가된 상태를 OS라고 통칭하기도한다. 

출처 :https://ko.wikipedia.org/wiki/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C , https://post.naver.com/viewer/postView.naver?volumeNo=32073536&memberNo=4146898

 

운영체제는 사용자 인터페이스를 제공하고 있다. : 쉘

  • 쉘 (shell)
    • 커널(Operating System)만 제공해서는 사용자가 어떻게 사용해야할지 모르기 때문에 별도의 프로그램을 제공해서 사용자로부터 입력을 받아 커널이 그에 따른 동작을 할 수 있게금 하는 역할을 한다. 
    • 사용자가 운영체제 기능과 서비스를 조작하도록 인터페이스(ex 사용자가 어떻게 명령을 하면 프로그램을 실행시킬 수 있다. 라는)를 제공하는 프로그램. 일종의 응용프로그램임.
    •  사용자가 컴퓨터를 어떻게 써야되는지 사용법을 제공해주는 프로그램이라고 보면 된다. 
    • 쉘은 터미널 환경(CLI)GUI 환경 두 종류로 분류
    • 유명한 쉘:리눅스 bash

 

운영체제는 응용 프로그램 인터페이스 제공 : 시스템 콜

  • 시스템 콜 (System Call)
    • 시스템 콜 또는 시스템 호출 인터페이스
    • 프로그램 만들때 커널에 요청이 필요할때 이 시스템콜이라는 요청을 통해서 구현이 됨. 
    • 운영체제가 운영체제 각 기능을 사요할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공

 

 

프로그래밍 언터별 해당 운영체제에 맞는 API 구현

  • API (Application Programming Interface) 
    • 모호한 용어이지만, 간단히 함수 또는 라이브러리라고 이해하면 됨. 
    • 응용프로그램을 만들 수 있는 인터페이스를 API라고 한다. 
  • API 내부에는 필요시 해당 운영체제의 시스템콜을 호출하는 형태로 만들어짐. 

 

 

운영체제를 만든다면 어떤 순서로 진행해야 할까?

  1. 운영체제를 개발한다. (kernel)
  2. kernel 기능을 사용자가 사용할 수 있도록 시스템콜을 개발한다.
  3. 시스템 콜 기반해서 프로그램이 동작할 수 있도록 언어를 지원하는 프로그래밍 언어별 라이브러리 개발 (API)
  4. 지원되는 프로그래밍 언어로 Shell 프로그램 개발
  5. 지원되는 프로그래밍 언어로 응용 프로그램 개발

 

'CS 기초 지식 > 네트워크' 카테고리의 다른 글

네트워크 인터페이스(Network Interface)란  (0) 2023.09.08
인메모리 캐싱 서비스란?  (0) 2023.09.07
CDN이란?  (0) 2023.08.14
VPN이란?  (0) 2023.07.14
네트워크 ACL이란?  (0) 2023.07.14