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

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

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

Интероперабельность с нативным кодом через платформу .NET

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров686

Привет, Хабр!

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

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

В основе интероперабельности лежит взаимодействие управляемого кода. Управляемый код исполняется под управлением CLR — виртуальной машины .NET, которая обеспечивает такие возможности, как сборка мусора, безопасность типов и другие виды абстракции. А вот нативный код компилируется напрямую в машинный код, специфичный для конкретной платформы, и исполняется ОС без промежуточных слоев, что обеспечивает высокую производительность и прямой доступ к ресурсам системы...

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Изменение ёмкости керамических конденсаторов от температуры и напряжения, или как ваш конденсатор на 4,7мкФ превращается в 0,33мкФ

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

Вступление: я был озадачен.


Несколько лет назад, после более чем 25 лет работы с этими вещами, я узнал кое-что новое о керамических конденсаторах. Работая над драйвером светодиодной лампы я обнаружил, что постоянная времени RC-цепочки в моей схеме не сильно смахивает на расчётную.

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

Я проверял схему в её естественной среде: в корпусе, который в свою очередь сам по себе был зачехлён чтобы имитировать кожух потолочного светильника. Температура компонентов в некоторых местах достигала более чем 100ºC. Для уверенности, и чтобы освежить память я перечитал даташит на используемые конденсаторы. Так началось моё переосмысление керамических конденсаторов.
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии26

Последнее издание культовой книги «Искусство схемотехники» стало доступно русскоязычным читателям

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров37K

“Электронщики, как учит нас Парацельс, самозарождаются среди паяльников, радиодеталей, универсальных плат и проводов” (@teap0t)

Возможно, это действительно так, но без хорошей книги - учебника или справочника, которые служат катализатором, этот процесс может так и не завершиться. А лучшей книгой для начинающих разработчиков электронных схем и практически библией электронщиков последние сорок лет, считается "Искусство схемотехники" (англ. - The Art of Electronics) Пауля Хоровица и Уинфилда Хилла.

Читать далее
Всего голосов 64: ↑73 и ↓-9+82
Комментарии133

Расчет потерь в MOSFET транзисторах

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.7K

Приветствую!

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

Читать далее
Всего голосов 39: ↑39 и ↓0+39
Комментарии19

Работа со временем и датой в C# с применением библиотеки Humanizer

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

Цель этой статьи — показать вам, как использовать Humanizer, чтобы вывести работу со временем и датой в ваших C#-проектах на новый уровень. Я расскажу о том, как преобразовать объекты DateTime и TimeSpan в удобный для восприятия человеком вид, как настраивать параметры гуманизации и как объединять гуманизацию строк со временеме/датой. Мы также рассмотрим некоторые реальные сценарии использования и примеры того, как Humanizer может улучшить пользовательский опыт в отношении времени и даты.

Читать далее
Всего голосов 16: ↑12 и ↓4+8
Комментарии12

Полезные расширения VScode для работы с документацией

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

Как правило, работа с документацией — это последний этап любого проекта, связанного с данными (data science, data visualization и т. д.), проектированием и разработкой ПО. Речь о создании и редактировании библиотек, файлов README, обучающих материалов и др. Среди всех преимуществ VScode — его уникальная экосистема расширений. И особенно впечатляют те, что помогают работать с документацией. В этой статье поделюсь самыми полезными из них.

Читать далее
Всего голосов 24: ↑22 и ↓2+20
Комментарии8

Полезные фишки при работе с Allegro PCB Editor

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

Долго работая в какой-то программе для проектирования электроники, каждый пользователь вырабатывает свой собственный маршрут или, другими словами, порядок действий при трассировке печатных плат. Что называется, «каждый любит наступать на собственные грабли». Иногда то, как пользователь выполняет те или иные действия, не является оптимальным решением проблемы. Ниже приведены небольшие заметки, призванные упростить работу пользователя с редактором печатных плат Cadence Allegro PCB Designer, или с ее упрощенной версией OrCAD PCB Designer.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Собираем самодельный перьевой плоттер

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

В этой статье задокументированы уроки, полученные мной при проектировании и создании самодельного перьевого плоттера летом 2023 года.

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

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии13

Xv6: учебная Unix-подобная ОС. Глава 5. Прерывания и драйверы устройств

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.5K

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

Устройство прерывает процессор, когда требует внимания. Обработчик прерывания опознает устройство и вызовет процедуру драйвера. В xv6 это делает процедура devintr.

Файл kernel/console.c содержит код драйвера терминала. Драйвер обрабатывает символы из последовательного порта UART на RISC-V, которые человек вводит на клавиатуре.

QEMU эмулирует микросхему 16550 UART и подключает клавиатуру и экран к UART. На реальном компьютере 16550 управляет портом RS232, который работает с терминалом или другим компьютером.

Драйвер накапливает символы в кольцевом буфере cons.buf. Индекс cons.r указывает на первый символ, который прочтет функция consoleread. Буфер хранит строки символов, а индекс cons.w указывает на начало последней строки, которую еще вводит человек. Индекс cons.e указывает позицию курсора в последней строке для ввода следующего символа.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Xv6: учебная Unix-подобная ОС. Инструменты для сборки и запуска xv6 под QEMU

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров3.1K

Эта инструкция - приложение к книге об учебной ОС xv6.

Xv6 работает на RISC-V. Для сборки кода xv6 и запуска под QEMU понадобятся RISC-V версии инструментов: QEMU 5.1+, GDB 8.3+, GCC, и Binutils.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии4

Xv6: учебная Unix-подобная ОС. Глава 2. Устройство операционной системы

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.6K

Операционная система выполняет несколько процессов одновременно. ОС распределяет время работы с ресурсами компьютера между процессами. ОС даст каждому процессу шанс на выполнение, даже если число процессов больше числа процессоров.

ОС изолирует процессы друг от друга так, что ошибка в одном процессе не нарушит работу других.

ОС позволяет процессам взаимодействовать - обмениваться данными и работать совместно.

Глава 2 рассказывает, как xv6 выполняет эти требования, о процессах xv6 и как xv6 запускает первый процесс.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии6

Xv6: учебная Unix-подобная ОС. Глава 1. Интерфейсы операционной системы

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров11K

Эта книга рассказывает о принципах работы операционных систем на примере xv6. Операционная система xv6 реализует базовый интерфейс, который Кен Томпсон и Деннис Ритчи предложили в операционной системе Unix, и подражает внутреннему устройству Unix. Комбинации простейших механизмов Unix дают удивительную свободу действий. Современные операционные системы признали успех Unix и реализуют похожие интерфейсы - BSD, Linux, macOS, Solaris, и даже Microsoft Windows. Изучение xv6 поможет понять работу и других операционных систем.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Xv6: учебная Unix-подобная ОС. Глава 3. Таблицы страниц

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров3.8K

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

Глава рассказывает, как xv6 работает с виртуальной памятью и об устройстве виртуальной памяти RISC-V.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Xv6: учебная Unix-подобная ОС. Глава 4. Прерывания и системные вызовы

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.3K

Глава расскажет, как xv6 обрабатывает прерывания на RISC-V и о хитростях виртуальной памяти: как использовать ошибки доступа к страницам, чтобы оптимизировать работу ОС.

Глава расскажет о копировании страниц при записи, ленивой выдаче страниц, выдаче страниц по необходимости и сбросе страниц на диск.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Информация

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