НАЗВА
setarch — зміна
архітектуру,
яку
повідомляє
система, у
новому
програмному
середовищі
і/або
встановити
прапорці
індивідуальності
КОРОТКИЙ
ОПИС
setarch
[архітектура]
[параметри]
[програма
[аргумент...]]
setarch --list|-h|-V
arch
[параметри]
[програма
[аргумент...]]
ОПИС
setarch змінює
домени
виконання
і обробляє
прапорці
індивідуальності.
Домен
виконання
у поточній
версії
впливає
лише на
виведення
uname -m.
Наприклад,
у системі AMD64
команда setarch i386
програма
накаже
програмі
бачити тип
комп'ютера
i686 замість x86_64.
Нею також
можна
скористатися
для
встановлення
різноманітних
параметрів
індивідуальності.
Типовим
значенням
аргументу
програма
є /bin/sh.
Починаючи
з версії 2.33,
аргумент
командного
рядка
архітектура
є
необов'язковим,
а setarch можна
скористатися
для зміни
параметрів
індивідуальності
(ADDR_LIMIT_*, SHORT_INOD тощо)
без
внесення
змін до
домену
виконання.
ПАРАМЕТРИ
--list
Вивести
список
відомих setarch
архітектур.
Те, чи може
setarch
насправді
встановлювати
кожну з цих
архітектур,
залежить
від
запущеного
у системі
ядра.
--uname-2.6
Наказує
програмі
бачити
номер
версії
ядра як
такий, що
починається
з 2.6. Вмикає
UNAME26.
-v, --verbose
Режим
докладних
повідомлень.
-3, --3gb
Вказує,
що
програма
має
споживати
не більше 3
ГБ
простору
адрес.
Підтримку
передбачено
на x86. Вмикає
ADDR_LIMIT_3GB.
--4gb
Цей
параметр
ні на що не
впливає.
Його
зберігають
лише з
міркувань
сумісності.
Цей
параметр
може бути
вилучено у
наступних
версіях.
-B, --32bit
Обмежити
простір
адрес до 32
бітів для
емуляції
апаратного
забезпечення.
Підтримку
передбачено
на ARM і Alpha.
Вмикає
ADDR_LIMIT_32BIT.
-F, --fdpic-funcptrs
Вважати
вказівники
функцій
простору
користувачів
на
обробники
сигналів
вказівниками
на
дескриптори
адрес. Цей
параметр
не працює
на
архітектурах,
де не
передбачено
підтримки
виконуваних
файлів ELF FDPIC. У
ядрі 4.14
підтримку
обмежено
архітектурами
процесорів
ARM, Blackfin, Fujitsu FR-V та SuperH.
-I, --short-inode
Застарілий
прапорець
імітації
вади.
Вмикає SHORT_INODE.
-L, --addr-compat-layout
Забезпечує
роботу
застарілого
компонування
простору
віртуальних
адрес.
Використовуйте,
якщо у
виконуваного
файла
програма
не містить
заголовка ELF
*PT_GNU_STACK. Вмикає
ADDR_COMPAT_LAYOUT.
-R, --addr-no-randomize
Вимикає
випадковість
простору
віртуальних
адрес.
Вмикає
ADDR_NO_RANDOMIZE.
-S, --whole-seconds
Застарілий
прапорець
імітації
вади.
Вмикає WHOLE_SECONDS.
-T, --sticky-timeouts
Це
наказує
системним
викликам
select(2),
pselect(2) і
ppoll(2)
зберігати
значення
часу
очікування
замість
внесення
до нього
змін з
метою
врахувати
час, який
було
проведено
поза
межами сну,
при
перериванні
обробником
сигналу.
Користуйтеся,
якщо
логіка
програми
залежить
від цієї
поведінки.
Докладніший
опис часу
очікування
наведено
на
сторінці
підручника
щод
select(2).
Вмикає
STICKY_TIMEOUTS.
-X, --read-implies-exec
Якщо
встановлено
цей
параметр,
PROT_READ mmap(3p) також
додаватиме
біт
PROT_EXEC, як це
було у
застарілих
виконуваних
файлах x86.
Зауважте,
що
завантажувач
ELF
автоматично
встановить
цей біт,
якщо йому
трапиться
застарілий
виконуваний
файл.
Вмикає
READ_IMPLIES_EXEC.
-Z, --mmap-page-zero
Емуляція
вади у SVr4, яка
призводила
до
встановлення
для
нульової
сторінки
mmap(3p) стану
«лише
читання.
Користуйтеся,
коли
логіка
програми
ґрунтується
на цій
поведінці,
а
початковий
код є
недоступним
для
виправлення.
Вмикає
MMAP_PAGE_ZERO.
-h, --help
Вивести
текст
довідки і
завершити
роботу.
-V, --version
Вивести
дані щодо
версії і
завершити
роботу.
ПРИКЛАДИ
setarch --addr-no-randomize mytestprog
setarch ppc32 rpmbuild --target=ppc --rebuild foo.src.rpm
setarch ppc32 -v -vL3 rpmbuild --target=ppc --rebuild bar.src.rpm
setarch ppc32 --32bit rpmbuild --target=ppc --rebuild foo.src.rpm
АВТОРИ
Elliot Lee <sopwith@redhat.com>, Jindrich Novy
<jnovy@redhat.com>, Karel Zak <kzak@redhat.com>
ЗВІТИ ПРО
ВАДИ
Для
звітування
про вади
використовуйте
систему
стеження
помилками
на
<https://github.com/util-linux/util-linux/issues>.
ДОСТУПНІСТЬ
setarch є
частиною
пакунка util-linux,
який можна
отримати з
Linux Kernel Archive
<https://www.kernel.org/pub/linux/utils/util-linux/>.
ПЕРЕКЛАД
Український
переклад
цієї
сторінки
посібника
виконано Yuri
Chornoivan <yurchor@ukr.net>
Цей
переклад є
безкоштовною
документацією;
будь ласка,
ознайомтеся
з умовами
GNU General
Public License Version 3. НЕ
НАДАЄТЬСЯ
ЖОДНИХ
ГАРАНТІЙ.
Якщо ви
знайшли
помилки у
перекладі
цієї
сторінки
підручника,
будь ласка,
надішліть
електронний
лист до
списку
листування
перекладачів:
trans-uk@lists.fedoraproject.org.