>  기사  >  시스템 튜토리얼  >  커널 소스 트리에 대한 심층 분석: Kconfig 파일과 Makefile 간의 시너지 효과

커널 소스 트리에 대한 심층 분석: Kconfig 파일과 Makefile 간의 시너지 효과

王林
王林원래의
2024-06-28 08:18:521047검색

深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用

원칙

커널 소스 트리의 각 디렉토리에는 디렉토리의 소스 코드와 관련된 커널 구성 메뉴를 설명하는 데 사용되는 Kconfig 파일도 포함되어 있습니다. 각 디렉토리의 Kconfig 파일은 분산 커널 구성 데이터베이스를 구성합니다.

makemenuconfig 명령을 통해 커널을 구성할 때 Kconfig 파일에서 메뉴를 읽습니다. 저장 기술 원리 분석: Linux 26 커널 소스 코드를 기반으로 구성이 완료되고 .config라는 커널 구성 파일에 저장됩니다. 커널에서 사용되는 컴파일용 Makefile입니다.

소스코드 디렉토리 트리의 최상층에 있는 Makefile은 전체 커널 소스코드 관리의 입구이며 전체 커널의 소스코드 컴파일에 결정적인 역할을 합니다. Linux c에서 커널을 컴파일할 때 최상위 Makefile은 규칙에 따라 커널 소스 코드의 모든 하위 디렉터리에 있는 Makefile 파일을 반복적으로 탐색하여 각 하위 디렉터리의 커널 모듈 컴파일을 완료합니다.

커널 구성

Linux 커널 소스 코드 최상층 디렉토리로 이동하여 makemenuconfig 명령 Baidu Netdisk LINUX를 입력하면 Makefile에 ARCH를 지정하지 않으면 Linux 커널 구성의 기본 인터페이스로 들어갈 수 있습니다. 명령줄에 지정해야 합니다.

으아악

첫 번째 수준 디렉터리

1단계 메뉴 아래 거의 모든 항목에는 복잡한 하위 하위 메뉴가 있으며, 각각의 구성 옵션도 매우 풍부합니다. 실제 제품 개발에서는 커널의 모든 구성 항목을 완전히 이해할 필요는 없습니다. 일반적으로 관련 항목 중 일부만 이해하면 됩니다.

内核编写_存储技术原理分析:基于linux 26内核源代码_内核存储原理源基于代码分析

在这里插入图片描述

보조 디렉토리 Generalsetup은 커널 일반 설정 메뉴 인터페이스입니다

在这里插入图片描述

SystemVIPC는 시스템의 프로세스 간 통신 InterProcess

를 나타냅니다.

프로세서에서 프로그램 간 정보를 동기화하고 교환하는 데 사용되는 통신

Enableeventpollsupport: 폭풍 폴링의 시스템 호출을 지원합니다.

Enableloadablemodulesupport는 커널 모듈 구성입니다

모듈 언로드를 사용하면 이미 로드된 모듈을 언로드할 수 있습니다

모듈 버전 관리 지원을 통해 다른 커널 버전의 모듈을 사용할 수 있습니다(문제가 발생할 수 있음)

Sourcechecksumforallmodules는 모든 모듈의 소스 코드를 보정합니다. 커널 모듈을 직접 컴파일하지 않으면 이 기능이 필요하지 않습니다.

内核编写_内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码

blocklayer 블록 장치 지원 활성화

하드 디스크/USB/SCSI 장치를 사용하는 경우 커널에서 블록 장치를 제거하려면 이 옵션을 선택해야 합니다.

대형(2TB+) 블록 장치 및 파일에 대한 지원은 2TB보다 작은 블록 장치를 사용할 때만 필요합니다

Blocklayer바이오스로틀링 지원을 사용하여 장치의 IO 속도를 제한할 수 있습니다

IOSchedulersIO 스케줄러 I/O는 주로 하드 디스크의 입출력 대역폭 제어이며 핵심 필수 요소입니다. 여기에는 3개의 IO 스케줄러가 제공됩니다.

SystemType은 프로세서 유형 및 특성입니다

대칭 다중 처리 지원대칭 다중 처리 지원, 다중 CPU가 있거나 다중 코어 CPU를 사용하는 경우 선택하세요

프로세서 제품군(Pentium-Pro) 프로세서 시리즈는 실제 사용되는 CPU에 따라 선택하세요. 프로세서 유형은 다음과 같습니다

Genericx86support 이 옵션은 x86 시리즈 CPU에 대한 보다 일반적인 최적화를 사용합니다. i386, i586 등을 선택하는 경우 이 범용 x86 지원을 선택하세요.

멀티 코어 스케줄러 지원은 멀티 코어 CPU에 대한 스케줄링 전략을 최적화합니다. 멀티 코어 스케줄링 메커니즘 지원, 4코어 CPU를 선택해야 합니다

Busoptions는 PCI, ISA 및 기타 버스의 지원 및 구성입니다. KernelFeatures는 커널 기능 구성 메뉴입니다

内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码_内核编写

在这里插入图片描述

Bootoption 시작 옵션으로 기본 시작 매개변수와 커널 매개변수 유형을 설정할 수 있습니다

CPUPowerManagementCPU 전원 관리 관련

프로세서 주파수 감소, 절전 모드 지원 등 포함

전원 관리 옵션 전원 관리 관련 네트워킹지원 네트워크 구성

이더넷, CAN, 적외선, Bluetooth, 무선 및 기타 네트워크에 대한 지원 구성 옵션이 포함됩니다

무선은 무선 네트워크 카드 지원을 사용합니다

RF스위치하위 시스템지원RF 스위칭 장치

네트워킹 옵션 네트워크 계약 및 네트워크 패킷 매개변수 구성(TCP/IP 관련 계약이 열려 있어야 함)

네트워킹 옵션, 네트워크 옵션 구성 인터페이스로 들어갈 수 있습니다

在这里插入图片描述

Linux를 사용하는 시스템은 네트워크를 사용하게 되며, 네트워크 사용은 TCP/TP와 분리 불가능한 경우가 많으므로 구성에서 TCP/IP 옵션을 선택하는 것이 좋습니다. 스토리지 기술 원리 분석: Linux 26 커널 소스 코드를 기준으로 , 모든 하위 수준 옵션을 선택합니다. 필요할 때 모듈을 연결하도록 3상태 옵션을 구성할 수도 있습니다.

DriverDrivers 장치 드라이버, 구성 인터페이스도 매우 복잡하고 구성 항목이 많습니다

在这里插入图片描述

파일 시스템은 커널 파일 시스템 구성 인터페이스입니다

内核存储原理源基于代码分析_内核编写_存储技术原理分析:基于linux 26内核源代码

在这里插入图片描述

Kernelhacking 커널 디버깅 관련 Securityoptions보안 관련 옵션

CryptographicAPI —>//Crypto API, 이러한 옵션은 이전 최적화에 따라 수동으로 조정됩니다

커널 조정 및 구성을 위한 기본 원칙

참조:

리눅스 커널 프루닝의 구체적인 과정과 선택

임베디드 Linux 커널 구성, 조정 및 컴파일에 대한 토론

Linux 커널 컴파일 구성(Menuconfig 그래픽 형식), 파일 시스템 생성 단계

Linux 커널 이식 및 루트 파일 시스템 제작

위 내용은 커널 소스 트리에 대한 심층 분석: Kconfig 파일과 Makefile 간의 시너지 효과의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.