1 컴퓨터의 시작/1 4 운영 체제의 핵심, 커널

기술노트

커널(Kernel)이란 ? 커널(Kernel)은 운영 체제의 일부로써 하드웨어와 프로세스의 운용을 위한 소프트웨어이다. 운영 체제의 복잡한 하드웨어 내부를 일관되고 추상적으로 볼 수 있도록 인터페이스를 제공한다. 이 하드웨어 추상화는 프로그래머가 여러 장비에서 작동하는 프로그램을 개발하는 것을 돕는다. 하드웨어 추상화 계층(HAL)은 제조사의 장비 규격에 대한 특정한 명령어를 제공하는 소프트웨어 드라이버에 의지한다. 커널이라고 하면 운영체제를 말하기도 하고 응용 프로그램들의 실행 환경을 이루고 운용하는 것을 말하기도 한다. 시스템의 자원은 제한되어 있지만 동작되고 있는 프로그램은 많기 때문에 커널은 한 프로그램이 언제 얼마큼 자원을 써야 할지 결정하고 운영 시켜야 한다. CPU를 얼만큼씩 어떠한 일에 쓸 것인가등의 스케쥴링을 하게 된다.

커널의 특징 및 기능 커널은 디스크에 파일로써 존재하는 프로그램이며 시스템이 기동될 때boot 프로그램에 의해 구동되며 메모리에 상주된다. 기본적으로 프로세스와 파일 관리이며 그 밖에 입출력 장치관리, 메모리 관리 및 시스템 호출 인터페이스기능을 수행한다. 커널은 메모리, 디스크, 네트워크카드, 비디오 카드 등과 같은 모든 하드웨어를 관리한다. 그리고 응용 프로그램이 이러한 하드웨어를 접근하는 것을 가능하게 해주는 통로가 된다. 응용프로그램의 요청을 받아서 하드웨어 수행을 하고 그 결과를 다시 응용프로그램이 받게 된다.

1) 시스템 콜 인터페이스 어플리케이션에서 시스템으로 어떤 명령을 주고 싶으면 시스템콜이라는 것을 한다. 이 시스템콜이 인터페이스를 통해서 전달이 된다. 접수 창구와 같은 역할을 한다고 보면 된다. 이 콜이 불리면 시스템은 특정 역할을 하게 된다. 디스크 엑세스라든가 네트워크 관련 요청들이 모두 시스템 콜에 해당된다.

2) 프로세스 관리 운영체제는 수많은 프로세스를 관리한다. 프로세스는 실행 중인 프로그램을 말한다. 운영체제는 CPU나 메모리 자원을 사용해서 이러한 프로세스를 수행해준다. 이때 여러개의 프로세스가 동시(?)에 수행되는 거처럼 동작되게 해주는 것이다. 동시에라는 말에 ?는 실제 동시가 아니라 시분할 수준으로 짧은 시간동안 수행을 돌아가면서 해주는 것이다. 물론 언제가부터 나온 멀티 코어라는 개념의 CPU는 실제로 동시에 몇 가지 일을 할 수가 있기는 하다. 이렇게 프로세스를 관리해주는 역할을 한다.

3) 메모리 관리 물리 메모리 공간을 어떻게 사용할지에 대해서도 관리한다. 프로세스가 이용하는 독립적인 공간을 확보해주거나 여러가지 프로그램들이 사용하려는 메모리를 어떻게 하면 효율적으로 사용할지도 관리한다.

4) 네트워크 스택 네트워크의 데이터 입출력을 받아다가 어플리케이션으로 올려주기도 하고 어플리케이션의 데이터를 네트워크 장치를 통해서 송수신 해준다.

5) 파일 시스템 관리 기록된 데이터를 물리적인 장치에 저장하거나 읽어주는 기능을 한다. 파일단위로 삭제하거나 액세스 할 수 있다. 이때 물리적 장치에는 이 파일의 내용이 연속되어 저장되어 있지는 않은데, 이를 물리적 장치로 엑세스 하는 기능을 가진다.

6) 장치 드라이버 장치용 인터페이스를 제공한다. 컴퓨터에 연결된 장치들을 드라이버라는 매개체를 통해서 제어하고, 어플리케이션 단에서는 추상적으로 제어할 수 있게 해준다. 이러한 장치 드라이버의 인터페이스를 제공하는 것도 커널 단의 역할이다.

개발자, 기술사, 삼성, 외국계 IT기업 20년차 기술노트 알렉이 직접 작성한 IT기업 기술 면접을 위한 CS + 면접 노하우 PDF <https://kmong.com/self-marketing/539751/LUA54VnQsP> 자주 나오는 CS 질문과 답변 그리고 100번 이상 면접관으로 참여하면서 느꼈던 면접자가 알아야 할 팁 13가지 포함

백엔드 개발자를 위한 클라우드 강의, AWS <https://inf.run/o1NX>

이제는 비전공자도, 일반이도 개발할 수 있다. ChatGPT를 이용한 누구나 앱개발 with 알렉 <https://inf.run/rpX4>

백엔드 직접 번역한 도서 <https://www.yes24.com/Product/Goods/122536127>

IT기술의 거의 모든 것을 다루는 기술노트with알렉 유투브 <https://www.youtube.com/c/%EA%B8%B0%EC%88%A0%EB%85%B8%ED%8A%B8with%EC%95%8C%EB%A0%89>