簡體   English   中英

我們可以寫入 jiffies 變量嗎

[英]Can we write to jiffies variable

來自http://www.makelinux.net/ldd3/chp-7-sect-1.shtml

不用說, jiffiesjiffies_64必須被認為是只讀的

我寫了一個程序來驗證,它成功地更新了jiffies值。

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/jiffies.h>

static int __init test_hello_init(void)
{
    jiffies = 0;
    pr_info("jiffies:%lu\n", jiffies);
    return 0;
}

static void __exit test_hello_exit(void)
{
}

MODULE_LICENSE("GPL");

module_init(test_hello_init);
module_exit(test_hello_exit);

該模塊成功地將jiffies設置為零。 我錯過了什么嗎?

您正在閱讀的內容只是一個警告。 這是您(內核模塊開發人員)與內核之間的不成文契約。 您不應該修改jiffies的值,因為這不是由您決定的,並且由內核根據一組您不必擔心的復雜規則進行更新。 jiffies值由調度程序內部使用,因此修改它可能會發生不好的事情。 您在模塊中看到的變量可能只是真實變量的線程本地副本,因此修改可能無效。 無論如何,你不應該這樣做。 它僅作為附加信息提供給您,您的模塊可能需要了解這些信息以實現某些邏輯。

當然,由於您使用的是 C 語言,因此變量沒有“權限”的概念。 任何映射到內存可讀和可寫區域的內容都可以修改,您甚至可以通過先更改權限來修改只讀內存中的數據。 如果你願意,你可以做各種各樣的壞事。 很多事情你不應該改變,即使你有能力這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM