Какова обычная единица выделения для процесса в Linux?

Как дополнение к ответу frostschutz, некоторые оболочки имеют возможность интерпретировать удар хеша (хижина) строки. Bash обычно только активирует эту опцию, если ядро не поддерживает интерпретацию удара хеша.

Однако, если Вы хотите играть (взламывают) вокруг с Вашими строками хижин, может быть легче играть вокруг с ними в источнике Bash, чем в источнике ядра.

От bash/execute_cmd.c:

#if !defined (HAVE_HASH_BANG_EXEC)
    if (sample_len > 2 && sample[0] == '#' && sample[1] == '!')
        return (execute_shell_script (sample, sample_len, command, args, env));
    else
#endif

От bash/config.h:

/* Define if the kernel can exec files beginning with #! */
#define HAVE_HASH_BANG_EXEC 1

3
14.10.2015, 02:56
1 ответ

В вашей второй ссылке, где говорится

Распределитель памяти получает большой кусок памяти (скажем, 4 страницы, или 4 * 4 KiB) и делит его на гораздо меньшие куски

, "распределитель памяти" - это не ядро, а подпрограммы libc, такие как malloc.

Ядро выделяет память процессу кусками размером в страницу. malloc отслеживает используемые и неиспользуемые части этих страниц по мере того, как приложение запрашивает и освобождает их.

8
27.01.2020, 21:11

Теги

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