Системски софтвер/Пројекат
Пређи на навигацију
Пређи на претрагу
Пројекат на предмету Системски софтвер је обавезан и састоји се од 3 програма који чине скуп алата за развој софтвера на апстрактном рачунарском систему. Овај водич тежи да буде независан од поставке, која се незнатно мења из године у годину.
Подела по целинама
Због свог великог обима, препоручује се детаљна разрада захтева на лако разумљиве целине и кораке. Препоручује се следећи редослед задатака:
- Табеларно представљање машинских инструкција и адресирања у склопу симболичког машинског језика асемблера и самог машинског кода. Пре него што се крене са имплементацијом лексера и парсера неопходно је детаљно прегледати тражене захтеве у језику.
- Израда модела симболичког машинског језика у софтверу. Овде се може применити објектно оријентисани приступ моделовању, или структурни приступ налик излазном формату.
- Развој лексера и парсера користећи генераторе flex и bison или писањем свог лексера и парсера.
- Израда модела излазних података асемблера. Ово укључује секције, релокације, симболе и све што није било покривено моделовањем језика.
- Имплементација самог асемблирања. Пролази се кроз излаз парсера и попуњава излазни модел.
- Опционо текстуално/графичко представљање излазних података налик readelf и objdump олакшава дебаговање.
- Тестирање асемблера.
- Моделовање и имплементација излазног бинарног формата асемблера
- Модел улазних података линкера. Могу се користити и структуре из асемблера, али није препоручљиво јер су неопходни подаци за рад линкера и асемблера знатно различити - све постојеће енкапсулације и интерфејси вероватно нису довољно универзални или су ограничавајући.
- Имплементација линкера
- Имплементација исписа радне меморије у текстуални фајл, као и исписа у претходно осмишљени објектни формат, за шта код не би требало да се знатно разликује.
- Тестирање линкера.
- Моделовање меморије у емулатору. Учитавање меморије из фајла.
- Моделовање процесора, регистара, обраде прекида.
- Имплементација емулирања инструкција. Са нагласком на пажљиво писање кода и разумевање поставке.
- Имплементација периферије терминал. Препоручује се termios библиотека.
- Имплементација периферије тајмер. Препоручује се timerfd библиотека.
- Тестирање емулатора.