Pull to refresh
3
0

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

Send message

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

Reading time6 min
Views39K
Продолжаю знакомить сообщество с переводом Bash Pitfalls.
Часть первая.
Первоначальная публикация перевода.

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


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

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

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

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

Пассивный DPI

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

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

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

Читать дальше →
Total votes 51: ↑34 and ↓17+17
Comments27

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

Reading time2 min
Views13K
Яркий пример того, для чего в ядре каждого современного устройства, начиная от калькулятора до сверх мощных серверов и ПК, есть прерывания на случай абсурдных команд.

Читать дальше →
Total votes 20: ↑11 and ↓9+2
Comments27

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

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


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

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

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

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


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments22

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

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

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

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

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

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

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

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



Конрад Цузе (1910-1995 г.г.)
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments15

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

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

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

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

Information

Rating
Does not participate
Works in
Registered
Activity