8
« am: 02. July 2015, 02:24 »
Eins vorweg: Ich habe nie was mit ARM/Raspberry PI am Hut gehabt.
Ein Betriebssystem steigert nie die Leistungsfähigkeit (bezüglich der Nettoleistung des Systems), sondern im Gegenteil verringert diese. Warum? Weil das Betriebssystem (jetzt mal ganz weit gefasst) zwei Aufgaben hat: Verwaltung von Ressourcen und Zuteilung von Ressourcen an Anwendungen. Ressourcen sind CPU-Zeit, Arbeitsspeicher, Festplattenspeicher, Netzwerkkapazität, Anzeigeplatz auf dem Bildschirm, etc... Der damit verbundene Aufwand verringert die theoretisch mögliche Leistung des Systems um X Prozent, bezüglich Anteil der CPU-Instruktionen, die tatsächlich Daten verarbeiten und nicht nur verwalten, bezüglich Arbeitsspeicher oder Festplattenspeicher, in dem tatsächlich Daten und nicht nur Verwaltungsinformationen stehen, usw.
Warum haben wir also Betriebssysteme? Die Verwaltung der Ressourcen muss irgendwo erfolgen, ansonsten herrscht Chaos im Computer. In vielen Betriebssystemkonzepten ist es selbstverständlich, dass der Kernel (oder ein privilegiertes Modul) zum Beispiel das Dateisystem verwaltet. Würden das die Anwendungen machen, hast du das Problem, dass diese den Zugriff auf das Dateisystem nicht koordinieren und eventuell gegenseitig Daten überschreiben. Das Betriebssystem dient deswegen als Anlaufstelle für alle Anwendungen, und sorgt dafür, dass Dateioperationen nach einem bestimmten Schema durchgeführt werden. Dieses ist für alle Anwendungen gleich und garantiert denen, dass diese Operationen wie erwartet durchgeführt werden oder bei Konflikten entsprechend Rückmeldung gegeben wird.
Das Problem, was ein Betriebssystem also löst, ist eine Balance zu finden zwischen der Umsetzung der Anforderungen mehrerer Anwendung an (ich nenn es mal) Stabilität/Vorhersagbarkeit und dem Verwaltungsaufwand den das Betriebssystem dadurch verursacht.
Der Ansatz der sich daraus ergibt, ist dann natürlich, wenn man weniger Overhead haben will, die Dienstleistungen, die das Betriebssystem gegenüber den Anwendungen bereitstellt, zurückzuschrauben, damit mehr CPU-Zeit, Arbeitsspeicher, etc. für die Anwendung zur Verfügung steht.
Die Frage ist jetzt: Wieviel Prozent kann man da rausholen? Wenn ich in Windows den Ressourcenmonitor anwerfe, sehe ich genau, wieviel CPU-Zeit und Arbeitsspeicher das Betriebssystem und seine Dienste verbrauchen. Im Leerlauf (= 2% CPU-Last durch Firefox während ich das hier Tippe und Musik höre -.-) verbraucht der Kernel 0,2-0.3% CPU-Zeit, der Fenstermanager 0,1% und ein Dienst, den ich nicht zuordnen kann, 0,1%. Der Rest steht den Anwendungen zur Verfügung. Weniger als 0,5% wäre in meinem Fall dann der maximale Gewinn, den du gegenüber Windows erreichen könntest, wenn du den Kernel durch einen Superduperkernel ersetzt und auch den ganzen anderen Mist rauswirfst (Overhead durch Treiber ist da auf beiden Seiten natürlich nicht korrekt einberechnet).
Eine ähnliche Rechnung kannst du auf dem Respberry Pi anstellen. Unter Linux gibt es ja auch entsprechende Tools, die Ressourcenverbrauch bezüglich Anwendung und Betriebssystem aufschlüsseln. Da kannst du dann sogar deine Anwendungsfälle laufen lassen und schauen, wieviel CPU-Auslastung der Prozess erreicht, und wieviel RAM er maximal zugeteilt bekommt.
Also mein Rat ist: Mache Messungen auf dem Pi, und schau dir an, wieviel Leistung ungenutzt bleibt.
Wenn du dann sagst, das ist zu viel, dann wäre das Extrem gar kein Betriebssystem zu schreiben, sondern die Anwendung direkt auf der Hardware laufen zu lassen. Die Anwendung müsste dann entsprechende Hardwaretreiber beinhalten. Hat natürlich den Nachteil, das nichts anderes auf dem System laufen kann. Du kannst natürlich auch den Mittelweg gehen und den ganzen Overhead wie Scheduler, Speicherverwaltung und Dateisystem nach deinen Vorstellungen implementieren. Ob du dir dann genauso soviel Overhead wie andere Betriebssysteme einfängst oder mehr oder weniger, ist von deinen Anforderungen und Fähigkeiten abhängig.
Dein ursprünglicher Post klang für mich danach, als ob du Bitcoins oder so darauf berechnen willst. Ich glaube nicht, dass da ein neues Betriebssystem etwas ausmacht. Es gibt sicherlich schon "die optimale Bitcoin-Distribution" für Raspberry PI.