อ่าน 3 นาที
ซิสคท์ล
sysctl เป็นกลไกซอฟต์แวร์ใน ระบบปฏิบัติการ ที่คล้าย Unix บาง ระบบที่อ่านและแก้ไขคุณลักษณะของ เคอร์เนล ระบบ เช่น หมายเลขเวอร์ชัน ขีดจำกัดสูงสุด และการตั้งค่าความปลอดภัย [ 1 ]...
ซิสคท์ล
| ซิสคท์ล | |
|---|---|
การใช้งาน sysctlในระบบลินุกซ์ | |
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | ระบบปฏิบัติการคล้ายยูนิก (BSD) |
| พิมพ์ | การกำหนดค่าระบบ |
sysctlเป็นกลไกซอฟต์แวร์ใน ระบบปฏิบัติการ ที่คล้าย Unix บาง ระบบที่อ่านและแก้ไขคุณลักษณะของเคอร์เนล ระบบ เช่น หมายเลขเวอร์ชัน ขีดจำกัดสูงสุด และการตั้งค่าความปลอดภัย[ 1 ]สามารถใช้งานได้ทั้งในรูปแบบการเรียกใช้ระบบสำหรับโปรแกรมที่คอมไพล์แล้ว และคำสั่งผู้ดูแลระบบสำหรับการใช้งานแบบโต้ตอบและการเขียนสคริปต์ นอกจากนี้ Linuxยังเปิดเผย sysctl เป็นระบบไฟล์เสมือนอีก ด้วย
บีเอสดี
ใน BSD พารามิเตอร์เหล่านี้โดยทั่วไปเป็นวัตถุในฐานข้อมูลการจัดการ (MIB) ที่อธิบายขีดจำกัดที่ปรับแต่งได้ เช่น ขนาดของส่วนหน่วยความจำที่ใช้ร่วมกัน จำนวนเธรดที่ระบบปฏิบัติการจะใช้เป็น ไคลเอ็นต์ NFSหรือจำนวนกระบวนการสูงสุดในระบบ หรืออธิบาย เปิดใช้งาน หรือปิดใช้งานพฤติกรรมต่างๆ เช่น การส่งต่อ IPข้อจำกัดด้านความปลอดภัยสำหรับผู้ใช้ระดับสูง (ระดับความปลอดภัย) หรือเอาต์พุตการดีบัก[ 1 ]
ในOpenBSDและDragonFly BSDนั้น sysctl ยังถูกใช้เป็นเลเยอร์การขนส่งสำหรับ เฟรมเวิร์ก hw.sensorsสำหรับ การ ตรวจสอบฮาร์ดแวร์ [ 2 ]ในขณะที่NetBSDใช้ การเรียกระบบ ioctlสำหรับenvsys sysmon ทั้ง sysctl และ ioctl เป็นการ เรียกระบบสองแบบที่สามารถใช้เพื่อเพิ่มฟังก์ชันการทำงานพิเศษให้กับเคอร์เนลโดย ไม่ต้องเพิ่ม การเรียกระบบอีก[ 3 ]ตัวอย่างเช่น ในปี 2004 ใน OpenBSD 3.6 เมื่อ มีการแนะนำยูทิลิตี้ tcpdropนั้น sysctl ถูกใช้เป็นการเรียกระบบพื้นฐาน[ 3 ] [ 4 ] ในFreeBSDแม้ว่าจะไม่มีเฟรมเวิร์กเซ็นเซอร์ แต่เซ็นเซอร์อุณหภูมิและเซ็นเซอร์อื่นๆ แต่ละตัวก็ยังคงถูกส่งออกผ่านโครงสร้าง sysctl ผ่านNewbusตัวอย่างเช่น เช่นเดียวกับไดรเวอร์ที่มีอยู่ในระบบ BSD ทั้ง 4 ระบบ รวมถึง FreeBSD ด้วย[ 5 ] [ 6 ] [ 7 ]aibs(4)
ในระบบ BSD โดยปกติแล้วจะมีการจัดเตรียม ระบบเรียกใช้หรือตัวห่อหุ้มระบบเรียกใช้ไว้ให้โปรแกรมต่างๆ ใช้งาน รวมถึงโปรแกรมสำหรับการดูแลระบบและไฟล์การกำหนดค่า (สำหรับตั้งค่าพารามิเตอร์ที่ปรับได้เมื่อระบบเริ่มทำงาน )
คุณสมบัตินี้ปรากฏครั้งแรกใน4.4BSDข้อดีเหนือกว่าการกำหนดค่าคงที่แบบตายตัวคือ สามารถเปลี่ยนแปลงพารามิเตอร์ได้แบบไดนามิกโดยไม่ต้องคอมไพล์เคอร์เนลใหม่
ในอดีต แม้ว่าตัวแปรเคอร์เนลเองจะสามารถแก้ไขได้ผ่าน sysctl แต่ส่วนประกอบของMIBของ sysctl tree นั้นถูกเขียนโค้ดแบบตายตัวในระหว่างการคอมไพล์ และในปี 2019 ก็ยังคงเป็นเช่นนั้นใน OpenBSD เป็นส่วนใหญ่ (ยกเว้นบางกรณี เช่นhw.sensorsซึ่งจัดการและจัดเตรียมซับทรีแบบไดนามิกของตัวเอง) FreeBSD มี "sysctl internal magic" สำหรับการจัดการ sysctl tree แบบไดนามิกมาตั้งแต่ปี 1995 และ NetBSD มีการใช้งาน sysctl tree แบบไดนามิกของตนเองมาตั้งแต่เดือนธันวาคม 2003 [ 5 ] [ 6 ]
ลินุกซ์
ใน Linux กลไกอินเทอร์เฟซ sysctl ยังถูกส่งออกเป็นส่วนหนึ่งของprocfsภายใต้ ไดเร็กทอรี /proc/sys (อย่าสับสนกับไดเร็กทอรี/sys ) ความแตกต่างนี้หมายความว่าการตรวจสอบค่าของพารามิเตอร์บางอย่างจำเป็นต้องเปิดไฟล์ในระบบไฟล์เสมือน อ่านเนื้อหา วิเคราะห์ และปิดไฟล์ การเรียกใช้ระบบ sysctl มีอยู่ใน Linux แต่ถูกยกเลิก การใช้งานแล้วและไม่มีฟังก์ชัน wrapperในglibcโดยปกติจะไม่สามารถใช้งานได้เนื่องจากการแจกจ่ายจำนวนมากกำหนดค่าเคอร์เนลโดยไม่มี CONFIG_SYSCTL_SYSCALL ดังนั้นจึงไม่แนะนำให้ใช้[ 8 ]
ตัวอย่าง
เมื่อเปิดใช้งานการส่งต่อ IP เคอร์เนลของระบบปฏิบัติการจะทำหน้าที่เป็นเราเตอร์ในFreeBSD , NetBSD , OpenBSD , DragonFly BSDและDarwin / Mac OS Xสามารถตั้งค่าพารามิเตอร์net.inet.ip.forwarding เป็น 1 เพื่อเปิดใช้งานพฤติกรรมนี้ได้ ใน Linux พารามิเตอร์ นี้ เรียกว่าnet.ipv4.ip_forward
ในระบบส่วนใหญ่ คำสั่งsysctl -w parameter =1จะเปิดใช้งานพฤติกรรมบางอย่าง ซึ่งจะคงอยู่จนกว่าจะรีบูตเครื่องครั้งถัดไป หากต้องการให้เปิดใช้งานพฤติกรรมนี้ทุกครั้งที่ระบบบูตสามารถเพิ่ม/แก้ไข บรรทัด parameter =1 ในไฟล์ /etc/sysctl.confได้ นอกจากนี้ ตัวแปร sysctl บางตัวไม่สามารถแก้ไขได้หลังจากระบบบูตแล้ว ตัวแปรเหล่านี้ (ขึ้นอยู่กับตัวแปร เวอร์ชัน และชนิดของ BSD) จำเป็นต้องตั้งค่าแบบคงที่ในเคอร์เนลในระหว่างการคอมไพล์ หรือตั้งค่าใน /boot/loader.conf
ดูเพิ่มเติม
ลิงก์ภายนอก
- sysctl(2) ใน OpenBSD
- sysctl(3) ใน FreeBSD, NetBSD, DragonFly BSD
- sysctl(7) ใน NetBSD
- sysctl(8) ใน *BSD
- sysctl(9) ใน FreeBSD, DragonFly และ NetBSD
- – คู่มือโปรแกรมเมอร์ลินุกซ์ – การบริหารและการใช้คำสั่งระดับสูง
- – คู่มือโปรแกรมเมอร์ลินุกซ์ – การเรียกใช้ระบบ (System Calls)
- sysctl-explorer.net – โครงการริเริ่มเพื่ออำนวยความสะดวกในการเข้าถึงเอกสารอ้างอิง sysctl ของ Linux