From dd3b67c4b2a3a9ad83e1bf5ae7bbb4d32d250438 Mon Sep 17 00:00:00 2001 From: axtloss Date: Sun, 3 Mar 2024 18:07:09 +0100 Subject: Finish reflexion --- README.md | 4 ++++ doc/class-assignment/Title.tex | 6 +++++- doc/class-assignment/by-sa.pdf | Bin 0 -> 4470 bytes doc/class-assignment/fsverify.pdf | Bin 299526 -> 316726 bytes doc/class-assignment/fsverify.tex | 8 ++++++++ doc/class-assignment/logo.png | Bin 0 -> 3388 bytes doc/class-assignment/reflexion/reflexion.tex | 16 ++++++++++++++++ fbwarn/src/parseBVG.c | 7 ++++--- fbwarn/src/warn.c | 2 ++ logo.bvg | 16 ++++++++++++++++ logo.png | Bin 0 -> 3388 bytes 11 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 doc/class-assignment/by-sa.pdf create mode 100644 doc/class-assignment/logo.png create mode 100644 doc/class-assignment/reflexion/reflexion.tex create mode 100644 logo.bvg create mode 100644 logo.png diff --git a/README.md b/README.md index 3dd49f6..5607337 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +

+ +

+ # FsVerify Block based Filesystem verification. diff --git a/doc/class-assignment/Title.tex b/doc/class-assignment/Title.tex index e2394c0..c09d92a 100644 --- a/doc/class-assignment/Title.tex +++ b/doc/class-assignment/Title.tex @@ -13,7 +13,11 @@ Reflexion zum\\ AP Informatik - + + \vspace{3cm} + + \includegraphics{logo.png} + \vfill } \end{center} diff --git a/doc/class-assignment/by-sa.pdf b/doc/class-assignment/by-sa.pdf new file mode 100644 index 0000000..564ab4b Binary files /dev/null and b/doc/class-assignment/by-sa.pdf differ diff --git a/doc/class-assignment/fsverify.pdf b/doc/class-assignment/fsverify.pdf index 4b66105..aec0e07 100644 Binary files a/doc/class-assignment/fsverify.pdf and b/doc/class-assignment/fsverify.pdf differ diff --git a/doc/class-assignment/fsverify.tex b/doc/class-assignment/fsverify.tex index 14279d1..d51f743 100644 --- a/doc/class-assignment/fsverify.tex +++ b/doc/class-assignment/fsverify.tex @@ -45,6 +45,14 @@ \input{idee/idee} \section{Realisierung} \input{realisierung/realisierung} +\section{Reflexion} +\input{reflexion/reflexion} +\bigbreak +\newpage +\includegraphics{by-sa.pdf}\\ +This Document is licensed under CC-BY-SA 4.0. To view a copy of this license, visit\\ +\url{https://creativecommons.org/licenses/by-sa/4.0/}\\ +The source for this document can be found at\\ \url{https://github.com/axtloss/fsverify/tree/main/doc/class-assignment} \end{document} %%% Local Variables: diff --git a/doc/class-assignment/logo.png b/doc/class-assignment/logo.png new file mode 100644 index 0000000..763835b Binary files /dev/null and b/doc/class-assignment/logo.png differ diff --git a/doc/class-assignment/reflexion/reflexion.tex b/doc/class-assignment/reflexion/reflexion.tex new file mode 100644 index 0000000..197cbee --- /dev/null +++ b/doc/class-assignment/reflexion/reflexion.tex @@ -0,0 +1,16 @@ +Insgesamt gibt es keine großen mängel, die mir während der Implementierung aufgefallen sind, die meisten Kritikpunkte liegen in fbwarn, welche teilweise der kurzen Entwicklungszeit (~7 Tage) zu schulden sind. + +\subsection{Bessere Datenbank} +Die Datenbank welche ich zurzeit nutze, bbolt, hat mehrere Probleme, zum einen ist die Lese und Schreibgeschwindigkeit nicht sehr schnell, trotz bestmöglicher Optimierungen durch nutzen von Batch-operations und einmaligen öffnen und Schreiben der Datenbank, fügt die Datenbank ungefähr 2 Sekunden an Laufzeit zu verifysetup, 22\% der ganzen Laufzeit.\\ +Dazu kommt auch, das bbolt es zurzeit nicht unterstützt, eine Datenbank direkt aus einer Variable zu lesen, die Datenbank muss als Pfad im Dateisystem angegeben werden, welches dazu führt, das fsverify die Datenbank von der Partition in eine Variable liest, und die Variable direkt wieder in einer Datei in \texttt{/tmp} schreibt. Dies führt zu unnötigen Write-cycles die durch das Verwenden einer anderen Datenbank oder einem Patch für den bbolt Quellcode gelöst werden könnte. + +\subsection{Nutzung vom TPM2 für öffentliche Schlüssel} +Dieses Feature war geplant, und ich hatte bereits einen Schlüssel durch verschiedene Linux Tools in den TPM geschrieben, jedoch konnte ich keine gute go Bibliothek für TPMs finden, weshalb ich das Feature auslassen musste, hätte ich dies noch bevore ich mit der Implementierung gewusst, hätte ich entweder eine andere Programmiersprache für fsverify gewählt, oder eine eigene Bibliothek für TPMs als teil des Projekts entwickelt. + +\subsection{Besserer Parser für fbwarn} +Zur zeit benutzt fbwarn einfaches string matching mit Funktionen aus \texttt{stdlib.h} und \texttt{strings.h}, dies Funktioniert, jedoch bringt es viele Probleme mit sich, sodass zum Beispiel ein Leerzeichen am falschen Platz bereits vieles Zerstören kann, welches sehr schwer zu debuggen ist, da man Fehler solcher art nicht sofort erkennt.\\ +Hätte ich mir für fbwarn mehr Zeit gegeben, hätte ich Programme benutzt, die Speziell für das Parsen von Dateien in C gedacht sind, wie \texttt{yacc(1)} und \texttt{lex(1)}. + +\subsection{Mehr Funktionen in bvg} +bvg unterstützt zurzeit neun Funktionen, wie bereits gezeigt ist dies zwar genug um recht viel zu Zeichnen, jedoch unterstützen die Funktionen alle nur solide Farben, also keine Farbübergänge oder ähnliches, welches das Design der Bilder einschränkt und rehc ``alt'' erscheinen lässt, da Farbübergänge für elemente wie Schatten in modernen Designs sehr oft genutzt werden.\\ +Zudem unterstützt bvg keinen Bézier Kurven, die das Zeichnen von beinahe jeder Form erlauben. Das fehlen ist jedoch ein Zeitproblem, da raylib bereits Funktionen für Bézier Kurven hat und die Implementierung in bvg recht simple wäre. diff --git a/fbwarn/src/parseBVG.c b/fbwarn/src/parseBVG.c index c31acfc..db25ddc 100644 --- a/fbwarn/src/parseBVG.c +++ b/fbwarn/src/parseBVG.c @@ -213,8 +213,8 @@ BVGRectangle *BVGParseRectangle(char *argv[7]) { */ BVGRoundedRectangle *BVGParseRoundedRectangle(char *argv[9]) { BVGRoundedRectangle *result = malloc(sizeof(BVGRoundedRectangle)); - BVGRectangle *bvgrectangle = malloc(sizeof(BVGRectangle)); - Rectangle *rectangle = malloc(sizeof(Rectangle)); + BVGRectangle *bvgrectangle; + Rectangle *rectangle; size_t argN = 9; char *args[argN]; char *knownArgs[9] = {"x", "y", "width", "height", "color", "fill", "thickness", "roundness", "segments"}; @@ -227,10 +227,10 @@ BVGRoundedRectangle *BVGParseRoundedRectangle(char *argv[9]) { sscanf(args[7], "%fd", &roundness); sscanf(args[8], "%d", &segments); - printf("Roundness: %fd, Segments: %d\n", roundness, segments); result->roundness = roundness; result->segments = segments; + free(bvgrectangle); return result; } @@ -313,6 +313,7 @@ BVGRing *BVGParseRing(char *argv[8]) { args[7][strlen(args[7])-1] = '\0'; clr = parseColorFromHex(args[7]); + result->centerX=x*scale; result->centerY=y*scale; result->inRadius=innerRadius; result->outRadius=outerRadius; result->startAngle=startAngle; result->endAngle=endAngle; diff --git a/fbwarn/src/warn.c b/fbwarn/src/warn.c index 9786883..ee0b0b1 100644 --- a/fbwarn/src/warn.c +++ b/fbwarn/src/warn.c @@ -104,10 +104,12 @@ int main(int argc, char **argv) { free(funcs[i]); } + /* uncomment for FPS display char *text = malloc(strlen("100")*100); sprintf(text, "%d", GetFPS()); DrawText(text, 2, 2, 20, MAROON); free(text); + */ EndDrawing (); free(funcs); } diff --git a/logo.bvg b/logo.bvg new file mode 100644 index 0000000..598dbe5 --- /dev/null +++ b/logo.bvg @@ -0,0 +1,16 @@ +IMG (width=290,height=150) + +roundedrectangle (x=30,y=20, height=20, width=70, color="#000000", fill=true, thickness=1.0, roundness=0.5, segments=20) +roundedrectangle (x=30,y=34, height=70, width=20, color="#000000", fill=true, thickness=1.0, roundness=0.5, segments=20) +roundedrectangle (x=30,y=50, height=20, width=50, color="#000000", fill=true, thickness=1.0, roundness=0.5, segments=20) + +ring (x=130, y=45, innerradius=10, outerradius=26, startangle=300, endangle=90, segments=3, color="#FF0000") +ring (x=130, y=81, innerradius=10, outerradius=26, startangle=500, endangle=270, segments=4, color="#FF0000") + +triangle (x1=160, y1=70, x2=180,y2=104, x3=170,y3=70, color="#008000", fill=true) +triangle (x1=160, y1=70, x2=170,y2=104, x3=180,y3=104, color="#008000", fill=true) +triangle (x1=170, y1=104, x2=180,y2=104, x3=200,y3=20, color="#008000", fill=true) +triangle (x1=170, y1=104, x2=200,y2=20, x3=195,y3=20, color="#008000", fill=true) + +text (text="erify", x=190, y=75, color="#000000", size=30) + diff --git a/logo.png b/logo.png new file mode 100644 index 0000000..763835b Binary files /dev/null and b/logo.png differ -- cgit v1.2.3