กลับไปหน้าบทความ

อ่าน 3 นาที

ซิสคท์ล

sysctl เป็นกลไกซอฟต์แวร์ใน ระบบปฏิบัติการ ที่คล้าย Unix บาง ระบบที่อ่านและแก้ไขคุณลักษณะของ เคอร์เนล ระบบ เช่น หมายเลขเวอร์ชัน ขีดจำกัดสูงสุด และการตั้งค่าความปลอดภัย [ 1 ]...

ซิสคท์ล

( เรียนรู้วิธีและเวลาในการลบข้อความนี้ )
ซิสคท์ล
เขียนเป็นซี
ระบบปฏิบัติการระบบปฏิบัติการคล้ายยูนิก (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
  • sysctl(8) –  คู่มือโปรแกรมเมอร์ลินุกซ์ – การบริหารและการใช้คำสั่งระดับสูง
  • sysctl(2) –  คู่มือโปรแกรมเมอร์ลินุกซ์ – การเรียกใช้ระบบ (System Calls)
  • sysctl-explorer.net – โครงการริเริ่มเพื่ออำนวยความสะดวกในการเข้าถึงเอกสารอ้างอิง sysctl ของ Linux
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Sysctl&oldid=1321716781 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ซิสคท์ล

sysctl เป็นกลไกซอฟต์แวร์ใน ระบบปฏิบัติการ ที่คล้าย Unix บาง ระบบที่อ่านและแก้ไขคุณลักษณะของ เคอร์เนล ระบบ เช่น หมายเลขเวอร์ชัน ขีดจำกัดสูงสุด และการตั้งค่าความปลอดภัย [ 1 ]...

บีเอสดี

ใน BSD พารามิเตอร์เหล่านี้โดยทั่วไปเป็นวัตถุใน ฐานข้อมูลการจัดการ (MIB) ที่อธิบายขีดจำกัดที่ปรับแต่งได้ เช่น ขนาดของส่วนหน่วยความจำที่ใช้ร่วมกัน จำนวนเธรดที่ระบบปฏิบัติการจะใช้เป็น ไคลเอ็นต์ NFS หรือจำนวนกระบวนการสูงสุดในระบบ หรืออธิบาย เปิดใช้งาน...

ลินุกซ์

ใน Linux กลไกอินเทอร์เฟซ sysctl ยังถูกส่งออกเป็นส่วนหนึ่งของ procfs ภายใต้ ไดเร็กทอรี /proc/sys (อย่าสับสนกับ ไดเร็กทอรี /sys ) ความแตกต่างนี้หมายความว่าการตรวจสอบค่าของพารามิเตอร์บางอย่างจำเป็นต้องเปิดไฟล์ใน ระบบไฟล์เสมือน อ่านเนื้อหา วิเคราะห์ และปิดไฟล์...

ตัวอย่าง

เมื่อเปิดใช้งานการส่งต่อ IP เคอร์เนลของระบบปฏิบัติการจะทำหน้าที่เป็น เราเตอร์ ใน FreeBSD , NetBSD , OpenBSD , DragonFly BSD และ Darwin / Mac OS X สามารถตั้งค่าพารามิเตอร์ net.inet.ip.