Во-первых, /dev/core
- это символическая ссылка на обычный файл /proc/kcore
. Поэтому и test -h /dev/core
, и test -f /dev/core
истинны: -h
, потому что это символическая ссылка, -f
, потому что цель символической ссылки - обычный файл.
Теперь о том, что такое /proc/kcore
. Это обычный файл, но он немного отличается от обычных файлов, к которым вы привыкли. Всякий раз, когда программа делает что-то с файлом (открывает, читает, записывает и т.д.), это делается через системный вызов, т.е. путем выполнения некоторого кода в ядре. Код, который будет вызван, зависит от типа файловой системы. Для файловой системы на диске, такой как ext4 или FAT, этот код определяет, как расположены части данных, составляющие файл, и выполняет вызовы к базовому уровню хранения (например, драйверу диска) для чтения и записи этих частей. Для сетевой файловой системы, такой как NFS или Samba, этот код посылает сетевые пакеты на файловый сервер. Для /proc
, который является точкой монтирования для файловой системы procfs, этот код отображает или изменяет структуры данных ядра.
Большинство файлов под /proc
сообщают информацию о системе, например, /proc/mounts
сообщает список точек монтирования, /proc/modules
сообщает список загруженных модулей, /proc/123/stat
сообщает информацию о состоянии процесса с PID 123, и т.д. Файл /proc/kcore
сообщает о содержимом физической памяти системы в формате, подходящем для отладчика, поэтому чтение байтов из /proc/kcore
по сути считывает содержимое физической памяти.
Файлы в файловой системе procfs можно считать "волшебными", примерно так же, как файлы устройств являются "волшебными". Файлы устройств и файловые системы типа procfs и sysfs получают свою магию разными способами: файлы устройств могут быть созданы в любой (ну, в большинстве) файловой системе, они являются магическими, потому что в их записи каталога написано "блочное устройство" или "символьное устройство" вместо "обычный файл"; файлы под /proc
и /sys
являются магическими, потому что вся файловая система, в которой они находятся, является магической.
За исключением того, что, как мы видели выше, никакой магии на самом деле нет. Это просто код ядра, вычисляет ли он расположение блоков и считывает их с диска или форматирует структуры данных ядра.
Документацию по файловой системе procfs можно найти в proc
man page и kernel documentation.
Desde la opción avanzada del menú Grub, debe iniciar el kernel 4.14
y luego eliminar la versión 4.16
.
Para evitar que se actualice el kernel, edite su /etc/pacman.conf
, agregue la siguiente línea:
IgnorePkg = linux
Luego actualice grub.
Во избежание недоразумений никогда не пытайтесь удалить ядро во время его работы.
Вы всегда можете проверить, какое ядро запущено, используя следующую команду в терминале:
mhwd-kernel -li
Вывод может выглядеть следующим образом:
4.14.74-1-MANJARO (linux414)
The following kernels are installed in your system:
* linux414
* linux416
В приведенном выше примере система работает под управлением ядра версии 4.14.74 -1; Версия 4.16 доступна, но не используется. Для того, чтобы избавиться от 4.16, команда должна быть
sudo mhwd-kernel -r linux416
См. Удаление ядер в Manjaro Wiki.
Я использую ядро 4.14.74 -1 в своей собственной системе, и хотя диспетчер настроек Manjaro сообщает мне, что доступны более новые версии ядра (, например. 4.16.18 _rt12 -1, 4.17.19 -1 и 4.18.12 -1 ), они не будут установлены, пока я не нажму кнопку «Установить». Я никогда не менял /etc/pacman.conf
для достижения этого, так как часть, указанная в ответе GAD3R, читается как (в моей системе):
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =