Как стать автором
Обновить
0
0
Григорий @chinamario

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

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

Обработка Segmentation Fault в C++

Время на прочтение3 мин
Количество просмотров71K

Вводная


C++ является «небезопасным» («unmanaged») языком, поэтому программы могут «вылетать» — аварийно завершать работу без сохранения данных пользователя, сообщения об ошибке и т.п. — стоит только, например, залезть в не инициализированную память. Например:
void fall()
{
  char * s = "short_text";
  sprintf(s,"This is very long text");
}

или
void fall()
{
  int * pointer = NULL;
  *pointer = 13;
}


Всем было бы лучше, если бы мы могли «отловить» падение программы — точно так же, как в java ловим исключения — и выполнить хоть что-то перед тем, как программа упадет (сохранить документ пользователя, вывести диалог с сообщением об ошибке и т.п.)

Общего решения задача не имеет, так как C++ не имеет собственной модели обработки исключений, связанных с работой с памятью. Тем не менее, мы рассмотрим два способа, использующих особенности операционной системы, вызвавшей исключение.

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

Краш-репорты в *nix: backtrace, SEGFAULT (и reinterpret_cast)

Время на прочтение5 мин
Количество просмотров5.4K
Привет, уважаемый хабраюзер!

Все разработчики программ рано или поздно сталкиваются с проблемой падения программы у пользователя. Но далеко не все при этом могут получить доступ к конкретному компу, на котором что-то идёт не так, запустить там gdb и повторить падение. И даже получить информацию от пользователя бывает крайне сложно: в багтрекер (или техподдержку) приходит сообщение а-ля «программа падает, что делать?», а вот технической информации, так важной для разработчика, пользователь не прилагает к своему сообщению. Да ещё и не каждый напишет об этом! Просто перестанет пользоваться программой — и всё.

Некоторые ОС предлагают отправить краш-репорт разработчикам. Но! Разработчикам ОС, а не Вам, то есть совсем не тем людям, которым это действительно нужно! И тут на помощь приходят собственные краш-репорты, которая Ваша программа должна бы отправить на Ваш сервер. Но как их сделать? Как правильно обработать SEGFAULT и при этом отправить вразумительную информацию разработчику?
Читать дальше →

Установка и настройка hyper-v server для тех, кто впервые его видит

Время на прочтение7 мин
Количество просмотров78K

Вступление


Сегодня я расскажу о том, как установить и настроить гипервизор hyper-v server от компании Microsoft, а так же о некоторых подводных камнях и способах их избежать.
Поводом для написания этот статьи стал материал данного поста. Этот пост подходит больше как шпаргалка, если вы уже работали с данным гипервизором. Новичку же придется столкнуться с кучей нюансов и перекопать немало форумов, в поисках ответов на нестандартные вопросы.

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

Под катом много текста и скриншотов
Читать дальше →

Linux для ARM в эмуляторе qemu

Время на прочтение5 мин
Количество просмотров25K
Вывести что-нибудь на экран эмулируемого устройства VersatilePB не так-то просто. Все примеры простых ядер для ARM, которые удалось найти на момент написания статьи, ограничиваются работой с последовательным портом.

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

На примере 2-х с небольшим тысяч строк кода будет подробно рассказано об инициализации памяти, зонах памяти, slab-аллокаторе применяемых в Linux.



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

Пишем модуль безопасности Linux

Время на прочтение5 мин
Количество просмотров17K
Linux Security Modules (LSM) — фреймворк, добавляющий в Linux поддержку различных моделей безопасности. LSM является частью ядра начиная с Linux версии 2.6. На данный момент в официальном ядре «обитают» модули безопасности SELinux, AppArmor, Tomoyo и Smack.

Работают модули параллельно с «родной» моделью безопасности Linux — избирательным управлением доступом (Discretionary Access Control, DAC). Проверки LSM вызываются на действия, разрешенные DAC.

Применять механизм LSM можно по-разному. В большинстве случаев это добавление мандатного управления доступом (как, например, в случае с SELinux). Кроме того, можно придумать собственную модель безопасности, реализовать ее в виде модуля и легко внедрить, используя фреймворк. Рассмотрим для примера реализацию модуля, который будет давать права на действия в системе при наличии особого USB-устройства.

Поглядим на схему и попытаемся разобраться, как работает хук LSM (на примере системного вызова open).


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

Cacti Weathermap: визуализация сети + интерактив

Время на прочтение5 мин
Количество просмотров52K


В этом посте хочу познакомить читателей с замечательным плагином для системы мониторинга Cacti — Weatnermap. Лично для себя, из всего разнообразия полезных дополнений к Cacti, считаю Weathermap наиболее полезным. С его помощью администратор способен создавать сетевые карты (физические, логические или просто отдельных участком и/или узлов), основное предназначение которых визуализировать загрузку сетевых интерфейсов (хотя таким образом возможно визуализировать любой график).

Расскажу как установить плагин, произвести настройку, разберем конфигурацию карты.

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

OpenCL. Что это такое и зачем он нужен? (если есть CUDA)

Время на прочтение6 мин
Количество просмотров139K


Здравствуй, уважаемое хабра-сообщество.

Многие, наверное, слышали или читали на хабре об OpenCL – новом стандарте для разработки приложений для гетерогенных систем. Именно так, это не стандарт для разработки приложений для GPU, как многие считают, OpenCL изначально задумывался как нечто большее: единый стандарт для написания приложений, которые должны исполняться в системе, где установлены различные по архитектуре процессоры, ускорители и платы расширения.
Читать дальше →

Файлы уходят в облака. Выбираем облако

Время на прочтение4 мин
Количество просмотров127K

После недавних событий по массовому открытию новых облачных хранилищ ваш покорный слуга задался вопросом: «Какие есть сейчас хранилища и куда можно запихнуть свои жизненно необходимые файлы?»
Некоторое время рысканья по хабру/гуглу и прочим конторам привело к следующему списку хранилищ:

Baidu, Bitcasa, Box.net, Dropbox, Google Drive, Microsoft SkyDrive, SpiderOak, Wuala, Яндекс.Диск

В самом конце статьи ищите сравнительную таблицу.
А теперь кратко о каждом сервисе, предоставляемой халяве и клиентах под Windows и Android

Как готовить бизнес к чрезвычайной ситуации с IT

Время на прочтение6 мин
Количество просмотров28K
В топике — основные действия по обеспечению непрерывности бизнеса, которые дают базовый результат. Эти действия помогут избежать катастрофы, выполнить аварийное восстановление и выйти из ситуации с минимальными потерями.

Напоминаю, руководство внедрением — задача очень ценимая руководством, и, почти всегда в России, ведущая к карьерному росту.

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

Как делать презентации, или почему не все взлетает? Часть 1

Время на прочтение13 мин
Количество просмотров48K
В силу своей работы и в целом из любви к исскуству, а также из наличествующего большого желания делиться с окружающими полезной информацией мне довольно часто приходится выступать с докладами перед почтенной публикой на самых разнообразных, как правило, айтишных конференциях. Не все из моих выступлений удачные, что-то получается лучше, что-то хуже. Как бы там ни было за несколько лет практики накопился некоторый опыт, которым захотелось поделиться, в связи с чем 12 апреля и был проведен одноименный вебинар, запись которого можно посмотреть на techdays.ru.

blogging xkcd

Подумав (не очень долго), я решил, что было бы также неплохо поделиться своими мыслями в текстовом формате: тут можно и конкретизировать, и лучше по полочкам разложить, да и читать многим сподручнее.
Читать дальше →

ЭЦП в браузере: проблемы, решения, личный опыт

Время на прочтение5 мин
Количество просмотров61K


Те, кто хоть раз сталкивался с необходимостью реализовать электронную цифровую подпись в браузере, хорошо знают, какая это головная боль для разработчика, и особенно для веб-разработчика, который успел привыкнуть к открытым стандартам, правилу, что его ПО одинаково хорошо работает во всех браузерах и ему все равно, какая ось стоит у пользователя, ну и прочим прелестям веба.

На самом деле сегодня ситуация с ЭЦП в браузере все же не так печальна как еще несколько лет назад, но она все же далека от идеала. Тема эта также несколько раз поднималась на хабре, например, здесь и здесь.

Под катом рассказ о самой проблеме, о том, как эту проблему можно решить, о том, как я ее решал, а также личные впечатления о том, как обстоят дела с ЭЦП в Беларуси.
Читать дальше →

Облачное хранилище SkyDrive получило большое обновление

Время на прочтение2 мин
Количество просмотров108K
Сегодня облачное хранилище SkyDrive получило большое функциональное обновление. Добавлен долгожданный десктопный клиент под Windows и OSX (в дополнение к имеющимся клиентам для Windows 8, Windows Phone и iOS). Появился доступ к локальным файлам через веб.

Кроме того, анонсирована возможность докупать себе дополнительное место для хранения информации: 20 Гб, 50Гб и 100 Гб. Цены достаточно низкие, за дополнительные 100 гигабайт просят 1570 рублей в год.

image

Обо всем подробнее под катом.
Читать дальше →

Подборка видео с различных конференций

Время на прочтение2 мин
Количество просмотров4.2K
На конференции попасть получается не всегда, а умных людей послушать хочется. Решил собрать воедино скопившиеся ссылки на видеоматериалы. Надеюсь кому то пригодится.

Известные
Читать дальше →

SMS и SIP шлюз — Мультифон, Asterisk, Kannel

Время на прочтение5 мин
Количество просмотров85K
В данной статье дается описание того, каким образом можно объединить достоинства Asterisk как PBX или IVR, Kannel как SMS-шлюза используя один телефонный номер.

Для этого я использовал Freebsd 8.2 на сервере, модем Huawei E171, но можно использовать любой модем МТС или Мегафон производства huawei (так же было проверено на модеме E1551), сим-карту Мегафона. В качестве софтфонов использовались Telephone и SJphone.
Читать дальше →

Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть первая, обзорная)

Время на прочтение13 мин
Количество просмотров177K
В этой статье я хочу провести краткий обзор шины SPI (интерфейса, широко распространённого во встраиваемой технике, используемого для подключения различных устройств) и попытаюсь описать процесс создания драйвера протокольного уровня SPI устройства для Linux. Данный документ не претендует на роль полного руководства, а скорее преследует цель указать нужное направление. Так как статья не вошла в размер одного топика, мне пришлось разбить её на две части.

0. Вместо введения


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

Для кого эта статья?
В первую очередь, для новичков, каковым являюсь и я. На форумах по embedded Linux очень часто можно встретить вопрос: «А как на этой плате работать с SPI?». Именно на него я и попытаюсь дать ответ. В качестве примера, я приведу код написанный для работы с моим тестовым SPI устройством.
Читать дальше →
12 ...
8

Информация

В рейтинге
Не участвует
Откуда
Юбилейный (Московская обл.), Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность