시스템

sysfs

sysfsLinux 커널에 의해 제공되는 의사 파일시스템으로 커널의 디바이스 모델에서 가상 파일을 통해 사용자 공간으로 다양한 커널 서브시스템,[1] 하드웨어 디바이스 및 관련 디바이스 드라이버에 대한 정보를 내보냅니다.내보내기된 가상 파일은 다양한 디바이스 및 커널 서브시스템에 대한 정보를 제공할 뿐만 아니라 설정에도 사용됩니다.

sysfs는 BSD 운영체제에서 볼 수 있는 sysctl 메커니즘과 유사한 기능을 제공합니다.단, sysfs는 목적에 맞게 구축된 커널 메커니즘이 아닌 가상 파일시스템으로 구현되며 Linux에서는 sysctl 설정 파라미터가 /proc/sys/에서 /proc/에 마운트된 sysfs가 아닌 proc/에서 사용 가능하게 됩니다.시스템/[2]

역사

2.5 개발 사이클 동안 버전 2.4의 다음과 같은 단점을 수정하기 위해 Linux 드라이버 모델이 도입되었습니다.

  • 드라이버와 디바이스의 관계를 나타내는 통일된 방법이 존재하지 않았습니다.
  • 일반적인 핫 플러그 메커니즘은 없었습니다.
  • procfs는 비프로세스 정보로 어수선했습니다.

sysfs는 디바이스 트리에 있는 정보를 내보내도록 설계되어 있어 procfs를 더 이상 복잡하게 만들지 않습니다.그것은 패트릭 모첼에 [3][4]의해 쓰여졌다.Maneesh Soni는 나중에 대규모 시스템의 메모리 사용량을 줄이기 위해 sysfs backing store 패치를 작성했습니다.

2.5 개발의 다음 해 동안 드라이버 모델과 드라이버의 인프라 기능은 다른 서브시스템에 [5][6]유용한 것으로 입증되기 시작했습니다.kobjects는 중앙 객체 관리 메커니즘을 제공하기 위해 개발되었으며 driverfs는 서브시스템 불가지론을 나타내기 위해 sysfs로 이름이 변경되었습니다.

sysfs는 아래쪽에 마운트됩니다./sys 마운트 포인트초기화 중에 마운트되지 않은 경우 "mount -t sysfs sysfs / sys" 명령을 사용하여 마운트할 수 있습니다.

지원되는 버스

ACPI
ACPI 디바이스에 대한 정보를 내보냅니다.
PCI
PCI 및 PCI Express 디바이스에 대한 정보를 내보냅니다.
PCI Express
PCI Express 디바이스에 대한 정보를 내보냅니다.
유에스비
USB 디바이스에 대한 정보를 내보냅니다.
SCSI
USB,[7] SATANVMe 인터페이스를 포함대용량 저장 장치에 대한 정보를 내보냅니다.
S/390 버스
S/390 아키텍처에는 다른 곳에서는 찾을 수 없는 디바이스가 포함되어 있기 때문에 다음과 같은 특별한 버스가 작성되었습니다.
  • css: 서브채널 포함(현재는 I/O 서브채널용 드라이버만 제공).
  • ccw: 채널 접속 디바이스(CCW에 의해 구동됨)가 포함됩니다.
  • ccwgroup:사용자가 작성한 ccw 디바이스로 구성된 인공 디바이스.2.4 chandev 기능의 일부를 대체합니다.
  • iucv: VM의 IUCV 인터페이스를 사용하는 netiucv 디바이스와 같은 인공 디바이스.

시스템 및 사용자 공간

sysfs는 여러 유틸리티에서 하드웨어 및 udev 또는 HAL과 같은 드라이버(커널 모듈)에 대한 정보에 액세스하기 위해 사용됩니다.스크립트는 procfs를 통해 이전에 취득한 정보에 액세스하기 위해 작성되었으며 일부 스크립트는 디바이스 드라이버 및 디바이스를 속성을 통해 설정합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Patrick Mochel and Mike Murphy. "sysfs - _The_ filesystem for exporting kernel objects". kernel.org.
  2. ^ SUSE. "sysctl man page". FreeBSD. sysctl is used to modify kernel parameters at runtime. The parameters available are those listed under /proc/sys/. Procfs is required for sysctl support in Linux. You can use sysctl to both read and write sysctl data.
  3. ^ Torvalds, Linus (18 October 2002). "Linux v2.5.44 - and offline for a week".
  4. ^ Torvalds, Linus (4 November 2002). "Linux v2.5.46".
  5. ^ Mochel, Patrick (17 October 2001). "[RFC] New Driver Model for 2.5".
  6. ^ Jansen, Tim (1 November 2001). "Re: [PATCH] 2.5 PROPOSAL: Replacement for current /proc of shit".
  7. ^ "SCSI Interfaces Guide — The Linux Kernel documentation". www.kernel.org. Retrieved 2020-11-13.

외부 링크