Как fork-бомба работает?

Будучи несколькими годами из моего градуса CS, я дам свои мнения о том, насколько полезный каждый из них был бы.

  • исследование и практика для сертификаций
    • CompTIA Linux + хорошая сертификация новичка? Сервер +?

Я никогда не думал большая часть сертификаций и большая часть того, на чем я видел ТАК указывает на подобный скептицизм их полноценности. Я сказал бы "нет".

  • cPanel

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

  • Apache/PHP

Установка и простая конфигурация тривиальны, но Вы могли войти в некоторую усовершенствованную конфигурацию Apache, возможно, день или два на переписывает правила. Фактический код PHP должен быть сохранен для класса PHP/web.

  • почтовый сервер с IMAP

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

  • Сервер DNS

Как вышеупомянутое, настоятельно рекомендованное. Могло бы быть более быстрым и легче объяснить базовые принципы, чем почтовый сервер.

  • резервные копии
    • какое программное обеспечение для резервного копирования?

Это также было бы хорошо, хотя более низкий приоритет, чем электронная почта и DNS. Но я боюсь, что не могу предложить много в способе предложений на конкретном программном обеспечении для использования.

22
31.08.2013, 05:43
1 ответ

Эта fork-бомба всегда напоминает мне о чем-то, учитель программирования AI сказал относительно одного из первых уроков, что я принял участие, "Для понимания рекурсии, сначала необходимо понять рекурсию".

В он - ядро, эта бомба является рекурсивной функцией. В сущности Вы создаете функцию, которая называет себя, который называет себя, который называет себя...., пока системные ресурсы не используются. В этом определенном экземпляре рекурсия усилена при помощи передачи по каналу функции к себе И фоновой обработке это.

Я видел, что это ответило на StackOverflow, и я думаю, что пример, данный там, иллюстрирует его лучше всего, просто потому что легче видеть то, что он делает сразу (украденный от ссылки выше...)

☃(){ ☃|☃& };☃

Определите функцию ошибки ☃() { ... }, тело которого называет себя (функция ошибки), передавая вывод по каналу к себе (функция ошибки) ☃|☃, и фон результат &. Затем после того, как функция определяется, на самом деле вызовите функцию ошибки, ; ☃.

Я отмечаю, что, по крайней мере, на моей Дуге VM, потребность к фону процесс не является требованием, чтобы иметь тот же конечный результат, занимать все доступное место процесса и представить хост b0rked. На самом деле теперь я сказал, что это, кажется, иногда завершает убежавший процесс и после экранного из -bash: fork: Resource temporarily unavailable это остановится с a Terminatedjournalctl шоу колотят дамп ядра).

Для ответа на вопрос о csh/tcsh, ни одной из тех функций поддержки оболочек, можно только исказить. Таким образом для тех оболочек необходимо было бы записать сценарий оболочки, который называет себя рекурсивно.

zsh, кажется, переносит ту же судьбу (с тем же кодом), не удаляет сердцевину дампа и заставляет Arch давать Out of memory: Kill process 216 (zsh) score 0 or sacrifice child., но это все еще продолжает разветвляться. Через некоторое время это затем указывает Killed process 162 (systemd-logind) ... (и все еще продолжает иметь разветвление zsh).

Дуга, кажется, не имеет a pacman версия ksh, таким образом, я должен был попробовать его на debian вместо этого. ksh возражает против : как имя функции, но использование чего-то - говорят b() вместо этого, кажется, имеет желаемый результат.

23
27.01.2020, 19:43
  • 1
    Каковы те символы? Я знаю, что они - ошибки, но как Вы делали их? –  slm♦ 31.08.2013, 05:46
  • 2
    В то время как в размере мелкого шрифта это действительно похоже на ошибку, Вы найдете, что это - на самом деле снеговик. Это было бы unicode символом U+2603, который может быть отображен в HTML путем ввода и # x 2603 без пробелов. –  sambler 31.08.2013, 06:14
  • 3
    По-видимому, в соответствии с Linux достаточное количество связанных с Gnome приложений и Firefox поддерживает Ctrl+Shift+u+<hex> где шестнадцатеричное число является шестнадцатеричным кодом unicode символа, Вы хотите отобразиться. Список видимого unicode может быть найден в: fileformat.info/info/unicode/utf8test.htm (большинство нечетных находится в "разных" разделах). Windows должен контроль superuser.com/questions/47420 / …, и я лично использую инструмент, упомянутый в ссылке unicodeinput.exe или вырезанный и вставленный через мой браузер. Можно всегда использовать последовательности HTML, как предложено sambler. –  Drav Sloan 31.08.2013, 06:55
  • 4
    Wiki, также имеет список unicode символов: en.wikipedia.org/wiki/List_of_Unicode_characters –  Drav Sloan 31.08.2013, 07:32
  • 5
    мне понравилась ошибка снеговика, та, которую Вы используете здесь, не отображен в моей системе, появляется как поле с шестнадцатеричными числами в нем. –  terdon♦ 31.08.2013, 16:43

Теги

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