यह सामान्य रूप से संभव नहीं है: कर्नेल मूल मानों को नहीं रखता है (कम से कम लिनक्स के तहत यह नहीं करता है, और यह संभवतः अन्य यूनिक्स वेरिएंट का सच है)। सेटिंग का मान एक चर में संग्रहीत किया जाता है; जब आप सेटिंग बदलते हैं, तो चर वाली मेमोरी अपरिवर्तनीय रूप से अपडेट की जाती है।
अधिकांश सेटिंग्स के लिए, चर का प्रारंभिक मूल्य एक स्थिर है जो संकलन समय पर निर्धारित होता है और कर्नेल बाइनरी में संग्रहीत होता है। इसलिए, आप सिद्धांत रूप में, डिफ़ॉल्ट मूल्य को खोजने के लिए अपने कर्नेल बाइनरी का निरीक्षण कर सकते हैं। आपको उस सेटिंग के अनुरूप प्रतीक का पता लगाना होगा जिसमें आप रुचि रखते हैं, और कर्नेल बाइनरी में उस प्रतीक के पते का पालन करें। एक वर्चुअल मशीन में अपने कर्नेल को बूट करना कम काम होगा।
अधिकांश सेटिंग्स के लिए, आप कर्नेल स्रोत में देख सकते हैं - kernel/sysctl.c
और अन्य फाइलें। आप जैसी परिभाषाएँ देखेंगे
{
.procname = "rmem_max",
.data = &sysctl_rmem_max,
…
},
(इन net/core/sysctl_net_core.c
), जिसमें से आप sysctl_rmem_max
वैरिएबल के आरंभ का पता लगा सकते हैं । जबकि यह एक स्थिर से शुरू होता है, यह विस्तार करने के लिए सी कोड को पढ़ने में काफी थोड़ा लेता है।