Pull to refresh
  • by relevance
  • by date
  • by rating

Как Rust-разработчики делают Веб безопаснее

Издательский дом «Питер» corporate blog High performance *Programming *Rust *Professional literature
Translation

Язык программирования Rust упрощает разработку более безопасного программного обеспечения. Что ещё предстоит делать?

Читать далее
Total votes 15: ↑11 and ↓4 +7
Views 2.8K
Comments 28

Выпуск Rust 1.44.0: cargo tree, async/await в no_std, Unicode 13 и vec![] в const-контексте

Open source *Programming *System Programming *Compilers *Rust *

Данный анонс является компиляцией черновика анонса и подробных примечаний к выпуску. Официальный анонс короче, чем обычно:


This is a shorter blog post than usual: in acknowledgement that taking a stand against the police brutality currently happening in the US and the world at large is more important than sharing tech knowledge, we decided to significantly scale back the amount of promotion we're doing for this release.

The Rust Core Team

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


Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.44.0 вам достаточно выполнить следующую команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Views 3K
Comments 4

All-Hardware: стартовал конкурс прошивок для отладок STM и NXP

Self Promo

Организаторы предлагают разработать прошивку для отладочных плат STM и NXP, размещенных в сервисе. Конкурс продлится до 24 апреля, победители получают в качестве призов эти самые отладочные платы и указание авторства на сайте сервиса.

Как наверно уже понятно из некоторых моих статей, я имею непосредственное отношение к разработке сервиса All-Hardware, поэтому есть немного инсайдерской информации. Сервис этот международный, но корни его российские, и вся разработка ведется здесь. Текущий конкурс анонсирован только в России, и только после его завершения будет запущен worldwide. И хоть и никто не запрещает участвовать в конкурсе из любой точки мира, прямо сейчас есть все шансы не только поучаствовать, но и победить - вряд ли конкуренция будет большой.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Views 895
Comments 11

Основы работы с IOKit. Тонкости программирования драйверов

Development for iOS *

В рамках поддержки блога разработки под Mac OS X, я представляю свою статью о низкоуровневой разработке под Mac OS X. Обычно тема разработки драйверов не столь популярна, однако и здесь Mac OS X выгодно выделяется из ряда прочих операционных систем. Да, писать драйвера для Mac O S X – просто! Проще чем когда-либо ранее!
Поехали
Total votes 48: ↑40 and ↓8 +32
Views 17K
Comments 23

DMA для новичков или то, что вам нужно знать

System Programming *
Всем привет, сегодня мы с вами поговорим о DMA: именно о той технологии, которая помогает вашему компьютеру воспроизводить для вас музыку, выводить изображение на экран, записывать информацию на жесткий диск, и при этом оказывать на центральный процессор просто мизерную нагрузку.
Если вам интересно, добро пожаловать под кат...
Total votes 85: ↑80 and ↓5 +75
Views 100K
Comments 29

На шаг ближе. Работа с регистрами PCI устройства в IOKit

Development for iOS *
Настало время продолжить наше путешествие в дебри системного программирования. Сегодня мы опустимся еще глубже и поговорим о реализации работы с регистрами устройства и другими базовыми IO операциями в IOKit.

Далее
Total votes 4: ↑2 and ↓2 0
Views 3.4K
Comments 0

Программирование в ring0 для Windows: вводная статья

System Programming *

По долгу службы мне пришлось столкнуться с программированием драйверов под Windows. Люди, которые никогда не сталкивались с этой задачей могут предположить, что драйвера — это что-то очень сложное и непосредственно взаимодействующее с железом. Отчасти они правы, а отчасти нет. В этой статье я постараюсь рассказать о том, что же из себя представляют Windows драйвера изнутри и с чем мне пришлось столкнуться. Статья является некоторым введением и не содержит «кусков кода».

Читать дальше →
Total votes 123: ↑113.5 and ↓9.5 +104
Views 28K
Comments 32

Процессы и потоки in-depth. Обзор различных потоковых моделей

System Programming *
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее
Total votes 64: ↑62 and ↓2 +60
Views 73K
Comments 45

Пишем свой первый Windows-драйвер

System Programming *
Итак, после моей предыдущей статьи я понял что тема про программирование драйверов Windows интересна хабровчанам, поэтому продолжу. В этой статье я решил разобрать простую программу-драйвер, которая делает только то, что пишет отладочное сообщение «Hello world!» при старте драйвера и «Goodbye!» при завершении, а также опишу те средства разработки, которые нам понадобятся для того, чтобы собрать и запустить драйвер.

Читать дальше
Total votes 99: ↑95 and ↓4 +91
Views 115K
Comments 35

Crash dump'ы и KeCapturePersistentThreadState

System Programming *
Я тут обнаружил очень занятную недокументированную функцию, экспортируемую ядром, на которую нет ссылок внутри ядра, но которая делает весьма занятную вещь. А именно, записывает в переданный кусок памяти полноценный minidump на данный момент времени.
Весьма полезно с учетом того, что там (в дампе) есть оффсеты неэкспортируемых структур типа PsLoadedModuleList, которые могут пригодиться.
Спасибо Freeman за помощь)

ULONG
NTAPI
KeCapturePersistentThreadState(
PCONTEXT Context,
PKTHREAD Thread,
ULONG BugCheckCode,
ULONG BugCheckParameter1,
ULONG BugCheckParameter2,
ULONG BugCheckParameter3,
ULONG BugCheckParameter4,
PVOID VirtualAddress
);


Входные параметры:
Context — текущий контекст (можно от балды, нужно лишь заполнить EIP & ESP)
Thread — текущий поток. можно указать NULL, тогда она сама возьмет текущий
BugCheckCode, ParametersX — багчек код и аргументы, которые она запишет в дамп.
VirtualAddress — адрес выделенных 16 страниц памяти (64кб), куда она положит аккуратно готовенький крешдамп.

Пример:

Заголовок дампа:
typedef struct _DUMP_HEADER {
/* 00 */ ULONG Signature;
/* 04 */ ULONG ValidDump;
/* 08 */ ULONG MajorVersion;
/* 0c */ ULONG MinorVersion;
/* 10 */ ULONG DirectoryTableBase;
/* 14 */ PULONG PfnDataBase;
/* 18 */ PLIST_ENTRY PsLoadedModuleList;
/* 1c */ PLIST_ENTRY PsActiveProcessHead;
/* 20 */ ULONG MachineImageType;
/* 24 */ ULONG NumberProcessors;
/* 28 */ ULONG BugCheckCode;
/* 2c */ ULONG BugCheckParameter1;
/* 30 */ ULONG BugCheckParameter2;
/* 34 */ ULONG BugCheckParameter3;
/* 38 */ ULONG BugCheckParameter4;
/* 3c */ CHAR VersionUser[32];
/* 5c */ UCHAR PaeEnabled;
UCHAR NotUsed[3];
/* 60 */ PVOID KdDebuggerDataBlock;
} DUMP_HEADER, *PDUMP_HEADER;


Использование функции: www.everfall.com/paste/id.php?mkgmkfg1a057

Кодес получает дамп, показывает адерса MmPfnDatabase, PsActiveProcessHead, PsLoadedModuleList и сбрасывает дамп на диск. Дамп можно спокойно запихать в WinDbg и изучать

Вообщем, весьма занятная штуковина…

Надо будет переписать свой gr8lkd (http://gr8lkd.googlecode.com/) с использованием этой функции.
Total votes 17: ↑11 and ↓6 +5
Views 1.6K
Comments 3

Как найти работу новичку системного программирования?

Lumber room
Я студент ВМиК МГУ, 3 курс. Специализация — системное программирование.

Года полтора работал программистом C#, однако написание логики сайтов на ASP.NET и портирование автоматных игрушек на движок не кажутся интересными занятиями и потому сильно утомляют. В конце концов, не для того идут учиться в МГУ.

Разумеется, с чего-то надо было начинать. Но опыт и навыки программирования есть (вплоть до функционального), а значит нужно искать работу по интересам и специальности. Вот только что-то не видно на hh.ru вакансий по разработке компиляторов и/или распределённых систем не только для новичков, желающих учиться, но и для опытных профессионалов.

Не может быть, чтобы это направление совершенно не было востребовано.
Total votes 17: ↑13 and ↓4 +9
Views 1.1K
Comments 30

Исходники Windows Research Kernel в свободном доступе

Development for Windows *

Что же такое Windows Research Kernel?


Windows Research Kernel содержит исходные коды основной части ядра Windows (NTOS).
NTOS реализует базовые функции операционной системы для:
  • процессов;
  • потоков;
  • виртуальной памяти и менеджеров кэшей;
  • управления вводом/выводом;
  • реестра;
  • исполнительных функций, таких как куча (heap) ядра и синхронизация;
  • менеджера объектов;
  • механизма локального вызова процедур;
  • низкоуровневого управления CPU (планирование потоков, асинхронные и отложенные вызовы процедур, обработка прерываний/ловушек, исключения).

Читать дальше →
Total votes 64: ↑53 and ↓11 +42
Views 13K
Comments 111

[C#/.NET] Генерируем машинный код с помощью LLVM

Lumber room
В этом топике я покажу, как без особых трудов сгенерировать и выполнить машинный код с помощью Low Level Virtual Machine на примере функции, вычисляющей ответ на главный вопрос жизни, вселенной и всего такого.

А для работы нам понадобятся

Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Views 1.2K
Comments 17

Пишем viewer почтовой базы MS Exchange (часть 1)

System Programming *

В одной большой-пребольшой стране жили маленькие-премаленькие люди. И все было прекрасно пока не появилась глубокая-преглубокая яма прямо в центре этой большой, а точнее пребольшой страны. Ну, надо сказать, появилась она не одна и, конечно, не сразу, но никто об этом уже не вспомнит и никому это уже не важно.
Читать дальше →
Total votes 38: ↑29 and ↓9 +20
Views 12K
Comments 17

Пишем viewer почтовой базы MS Exchange (часть 2)

System Programming *

Здравствуйте, читатели Хабрахабр!

Это завершение поста начатого вот здесь.

В принципе, мы почти все уже сделали, осталось небольшое окончание. Напомню, мы взяли EDB базу, открыли ее, воспользовавшись технологией ESE, перечислили имеющиеся таблицы и начали перечислять колонки внутри этих таблиц. Нам осталось дополучить колонки, получить значения столбцов и вуаля, база прочитана.
Читать дальше →
Total votes 21: ↑16 and ↓5 +11
Views 2.5K
Comments 3

Комментарий дня: Как предсказал Oracle

Hewlett Packard Enterprise corporate blog

UPDATE: Итак, подводим итоги!

В результате голосования и естественного отбора, победителем объявляется zak2k! Его история, наполненная юмором и свежестью, заслуживает всяческих похвал. Следом за zak2k-ом идет Labinskiy, поражающий краткостью (истину говорит пословица!) и лаконичностью! Ну и 3,4,5 места, по голосованию присваиваются zboris, Smasher и Turansky.

Победителей просим предоставить свои адреса для доставки призов в личку автора поста Morow.

Всем спасибо за участие!



Приветствуем тебя, Хабражитель!

В блоге HP продолжается традиционный конкурс «комментарий дня». На этот раз темой конкурса станет компания Oracle, ее харизматичный лидер Ларри Эллисон, многогранные и многослойные продукты, а также серверы и процессоры Itanium, «заточенные» под них. Известно, что они частенько бывают неосторожны в высказываниях, капризны, сложны в настройке, прожорливы (догадайтесь, какой эпитет к чему относится), но в общем и целом делают лучше жизнь отдельных людей, компаний и огромных корпораций.

Как обычно, мы попросим вас рассказать о первом знакомстве, интересном опыте или любопытном случае из жизни, связанном со всем вышеперечисленным. Не стесняйтесь комментировать, даже если отношение весьма отдаленное – чем шире выбор, тем больше возможность привлечь внимание именно своей историей. Авторы наиболее популярных (или наоборот, тут уж как поведется, бывает всякое) получат от нас замечательные призы. В этот раз их много, что просто не может не радовать.





Историкам и рассказчикам предстоит побороться за HP Microserver (лучший сервер из тех, что можно представить дома), специальный брэндированный рюкзак HP (специально разработан для ношения ноутбуков,) и модные молескины с символикой HP-UX (можно записывать истории для будущих конкурсов).
Читать дальше →
Total votes 37: ↑23 and ↓14 +9
Views 8.7K
Comments 78

Новые серверы HP DL980

Hewlett Packard Enterprise corporate blog
Возможно, вы удивитесь, но на фоне победных реляций обо все новых рубежах и планках, взятых блейд-системами, старые добрые серверы, монтируемые в стойку, никуда не делись, и по-прежнему способны на очень многое. Более того, эти продукты активно развиваются всеми крупными вендорами, с HP во главе, конечно. В конце концов, отнюдь не каждая организация или провайдер услуг может или желает приобретать или эффективно использовать блейд-серверы, а вот свой парк «обычных» серверов рано или поздно обновят на новое поколение систем. И, возможно, одним из этих серверов окажется недавно появившийся на свет восьмиюнитовый DL980 G7.


Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 16K
Comments 23

Сетевое оборудование HP в инфраструктуре Cisco

Hewlett Packard Enterprise corporate blog

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

Тем не менее, как показывает проведенное независимой тестовой лабораторий Networktest исследование, оборудование HP может совместно использоваться с оборудованием Cisco. По результатам тестирования, в котором использовались коммутаторы HP 9505, 5406zl и 5800 и Cisco Catalyst 6509, Catalyst 4506 иd Catalyst 3750-E, Networktest подготовила 60-страничное руководство, в котором приведены конфигурации для совместного использования коммутаторов HP Networking и Cisco Catalyst.
Читать дальше →
Total votes 8: ↑5 and ↓3 +2
Views 7.7K
Comments 28

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

Positive Technologies corporate blog Information Security *
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).


Читать дальше →
Total votes 42: ↑42 and ↓0 +42
Views 13K
Comments 1

Простейший WDM-драйвер

System Programming *
В данной статье описан процесс написания простейшего драйвера, который выводит скан-коды нажатых клавиш.
Также в данной статье описан процесс настройки рабочего места для написания драйверов.
Если Вам интересно, прошу под кат.
Читать дальше →
Total votes 59: ↑57 and ↓2 +55
Views 65K
Comments 25