Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

BobCatC/ProjWithGrub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProjWithGrub

Задача программы

Отобразить содержание кэша процессора (для удобства ядра исполнения, только L1), иметь интерфейс изменения. Очевидно, что прямого доступа к кэшу нет (кроме CR0 : CD и wbinvd), но анализируя свои собственные действия, программа может просчитать, что в нём, а также она способна совершать действия, которые приведут к нужному результату.

Основные моменты

  1. Программа запускается в виртуальной машине QEMU на Ubuntu;
  2. Начальную загрузку осуществляет GRUB;
  3. Программа работает только в символьной графике;
  4. Большая часть кода написана на C++ в "стиле" ООП,
    модуль printf взят с просторов языка C,
    малая часть специализированного кода написана на ассемблере (AT&T),
    скрипт сборки "ядра" (makefile) был взят с https://habr.com/company/neobit/blog/173263/;
  5. Для примерного ознакомления существует директория Screenshots

Зачем?

Данная программа писалась с целью усмирить своё желание написать что-то, что работало бы вне операционной системы.

А также она была принята в зачёт курса "Архитектура ЭВМ".

Интерфейс

  1. Navigation bar. Вверху экрана имеется bar переключения между set'ами кэша.
    Также можно двигать отображаемую часть set'а вверх/вниз
  2. Консоль (переключение на TAB). Принимает несколько команд:
    • read [0xAddr]. Совершает чтение из адреса;
    • write [0xAddr]. Записывает 0 в байт по адресу;
    • flush. Очищает кэш.

Alt text Alt text Alt text Alt text

About

Cache Tracker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published