Базовым ядром является файл vmlinuz
в папке / boot
. Буква «z» означает «сжато с помощью библиотеки z». К сожалению, я не знаю, как его распаковать, чтобы увидеть размер в несжатом виде.
Также, как упоминалось в @type_outcast, ядро использует модули для доступа к оборудованию и обработки некоторых других функций. Они находятся в папке / lib / modules /
. Вы можете определить, какие модули загружены, используя lsmod
. Этот список включает столбец Размер
с размером каждого модуля.
Так что, если вы хотите узнать размер ядра, это будет относительно близкое приближение.
Также у вас есть файл памяти. Попробуйте cat / proc / meminfo
. Это даст вам два дополнительных параметра: KernelStack
и Buffers
.
Кроме того, вы можете получать информацию от различных процессов, таких как процесс 1. Это процесс инициализации, и его можно рассматривать как часть ядра. Его информацию можно найти в / proc / 1
. Использование памяти показывает несколько чисел, которые объяснены ниже . Вы можете найти список таких низкоуровневых процессов, используя ps -ef | less
и глядя на столбец CMD
. Вещи, заключенные в скобки «[... имя ...]», на самом деле являются записями низкого уровня (записи, относящиеся к модулям, на самом деле это могут быть задачи, созданные модулями, но я не знаю наверняка об этом)
me $ cat /proc/1
46511 1381 790 348 0 37483 0
Обратите внимание, что эти числа измеряются на страницах . В большинстве случаев это означает, что вы хотите умножить число на 4096, чтобы получить размер в байтах.
/proc/[pid]/statm
Provides information about memory usage, measured in pages.
The columns are:
size (1) total program size
(same as VmSize in /proc/[pid]/status)
resident (2) resident set size
(same as VmRSS in /proc/[pid]/status)
shared (3) number of resident shared pages (i.e., backed by a file)
(same as RssFile+RssShmem in /proc/[pid]/status)
text (4) text (code)
lib (5) library (unused since Linux 2.6; always 0)
data (6) data + stack
dt (7) dirty pages (unused since Linux 2.6; always 0)
Если вас интересуют другие процессы, все данные будут доступны в папке / proc
.
Вы не можете. Bash будет работать только с целыми числами. Для большей точности используйте что-то вроде bc.