Das läuft auf etwas ähnliches hinaus wie eine andere Diskussion zu ARM. Wir reden also von einer allgemeinen Plattform, nur wer auf Consumer (in Form von Tablets, Desktops, Notebooks und was weiß ich nicht noch alles) abzielt, implementiert diese Plattform, alle anderen halt nicht.
Dann hast du in dieser Diskussion genau garnichts gewonnen. Du zielst nämlich nicht auf das Problem, sondern auf das Symptom ab.
Reicht es nicht, wenn man eine Schnittstelle zur Firmware hat, wo man bestimmte grundlegende Dinge (z.B. ist nen PCI-Bus vorhanden, wenn ja wo ist der gemappt usw.) nachfragen kann. Da sollte es doch auch keine Probleme mit legacy-freien Systemen geben.
Gibt's schon, nennt sich Flatted Device Tree. Wird nur nicht überall implementiert, insbesondere nicht bei irgendwelchen komischen In-House-Bootloadern und selbstverständlich nicht bei Windows CE. Es handelt sich schließlich um eine Linux-Technologie.
Sind dann nicht eigentlich alle Geräte wo ChromeOS drauf läuft per Definition Terminals?
Wenn man "Webbrowsing" als Tätigkeit auffasst nicht, denn das tust du lokal. Im Gegensatz zu Terminals, die mehr oder weniger dumm sind und wo deine Aktivitäten auf dem Server ausgeführt werden.
Aber ja, die Grenze ist nicht besonders hart, denn es gibt auch Terminals, die einige Anwendungen lokal vorhalten. Bleibt der Unterschied, dass (echte) Terminals oft diskless sind oder nur mit wenig Flash ausgestattet und insbesondere den Anwendungen keinen lokalen Speicher zur Verfügung stellen. Es sei denn, man schließt USB-Sticks o.ä. an.
Es gibt ja nunmal Geräte die sollten (es geht bestimmt auch anders) einfach im Kernel sein und dazu zählt z.B. der Timer.
Ja. Und je nach Mainboard, CPU oder BIOS-Implementation sind manche Timer funktionsfähig oder eben auch nicht. Deswegen halte ich den Kernel für die richtige Stelle, den entsprechenden Timer auszusuchen.
Andere Frage: Du hast ein Modul für den zu verwendenden Syscall-Mechanismus. Du unterstützt also mehrere davon. Gibt es ein Fallback, d.h. funktioniert "int 0x80" immer oder nur, wenn die CPU weder SYSENTER noch SYSCALL kann?
Nix saubere Trennung zwischen Bootloader und Kernel, nix Portabilität und vor allem nix gute Interoperabilität mit anderen Betriebssystemen.
Wieso sollte ich eine saubere Trennung zw Bootloader und Kernel wollen? Zwecks Portabilität? Was wenn auf der Ziel-Plattform eh kein Bootloader mit den nötigen Eigenschaften existiert?
Mit dem letzten kann ich gar nix anfangen.
Auf jeder Plattform existiert ein Bootloader, der eine (oder mehrere, notfalls als Archiv) Dateien in den Speicher laden und reinspringen kann. Aber ein Bootloader, der speziell dein Konfigurationsdateiformat und deine Modulstrukturen unterstützt, ist eher selten. Besonders, wenn er zusätzlich noch die Hardware initialisieren muss (was RedBoot und U-Boot können, dein Bootloader muss für jedes einzelne Board angepasst werden; außerdem gibt es sog. Hardware-Quirks je nach Board-Revision).
Wenn jedes Betriebssystem auf dem Rechner von z.B. GRUB geladen werden kann, erhöht das die Interoperabilität verschiedener Betriebssysteme auf einem Rechner ungemein. Sieht man vor allem daran, wenn man Windows neu installiert. Alternative Bootloader sind dann weg. Das ist dein Wunschweg?
Auch bei einem MikroKernel (laut deiner Definition) gibt es Situationen wo dynamisch ladbare Module zur Laufzeit sinnvoll sein kann. Das wären z.B. IRQ-Handler, wenn man die im Kernel haben will oder aber FS-Module, wenn man das VFS im Kernel haben will (was dann mMn kein MikroKernel mehr wäre, aber das ist wieder Geschmackssache).
Dynamisch ladbare Module auf einem Mikrokernel halte ich generell für unnötig, aber vielleicht sehen andere das anders. In meinem Konzept ist der IRQ-Handler vollständig im Kernel, wenn ein IRQ auftritt, wird ein Event an den für diesen IRQ registrierten Treiber geschickt und der schnellstmöglich scheduled. Treiber laufen niemals im IRQ-Kontext. Mein VFS kennt das Konzept einer "Datei" und ein Pseudo-Dateisystem (so ne Mischung aus debugfs, procfs, sysfs oder kernfs), was aber nur die interne Struktur des VFS an sich exportiert. Dateisysteme bleiben Module.
Weil ich Systeme, die mich zum Idioten erklären, nicht leiden kann. Das ist meine Natur, so bin ich, und das kann ich nicht leiden, weil ich mich nicht für einen Idioten halte.
Dann hast du wirklich ein Problem Also ich lasse mir von einem System nicht sagen, ob ich ein Idiot bin oder nicht
Du möchtest aber ein System programmieren, was den Benutzer prinzipiell zum Idioten erklärt, denn er kann ja nichts daran ändern.
Wie gesagt: Nichtmal Windows kann auf Stellschrauben verzichten, sie werden nur besser versteckt.
Ist ja richtig, aber wie viele Benutzer müssen da wirklich ran?
Ich war da öfter drin. Wenn man mit Settop-Boxen zu tun hat (Firmware-Updates oder Streamen des Fernsehsignals - also normale Benutzung), dann gibt es einige Tweaks, die diese Funktionalität erst ermöglichen, weil der Netzwerkstack in den normalen Einstellungen (und den Endnutzer-Windows-Versionen) für diese Lasten nicht ausreichend performt. Dazu muss man kein Guru sein, da gibt es ausgefeilte Scripte und Programme für, die dann ein paar Registry-Einträge verändern, das kriegt auch jeder Depp hin. (Bei Windows-Server sind das die Standardeinstellungen.) Und danach kann man vom DVB-T-Tuner auf eine Windows-Freigabe aufnehmen. Gäbe es die Stellschraube nicht, ginge es nie.
Und was sind das dann für Benutzer? Ich bin halt der Meinung, mit der Zielgruppe die ich habe, das sowas unnötig ist und nur mehr Code und Komplexität für Flexibilität bedeutet.
Das sind Benutzer, die einen Computer für Dinge einsetzen wollen, die der Betriebssystementwickler nicht vorgesehen hat. Wenn deine Zielgruppe nur aus Kindern und ihren Lernprogrammen sowie den Eltern mit dem Browser und Office-Paket besteht, dann hast du vielleicht Recht. Aber auch Familienväter könnten mal das Fernsehprogramm aufzeichnen wollen...
Ich bin mir aber auch darüber im Klaren, dass das auch nicht weit von dem entfernt ist was Apple mit iOS macht, sprich totale Bevormundung des Benutzers. Allerdings bin ich auch der Meinung, dass die meisten Benutzer bevormundet werden sollten, im Sinne aller Wir Freaks machen nunmal den geringeren Teil aus.
Damit betrachte ich die Diskussion für beendet. Implementiere eine Whitelist für Anwendungen. Ach so, und bitte führe die Diktatur wieder ein. Freiheit ist überbewertet.
Gruß,
Svenska,
der grad echt enttäuscht von dir ist.
[PS: Beim Absenden hab ich grad wieder einen HTTP 503 bekommen.]