[초보자 대상] 리눅스 커널은 도대체 뭐야?

Linux 커널 정보


리눅스 커널을 배울 기회가 생겨 자신을 위해 필기를 정리했다.앞으로도 계속 추기하겠습니다.
보충, 수정 등이 있으면 기다릴게요.

리눅스가 뭐였지?


리눅스는 리나 토발스가 개발한 UNIX 레이크의'OS'다.가장 큰 특징은 원본 코드를 오픈해서 무료로 사용할 수 있기 때문에 서버로 사용할 기회가 많다는 것이다.
Linux는 엄밀히 말하면 두 가지 의미로 나뉜다.
· 광범위한 Linux: Linux가 발행되는 것을 가리킨다.
・ Linux: Linux 커널을 나타냅니다.
기본적으로 Linux라고 불릴 때 넓은 의미의 "Linux 발행"을 가리킨다
이번 보도에서는 좁은 의미의 리눅스 커널을 설명할 것이다.
Linux에 대한 상세한 노트는 아래를 참조하십시오.
[초보자용] 리눅스에 대한 간단한 요약 노트
https://qiita.com/uguis410/items/f9e82350d5d49a300491

Linux 커널 정보


단도직입적으로 말하면 하드웨어와 소프트웨어의 관계로 OS의 근본이 된다.
↓ 그림에서 보듯이 이런 느낌.커널은 OS에 있습니다.

그렇다면 원래 OS는 어떤 사람일까?

OS(Operating System)


운영체제(영어: Operating System, OS, Ose)는 컴퓨터의 조작(조작, 운용, 운행)을 위한 것으로 소프트웨어에서도 기본적이고 핵심적인 위치의 시스템 소프트웨어이다.
https://ja.wikipedia.org/wiki/운영 체제
한마디로 하드웨어와 소프트웨어를 도울 수 있는 것은 OS다.
Linux 커널은 그런 OS의 주요 기능
"어플리케이션이 실행되는 기본 환경"
서비스를 제공하다.
구체적으로 예를 들면
· 데이터를 메모리의 어느 위치에 저장하는 것이 좋을까요
• CPU 자원을 애플리케이션별로 할당하는 것이 좋습니다.
• 하드웨어 처리 의뢰는 어떤 순서로 진행됩니까
등등, 리눅스 핵은 평소에 컴퓨터를 조작할 때 의식하지 못했던, 뒤에서 이동하는 많은 기본 기능을 제공한다.
또한, 크게 다음과 같이 나뉜다.
• 애플리케이션 요구 사항에 따라
• 하드웨어에서 온 응답을 응용 프로그램에 전달한다.
크게 두 가지로 나눌 수 있다.
어플리케이션에 대한 커널 요구 사항
시스템 호출을 통해 처리하다.

시스템 호출


'비특권 모드에서 실행되는 프로그램' 은 '특권 모드로 실행되는 핵' 을 위탁하여 처리합니다.

커널은 모든 응용 프로그램을 실행하는 데 필요한 것이다. 공통된 처리를 맡고 있기 때문에 성격상 PC의 모든 자원을 접근할 수 있는 특별한 존재이다.그러나 다른 다양한 프로그램들이 커널과 마찬가지로 PC의 모든 자원을 마음대로 만지작거릴 수 있다면 어떻게 될까?
모든 프로그램이 메모리 값을 고쳐서 예상치 못한 동작을 할 수도 있습니다.더욱이 컴퓨터가 실행하는 기본 정보와 커널을 실행하는 프로그램도 PC의 자원 어딘가에 존재한다.이들 부분이 모두 만지작거리고 영향을 받았다면 중대한 오류는 물론 최악의 PC도 멈출 수 있어 위험할 수밖에 없다.
Linux 커널에 프로그램 실행 환경 설정
• 모든 자원을 처리할 수 있는 "내핵 모드"
· 일부 자원만 처리할 수 있는'사용자 모드'
두 세계로 나뉘다.
사용자 모드에서는 원칙적으로 다른 프로그램에 영향을 주는 동작을 할 수 없다.따라서 다른 프로젝트에 영향을 미칠 염려가 없어 안심하고 프로그램을 시작할 수 있다.
다른 프로그램에 영향을 미치는 조작을 하려면 시스템 호출을 발행하여 내부 핵에 처리를 의뢰하십시오.
커널 창을 시스템 호출로 축소함으로써 과정에 대한 관리 능력과 안전성을 향상시켰다.
・모든 처리는 내부 핵으로 통괄할 수 있기 때문에 프로그램 간에 처리된 타구가 발생하지 않는다.
・절차는 다른 절차의 내용을 부주의로 고쳐서는 안 된다.
잠깐만요.

코어의 기본 성능


Linux 커널의 대표적인 기능 일부를 소개합니다.

프로세스 관리


Linux 커널은 프로세스 단위 관리자의 실행 상태입니다.동시에 내부 핵은 모든 과정에 대해taskstruct 구조라는 데이터 구조를 준비하고 있습니다.
 task_struct 구조에는 이 프로세스 동작에 사용되는 각종 정보(PID 또는 동작을 처리하는 메모리 주소 등)가 저장되어 있으며, 리눅스 핵에서 이 프로세스를 조작할 때 이taskstruct 구조체를 조작하다.
[초보자용] 프로세스[Linux]
https://qiita.com/uguis410/items/b568b28786516a105f34

프로그램 스케줄러


실행 가능한 상태에서 기다리는 과정은 어느 순서대로 실행하는 것이 가장 적합하다.기본적으로 CPU 수 이상의 수는 이동하는 과정이 불가능하기 때문에 프로그램을 어떻게 효율적으로 작동시키느냐가 중요하다.
프로세스 스케줄러는 프로세스 스케줄링 방침에 따라 집행 우선도와 시간 슬라이드를 분배하고 시간표에 따라 프로세스를 집행한다.또한 실제 전환 과정의 기능을 프로세스 분배라고 부른다.

메모리 관리


Linux 커널은 물리적 및 가상 메모리를 사용하여 데이터를 관리합니다.모든 프로세스에 대해 실제로는 물리 메모리의 주소를 직접 분배하는 것이 아니라 물리 메모리와 대응하는 가상 주소를 분배함으로써 메모리 용량을 실제 물리 메모리의 용량보다 훨씬 크게 한다.또한 모든 과정이 특정한 가상 주소를 분배했기 때문에 모든 과정의 메모리 공간은 독립되어 다른 과정의 메모리를 침범하지 않는다.

파일 시스템


파일 형식으로 저장된 데이터에 대한 접근 수단을 제공합니다.모든 데이터를 파일로 관리디렉터리(루트 디렉터리)를 정점으로 하는 트리 구조로 내부 핵 자체도 파일, 디렉터리의 집합체로 존재한다.
잠깐만요.(다른 것도 많다)
그림으로 표현하면 이런 느낌인 것 같아요.

인용하다


【Linux Kernerl Documets】
https://ja.osdn.net/projects/linux-kernel-docs/
[물리적 주소 공간과 가상 주소 공간의 차이와 그 기초 지식]
http://128bit.blog41.fc2.com/blog-entry-32.html
[Linux의 과정은 무엇인가?]
http://www.atmarkit.co.jp/ait/articles/1706/23/news010.html

좋은 웹페이지 즐겨찾기