→ carylorrk: 單純 user space 不行吧? 02/13 18:15
→ descent: printf 是用 %lx 嗎? 02/13 18:19
推 longlongint: pow(2,32) 是多少 02/13 18:51
→ PkmX: 你是在32bit還是64bit的linux上跑得啊? 02/13 19:28
→ PkmX: 另外linux有memory overcommitment的機制 你如果只malloc 02/13 19:30
→ PkmX: 但是沒有使用到該page的話 kernel根本就不會去map實體的 02/13 19:33
→ PkmX: memory給他 02/13 19:33
推 johnpage: 先確認作業系統的位元,32or64 02/13 20:13
→ LiloHuang: Linux 預設是打開 overcommit 的情況下,malloc 除了 02/13 20:17
→ LiloHuang: 要求配置大小為 0 之外,都一定會回傳指標給你 02/13 20:19
→ LiloHuang: 做 NULL 檢查會造成不如預期的狀況發生 ... 02/13 20:20
→ LiloHuang: 就像 PkmX 提到的,你得真的去用該 page 才行 02/13 20:20
→ LiloHuang: 方法也很簡單,對回傳的指標做 memset(p, 0x0, size); 02/13 20:21
→ LiloHuang: 至於你只能用 4G 的情況,聽起來是 32bit 的作業系統 02/13 20:22
推 cspy: 死結? 02/13 20:42
→ Push5F: MMU max size = 4G ? if install 1G ram ,MMU = 4G 02/14 01:24
→ Push5F: if install 5G RAM ... ??? 02/14 01:25
→ tjjh89017: @Push5F: 請去了解MMU的運作模式 02/14 18:53
推 lovejomi: 若一定回傳non null,要怎知道malloc fail呀?? 02/15 02:28
推 LiloHuang: 坦白說,沒辦法 :) 樓上也可以關掉 overcommit 02/15 21:07