Как стать автором
Обновить
3
0

Пользователь

Отправить сообщение

Частые ошибки программирования на Bash (продолжение)

Время на прочтение6 мин
Количество просмотров38K
Продолжаю знакомить сообщество с переводом Bash Pitfalls.
Часть первая.
Первоначальная публикация перевода.

11. cat file | sed s/foo/bar/ > file


Нельзя читать из файла и писать в него в одном и том же конвейере. В зависимости от того, как построен конвейер, файл может обнулиться (или оказаться усечённым до размера, равному объёму буфера, выделяемого операционной системой для конвейера), или неограниченно увеличиваться до тех пор, пока он не займёт всё доступное пространство на диске, или не достигнет ограничения на размер файла, заданного операционной системой или квотой, и т.д.
Что же делать?
Всего голосов 74: ↑70 и ↓4+66
Комментарии19

Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

Время на прочтение7 мин
Количество просмотров700K
Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI: пассивный и активный.

Пассивный DPI

Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.
Читать дальше →
Всего голосов 212: ↑212 и ↓0+212
Комментарии352

Создание пакета Debian с нуля

Время на прочтение10 мин
Количество просмотров38K
Создание пакета Debian с нуля является своего рода волшебным процессом. Вы могли бы начать гуглить с запросом “Создание пакета Debian с нуля” и получить множество результатов, ни один из которых не стал бы тем, который Вам необходим. Несомненно, Вы найдете большой обзор команд, которые используются в Debian и, если Вы роете достаточно глубоко, Вы сможете все же найти пару команд, которые помогут создать базовый пакет Debian, но не смогут объяснить, что происходит. Более подробную информацию о том, что все же «происходит» Вы можете получить, в данном посте мы попробуем это частично затронуть.

Читать дальше →
Всего голосов 51: ↑34 и ↓17+17
Комментарии27

Деление на ноль или наглядный пример почему нужны внутренние прерывания в ядре

Время на прочтение2 мин
Количество просмотров13K
Яркий пример того, для чего в ядре каждого современного устройства, начиная от калькулятора до сверх мощных серверов и ПК, есть прерывания на случай абсурдных команд.

Читать дальше →
Всего голосов 20: ↑11 и ↓9+2
Комментарии27

Тест-тренировка зрительного внимания

Время на прочтение3 мин
Количество просмотров35K
Если я напишу 2, потом 4, потом 6, тогда мы почувствуем себя хорошо, потому что мы знаем, что дальше идет 8. Мы можем это предвидеть, мы не в руках судьбы. Однако, к сожалению, это не имеет ничего общего с истиной...
х/ф «Оксфордские убийства»


Задача: обнаружить центральную фигуру среди сереньких фигур вокруг.

Данный проект — PsyMatchArea — задумывался в качестве альтернативы знаменитым таблицам Шульте. С теми же целями (тренировка зрительного периферического внимания), но с другими, более «отмороженными» исходными предпосылками. Во-первых, нужно было уйти от цифр и букв — символов, знакомых каждому практически с яслей и потому распознаваемых на автомате без активного вовлечения сознания в процесс. Во-вторых, чтобы внимание как можно меньше подменялось памятью (и вообще не расслаблялось), надо было обеспечить соответствующие «помехи» — смена позиций, мерцания, наложения и т.п.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии25

Применение модулей LRDIMM в высокопроизводительных серверах

Время на прочтение11 мин
Количество просмотров65K
LRDIMM (Load-Reduced Dual Inline Memory Module или «DIMM со сниженной нагрузкой») – тип модулей памяти, поддерживаемых серверными платформами с 2012 года. Модули LRDIMM схожи с регистровыми модулями DIMM и подходят к тем же разъемам памяти. Однако принцип работы LRDIMM отличается от RDIMM. Используя LRDIMM в обычном сервере можно сделать 512Гб, 1Тб или 1,5Тб памяти.


Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии22

Как устроена консоль в Xen'е

Время на прочтение8 мин
Количество просмотров6.4K
В статье разбирается принцип работы xvc0 как с точки зрения domU, так и с точки зрения dom0, а так же описывается, что с этой консолью делают дальше.
Сразу предупреждаю, топик интересен только тем, кто с Xen'ом плотно работает.

Консоль с точки зрения Xen'a

Консоль и XenStore — два устройства в виртуальной машине, которые не анонсируются через XenStore, а пишутся в святую святых — start info page домена. Штатным механизмом для всех остальных устройств является их анонс в XenStore. Понятно, что анонсировать XenStore в XenStore несколько неудобно, так что это устройство «должно быть с самого начала».

Консоль можно было бы поместить в список «обычных» устройств. Но его вынесли в особый класс и сделали «равным XenStore» ради удобства отладки и диагностики. Чем раньше ядро сможет писать на консоль (и мы сможем это читать), тем больше вероятность, что информации на консоли будет достаточно для определения причины поломки.

На самом-самом низком уровне консоль использует кольцевой буфер, причём размером в одну страницу памяти (4кб для i386/x86_64). Этот кольцевой буфер поделен в соотношении 1024/2048, первая половинка используется для ввода (буфер для «нажатых» кнопок), вторая для вывода (символы и esc-коды, которые выводятся на экран).
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии24

Конрад Цузе: мечтатель, создавший первый компьютер

Время на прочтение10 мин
Количество просмотров50K
Вторая мировая война дала мощный толчок развитию техники и науки. Военно-промышленный комплекс всегда собирал огромные человеческие, денежные и другие ресурсы. И нацисты в своей одержимости к мировому господству, особенно рьяно трудились над изобретениями и научно-техническими инновациями. Тем ни менее история создания первого программирующего компьютера началась еще до войны, с обычного желания одного немецкого архитектора упростить себе жизнь.



Конрад Цузе (1910-1995 г.г.)
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии15

Прерывания в конвейеризированных процессорах

Время на прочтение10 мин
Количество просмотров75K
Наверняка вы знаете, что такое прерывания. Возможно, даже интересовались устройством процессора. Почти наверняка вы нигде не видели внятный рассказ про то, как именно процессор обнаруживает прерывание, переходит к обработчику и, самое главное, возвращается из него именно туда, куда положено.

Я писал эту статью год. Изначально она была рассчитана на хардварщиков. Понимание того, что я ее никогда не закончу, а также жажда славы и желание, чтобы ее прочло больше десяти человек, заставило меня адаптировать ее для относительно широкой аудитории, повыкидывав схемы, куски кода на Верилоге и километры временных диаграмм.

Если когда-нибудь вы задумывались над тем, что значат слова «the processor supports precise aborts» в даташите, прошу под кат.
Читать дальше →
Всего голосов 154: ↑153 и ↓1+152
Комментарии25

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность