我正在尝试为低内存系统(16MB ram)编译内核(3.14,arm64 arch)。我已经设法关闭了我不需要的所有功能,基本上没有设备,没有fs,没有模块,没有ZONE_DMA,一个非常非常基本的内核。
然而,当我启动内核时,我看到了:
内存:860K / 16384K可用(789K内核代码,67K rwdata,56K rodata,64K init,38K bss,15524K保留)
这个保留的记忆是什么?
我该如何减少这个?预备队会占用我的大量内存,只留下860K
提前致谢!
答案 0 :(得分:0)
内存:860K / 16384K可用(789K内核代码,67K rwdata,56K rodata,64K初始化,38K bss,保留15524K)
这是process in memory的结构:文本/代码段,数据段(bss,rodata等),堆和堆栈。内核始终驻留在RAM中,并为其使用保留一些内存空间。但是当RAM很小时,内核和用户空间进程会共享它。
了解有关嵌入式Linux read this post的更多信息。
答案 1 :(得分:0)
它是应该始终存在以满足关键内存分配的最小内存量。将其设置得太低可能会导致系统损坏,而设置为高可能会立即使您的系统 OOM。您可以通过写入 from tkinter import *
from tkinter import ttk
def newsave():
global saveamount #this is 0 by default
saveamount = saveamount + 1
savecountdoc = open("saves/savecount.txt", "w+")
savecountdoc.write(str(saveamount))
Button(scrollable_frame, text="Save " + str(saveamount), width="53", height="5").pack()
def savespack():
savelabelcount = 0
savebuttontext = StringVar()
for i in range(saveamount):
savelabelcount = savelabelcount + 1
print(savelabelcount) #prints 1-9
savebuttontext.set("Save " + str(savelabelcount))
Button(scrollable_frame, textvariable=savebuttontext, width="53", height="5").pack()
def savefiles():
global backbutton
global scrollable_frame
playbutton.place_forget()
backbutton = Button(main, text="Back", width ="56", command=startscreenback)
backbutton.grid(row="0", column="0")
savesframe = ttk.Frame(main)
savesframecanvas = Canvas(savesframe)
scrollbar = ttk.Scrollbar(savesframe, orient="vertical", command=savesframecanvas.yview)
scrollable_frame = ttk.Frame(savesframecanvas)
scrollable_frame.bind(
"<Configure>",
lambda e: savesframecanvas.configure(
scrollregion=savesframecanvas.bbox("all")
)
)
savespack()
newsavebutton = Button(scrollable_frame, text="New Save", width="53", height="5", command=newsave).pack()
savesframecanvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
savesframecanvas.configure(yscrollcommand=scrollbar.set)
savesframe.place(x="0", y="50")
savesframecanvas.pack(side="left", fill="both", expand=True)
scrollbar.pack(side="right", fill="y")
main = Tk()
main.title("Fruit Clicker")
main.geometry("400x350+300+100")
playbutton = Button(main, text="Play", width="40", height="3", command=savefiles)
playbutton.place(x="60", y="100")
main.mainloop()
来修改此值。
阅读:
/proc/sys/vm/min_free_kbytes
要将其设置为 1024KB (1MB):
$ cat /proc/sys/vm/min_free_kbytes
67584