По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Сетевая индустрия использует множество терминов и понятий для описания коммутации и маршрутизации, потому что многие термины пересекаются в определениях этих понятий. Это может сбить с толку. Работает ли маршрутизатор маршрутизатором или коммутатором? В чем разница между коммутацией на 3 уровне (L3) и маршрутизацией? Что бы найти ответы на эти вопросы необходимо разобраться, что происходит с пакетом, когда он проходит через сеть. Понимание широковещательных и коллизионных доменов Два основных понятия, которые вы должны понять. Коммутация. Понятие широковещательного домена и домена коллизий На рисунке изображена простая сеть, иллюстрирующая эти два понятия. Домен коллизий определяется как набор хостов, подключенных к сети. В некоторых случаях хосты одновременно не буду передавать пакеты из-за возможного столкновения последних. Например, если Хост А и хост Б соединены прямым проводом, то они не смогут передавать пакеты одновременно. Однако, если между хостами установлено какое-то физическое устройств, то одновременная передача данных возможна, так как они находятся в отдельных доменах коллизий. Широковещательный домен-это набор хостов, которые могут обмениваться данными, просто отправляя данные на 2 уровне(L2). Если узел A посылает широковещательный пакет для всех хостов, по локальной сети, и хост B получает его, эти два хоста находятся в одном широковещательном домене. Широковещательный домен и домен коллизий Мостовое соединение создает домен коллизий, но не широковещательный домен. Традиционная коммутация пакетов и мостовое соединение- технически- это одно и то же. Основное различие заключается в том, что в большинстве коммутируемых сред каждое устройство, подключенное к сети, находится в отдельном домене коллизий. Что же изменяется в формате типичного пакета, когда он проходит через коммутатор? Рисунок не показывает измения в формате пакетов данных прошедших через коммутатор Вообще, устройства по обе стороны от коммутатора не "видят", что между ними есть коммутатор, они также не знают назначения своих пакетов; коммутаторы прозрачны для устройств подключенных к сети. Если узел А хочет отправить пакет на ip-адресс 192.168.1.2 (узел B), он отправляет в эфир широковещательный запрос для всех узлов, подключенных к тому же сегменту сети, запрашивает MAC-адрес хоста с IP-адресом 192.168.1.2 (это называется Address Resolution Protocol (ARP)). Так как узел B находится в том же широковещательном домене, что и узел A, узел A может быть уверен, что узел B получит этот широковещательный запрос и отправит ответный пакет с верным MAC-адресом для обмена пакетами. Широковещательные домены и домены коллизии в маршрутизации Сеть построена на основе маршрутизатора не создает широковещательный домен и домен коллизий данная схема приведена на рисунке: Возникает вопрос, как пакет отправленный с хоста А достигнет хост Б с ip-адресом 192.168.2.1? Хост Ане может отправить широковещательный пакет для обнаружения адреса узла B, поэтому он должен использовать какой-то другой метод чтобы выяснить, как добраться до этого пункта назначения. Откуда узел А знает об этом? Обратите внимание, что после каждого IP-адреса на рисунке выше, есть значение / 24. Это число указывает длину префикса, или количество битов, установленных в маске подсети. Хост А может использовать эту информацию для определения что хост B не находится в том же широковещательном домене (не в том же сегменте), и хост A должен использовать определенный метод маршрутизации для достижения цели, как показано на рисунке ниже. Теперь, когда хост A знает, что хост B не находится в том же широковещательном домене, что и он, он не может отправить широковещательный запрос для получения адреса хоста B. Как, тогда, пакету, отправленному с узла А, добраться до узла B? Отправляя свои пакеты к промежуточному маршрутизатору, Хост A помещает в заголовок пакета IP-адрес хоста B, а также еще MAC-адрес промежуточного маршрутизатора, как показано на рисунке. Узел А помещает MAC-адрес маршрутизатора в заголовок пакета. Маршрутизатор принимает этот пакет, приходящий из сети. Далее маршрутизатор проверяет IP-адрес назначения и определяет, какой наиболее короткий маршрут построить и сравнивает данные из пакета с таблицей маршрутизации (в данном случае сравниваются данные хоста B), и заменяет MAC-адрес правильным MAC-адресом для следующего перехода. Затем маршрутизатор пересылает пакет в другой сегмент, который находится в другом широковещательном домене. Коммутация L3 Коммутация 3 уровня очень похожа на маршрутизацию, как показано на рисунке ниже (обратите внимание, что это то же самое, что изображено на рисунке выше). Это связано с тем, что коммутация 3 уровня является маршрутизируемой; Нет никакой функциональной разницы между коммутацией 3 уровня и маршрутизацией.
img
Вот вы пользователь Linux машины. И вот вам захотелось запустить какую-нибудь команду только на определенное время, и вы задаете вопрос - как это сделать? А вот как - использовать команду timeout. Как взять timeout - об использовании команды Базовый синтаксис Как и следовало ожидать, синтакс у команды экстремально прост: сама команда timeout - опции - длительность выполнения (можно даже с единицами измерения) - целевая команда Единицы измерения для указания длительности: s - секунды (­стоит по умолчанию) m - минуты h - часы d - дни Если вы не укажете никакого параметра по длительности, команда не будет активирована. Примеры команд: timeout 5 ping 1.1.1.1 - пингуем 1.1.1.1 5 секунд timeout 5m ping 1.1.1.1 - пингуем 1.1.1 5 минут timeout 5.5h ping 1.1.1.1 - 5,5 часов пингуем 1.1.1 Если у вас есть необходимость, можно запустить команду с добавкой sudo (если для целевой команды требуются права суперпользователя): sudo timeout 100 tcpdump -n -w dump.pcap Сообщение с космосом или отправка определенного сигнала исполняемому процессу Если вы не указали какой-то особый сигнал, по умолчанию передается SIGTERM (сигнал о том, что надо бы мягко терминировать процесс). Однако, если вы укажете ключ -s после команды timeout, вы можете указать любой другой допустимый сигнал. К примеру: sudo timeout -s SIGKILL ping 1.1.1.1 или sudo timeout -s 9 ping 1.1.1.1 Обе команды выше идентичны, и если вы хотите увидеть весь список сигналов, просто введите kill -l Как убить процесс, если он завис Как вы уже поняли, SIGTERM - это сигнал, который отправляется после истечения таймаута, но он легко может быть проигнорирован процессом, и тогда процесс не остановится. Для уверенности в смерти процесса, нужно использовать ключ -k и некое временное значение. Тогда после окончания таймаута будет отправляться сигнал SIGKILL, который процесс не сможет проигнорировать при всем желании. В примере ниже команда выполняется одну минуту, и, если в течение 10 секунд после окончания таймаута она не "умирает", отправляется сигнал SIGKILL и "добивает" процесс: sudo timeout -k 10 1m ping 1.1.1.1 Сохраняем статус Команда timeout всегда возвращает значение 124 после истечения указанного времени или возвращает статус "exit" управляемой команды (той, что вы вводите после команды timeout). Таким образом, вы можете использовать ключ --preserve-status: timeout --preserve-status 10 ping 1.1.1.1 Запуск команды явно, а не за кулисами По умолчанию, timout работает в бэкграунде, и если вы хотите обратного (вдруг после запуска управляемой команды потребуется какой-нибудь пользовательский ввод), нужно использовать ключ -foreground: timeout --foreground 10m ./bestscripteva.sh Заключение В 99% процентов случаев команда timeout требует всего двух аргументов и ни одного факта: времени исполнения и самой исполняемой команды. Однако, вы теперь знаете и другие фишки использования этой замечательной команды.
img
Ядро Linux является основой Unix-подобных операционных систем. Ядро отвечает за связь между оборудованием и программным обеспечением и за распределение доступных ресурсов. Все дистрибутивы Linux основаны на предопределенном ядре. Но если вы хотите отключить несколько параметров и драйверов или попробовать экспериментальные исправления, вам необходимо собрать ядро Linux. В этом пошаговом руководстве вы узнаете, как собрать и скомпилировать ядро Linux с нуля. Сборка ядра Linux Процесс создания ядра Linux состоит из семи простых шагов. Однако процедура требует значительного времени для завершения, в зависимости от скорости системы. Примечание. Если версия на веб-сайте ядра не совпадает с версией из приведенных ниже шагов, используйте эти команды и замените номер версии ядра. Шаг 1. Загрузите исходный код 1. Посетите официальный сайт ядра www.kernel.org и загрузите последнюю версию. Загруженный файл содержит сжатый исходный код. 2. Откройте терминал и используйте команду wget для загрузки исходного кода ядра Linux: wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz По завершении загрузки в выходных данных отображается сообщение "saved". Шаг 2: извлеките исходный код Когда файл будет готов, запустите команду tar, чтобы извлечь исходный код: tar xvf linux-5.9.6.tar.xz Вывод отображает извлеченный исходный код ядра: Шаг 3: Установите необходимые пакеты Перед сборкой ядра установите дополнительные пакеты. Для этого запустите эту команду: sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison Команда, которую мы использовали выше, устанавливает следующие пакеты: git - отслеживает и записывает все изменения исходного кода во время разработки. Это также позволяет отменить изменения. fakeroot - упаковочный инструмент, создающий фальшивую корневую среду. build-essential - Устанавливает инструменты разработки, такие как C, C++, gcc и g++. ncurses-dev - Библиотека программирования, предоставляющая API для текстовых терминалов. xz-utils - обеспечивает быстрое сжатие и распаковку файлов. libssl-dev - поддерживает SSL и TSL, которые шифруют данные и делают интернет-соединение безопасным. bc (Basic Calculator) - математический язык сценариев, поддерживающий интерактивное выполнение операторов. flex (Fast Lexical Analyzer Generator) - генерирует лексические анализаторы, преобразующие символы в токены. libelf-dev - выдает общую библиотеку для управления файлами ELF (исполняемые файлы, дампы ядра и объектный код) bison - генератор парсера GNU, который преобразует описание грамматики в программу на языке C. Шаг 4: Настройте ядро Исходный код ядра Linux поставляется с конфигурацией по умолчанию. Однако вы можете настроить его под свои нужды. Для этого выполните следующие действия: 1. Перейдите к каталогу linux-5.9.6. с помощью команды cd: cd linux-5.9.6 2. Скопируйте существующий файл конфигурации с помощью команды cp: cp -v /boot/config-$(uname -r) .config 3. Чтобы внести изменения в файл конфигурации, выполните команду make: make menuconfig Команда запускает несколько скриптов, которые затем открывают меню конфигурации: 4. Меню конфигурации включает в себя такие параметры, как прошивка, файловая система, сеть и параметры памяти. Используйте стрелки, чтобы сделать выбор, или выберите HELP, чтобы узнать больше о вариантах. Когда вы закончите вносить изменения, выберите SAVE, а затем выйдите из меню. Примечание. Изменение настроек некоторых параметров может привести к тому, что ядро не будет работать. Если вы не знаете, что изменить, оставьте настройки по умолчанию. Шаг 5: Соберите ядро 1. Начните сборку ядра, выполнив следующую команду: make Процесс сборки и компиляции ядра Linux занимает некоторое время. Терминал перечисляет все компоненты ядра Linux: управление памятью, драйверы оборудования, драйверы файловой системы, сетевые драйверы и управление процессами. 2. Установите необходимые модули с помощью этой команды: sudo make modules_install 3. Наконец, установите ядро, набрав: sudo make install Вывод показывает готово, когда закончено: Шаг 6. Обновите загрузчик (необязательно) Загрузчик GRUB - это первая программа, которая запускается при включении системы. Команда make install выполняет этот процесс автоматически, но вы также можете сделать это вручную. 1. Обновите initramfs до установленной версии ядра: sudo update-initramfs -c -k 5.9.6 2. Обновите загрузчик GRUB с помощью этой команды: sudo update-grub Терминал выведет процесс и подтверждающее сообщение: Шаг 7: перезагрузите и проверьте версию ядра Когда вы выполните описанные выше действия, перезагрузите компьютер. Когда система загрузится, проверьте версию ядра с помощью команды uname: uname -mrs Терминал покажет текущую версию ядра Linux. Итог В этом пошаговом руководстве вы узнали, как собрать ядро Linux с нуля и установить необходимые пакеты.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59