С/к "Низкоуровневое программирование"

Доцент А.В.Столяров начинает читать полугодовой спецкурс «Низкоуровневое программирование». Лекции будут проходить по вторникам в 16:20 (V пара), ауд. 579. Спецкурс можно рассматривать как своего рода дополнительные главы к курсам «Архитектура ЭВМ и язык ассемблера» и «Операционные системы».

В частности, в курсе будут рассмотрены следующие вопросы:

  • Низкоуровневое программирование — что это, когда и для чего.
  • Архитектурные принципы фон Неймана: в чём их определяющая роль. Пример нефоннеймановской архитектуры (микроконтроллеры AVR). Может ли программа, работающая под управлением современной операционной системы, рассматривать компьютер как фоннеймановский.
  • Платформа i386 (32-битные Intel-совместимые процессоры): система регистров, основы системы команд. Отличия 64-битных процессоров.
  • Операционная система: что это и зачем.
  • Мультизадачный режим работы: как это делается. Ядро и процессы. Что такое «прерывание» и почему вокруг этого термина нагородили столько ахинеи. Особенности программирования, обусловленные наличием мультизадачной ОС.
  • Системный вызов. Конвенции системных вызовов Linux и FreeBSD. Примеры простых программ для *nix на языке ассемблера.
  • Аппаратное управление оперативной памятью, MMU и виртуализация.
  • Язык Си: его история, почему он таков, каков есть, и зачем он нужен. Почему исполняемые файлы на Си получаются такими огромными и можно ли сделать их меньше.
  • ...и так далее..

Приглашаются все желающие; предполагается, что слушатели знакомы с языком Си в объёме программы второго курса. В конце курса предполагается устный экзамен (по билетам) с оценкой. Прошлогодний список экзаменационных вопросов доступен тут: http://al.cs.msu.ru/node/138 — но в этом году возможны изменения в зависимости от того, что мы успеем на лекциях.