학교 강의를 복습하는 차원에서 작성하는 글입니다.
학부생 수준의 글이므로, 오류가 있을 수 있는 점 양해바람니다.
Linux Kernel
Linux Kernel 이란
리눅스 OS의 핵심으로, 메모리에 항상 적재되어 있다.
리눅스 시스템에서 항상 실행 또는 실행 준비 중에 있다.
리눅스 => 커널 + 기본 프로그램 + User Interface
프로그래머가 작성한 프로그램은 커널 기능 이용 동작한다.
Kernel Version 번호는 linux-x.y.z.tar.gz로
각각 x 주 버전 번호로 큰 변화 의미 , y 부 버전 번호로 홀수이며 개발중인 kernel로 짝수면 stable , z release 번호로 추가된 기ㅡㄴㅇ은 없지만 오류 수정 등등 변화 의미
Linux Kernel의 기능(OS의 핵심 요소)
1) Process 관리
Process의 생성 및 소멸, Process 사이 통신, Process 스케줄링 동기화
=> Linux 운영 체제에서는 시스템이 동작 후, 하나 이상 Process가 동작. Process는 주어진 일 수행 기본 단위.
Kernel이 Process Scheduler를 이용 여러 Process가 동작 가능하도록 각 Process를 생성 제거하여 외부 환경과 Process 연결 관리.
==> 실행되고 있는 프로세스들이 일정 시간 간격으로 CPU를 사용할 수 있게끔 분배해 프로세스를 관리
2) Memory 관리
Virtual Memory 관리 기법 제공, Memory 하드웨의 효율적 관리
=> 시스템에서 Memory는 Process와 더불어 핵심적 자원
Memory 관리는 시스템 성능을 결정하고, 각각 Process가 독립적인 공간에서 수행 가능하도록 가상 주소를 제공
이러한 Virtual Memory 관리를 바탕으로 보조 기억 장치와 연동하여 물리적인 한계 극복할 수 있는 기능 제공
==> 프로세스들은 다른 프로세스들이 없다고 판단하므로 독자적인 메모리 위치를 지정한다.
사용되고 있는 메모리 위치를 쓰면 문제가 되므로 커널이 메모리 위치를 다시 지정해서 관리하는 가상 메모리 방식으로 해결한다.
3) File System 관리
가상 파일 시스템(VFS, Virtual File System) 의한 다양한 파일 시스템 지원, 파일 및 디렉토리 관리
=> Linux Kernel은 UNIX 시스템에서 사용되는 FIle System 이용 설계됨.
가상 파일 시스템(VFS)를 이용 대부분의 File System 형식을 지원함
Ex) FAT(MSDOS / WIndows) NTFS (WIndows) EXT1 (Linux) XFS , UBIFS , JFFS2 (Flash filesystem)
4) Device 관리
하드웨어의 주변 장치를 디바이스 드라이브 통해 제어, Hard Disk, Memory, Keyboard, Etherent, 센서 등과 같은 장치 관리
=> 하드웨어 관련 처리는 Device Driver에서 담당하고 Kernel이 구현해야함
File System 구조에 Device Driver 연동 구현.
표준화된 형식으로 Hard Disk, Keyboard 등 임베디드 시스템의 모든 주변 장치 관리
==> Device is also File.
5) Network 관리
통신 Protocol 구현, Network Routing 및 주소 지정
=> Linux Kernel은 Network를 필요로 하는 시스템에서 개발됨
Network Stack을 이용 응용 Program 과 Network Device Driver 연결해 효율적 Network 처리 구현
암호화와 보안 특성이 연계된 매우 견고한 시스템을 구현함
Kernel And Shell
Kernel에서 X-Windows로 요청하고, 이어서 Terminel에 요청해, 사용자가 키보드로 입력한 결과를 Shell에서 명령어, 프로그램을 실행해 실행 결과를 다시 Terminal를 거쳐, 유저 확인하게 된다.
'프로그래밍 > Linux' 카테고리의 다른 글
[Linux]리눅스 컴파일 (0) | 2023.10.08 |
---|---|
[Linux]리눅스 디렉토리 (트리 구조) (1) | 2023.10.08 |
[Linux]&&とは (0) | 2023.02.27 |
[Linux]&とは (0) | 2023.02.27 |
[Linux]chmodとは (0) | 2023.02.27 |