다양한 Linux 배포판은 동일한 구성 매개변수를 다양한 파일에 저장합니다. 예를 들어 IPv4 주소데비안 위즈/etc/network/interfaces
파일 에 저장페도라 20/etc/sysconfig/network-scripts/ifcfg-eth0
파일 에 저장됩니다 . 또한 이러한 구성 파일의 구문도 다릅니다. 배포판은 이러한 파일을 어떻게 구문 분석합니까? 또한 구성 파일의 내용이 사용자 공간 유틸리티와 유사한 방식으로 구문 분석됩니까? ip
아니면 ifconfig
실제로 커널을 구성하는 일부 하위 수준 시스템 호출이 있습니까?
답변1
커널은 구성 파일을 읽지 않습니다. 일반적으로 커널은 파일 시스템에 대한 액세스를 방지합니다. 몇 가지 예외와 변형이 있지만 주로 커널은 해당 위치에서 프로그램을 시작합니다./sbin/init
시작되면 사용자 프로세스를 대신하여 파일 시스템에만 액세스합니다.
네트워크 구성 파일(다른 유형의 구성 파일과 마찬가지로)은 응용 프로그램에서 읽습니다. 네트워크 구성 파일의 경우 이러한 애플리케이션은 다음을 통해 파일을 읽고 구성을 적용하는 스크립트 모음과 함께 제공되는 바이너리입니다.시스템 호출. Linux의 네트워크 구성, 시스템 호출은 주로ioctl
부르다소켓(이것을 이해할 필요는 없습니다).
Linux(및 그 이전 Unix)의 역사에서 일부 구성은 모든 사람이 수행 방법에 동의했기 때문에 표준이 되었습니다. 이는 (보편적이지는 않지만) 사용자의 경우에 주로 해당됩니다(/etc/passwd
,NS 스위치) 및 파일 시스템(fstab
). 반면에 네트워크 구성은 여전히 매우 다양합니다. Red Hat에서 파생된 배포판은 이를 유지합니다 /etc/sysconfig/network
. Debian에서 파생된 배포판은 이를 유지합니다 /etc/network/interfaces
.
데비안을 예로 들면 /etc/network/interfaces
다음과 같이 해결됩니다.ifup
/etc/init.d/networking
네트워크 설정을 담당하는 초기화 스크립트에서 호출되는 프로그램으로 , 자체적으로 init
.