добавить один двоичный файл в PATH

In 32 bit systems with more than 896 MB of RAM it is obvious, that the mapping of kernel addresses need to be changed because of kernel virtual addresses and the non-continuous mapping.

Да, это известно как highmem .

But how is this handled in 64 bit? As the RAM can always be mapped entirely in the address space, the master kernel page table needs to be set up once at initialization and then is never changed, since the mapping is never changed. Thus, this kernel region in the user page table never needs to be updated?

Да .

Btw has someone a good explanation how the user process page tables are updated in 32 bit? As it is always said, that the master kernel page tables are not directly used but only used as a reference. Are the entries for the kernel region copied for every process in its user page table?

В документе highmem, указанном выше, говорится, что сопоставления highmem требуют только манипулирования «таблицами страниц ядра».

«Таблицы страниц» на самом деле являются разновидностью древовидной структуры. Например. см. «Четыре -таблицы страниц уровня» [LWN.net, 2004]. Верхний уровень — это одна страница (4096 байт ). Записи, отображающие диапазон ядра, имеют одинаковые значения во всех процессах и, следовательно, являются общими. Временные сопоставления происходят на более низком уровне дерева, поэтому их нужно изменять только внутри общих таблиц страниц ядра, и им не нужно отдельно изменять каждую таблицу страниц процесса.

По крайней мере, это мой обзор высокого -уровня. У меня нет всех слов.

0
29.09.2020, 15:00
2 ответа

Это не работает. --пути из PATHбудут рассматриваться как каталоги, которые следует добавлять перед командами, независимо от того, являются ли они исполняемыми файлами или файлами любого другого типа.

Простое решение — создать каталог в другом месте, создать там символическую ссылку на ваш двоичный файл, а затем добавить этот каталог вPATH:

mkdir ~/my-bin
ln -s ~/.scry/bin/scry ~/my-bin
PATH=$PATH:~/my-bin
2
18.03.2021, 23:01
hash -p "$HOME"/.scry/bin/scry scry

Добавление вышеуказанного в ваш файл .bashrcсообщит вашей интерактивной оболочке, что scryнаходится по адресу "$HOME"/.scry/bin/scry.

Другие способы сделать что-то подобное включают создание псевдонима с помощью

alias scry="$HOME"/.scry/bin/scry

или функцию оболочки с

scry () {
    "$HOME"/.scry/bin/scry "$@"
}

Переменная PATHсодержит разделенный:-список каталогов , в которых будет выполняться поиск при вводе команды, которая еще не использовалась. Таким образом, добавление пути к утилите в переменную PATHничего не даст.

1
18.03.2021, 23:01

Теги

Похожие вопросы