sysctl

sysctl
sysctl
Example of sysctl on Linux screenshot.png
기록 위치C
운영 체제Unix 유사(BSD)
유형시스템 구성

sysctl은 버전 번호, 최대 제한 및 보안 설정과 같은 시스템 커널의 속성을 읽고 수정하는 일부 Unix 유사 운영 체제의 소프트웨어 유틸리티다.[1]컴파일된 프로그램에 대한 시스템 호출과 대화형 사용 및 스크립팅에 대한 관리자 명령으로 모두 사용할 수 있다.리눅스는 sysctl을 가상 파일 시스템으로 추가적으로 노출시킨다.

BSD

BSD에서 이러한 파라미터는 일반적으로 공유 메모리 세그먼트의 크기, 운영 체제가 NFS 클라이언트로 사용할 스레드 수 또는 시스템의 최대 프로세스 수 등 조정 가능한 한도를 기술하거나 IP 전달, 증권화와 같은 동작을 기술, 활성화 또는 비활성화하는 MIB(Management Information Base) 내의 개체들이다.superuser("보안 수준") 또는 디버깅 출력에 대한 ty 제한.[1]

OpenBSDDragonFly BSD에서 sysctl은 하드웨어 모니터링을 위한 hw.sensor 프레임워크의 전송 계층으로도 사용되는 반면,[2] NetBSDsysmon 환경 상대방에 대해 ioctl 시스템 호출을 사용한다.sysctl과 ioctl 모두 다른 시스템 호출을 추가하지 않고 커널에 추가 기능을 추가하는 데 사용할 수 있는 두 개의 시스템 호이다.[3] 예를 들어, 2004년 OpenBSD 3.6에서 tcpdrop 유틸리티가 도입되었을 때 sysctl이 기본 시스템 호로 사용되었다.[3][4]FreeBSD에서는 센서 프레임워크는 없지만, 개별 온도 및 기타 센서는 예를 들어, 센서의 경우와 같이 여전히 sysctl 트리를 통해 뉴버스를 통해 일반적으로 수출된다.aibs(4)FreeB를 포함한 4개의 BSD 시스템에서 사용 가능한 드라이버SD.[5][6][7]

BSD에서 시스템 호출 또는 시스템 호출 래퍼는 일반적으로 관리 프로그램과 구성 파일뿐만 아니라 프로그램에서 사용할 수 있도록 제공된다(시스템 부팅 시 튜닝 가능한 매개 변수를 설정하기 위해).

이 기능은 4.4에 처음 등장했다.BSD. 하드 코딩된 상수에 비해 커널을 다시 컴파일하지 않고도 동적으로 파라미터 변경이 가능하다는 장점이 있다.

역사적으로 커널 변수 자체는 sysctl을 통해 수정할 수 있었지만, sysctl 트리의 MIB를 구성하는 요소들은 컴파일할 때 하드코딩되었고, 2019년을 기점으로 OpenBSD에서는 대부분 그대로 적용되고 있다(hw.sensors와 같은 일부 예외는 고유의 동적 하위 트리를 관리하고 제공하는 것).FreeBSD는 1995년부터 동적 sysctl 트리 관리를 위한 "sysctl 내부 마법"을 가지고 있으며 NetBSD는 2003년 12월부터 동적 sysctl 트리를 자체적으로 구현하고 있다.[5][6]

리눅스

Linux에서 sysctl 인터페이스 메커니즘은 아래 procfs의 일부로 수출되기도 한다./sys/sys 디렉토리(/sys 디렉토리와 혼동되지 않음).이 차이는 일부 매개 변수의 값을 확인하려면 가상 파일 시스템에서 파일을 열고, 내용을 읽고, 파일을 구문 분석하고, 파일을 닫아야 함을 의미한다.sysctl 시스템 호출은 Linux에 존재하지만 더 이상 사용되지 않으며 glibc에 래퍼 함수가 없으며 CONFIG_SYSCTL_SYSCALL 없이 커널을 구성하는 많은 배포로 인해 일반적으로 사용할 수 없으므로 사용을 권장하지 않는다.[8]

IP 포워딩이 활성화되면 운영 체제 커널이 라우터 역할을 하게 된다.FreeBSD, NetBSD, OpenBSD, DragonFly BSD, Darwin/Mac OS X에서는 매개변수 net.inet.ip.forwarding1로 설정하여 이러한 동작을 가능하게 할 수 있다.Linux에서는 이 파라미터를 net.ipv4.ip_forward라고 부른다.

대부분의 시스템에서 sysctl -w parameter=1 명령은 특정 동작을 활성화한다.이것은 다음 재부팅 때까지 지속될 것이다.시스템이 부팅될 때마다 이 동작을 활성화해야 하는 경우 /etc/sysctl.conf 파일에 라인 매개 변수=1을 추가/다시 쓸 수 있다.또한 시스템 부팅 후에는 일부 sysctl 변수를 수정할 수 없다.이러한 변수(변수, BSD 버전 및 맛에 따라)는 컴파일 시 커널에서 정적으로 설정하거나 /boot/loader.conf에서 설정할 필요가 있다.

참고 항목

참조

  1. ^ a b "sysctl(7) — system information variables". BSD Cross Reference. NetBSD.
  2. ^ Constantine A. Murenin (2007-04-17). Generalised Interfacing with Microprocessor System Hardware Monitors. Proceedings of 2007 IEEE International Conference on Networking, Sensing and Control, 15–17 April 2007. London, United Kingdom: IEEE. pp. 901–906. doi:10.1109/ICNSC.2007.372901. ISBN 978-1-4244-1076-7. IEEE ICNSC 2007, pp. 901—906.
  3. ^ a b Federico Biancuzzi (2004-10-28). "OpenBSD 3.6 Live". ONLamp. O'Reilly Media. Archived from the original on 2004-10-29. Retrieved 2019-03-20.
  4. ^ Markus Friedl (2004). "tcpdrop.c". BSD Cross Reference. OpenBSD.
  5. ^ a b Constantine A. Murenin; Raouf Boutaba (2009-03-17). "8.3. Sensors framework in FreeBSD CVS". OpenBSD Hardware Sensors Framework (PDF). AsiaBSDCon 2009 Proceedings, 12–15 March 2009. Tokyo University of Science, Tokyo, Japan (published 2009-03-14). Archived (PDF) from the original on 2009-02-21. Retrieved 2019-03-04.
  6. ^ a b Constantine A. Murenin (2010-05-21). "8.3. Sensors framework in FreeBSD CVS". OpenBSD Hardware Sensors — Environmental Monitoring and Fan Control (MMath thesis). University of Waterloo: UWSpace. hdl:10012/5234. Document ID: ab71498b6b1a60ff817b29d56997a418.
  7. ^ "aibs(4) — ASUSTeK AI Booster ACPI ATK0110 voltage, temperature and fan sensor". BSD Cross Reference. FreeBSD. 2010.
    • "aibs -- ASUSTeK AI Booster ACPI ATK0110 voltage, temperature and fan sensor". FreeBSD Manual Pages.
  8. ^ "sysctl(2): read/write system parameters". man7.org. 2017-09-15. Retrieved 2018-01-04.

외부 링크