Доброго времени суток, дорогой читатель, скорее всего, ты видел мою предыдущую статью о том, что самому можно написать работоспособную ОС за достаточно короткий срок. Что же, сегодня мы поговорим о реализации многозадачности в моей ОС. Читать полностью »
Рубрика «системное программирование» - 30
Написание ОС: Многозадачность
2018-10-17 в 22:37, admin, рубрики: interrupts, IT-стандарты, multitasking, OSDev, pit, высокая производительность, периферия, системное программированиеНаписание собственной работоспособной ОС за полгода
2018-10-15 в 22:53, admin, рубрики: Brainfuck, C, dhcp, DNS, EHCI, hardware, IPv4, OSDev, SMP, tcp, udp, usb, ненормальное программирование, Процессоры, системное программирование, Совершенный код
Предыстория
Здравствуйте! Всех категорически приветствую, сегодня хотел бы рассказать Вам о своём опыте написание работоспособной ОС под архитектуру x86.
Как-то весенней ночью у меня родилась гениальная идея — попробовать себя в написании собственной ОС, которая может позволить запускать программы, работать с устройствами, да и в общем выжимать всю мощь из Intel'овской архитектуры в своих нуждах: к примеру, для своей фабрики или чего-либо иного. Моей целью было и есть написание такой ОС, которая могла бы позволить максимальную производительность для каких-то конкретных задач, не тратя процессорное время на всяческие излишества. В основном я преследую лишь спортивный интерес, получение опыта для себя в системном программировании и написания драйверов для устройств, которые используются повсеместно. Что из этого вышло — решать вам, сразу говорю, что не надо писать комментарии про создание собственного дистрибутива линукса, и преследовал интерес написать всё «From stratch» — с нуля, дабы хорошо погрузиться в тему ОСдева. Сразу хочу выразить огромную благодарность Бенджамину Лунту и форуму OSDev, так же как их Вики. Бен помог мне разобраться с EHCI, что несомненно внесло огромный вклад в мою ОС — USB устройства, они везде! Так же передо мной стояла задача создать собственную архитектуру, удобную мне, не исключая использование стандартов ELF-файлов.Читать полностью »
Ядра процессора или что такое SMP и с чем его едят
2018-10-15 в 15:42, admin, рубрики: APCI, apic, C, hardware, IT-стандарты, OSDev, pic, pit, SMP, Компьютерное железо, многозадачность, периферия, симметричная мультипроцессорность, системное программированиеВведение
Доброго времени суток, сегодня хотелось бы затронуть достаточно простую тему, которая почти никем из обычных программистов неизвестна, но каждый из вас, скорее всего, ей пользовался.
Речь пойдет о симметричной мультипроцессорности(в народе — SMP) — архитектура, которая встречается во всех многозадачных операционных системах, и конечно же, является неотъемлемой их частью. Каждый знает, что чем больше ядер у процессора — тем мощнее будет процессор, да, это так, но как ОС может использовать несколько ядер одновременно? Некоторые программисты не спускаются до такого уровня абстракции — им это попросту не надо, но думаю, всем будет интересно то, как же SMP работает.
Читать полностью »
EHCI по-людски на русском языке
2018-10-15 в 8:11, admin, рубрики: C, EHCI, hardware, IT-стандарты, system programming, usb, Компьютерное железо, периферия, программирование микроконтроллеров, системное программирование
Введение
Всех приветствую. Сегодня хочу поделиться опытом и всё-таки по-моему внятно объяснить про такой, на первый взгляд, простой стандарт для USB 2.0 хост-контроллера.
Изначально можно представить себе что USB 2.0 порт — это всего лишь 4 пина, по двум из которых просто передаются данные(Как, к примеру, COM-порт), но самом деле всё не так, и даже совсем наоборот. USB-контроллер в принципе не даёт нам возможности передавать данные как через обычный COM-порт. EHCI — довольно замысловатый стандарт, который позволяет обеспечить надежную и быструю передачу данных от софта до самого девайса, и в обратную сторону.
Возможно, вам пригодиться эта статья, если, к примеру, вы не имеете достаточных навыков написания драйверов и чтение документации к хардвейру. Простой пример: хотите написать свою ОС для мини-ПК, дабы какая-нибудь винда или очередной дистрибутив линукса не загружали железо, и вы использовали всю его мощь исключительно в своих целях.
Читать полностью »
Загрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE
2018-10-15 в 1:47, admin, рубрики: fpga, ftdi, open source, Производство и разработка электроники, прошивка, системное программирование, схемотехника, электроника, Электроника для начинающих
В жизни каждого плисовода наступает момент, когда требуется написать собственный загрузчик файла конфигурации в ПЛИС. Пришлось мне участвовать в разработке учебного стенда для кафедры одного технического вуза. Стенд предназначен для изучения цифровой обработки сигналов, хотя в рамках этой статьи это не имеет особого значения. А значение имеет то, что в основе стенда стоит ПЛИС (Altera Cyclone IV), на которой по задумке автора стенда студенты собирают всякие схемы ЦОС. Стенд подключается к компьютеру через USB. Требуется выполнить загрузку ПЛИС с компьютера через USB.
Принято решение для подключения к ПК использовать FTDI в ее двухканальной ипостаси — FT2232H. Один канал будет использован для конфигурации ПЛИС, другой может быть использован для высокоскоростного обмена в режиме FIFO.
Новости Rust #1 (Сентябрь 2018)
2018-10-01 в 10:29, admin, рубрики: open source, Rust, wasm, webassembly, дайджест, подборка, Программирование, системное программирование, ссылки
Мой комментарий к новости про Rust 1.28 с обзором ржавых событий за месяц неплохо зашел, так что вот держите очень субъективный срез ржавых новостей за прошлый месяц.
В этой подборке: Rust 1.29, записи докладов с Rustconf 2018, gfx-rs, Rust2018, порт Flatbuffers, новые версии ripgrep и Alacritty.
Rust 1.29
Вышел Rust 1.29. Основные нововведения — доступные сразу из rustup
'а cargo fix
и cargo clippy
(подробнее в хабропереводе).
Следом была выпущена версия 1.29.1, закрывшая ошибку в std::repeat (обсуждение).
Rust 1.30 и 1.31 будут очень значительными.
Точного списка пока нет, но ожидается что:
- в 1.30 (2018.10.26) войдет частичная стабилизация процедурных макросов;
- в 1.31 (2018.12.07) войдут Rust 2018 + non-lexical lifetimes (NLL).
Деревья выражений в enterprise-разработке
2018-09-26 в 12:09, admin, рубрики: .net, .net clr, C#, clr, dotnext, dotnext2018moscow, expression tree, expression trees, linq, Блог компании JUG.ru Group, Компиляторы, Программирование, системное программированиеДля большинства разработчиков использование expression tree ограничивается лямбда-выражениями в LINQ. Зачастую мы вообще не придаем значения тому, как технология работает «под капотом».
В этой статье я продемонстрирую вам продвинутые техники работы с деревьями выражений: устранение дублирования кода в LINQ, кодогенерация, метапрограммирование, транспиляция, автоматизация тестирования.
Вы узнаете, как пользоваться expression tree напрямую, какие подводные камни приготовила технология и как их обойти.
Под катом — видео и текстовая расшифровка моего доклада с DotNext 2018 Piter.
Читать полностью »
Как работает stack trace на ARM
2018-09-25 в 12:01, admin, рубрики: cortex-m, embox, open source, Блог компании Embox, микроконтроллеры, операционные системы, осрв, Программирование, программирование микроконтроллеров, системное программированиеДобрый день! Несколько дней назад столкнулся с небольшой проблемой в нашем проекте — в обработчике прерывания gdb неправильно выводил stack trace для Cortex-M. Поэтому в очередной раз полез выяснять, а какими способами можно получать stack trace для ARM? Какие флаги компиляции влияют на возможность трассировки стека на ARM? Как это реализовано в ядре Linux? По результатам исследований решил написать эту статью.
Читать полностью »
Заряди мозги напрямую! Рантаймы, компиляторы и перформанс на Joker 2018
2018-09-25 в 9:40, admin, рубрики: java, joker2018, Блог компании JUG.ru Group, высокая производительность, Компиляторы, системное программированиеМногие из нас ходят на конференции по Java только из-за хардкора. Это статья о том, что в этом плане изменилось за год.
Хардкор бывает нескольких видов. Можно выделить как минимум:
- перформансные оптимизации в любых проявлениях;
- внутренности достаточно сложных технологий (OpenJDK, GraalVM);
- компиляторы и рантаймы в целом;
- дизайн языков программирования;
- проблемы computer science и прикладной математики;
- и многое другое.
В чем разница между обычным докладом и хардкорным? Это как разница между статьей по квантовой гравитации и руководством по вкусной и здоровой пище. Правильно приготовить Spring — это, безусловно, очень сложная и интересная задача, которая для многих из нас является большой частью повседневных задач, и, соответственно, доклады Жени Борисова имеют большое практическое значение. Грубо говоря, это способ стать более хорошим специалистом и поднять больше денег. Но блеск далёких звезд находится не там.
Поэтому — только хардкор по заветам старой школы. Под катом небольшая заметка о том, как все это выглядит с точки зрения человека, который помешан на чтении статей, посещении докладов и отсмотру роликов на Ютубе, посвященных Java в широком смысле слова.
Ответы со стенда Embox на популярные вопросы с IT-фестиваля TechTrain
2018-09-20 в 16:45, admin, рубрики: embox, open source, rtos, techtrain, Блог компании Embox, микроконтроллеры, осрв, программирование микроконтроллеров, роботы, системное программирование
Добрый день!
Embox недавно принимал участие в IT-фестивале TechTrain.
Поток посетителей у нашего стенда был очень большим! А мы, к сожалению, не сделали раздаточные материалы с описанием нашего проекта. И некоторые ушли, не успев понять, что же у нас происходит. Нам задавали много однотипных вопросов, и мы решили опубликовать небольшую статью для того, чтобы на них ответить.
Читать полностью »