`ip addr`은 어디에서 데이터를 가져오나요?

`ip addr`은 어디에서 데이터를 가져오나요?

나는 보았다소스 코드2269행 이후에 멈췄습니다. 같은 느낌이 있어요노선, 이 유틸리티는 procfs 파일 시스템도 사용하고 있지만 그 세부 사항을 잘 이해하지 못합니다.

답변1

경로가 비슷한 것 같아요

나는 routeprocfs를 사용하여 Linux에 구현이 없다고 거의 확신합니다. 연결된 질문의 질문은 확실히 그렇지 않습니다. 왜냐하면이 댓글은 설명합니다:

만약 너라면소스코드를 보세요, 커널 구조를 직접 읽는다. 커널에서 제공하는 의사 파일을 직접 구문 분석하지 않습니다 /proc/.

일반적으로 세 가지 유형의 구현이 있습니다 route.

  • Netlink 도입 이후 처음부터 생성된 구현에서는 Netlink를 사용하게 됩니다.
  • Netlink가 도입되기 전에 만들어진 구현에서는 ioctl을 사용합니다.
  • 일부 구현에서는 route간단한 래퍼를 제공합니다 ip route.

이 유틸리티는 procfs 파일 시스템도 사용합니다.

전체 iproute2 도구 모음은 Netlink를 사용합니다. 실제로 Netlink와 iproute2는 대략 동시에 개발되었으며 Netlink는 iproute2와 같은 네트워크 구성 도구와 함께 사용하기 위해 특별히 개발되었습니다.

실제로 Netlink와 iproute2는 원래 Alexey Kuznetsov가 개발했습니다. Alexey Kuznetsov는 기존 네트워크 구성 도구가 QoS에 대한 지원을 확장하는 것이 어려웠기 때문에 Netlink와 iproute2를 개발했습니다(그는 QoS도 개발했습니다).

관련 정보