LinuxはSHMMAXのデフォルト値をどこに設定しますか?

LinuxはSHMMAXのデフォルト値をどこに設定しますか?

この値がどこに設定されていて、デフォルトは何であるか疑問に思います。私は現在18446744073692774399です。目に見える場所には設置していません。

$ cat /proc/sys/kernel/shmmax 
18446744073692774399

$ sysctl kernel.shmmax
kernel.shmmax = 18446744073692774399

ベストアンサー1

__init機能ipc_ns_initshmmax呼び出して初期値を設定するshm_init_ns、マクロ値に設定しますSHMMAX

定義SHMMAXは次のとおりです。<uapi/linux/shm.h>:

#define SHMMAX (ULONG_MAX - (1UL << 24)) /* max shared seg size (bytes) */

64ビットコンピュータでは、この定義は見つかった値と同じです18446744073692774399

おすすめ記事