반응형
📌 커널
개념
- 운영체제의 핵심!!!
- 하드웨어를 직접 제어하는 역할
- 커널은 커널 공간이라는 곳에 위치!
- 사용자가 쉘(Shell)을 통해 입력한 명령어를 해석하여 하드웨어에 전달해주는 역할
- 위에서 말한 운영체제가 하는 기능들을 사실 커널이 실제로 담당하는 거임!
- 쉽게 말하면 커널은 운영체제의 심장! → 컴퓨터, 하드웨어 자원을 통제하는 최고 관리자!!
- 메모리 관리
- 프로세스 관리 및 CPU 스케쥴링
- 입출력 장치와 같은 컴퓨터에 연결된 장치들 관리
- 시스템 콜 인터페이스 및 보안
- CPU에는 두가지 실행 모드가 있음
- User Mode : 일반 프로그램이 동작하는 제한된 모드
- Kernel Mode : 운영체제가 동작하는 권한 있는 모드
- → 하드웨어 직접 제어 가능 O
📌 쉘
개념
- 사용자와 하드웨어 간의 번역 역할을 담당
- 사람이 이해하기 쉬운 형태로 된 명령어를 입력 → 쉘이 기계가 이해하기 쉬운 형태로 해석
- → 커널에 전달
- 쉘(Shell)은 운영체제의 사용자 인터페이스 중 하나로,사용자의 명령어를 해석해서 커널에 전달하고, 그 결과를 다시 사용자에게 보여주는 중간 관리자 역할을 함
- CLI (Command Line Interface)**와 GUI (Graphical User Interface) 모두 쉘의 일종
기능
- 명렁어 해석 기능
- 대표적인 기능
- 사용자가 입력한 명령어 → 기계어로 번역 → 커널에서 수행한 결과를 다시 번역 → 사용자
- 인터프리터 역할 수행!
- 명령어 이력 기능
- 사용자가 이전에 입력했던 명령어를 화살표 키로 다시 불러올 수 있음
- history, !!, !n 같은 기능
- 파이프 & 리디렉션 기능
- 명령어의 출력 결과를 다른 명령어의 입력으로 넘기거나, 파일로 저장할 수 있음
- 예: ls | grep txt, cat file.txt > output.txt
- 프로그래밍 기능
- 쉘 스크립트를 작성하여 반복적으로 수행하는 작업을 프로그램으로 만들 수 있음
- 사용자 환경 설정 기능
- 명령을 호출하는 경로, 파일의 권한 설정, 환경 변수들을 초기화 파일에 저장
- 이 파일을 이용해 사용자가 로그인할 때마다 설정이 반영 되게 할 수 있음
- 주요 쉘 종류
- sh: 가장 기본적인 Unix 셸
- bash: 가장 널리 쓰이는 Linux 셸 (Bourne Again SHell)
- zsh: 자동완성, 하이라이팅 등 편의성 강화된 셸
- fish: 사용자 친화적인 modern 셸
- PowerShell: Windows의 셸 (객체 기반, cmd랑 다름)
동작하는 방식
- 응용 프로그램은 직접 하드웨어에 접근 XX
- 응용 프로그램은 커널에게 <시스템 콜>로 요청함
- 시스템 콜 : 사용자나 응용 프로그램이 컴퓨터 자원을 사용하기 위해서 사용, 함수 형태
- ex) open()
- 커널은 하드웨어에게 명령을 내리고 사용자에게 전달
- 멜론 앱이 파일을 열려고 함
- 앱에서 open()이라는 시스템 콜을 요청 → 이를 통해 Kernel Mode로 전환
- 커널이 디스크에서 파일을 읽고 앱에 전달 → 하면 다시 User Mode로 전환

커널의 종류 (운영체제 아키텍처 관점)
- 모놀리식 커널 : 기능이 한 덩어리로 커널 내부에 존재
- 마이크로 커널 : 최소한의 핵심 기능만 커널에 넣고, 나머지는 사용자 영역에서 실행
- ex) 프로세스 관리, 메모리 관리, 프로세스 통신
반응형
'CS 공부 > OS 운영체제' 카테고리의 다른 글
| (OS) 스레드 (0) | 2025.05.01 |
|---|---|
| (OS) 프로세스 (3) (0) | 2025.05.01 |
| (OS) 프로세스 (2) (0) | 2025.05.01 |
| (OS) 프로세스 (1) (0) | 2025.05.01 |
| (OS) 운영체제 (0) | 2025.05.01 |