Pull to refresh
-1
0
Send message

Erlang для самых маленьких. Глава 3: Базовый синтаксис функций

Reading time6 min
Views23K
imageДоброй ночи, Хабр! Мы продолжаем изучение Erlang для самых маленьких.

В прошлой главе мы рассмотрели как объявлять функции и как объединять их в модули. В этой главе мы рассмотрим синтаксис функций более подробно.


Хм, это интересно...

IPv6 теория и практика: введение в IPv6

Reading time7 min
Views142K
Этой статьёй я хочу начать цикл, посвященный IPv6. Я являюсь инструктором академии Cisco, поэтому, если вы в совершенстве знаете материал нового CCNA Routing & Switching, то скорее всего, не найдёте в цикле ничего нового. Речь пойдёт о структуре и особенностях протокола IPv6, а также, применении его на маршрутизаторах Cisco (маршрутизация RIP, OSPF, EIGRP, списки контроля доступа, и др. – как пойдёт). В первой статье мы поговорим о структуре IPv6 пакета, записи адресов, префиксе. Вторая статья цикла доступна здесь. Информация подойдёт для новичков, имеющих, тем не менее, некоторые знания по IPv4 и модели OSI.
Цикл статей основан на материалах моего блога, которые, в свою очередь, основаны на опыте преподавания, работы с оборудованием и вольном переводе и обдумывании официального курса CCNA Routing & Switching.
Итак, начнём. Не буду останавливаться на стандартных рассуждениях о том, что IPv4 адресов мало, о том, что NAT и прокси – это костыли, о том, что костыли пока работают, и никто не хочет переходить на IPv6, вместо этого – сразу к сути.
Читать дальше →

SELinux — описание и особенности работы с системой. Часть 2

Reading time6 min
Views41K


Коллеги, в первой части статьи о SElinux мы рассмотрели основные особенности работы с системой SELinux. Как и обещано, теперь публикуем вторую часть, в которой основное внимание уделено настройке политик. Что же, приступим.

Читать дальше →

Хекслет: Erlang, логика, операционные системы, Java 2

Reading time3 min
Views18K
Привет, Хабр!

Прошло уже больше полугода с момента старта проекта Хекслет. Напомню: мы проводим бесплатные онлайн-курсы по программированию и смежным дисциплинам. По традиции сегодня мы расскажем про новые курсы.

Статистика


  • Завершено четыре курса (всего – больше 100 уроков)
  • Сейчас в процессе – еще три курса, + запланирован старт двух курсов
  • 19 000 студентов зарегистрировано
  • Они сдали более 450 000 тестов
  • Просмотров лекций – больше 277 000 (не считая подкастов в iTunes и раздачи через битторрент)
  • 444 000 посетителей и 1.6M просмотров страниц


Новые курсы


Erlang / OTP


Читать дальше →

Перехват функций ядра Linux с использованием исключений (kprobes своими руками)

Reading time8 min
Views15K
Перехват функций ядра является базовым методом, позволяющим переопределять (дополнять) различные его механизмы. Исходя из того, что за исключением небольших архитектурно-зависимых частей, ядро Linux почти полностью написано на языке C, можно утверждать, что для осуществления встраивания в большинство из компонентов ядра, достаточно иметь возможность перехвата соответствующих функций ЯВУ, реализующих ту или иную логику.

Данная статья является практическим обобщением представленных ранее статей:
  1. Управляемый PageFault в ядре Linux
  2. Кошерный способ модификации защищённых от записи областей ядра Linux

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

Тривиальное шифрование во вредоносных файлах

Reading time8 min
Views26K
Привет. Это снова Алексей Маланов из «Лаборатории Касперского». В прошлый раз я рассказывал про опыт найма вирусных аналитиков, а сегодня расскажу про то, что делают вирусописатели, чтобы их работа не была замечена, и что делаем мы, чтобы их труд в итоге оказался напрасен.

Вообще говоря, злоумышленник пишет вредоносную программу, почти всегда заранее зная, что она рано или поздно попадет на «операционный стол» вирусному аналитику. И вся информация из зловреда может быть использована против автора. А чего ему скрывать? Ну, во-первых свою личность. Порой в зловредах встречаешь строки, типа C:\Users\Vasiliy Ivanov\Documents\Visual Studio 2005\заработок\trojan\Release\trojan.pdb. Во-вторых, довольно много информации, облегчающей анализ зловреда. Давайте рассмотрим некоторые приемы вирусописателей, и выясним, почему же они бесполезны.
Читать дальше →

I2P-прокси на хостинге

Reading time5 min
Views33K
Сейчас потихоньку начинается переползание некоторых ресурсов в i2p, потому возник вопрос об удобном доступе в эту сеть.
Можно поставить i2p-роутер на своём компьютере. Кому хочется всю домашнюю сеть обеспечить доступом, поднимают прокси на домашнем же роутере.
Но у меня вопрос стоял по другому. Хотелось иметь возможность получать доступ к i2p с любого компьютера без установки дополнительного ПО, пусть ценой безопасности — ибо мне не скрываться нужно, а просто что-то посмотреть. Если есть возможность запустить удаленный рабочий стол, то я со всяких интернет-кафе и из гостей предпочитаю подключаться к домашнему серверу, а там уже моё настроенное окружение. В случае же медленного подключения или закрытых портов пользоваться RDP становится затруднительно. Потому самый простой и нетребовательный вариант — поднять i2p-роутер на хостинге и настроить http-прокси.
image
Читать дальше →

Сравнение OpenCL с CUDA, GLSL и OpenMP

Reading time3 min
Views45K
image
На хабре уже рассказали о том, что такое OpenCL и для чего он нужен, но этот стандарт сравнительно новый, поэтому интересно как соотносится производительность программ на нём с другими решениями.

В этом топике приведено сравнение OpenCL с CUDA и шейдерами для GPU, а также с OpenMP для CPU.

Тестирование проводилось на задаче N-тел. Она хорошо ложится на параллельную архитектуру, сложность задачи растёт как O(N2), где N — число тел.
Читать дальше →

Ответный вызов разработчикам Telegram

Reading time3 min
Views111K
Об авторе: Moxie Marlinspike — хакер-исследователь, придумавший атаку SSL-stripping (и нашедший ещё полдюжины уязвимостей в SSL), разработчик системы Convergence, призванной заменить списки «доверенных сертификатов», а также со-основатель компании Whisper Systems, купленной Twitter в 2011 году. Также стоит почитать обсуждение на Hacker News.



На этой неделе некая компания под названием Telegram анонсировала «защищённый» мессенджер. Насколько защищённый? Если верить их FAQ, «очень защищённый». Мне стало интересно, и я решил почитать описание их протокола. У меня тут же появились некоторые сомнения и опасения (как мягко сказано! а всего-то полчаса назад было «сначала я подумал, что это Томас Пташек решил постебаться» — прим. пер.) Однако, когда из них попытались вытянуть технические подробности, они начали перечислять учёные степени разработчиков вместо того, чтобы вступить в диалог. Кроме того, они отклонили все мои предложения о сотрудничестве.
Читать дальше →

Простая маскировка модуля ядра Linux с применением DKOM

Reading time5 min
Views11K
Как известно, задача сокрытия модуля ядра от вездесущих «глаз» пользователя может иметь множество приложений. В данной статье рассматривается применение DKOM (Direct Kernel Object Manipulation) — одной из техник, позволяющий осуществить сокрытие информации посредством модицикации внутренних структур ядра.

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

Читать далее

Перенос Google Chrome на RAM-диск в Linux

Reading time3 min
Views84K
Опишу простой способ переноса кеша, настроек и прочих локальных данных Google Chrome на RAM-диск в Linux. Это ускорит скорость работы браузера и исключит насилие над диском (что особенно критично, если у вас SSD).

Статья не содержит ничего интересного для более-менее продвинутых пользователей Unix-like систем. Совсем ничего.

Читать дальше →

Десктоп в домашнем сервере или «всё-в-одном»

Reading time4 min
Views89K
image
Цель: недорого собрать систему поддерживающую проброс PCI-устройств в виртуальную машину (c IOMMU). Создать полноценное рабочее место, поднять виртуальный маршрутизатор и еще полезные мелочи.
Читать дальше →

Язык программирования J. За что любить?

Reading time13 min
Views94K
image
J – самый ненормальный и самый эффективный язык из известных мне языков. Он позволяет быстро разрабатывать, а также вызывать ненормативную лексику у людей, незнакомых с ним и смотрящих на код.

J слишком необычный. И сложный для изучения. У людей, сталкивающихся с J не хватает мотивации, чтобы его изучить. Синтаксис непривычный.
В этом посте я хотел помочь вам заглянуть дальше, что будет, если вы его изучите и чем он интересен. По своему опыту знаю, что преимущества этого языка сразу не очевидны. В посте я не собираюсь останавливаться на разборе конструкций. Только в обзоре. Предлагаю просто окунуться в примеры, попробовать ощутить мощь языка. Узнать, чем прекрасен язык, без изучения. Писать статьи, обучающие программированию на нем – дело сложное и думаю, не нужное. Он не так прост, чтобы это сделать кратко, а с обучающими материалами на официальном сайте нет никаких проблем. Главное – желание. Им и займемся.
Читать дальше →

Стражи ночи

Reading time9 min
Views82K
Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

В основном я думаю о тех, кто будет прикрывать мою спину, поскольку шансы на выживание в постапокалиптическом мире напрямую зависят от размера и качества того сброда, который вы будете называть своей командой. Очевидно, мне понадобятся: слесарь (чтобы двери вскрывать), эксперт‐подрывник (если уж у слесаря закончатся идеи) и конечно же тот парень, что отловит, выдрессирует и затем будет швырять змей в моих врагов (потому что в мире умершей надежды бросок змеёй — это разумный способ урегулирования разногласий). В сией антиутопии они помогут мне прослыть воинствующим философом.

Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
Читать дальше →

Личностная криптография: рассказ об одной полезной уязвимости

Reading time6 min
Views26K
image
Асимметричная криптография стала элегантным решением задачи распределения ключей. Но как это часто бывает, то что помогло устранить одну проблему, стало причиной возникновения другой.

Открытый ключ, в силу математических свойств асимметричных криптоалгоритмов является набором случайных бит, не содержащих никакой информации о владельце, поэтому он не может служить средством аутентификации. Этот недостаток стал причиной появления иерархической системы сертификации открытых ключей.
Рассмотрим каким образом происходит аутентификация пользователей в настоящее время:
  1. Алиса проходит процедуру проверки в удостоверяющем центре(УЦ) и получает сертификат
  2. Алиса посылает свой сертификат Бобу
  3. Боб получает сертификат УЦ
  4. С помощью полученных сертификатов Боб производит аутентификацию Алисы

Первым об упрощении этой схемы задумался Ади Шамир в 1984 году. Он предположил, что если бы появилась возможность использовать в качестве открытого ключа имя или почтовый адрес Алисы, то это лишило бы сложную процедуру аутентификации всякого смысла.
Долгое время идея Шамира оставалась всего лишь красивой криптографической головоломкой, но в 2000 году, благодаря одной известной уязвимости в эллиптической криптографии, идею удалось воплотить в жизнь.
Читать дальше →

Управление трафиком в сети хостинг-провайдера

Reading time5 min
Views17K
В сети любого большого content/eyeball провайдера возникает необходимость управления трафиком. И чем больше сеть, тем острее эта необходимость ощущается. В этой статье я попытаюсь описать основной принцип управления трафиком в сети компании, непосредственное отношение к которой я имею. Сразу оговорюсь, что в этой статье упоминается множество торговых марок, терминов и «жаргона». Здесь не будет ни примеров конфигурации роутеров, ни описания этих самых терминов.

Мы привыкли считать, что транспортная MPLS-сеть необходима, в основном, для applications, которых существует множество: L3VPN, L2VPN/VPLS, и т.д. О Traffic Enigineer'инге в сетях MPLS вспоминают или от «хорошей» жизни, или, скорее, теоретически.

Также принято считать, что backup capacity — это роскошь и, как правило, кариеры/транспортники биллят за backup-порт также, как за обычный. Назревает резонный вопрос: зачем покупать капасити, которые будет просто простаивать и, возможно, несколько раз в месяц на короткое время использоваться? Но, с другой стороны, говорить о том, что «backup'ы для трусов» тоже нельзя, backup'ная емкость должна быть. Как же быть? Об этом и пойдет речь в статье.

Читать дальше →

Запуск FreeBSD в Linux KVM

Reading time9 min
Views42K
Задача: запустить FreeBSD из-под Linux, желательно с минимумом изменений в Linux-системе при начальной настройке и обновлениях, возможностью запуска на рабочей станции и на сервере, и с минимальной потерей производительности.

В качестве VPS-фермы можно использовать любой распространённый дистрибутив Linux. В нашем случае это будет Ubuntu 12.10 с ядром 3.5.0 для amd64.

Гостевой системой будет FreeBSD 9.1 для i386. Архитектура i386 выбрана из-за существенно меньшего потребления ОЗУ 32-битными приложениями по сравнению с 64-битными.

В качестве системы виртуализации будет использоваться Linux-KVM («Kernel-based Virtual Machine»).
Читать дальше →

GCC x86, как уменьшить размер кода

Reading time4 min
Views32K
      Времена, когда программисты пытались выжать максимум из размера своего приложения, безвозвратно ушли. Основной причиной является существенное увеличение объемов оперативной памяти и дискового пространства на современных компьютерах. Немногие помнят, как при загрузке приложения с кассеты можно было пойти покушать. Или как можно было считать моргания дисковода, косвенно определяя размер приложения. Пожалуй, только разработчики програмного обеспечения под встраиваемые системы до сих пор заботятся о размере кода и потребляемой памяти. Могут ли таблетки и смартфоны вернуть разработчиков «назад в будущее»?
      Данная статья призвана помочь разработчикам програмного обеспечения, использующим GCC компилятор, уменьшить размер кода своих приложений. Все данные в статье получены при помощи x86 GCC компилятора версии 4.7.2 на операционной система Fedora 17 для архитектуры Intel Atom.
Читать дальше →

Доменные перлы или самые дурацкие домены

Reading time5 min
Views77K
Именно благодаря домену мы составляем свое первое впечатление о сайте, который намерены посетить, но иногда это впечатление бывает обманчиво.



Немного статистики. По данным на 2010 год в сети Интернет насчитывалось около 192 миллионов доменных имен, а их прирост составил примерно 3.7 миллиона в месяц. Среди такого огромного количества обыкновенных, а иногда и весьма банальных имен, встречаются домены, способные вызвать здоровый смех ну или хотя бы удивленную улыбку. Уважаемые дамы и господа, представляю Вашему вниманию подборку одних из самых неординарных доменных имен.
Читать дальше →

Makefile для самых маленьких

Reading time4 min
Views812K
Не очень строгий перевод материала mrbook.org/tutorials/make Мне в свое время очень не хватило подобной методички для понимания базовых вещей о make. Думаю, будет хоть кому-нибудь интересно. Хотя эта технология и отмирает, но все равно используется в очень многих проектах. Кармы на хаб «Переводы» не хватило, как только появится возможность — добавлю и туда. Добавил в Переводы. Если есть ошибки в оформлении, то прошу указать на них. Буду исправлять.

Статья будет интересная прежде всего изучающим программирование на C/C++ в UNIX-подобных системах от самых корней, без использования IDE.

Компилировать проект ручками — занятие весьма утомительное, особенно когда исходных файлов становится больше одного, и для каждого из них надо каждый раз набивать команды компиляции и линковки. Но не все так плохо. Сейчас мы будем учиться создавать и использовать Мейкфайлы. Makefile — это набор инструкций для программы make, которая помогает собирать программный проект буквально в одно касание.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity