TGViewer
Channel Public Channel
EBFE: software internals

EBFE: software internals

@ebfecode

Авторский канал Алексея Никольского.
Пишу код операционок и гипервизоров больше 20 лет и читаю лекции студентам.
Делюсь своими мыслями, интересными материалами, мемасиками и всегда рад общению!

Моя мастерская: https://t.me/itmosysint
Subscribers
389
Photos
344
Videos
60
Links
120

Showing posts older than #658 · Back to latest

Older Posts 20 shown
Post #657 316
Предыдущие посты, связанные с учебной информацией, могли вас запутать, поэтому немного проясню ситуацию, чтобы не было недопониманий.

1. Binay Thinking: C++ & Windows - это мой авторский курс (интенсив), не входящий в сетку расписания ИТМО. По графику проведения под всех, увы, подстроиться не смогу, поэтому если есть непреодолимое желание его прослушать, придется вам находить время. Формат смешанный.

Этот курс создан мной в рамках ФБИТ и для наших (ИТМО) студентов он бесплатный. Юридически он принадлежит ИТМО, поэтому внешних слушателей можно подключать только на платной основе. Цену устанавливаю не я.

Этот курс - вводный, подойдет всем желающим. Это переосмысленный прошлогодний интенсив Hello Coder, Hello C++, Hello Windows. Для тех, кто слушал в прошлом году тоже найдет много нового, а местами повторимся, закрепим. В этом году будет больше примеров реального кода. Не будем гнаться именно за игрой, так как помимо есть еще много чего интересного. Самое главное чтобы слушатели разобрались в материале.

2. Проект с аппаратным обеспечением - это совершенно новый этап. Это долгосрочный проект лаборатории.

НЕ КУРС (хотя элемент внутренних мастер-классов для участников планируется). Здесь у нас все на ранней стадии, поэтому не ждите быстрого развития событий. Однако, спасибо всем, кто написал. Позже разошлю анкеты, будут очные встречи итд.

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

3. Скоро запускаем еще один новый проект в Лаборатории Системного Программирования. Ориентировочно 20го числа. Это уже третья позиция, не имеющая отношения к предыдущим.

То, что связывает эти проекты - мое непосредственное участие. Все это я провожу совместно с коллегами в рамках ФБИТ ИТМО.

Всем спасибо за фидбэки.

Работаем.
  • ❤ 17
Post #654 465
🚀 Binary Thinking: С++ & Windows

Это будет курс не про «выучить синтаксис C++» и не про очередное повторение учебника.

Мы будем разбираться, как программный код работает на самом деле — от исходника на C/C++ до машинного кода, памяти процесса, операционной системы и ядра.

Начнем с software internals и на практике посмотрим, как связаны:

→ код на C/C++
→ компилятор и линкер
→ object files
→ assembler и machine code
→ executable files
→ runtime memory
→ stack и heap
→ процессы, библиотеки и операционная система

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

🛠 Сборка и организация проектов

Научимся работать с Visual Studio, VS Code, CMake и Makefile.

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

⚙️ C → C++

Отдельно перейдем от C к C++.

Я покажу, почему это не просто «C с классами», а во многом совершенно другой язык и другой способ проектирования программ.

Разберем ключевые механизмы C++ так, чтобы после курса вы могли использовать язык осознанно и уверенно.

🏗 Software Design

Будем много говорить опроектировании ПО:
OOP, архитектура, декомпозиция, интерфейсы, зависимости и design patterns.

И не просто смотреть схемы на слайдах — будем применять всё это в коде.

🐛 Debugging & Reverse Engineering

Научимся пользоваться профессиональными инструментами:
kd, cdb, gdb, Visual Studio Debugger, VS Code, системами tracing и profiling, а также декомпиляторами и другими инструментами анализа программ.

Будем смотреть, что происходит с программой не только на уровне исходного кода, но и внутри процесса и операционной системы.

🪟 Windows Internals

Отдельный большой блок посвятим Windows — одной из самых сложных современных операционных систем.

Разберемся, как она устроена, как работают процессы, память, DLL, exceptions, user mode и kernel mode и как правильно писать системный код под Windows.
Для сравнения будем регулярно заглядывать и в Linux.

🎮 Большой практический проект

С нуля спроектируем и напишем собственную игру.
На ее примере разберем полный жизненный цикл проекта:

архитектура → код → сборка → отладка → profiling → организация проекта → deploymen
t.

Все знания курса постепенно соберем в один большой работающий проект.

🔬 Будет много экспериментов

DLL injection.
Stack overflow.
Kernel debugging.
ROP.
Запустим DOOM через pipe.
Попробуем запихнуть DOOM в driver.

И вообще будем регулярно делать вещи, после которых становится значительно понятнее, что происходит внутри компьютера

😈Я подготовил большое количество реального кода для разбора: Linux, Windows, BIOS (AMI), драйверы, приложения, шеллкоды, DOOM, GTA V и другие проекты.

Будем читать код, запускать его, отлаживать, дизассемблировать, модифицировать и исследовать его поведение.

💻 Максимум практики

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

Конечно, будем использовать и современные LLM-инструменты. Я покажу, как использую их сам: где они действительно ускоряют разработку, где ошибаются и как применять их так, чтобы они помогали понимать код, а не заменяли понимание.

🎯 Главная цель курса

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

После курса у вас должно появиться целостное понимание:
что такое C и C++ на практике, как работает программный код, что происходит внутри Windows и Linux и как все эти уровни связаны между собой.

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

Если вам интересно не простописать код, а понимать, что происходит под капотом, — этот интенсив именно про это.

Если вам это интересно прошу принять участие в предварительном голосовании, чтобы мне все спланировать.
👇👇👇
  • ❤ 10
  • 🤮 1
Post #653 268
🚀 Binary Thinking: С++ & Windows

Новый интенсив по практическому программированию

20 занятий × 3 часа = 60 часов занятий.

Описание и голосование далее:
👇👇👇
Post #651 326
  • ❤ 4
  • 🔥 1
Post #650 299

Forwarded from Dev Meme / devmeme

#news

Cost of it is millions of dollars

But when o3 was announced it costed half a million to score 87.5% on ARC-AGI 1

Today, Astra scores higher for ~$20

In 2025 it took us and GDM an enormous amount of compute to achieve IMO gold. For the 2026 IMO, anyone with a $20/month ChatGPT subscription could do it
  • 🤯 3
Post #647 364
Всем привет!

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

Будем много работать руками и головой: паять, прошивать, конструировать, анализировать, проводить измерения, трейсить сигналы, разбираться в схемах и чипах — и делать много всего интересного на стыке hardware и low-level разработки.

Что желательно иметь на старте:
— базовые навыки пайки;
— понимание основ электроники;
— опыт работы с измерительным оборудованием: осциллографами, мультиметрами, лабораторными блоками питания и т. д.

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

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

Если вам интересно это направление и хочется развиваться в hardware — пишите мне в личку иди direct на канале.
  • 🔥 11
Post #645 278

Forwarded from GitHub Community

NWinfo — это программа Win32, которая позволяет получать информацию о системе и оборудовании.

5️⃣ GitHub
Post #643 349
Второй особенностью того, что я начал работать с первого курса, стало то, что я начал пропускать некоторые лекции. Второй курс я ещё держался и ходил на всё, но вот на третьем как-то раз больше месяца не появлялся в институте, а вместо этого ходил на работу. Нетрудно догадаться, что это привело к проблемам, которые я потом, надрываясь, исправлял.В частности, как сейчас помню: последний день зачётной недели — пятница. У меня ни одного зачёта, а нужно было получить минимум пять для допуска к экзаменам, иначе сразу допса. Я не спал две ночи — реально проснулся в среду и больше не смыкал глаз — и всё это время делал лабораторные. В пятницу утром я пришёл на работу в офис попить кофе и подготовиться к сдаче лаб. Потом — бац — уже вечер пятницы, а я сдал пять зачётов + один экзамен и наконец-то могу поспать! Не делайте так — не спать две ночи вредно для здоровья.

Вот такие первые флешбэки с моей учёбы. Будут ещё)

Всем хорошего дня!
  • ❤ 11
  • 🔥 4
  • 👍 2
  • 🍓 1
Post #641 276
Как некоторые из вас уже знают, я учился в Политехе (Политех Петра), на факультете технической кибернетики (ФТК — сейчас его уже нет в результате реструктуризации), на кафедре информационной безопасности компьютерных систем (ИБКС, сейчас это Институт кибербезопасности). Учился я на специалитете — 5 лет — и закончил его в 2010-м году. Диплом у меня был посвящён созданию защищённых систем виртуализации, как, собственно, и моя кандидатская диссертация — её я защитил в 2013-м.

Учиться было трудно)

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

Тем не менее на первых двух курсах я ходил на все лекции, особенно на физику, математику и всё, что было по специальности.

Набор курсов был интересным: и теория компиляторов, и системы управления базами данных, и даже искусственный интеллект (в то время это был Prolog).

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

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

factorial(N, Result) :-
( N =:= 0
-> Result = 1
; N1 is N - 1,
factorial(N1, Partial),
Result is N * Partial
).

main :-
factorial(5, F), format('factorial(5) =
[F]).


А это нифига не функции) Это предикаты, и запускать надо так:

?- main.factorial(5) =
120 true
.

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

Но главная фишка моего обучения была в том, что меня с первого курса — со второго семестра — пригласили на работу. Я был несказанно счастлив. Первые два месяца мне не платили, потом я работал примерно за 5к (тогда у меня стипендия была больше), но всё равно был очень рад приобщиться к реальному рабочему процессу. С лета начал работать full-time и каждый день ездил на работу на электричке из Токсово. Я, конечно, тогда ничего особо не умел (сейчас вообще не понимаю, за что мне платили даже те деньги...), однако как начал там работать в коллективе из 5–6 человек, так и продолжил. В результате я проработал там больше 12 лет и дорос до должности системного архитектора, а компания к тому моменту выросла до 100 человек.

Прекрасный опыт. Там я сделал много проектов, многие придумывал сам и сам же реализовывал. Довелось поработать и просто тестировщиком, и разработчиком, и даже несколько лет поруководить командой из 10 человек как PM. Потом решил, что кодить всё-таки интереснее))) Стал тимлидом, а затем системным архитектором.

Я понимаю, что вряд ли кто-то из них это читает, но я благодарен всем моим руководителям, учителям и коллегам за те годы. Спасибо вам!

Так вот, из-за того, что я начал работать с первого курса, некоторые вещи я узнавал сперва на практике, а уже потом слушал про них на лекции. «А-а-а... Вон оно как на самом деле...» — думал я на лекции. Конечно, так было не всегда. Приведу пример с компьютерными сетями. Сначала на работе я писал код для сетевого фильтра и видел все сетевые пакеты как u8* p_packet, парсил MAC, IP, TCP и т. д. А потом уже на лекциях мне рассказывали, что такое OSI и всё остальное...
👇👇👇
  • ❤ 7
  • 👍 2
Post #640 215
Всем привет!

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

👇👇👇
  • ❤ 2
  • 🍌 1
Post #639 226
Я вот тоже приобщаюсь
  • 🔥 5
  • 🍌 1
Post #638 252
Как написано на кружке справа:
Лучшая защита - это понимание.

Все верно написано, и это применимо во всех сферах жизни.

Я поздравляю всех с Днём Знаний!

Желаю всем прекрасного, насыщенного и интересного учебного года! Пусть он будет наполнен новыми вызовами, с которыми вы все блестяще справитесь и станете лучше!
  • 🔥 9
  • 👍 2
  • 🍌 1
Post #636 329
  • 🔥 4
  • 🍌 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →