[운영체제] 커널이 무엇??


    컴퓨터의 운영체제의 핵심이 되는 프로그램.
    시스템의 모든 것을 완전히 통제.
    어셈블리어와 c언어로 프로그래밍됨.

    커널의 종류 : 단일형, 마이크로, 혼합형, 나노, 엑소

    역할
    보안 - 컴퓨터하드웨어와 프로세스의 보안을 책임.
    자원관리 - 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게함.
    추상화 - 하드웨어에 직접 접근하는 것은 매우 복잡! , 하드웨어에게 깔끔하고 일관성있는 인터페이스를 제공.
    사용자가 여러장비에서 사용하는 프로그램을 개발하는 것을 돕는다.
    하드웨어 추상화 계층(HAL)  제조사의 장비규격에 대한 특정한 명령어를 제공하는 소프트웨어 드라이버에 의지한다.

    *하드웨어 추상화 계층?
    하드웨어 추상화 계층(Hardware Abstration Layer)
    컴퓨터의 물리적인 하드웨어와 컴퓨터가 실행하는 소프트웨어 사이의 추상화 계층이다.
    운영체제가 자세하고 복잡한 하드웨어 계층이아닌 일반적이고 추상적인 계층에서 하드웨어 서비스와 상호작용을 있게 해준다. 여러 다른 플랫폼의 하드웨어들을 하나의 일반적인, 일관된 개념으로 추상화 시켜서 응용프로그램이 작동할 있도록 한다.
    다른말로 응용프로그램이 하드웨어(cpu, 메모리, )장치에 직접 접근하는 것을 막는다.
    HAL 운영체제의 커널이나 장치 드라이버로 부터 호출될 있으며,
    부팅 커널영역에서 어떤 HAL 사용해야 하는지 탐지 그리고 하드웨어의 드라이버들를을 불러옴

    시스템 ( system call) ?
    응용프로그램의 요청에 따라 커널에 접근하기위한 인터페이스
    보통 c c++ 같은 고급언어로 프로그램밍된 응용프로그램들은 직접 시스템 호출을 없기에 고급API 통해 시스템 호출에 접근하게 하는 방법.

    예를 들어  응용프로그램이 많은 메모리를 할당받기를 원한다면 시스템콜을 통해 커널에 접근하여 해당요청을 처리

    운영체제의 유저모드에서 시스템콜이 호출됨, 시스템콜 인터페이스를 통해 커널모드 전환, (모드 스위치), 커널모드에서 시스템콜을 처리 다시 유저모드로 복귀.

    시스템호출의 유형
    1. 프로세서 제어(process Control)
    2. 파일 조작(file manipulation)
    3. 장치 관리(Device Management)
    4. 정보 유지(Information maintenance)
    5. 통신(Communication)


    초기 컴퓨터엔 커널(운영체제) 필수적이 아니엇다...하지만 다른프로그램을 실행시키기 위해서는 매번 컴퓨터를 껐다 켜야한다는 번거러움,. 로더, 디버거 같은 프로그램을 사용하기 시작하였고 이것이 초기운영체제의 커널의 시초.




댓글

가장 많이 본 글