1
Lyrisches Eck / Re:A, téŝa!
« am: 25. February 2011, 16:26 »
musst du mal im IRC fragen
21. November 2024, 12:36
Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.
Lass dich von Assembler nicht abbringen. Man kann viel dabei lernen. Zumal ein L4 Kernel ja eigentlich nicht so groß werden dürfte, der macht ja kaum was
Genau bei der Geschwindigkeit setzt L4 ja an, deswegen kann man L4 auch als Mikrokernel der 2. Generation bezeichnen.Aber bevor ich hier einen endlosen Text schreib gibt es hier ein genaueres Konzept findet man hier http://www.lowlevel.eu/w/images/2/29/Die_L4-Mikrokernel-Familie.pdf.Und noch einmal zum Kernel selber. Im Endeffekt reicht es wenn der Kernel nach außen hin Funktionen für das IPC (natürlich gut implementiert , wobei das wahrscheinlich bei mir nicht beim ersten Anlauf so sein wird) bereit stellt, weil der Rest kann im Userspace erledigt werden und wenn weniger der Kernel aufgerufen wird, dann gibt es weniger, Performance kostende Ringwechsel.Desto weniger Funktionalität im Kernel selber ist desto mehr benötigen die User-Mode-Prozesse das IPC und entsprechend häufiger kommen dann die Kontext-Wechsel. Das ist ja der Grund warum nahezu alle erfolgreichen Microkernel-OSe schon längst keine echten Microkernel mehr sind (Mac OS X und Windows sind da nur die prominentesten Vertreter) und das nur weil sie es eben nicht geschafft haben den IPC-Overhead auf ein akzeptables Maß zu reduzieren. Überlege Dir lieber wie das IPC-Konzept möglichst effizient werden kann, also auf algorithmischer Ebene (hier ist nämlich die menschliche Kreativität tatsächlich erforderlich und hier lassen sich auch die viel größeren Performancesteigerungen erzielen), und überlasse das umsetzen in Maschinen-Code dem Compiler. Betrachte den Compiler als Teil Deines Teams, Du machst den algorithmischen/kreativen Part und der Compiler macht die Drecksarbeit, so kann tatsächlich ein wirklich gutes Ergebnis bei raus kommen. Und ganz wichtig, Performance ist nicht alles, auch die Absturzhäufigkeit ist ein wichtiges Kriterium für/gegen ein OS. Was nützt mir ein OS das zwar theoretisch o,5% schneller ist aber bereits abstürzt bevor ich mein Tageswerk erledigt habe. Assembler-Code nicht nur hochperformant sondern auch übersichtlich und wartbar zu gestalten ist schon eine ziemlich hohe Kunst (was nicht heißen soll dass das unmöglich ist) die umso schwieriger wird desto mehr Code Du hast.