견적 https://www.kernel.org/doc/Documentation/sysfs-rules.txt :
[…] 버스 디렉토리의 레이아웃에 따라 세 가지 분류 디렉토리를 모두 / sys / subsystem의 한 위치로 병합 할 계획입니다. 변환 된 블록 하위 시스템을 포함한 모든 버스 및 클래스가 표시됩니다.
서브 시스템에 속한 장치는 / devices / subsystem / & lt; name & gt; / devices의 “devices”디렉토리에 심볼릭 링크를 만듭니다.
/ sys / subsystem이 존재하면 / sys / bus, / sys / class 및 / sys / block은 무시할 수 있습니다. 존재하지 않는다면, 장치가 여전히 같은 서브 시스템 이름으로 도달 할 수있는 한 커널을 한 위치에서 다른 위치로 자유롭게 이동할 수 있기 때문에 항상 세 곳을 모두 스캔해야합니다.
글쎄, 리눅스 커널의 / sys 파일 시스템의 레이아웃을 배우려고 할 때 우분투 OS에서 (우분투 14.04를 사용하는) / sys / subsystem 디렉토리를 볼 수 없다.
나는 빠른 Google 검색을 수행했으며 LKML 토론 디렉토리 통일에 대해서는,하지만 케이 시버 스 (Cay Sievers)의 메모 옆에는 아무것도 보이지 않습니다. (에이 자식 로그 Documentation / sysfs-rules.txt도 그 사람의 것임을 보여줍니다.)
내 질문은, 내가 놓친 게 있니? 디렉토리를 사용할 수없는 이유는 무엇입니까? 아니면 커널 병합에서 디렉토리 병합이 실제로 발생하지 않았으며 문서가 잘못 되었습니까?
답변
당신이 인용 한 문서의 핵심 부분이 여기에 있다고 생각합니다 :
/ sys / subsystem이 존재하면 / sys / bus, / sys / class 및 / sys / block이 될 수 있습니다.
무시했다. 존재하지 않으면 항상 세 가지 모두를 스캔해야합니다.
커널은 한 곳에서 다른 곳으로 서브 시스템을 자유롭게 이동할 수 있으므로
다른 장치는 여전히 동일한 장치로 연결할 수있는 한
서브 시스템 이름.
/ sys / subsystem 디렉토리에 대한 다른 참조를 찾는 동안 파일에서 다음 주석을 발견했습니다 99-systemd.rules.in
우리는 네트워크 장치를 식별 할 수있는 하드웨어 독립적 인 방법이 필요합니다. 우리
이를 위해 / sys / subsystem 경로를 사용하십시오. 현재 바닐라 커널은 실제로이를 지원하지 않습니다.
곧 현재의 계층이지만, 앞으로의 커널은 ….
그래서 나는 그것이 나중에 커널에 포함될 것이라고 상상한다.