Note: By no means is this code secure or validated. Treat as unchecked copy archived due to no changes planned.
This project is simulation of filesystem based on i-nodes.
This repository contains public copy of UNIX-based file system simulation in C++. My part of bigger student project "PenguinOS" simulating whole UNIX os.
This code is not "memory-leakage-free"! There should be lines added, that would be destined for deleting specific allocated blocks.
- File can't exceed 10 times SO_BLOCK chars because there are only 2 direct indexes (2 times SO_BLOCK) and 1 indirect (8 times SO_BLOCK).
- Any negative offset will be treated as position at the beginning of the file. Any offset that exceeds filesize will be treated as position at the end of the file.
- Some additional steps are taken while running test programs (showing occupied i-nodes, showing memory blocks etc.).
This is part of bigger student project simulating whole UNIX system I have completed with friends (which repository is private on Github).
Code development ended in Feb 2017. Only minor changes (including translations) were made since then.
Poznan University of Technology 2017
Compile with C++ compiler (originally Microsoft Visual C++) and use menu from tests.cpp.
Mateusz Grabuszyński
mateusz.grabuszynski (at) student.put.poznan.pl (for students)
mgrabuszynski (at) gmail.com (for other contact)
This project is publicly available on MIT License. Full text contained inside LICENSE file.
2018-04-13
To repozytorium zawiera publiczną kopię symulacji systemu plików imitującego zastosowany w UNIXie napisaną w języku C++. Jest to moja część większego projektu studenckiego "PingwinOS" symulującego cały system UNIX.
W kodzie występują tzw. "wycieki pamięci"! Należałoby dodać odpowiednie linie zapewniające usuwanie danych.
- Rozmiar pliku nie może przekraczać 10 razy SO_BLOCK znaków, gdyż są tylko 2 indeksy bezpośrednie (2 razy SO_BLOCK) i 1 pośredni (8 razy SO_BLOCK).
- Ujemna pozycja kursora jest traktowana jako początek pliku. Pozycja większa od rozmiaru pliku jest traktowana jako koniec pliku.
- Programy przykładowe wykonują dodatkowe, nieopisane w komentarzu, kroki (np. pokazywanie zajętych i-węzłów).
Ten kod jest czescią większego projektu symulujacego cały system UNIX, ktory wykonalismy wraz z kolegami (repozytorium prywatne).
Rozwój kodu zakonczono w lutym 2017. Od tego czasu wprowadzono tylko niewielkie zmiany, głównie tłumaczenie.
Politechnika Poznanska 2017
Skompiluj przy użyciu kompilatora języka C++ (pierwotnie Microsoft Visual C++) i użyj menu zawartego w tests.cpp.
Mateusz Grabuszyński
mateusz.grabuszynski (at) student.put.poznan.pl (dla studentów)
mgrabuszynski (at) gmail.com (inne)
Projekt jest publicznie dostępny pod licencją MIT, której tekst jest zawarty w pliku LICENSE (język angielski).
13 kwietnia 2018