Отобразить содержание кэша процессора (для удобства ядра исполнения, только L1), иметь интерфейс изменения. Очевидно, что прямого доступа к кэшу нет (кроме CR0 : CD и wbinvd), но анализируя свои собственные действия, программа может просчитать, что в нём, а также она способна совершать действия, которые приведут к нужному результату.
- Программа запускается в виртуальной машине QEMU на Ubuntu;
- Начальную загрузку осуществляет GRUB;
- Программа работает только в символьной графике;
- Большая часть кода написана на C++ в "стиле" ООП,
модульprintf
взят с просторов языка C,
малая часть специализированного кода написана на ассемблере (AT&T),
скрипт сборки "ядра" (makefile) был взят с https://habr.com/company/neobit/blog/173263/; - Для примерного ознакомления существует директория Screenshots
Данная программа писалась с целью усмирить своё желание написать что-то, что работало бы вне операционной системы.
А также она была принята в зачёт курса "Архитектура ЭВМ".
- Navigation bar. Вверху экрана имеется bar переключения между set'ами кэша.
Также можно двигать отображаемую часть set'а вверх/вниз - Консоль (переключение на TAB). Принимает несколько команд:
- read [0xAddr]. Совершает чтение из адреса;
- write [0xAddr]. Записывает 0 в байт по адресу;
- flush. Очищает кэш.