Die Chance für die Zukunft

Nun kommt ja Windows 8.1. Das Vorgängermodell Windows 8 hat ja viel Kritik bekommen, vor allem wegen der  Ausrichtung auf die Bedienung mit Gesten und der Bruch mit alten Windows Traditionen. Nun muss man aber eines bedenken: Warum sollte Microsoft viel Arbeit in ein Windows 8 stecken? Die meisten Einnahmen kommen bei Windows nicht durch die Verkäufe im Einzelhandel, sondern durch Lizenzeinnahmen, weil es auf jedem neuen PC vorinstalliert ist. Die fließen egal ob Windows 7 oder 8 installiert ist. Viel lukrativer ist da der boomende Markt von Tabletts und Smartphones. Zum einen ist man da nicht vertreten sondern Apple und Android. Zum anderen kauft man sich die Geräte zusätzlich zum PC und nutzt sie nur 24 Monate lang bis es den nächsten Vertrag gibt. Apple hat seine Käufer sogar zu jährlichen Neukäufen bewegt.

Also da gibt es erheblich mehr zu verdienen. Was Windows 8 aber ist, dabei weitgehend untergegangen: es ist die erste Version die auch auf einem ARM läuft. Vorher gab es für Handys und andere kleinere Geräte spezielle Versionen wie Windows Mobile und Windows Phone. Nun gibt es eine einzige für alle Geräte vom Handy bis zum PC. Damit ist erstmals die Schicksalsallianz „Wintel“ geknackt. Windows ist nicht mehr auf  Gedeih und Verderb an x86 Prozessoren  gebunden. Mit Delphi kann man inzwischen auch Apps für iOS und Anrdoidgeräte entwickeln, durch Neucompilieren laufen sie aber auch unter Windows. Damit hat man so etwas wie Cross-Plattform Programmierung. Neu ist das nicht. Java hat das ja schon mal versprochen, aber so richtig durchgesetzt hat es sich nicht.

Darin liegt auch eine Chance jenseits der Mobilgeräte. Nämlich dass sich die PC-Architektur auch von der x86 Linie lösen könnte. Eigentlich wunderlich das es so lange dauert, denn Windows Programmierung heißt ja schon lange nichts anderes als API Funktionen aufzurufen. Solange diese gleich bleiben müsste Windows auf jeder Architektur laufen, natürlich mit einigen Hardwarelimitationen. So wird man bei kleinen Bildschirmen wohl nicht sehr glücklich sein und auf einem 8 Bit ATNega dürfte es wahrscheinlich mangels Speicher auch nicht laufen. Aber neben der Möglichkeit das einmal ARM Chips denn x86 Prozessor ersetzen könnten (erste Notebooks damit sind ja schon auf dem Markt) gibt es auch die Möglichkeit einen neuen Prozessor  zu konstruieren. Intel selbst ist ja mit dem Langleben seines Prozessor so recht zufrieden und hat mindestens zwei Versuche unternommen andere Architekturen als Ersatz zu platzieren (860 und Itaniumprozessor). Dabei hat der Nutzer nicht sehr viel von den Verbesserungen am Prozessor in den letzten Jahren. Wer heute ein Windowsprogramm decompiliert wird feststellen, dass es oft den kleinsten gemeinsamen Nenner enthält – 386, 486 oder Pentium Code. Von den Erweiterungen die es seitdem gab wie MMX, SSE, SSE2,SSE3 … AVX merkt man wenig, denn wird man das einsetzen läuft es auf Prozessoren nicht die die Erweiterung nicht haben und vor allem sind alle Erweiterungen beschränkt auf Fließkommabefehle. wer aber nun nicht gerade wissenschaftliche Berechnungen hat, bei dem wird die CPU vor allem Ganzzahloperationen durchführen.

Die Loslösung von der Prozessorarchitektur wäre auch für Intel die Gelegenheit einen neuen Prozessor aufzulegen, einen sauberen, effizienteren RISC-Prozessor ohne Altlasten und wenn ich einen Tipp (aus 25 Jahren x86 Geschichte) geben darf: legt ihn gleich für die Zukunft aus. Wie macht man das? Indem man Features vorsieht die man noch gar nicht umsetzen kann, aber für die Zukunft reserviert. Das könnten im Befehlssatz komplexe Instruktionen sein, die wenn sie im Code aufkommen, erst mal bei der ersten Generation den Aufruf eines Unterprogramms bedeuten dass man aus einem Festwertspeicher laden kann. Das ist so wie früher die 8087 Operationen auf dem 8086 „emuliert“ wurden. Die nächste Generation kann sie dann nativ im Microcode und ist so erheblich schneller. Man könnte, da Programme immer noch Probleme mit mehrfachen Theads haben und diese auch Synchronisierungsaufwand bedeuten, mehrere Kerne als einen Prozessor nach außen darstellen, anders als das derzeitige „Mappen“ auf Funktionseinheiten aber transparent.  z.B. 65536 Register in 16 Register Blöcken vorsehen. Beim ersten Exemplar gäbe es vielleicht nur 16 Register und der Rest würde über den Arbeitsspeicher gemappt. Die zweite Generation hat dann zwei Kerne mit je 16 Register und so kann man leicht 4096 Kerne (in der 12 Generation) integrieren, Es muss nur festgelegt sein, dass jeweils die unteren 4 Bits der Registernummer zu einem Kern gehören und verschiedene Register dann bedeuten dass man mehrere Kerne gleichzeitig mit Arbeit versorgen kann.

Der wesentliche Vorteil beider Systeme ist, dass man die Software für spätere Versionen nicht neu übersetzen muss. Sie wird automatisch schneller. Ein anderer Ausweg aus dem Dilemma ist was Microsoft mit .NET anstrebt, aber bisher noch nicht eingelöst hat. Der Code wird in einen Zwischencode übersetzt und von der virtuellen Maschine dann in Maschinencode. Diese virtuelle Maschine soll den Maschinencode erzeugen der am besten für einen Prozessor am besten ist. Doch Tests bei ähnlichen Prozessoren einmal mit und einmal ohne AVX zeigten, dass dem nicht so ist. Intel wäre wohl besser beraten ihren C-Compiler in einer Spezialversion zu verschenken, der neben der EXE noch eine zweite Datei erzeugt, die einen verschlüsselten Quelltext enthält. Dazu würde Intel noch den C-Compiler ausliefern. Wenn das Programm beim ersten Mal startet wird neben der EXE die im Vordergrund läuft der Code dann erneut übersetzt – nun aber mit allen Optimierungen für den gerade im PC steckenden Prozessor. Das wichtigste an diesem Konzept wäre wohl, dass es eine sichere Verschlüsselung gibt. Doch mit den heute möglichen verschlüsselungsverfahren ist das kein Problem.

Was in jedem Fall geht, wie der Wechsel auf ARM beweisen hat – man muss nicht 25 Jahre an einer Architektur festhalten, sondern kann sich von ihr trennen, Apple hat das ja auch zweimal vorgemacht mit dem Wechsel von MC68k auf Power PC und dann auf Intel x86. Dann wurden eben für alte Programme Emulationsschichten mitgeliefert und neue waren so übersetzt das sie auf alten und neuen Prozessoren liefen. Das ist alles möglich, man muss nur wollen.

Was hätte es für den Benutzer für Vorteile: ein fundamental neues Design hat die Möglichkeit einige besser zu machen. Mit derselben Transistorzahl eine höhere Rechenleistung erreichen (RISC anstatt CISC) oder stromsparender zu sein (das ist der wesentliche Vorteil des ARM, weshalb er auch die Mobilgeräte dominiert). Davon profitiert auch der Endanwender, genauso davon, das potenziell ein Programm sowohl auf einem Tablet wie auch einem Notebook laufen. Doch da dürfte Microsoft mit so kreativen Konzepten wie gemieteten Anwendungen (Office 2013) einen Riegel vorschieben, sonst könnte man ja nur einmal abkassieren…

10 thoughts on “Die Chance für die Zukunft

  1. Was ich dazu erwähnenswert finde…

    Das heutige Windows, d.h. das auf der NT-Linie basierende, war noch nie an eine Prozessorarchitektur gebunden. Es wurde Anfang der 90er mit Hinblick auf maximale Portabilität entworfen, d.h. nur geringe, i.d.R. unvermeidbare Teile des Systems wurden in Assembler geschrieben und der Großteil in C. Dabei zielte es ursprünglich nicht einmal primär auf die x86-Architektur ab, sondern auf die des Intel 860 (aus dem ja bekanntlich nichts wurde). Die erste Version (NT 3.1) lief schließlich neben x86 u.a. auf Alpha- und PowerPC-Rechnern; letztendlich war es schlichtweg die sich herausbildende Dominanz der x86-Prozessoren, dass eine Plattform nach der anderen allmählich Verschwand und nur noch x86 übrig blieb (Beispiel Windows 2000). Nach dem gescheiterten Versuch, Anfang der 2000er dann die Itanium-Architektur zu etablieren, ist nun erstmals Windows 8 wieder auf mehr als nur einer Prozessorarchitektur lauffähig: ARM. Dass die das Potential hat, auf mobilen Endgeräten die x86-Architektur zu ersetzen mag sein, allerdings kann ich mir nicht vorstellen, dass dies auf den High-End-Bereich zutreffen wird. Da wäre mir ein völlig neuer, zukunftsorientierter RISC-Chip mit den angesprochenen Features lieber. Die Portierung von Windows auf die ARM-Architektur hat ja mit Sicherheit den Weg ein wenig geebnet, die sich über die Jahre eingeschlichenen Anpassungen an x86 wieder auf dem Quelltext zu bekommen und zukünftige Ports wieder schneller und einfacher umsetzen zu können. Es liegt hier einzig und allein an den Architekten der Prozessoren, ob ein solcher Zukunftschip eine Chance hat und Firmen wie Microsoft dafür ins Boot zu holen.

  2. Du hast MIPS vergesssen.

    Betriebssysteme haben heute eigentlich mit dem Prozessor fast nichts mehr zu tun. Wie du selbst schreibst entsteht das meiste in C. Bei so etwas wie Windows entfällt auch der meiste Code auf die Oberfläche, Anbindung von Treiber etc. Da ist viel mehr Arbeit zu leisten, weil in einem Phone natürlich keine PC-Hardware verbaut ist.

    Deshalb meine ich ist der reine wechsel des Prozessors (aber Schnittstellen zu Massenspeichern, Belegung der Steckplätze etc bleiben alles konstant eigentlich kein großes Ding.

  3. Kleinweich hat sich selbst ins Knie geschossen, indem sie Systemkern und Nutzeroberfläche nicht sauber getrennt haben. Bei Linux seit ewigen Zeiten kein Problem, Jeder kann sich die Oberfläche aussuchen, die ihm gefällt. Bis hin zum reinen Textmodus. (Wozu braucht auch ein Server, an dem nicht mal ein Bildschirm angeschlossen ist, unbedingt eine grafische Nutzeroberfläche?)

    .net ist auch so ein Reinfall. Selbst der Hersteller sagt immer wieder, Leute deaktiviert den Scheiß aus Sicherheitsgründen.

    Einen Zukunftsorientierten Prozessor wird es wohl nicht geben, der wäre einfach schlecht fürs Geschäft. Viel besser ist es für die Hersteller, wenn jede neue Systemversion auch neue Hardware braucht. Und umgedreht, jede neue Hardware auch eine neue Systemversion, die sie unterstützt.

    Mit Emulatoren ist das auch so eine Sache. Inzwischen gibt es ja einige DOS-Emulatoren, um auch alte Spiele wieder nutzen zu können. Nur: Die sind nicht vom Marktführer, sondern von Bastlern. Im Gegensatz zum Marktführer sind die noch in der Lage, sich am Bedarf der Kunden zu orientieren.

  4. Moin,

    das Hauptproblem von W8 ist das es echte W8 Anwendungen nur im Windows Apps Shop gibt. Dieser hat jedoch ähnliche Restriktionen wie der Apple Shop, d.h. pg13. Keine Porno Anwendungen (z.b. wurde eine App zum berechnen von BHs grössen von Apple abgelehnt), keine politischen Anwendungen (z.b. gibts die AKW & Strahlungs App nicht für Apple), und nichts was in direkte Konkurenz zu M$ Produkten steht.

    Aus diesem Grund gibt es inzwischen wieder mehr Spiele unter OpenGL, weil mit OpenGL auch Linux und MacOS möglich ist, und Steam z.b. unter Linux keine pg13 Probleme hat.

    Siehe: http://www.youtube.com/watch?v=HUEvRyemKSg
    Und: http://www.fourmilab.ch/documents/digital-imprimatur/

    ciao,Michael

  5. Windows entwickelt sich eigentlich stabil, ich finde Windows 7 ist ein sehr gutes System und bietet mehr Freiheit als vorherige Systeme. Mit Windows 8 macht MS den gleichen Fehler wie es mit Gnome/KDE auch passiert ist. Die User haben keine Lust sich von heute auf morgen neu an etwas zu gewöhnen, diese wollen es langsam und selbst erlernen.

    > Bei Linux seit ewigen Zeiten kein Problem,
    > Jeder kann sich die Oberfläche aussuchen, die ihm gefällt.

    Das stimmt so nicht ganz. Oberflächen aussuchen sicher, aber Gnome/KDE haben hier die gleichen Fehler gemacht. Sie stellen die User vor vollendete Tatsachen, ohne an die User zu denken. Am Ende hat sich die Gemeinschaft mehr oder weniger gespalten und Forks entstehen ohne Notwendigkeit. Die sollten die Manpower lieber in die Projekte gemeinsam stecken und auf die user hören. Wie bei Windows eine Frage gefordert wird nach Desktop/Tablet/Smartphone hätten Gnome/KDE entsprechende Fragen auch den User stellen sollen. Fortschritt ist ja schön aber nach Jahren alter Technik muss man auch mal eine Chance haben sich freiwillig an etwas zu gewöhnen und nicht mit Gewalt. Du kannst Windowmanager auswählen, aber die meisten nutzen nun einmal Gnome/KDE und denen reicht ein XFCE (meiner) dann nicht.

    > Bis hin zum reinen Textmodus.
    > (Wozu braucht auch ein Server, an dem nicht mal ein
    > Bildschirm angeschlossen ist, unbedingt eine grafische
    > Nutzeroberfläche?)

    Es kommt auf die Verwendung an und natürlich kann man sich auch bei Windows Rechnern die Oberfläche über das Netzwerk holen. Man benötigt also kein Bildschirm am Server.

    Die neueren Server Versionen haben keine grafische Oberfläche, die kann man abschalten, zumal die Power Shell recht mächtig ist. Macht manchmal sogar richtig Spaß.

  6. Wenn etwas als wirklich besser erachtet wird, wollen sich die Nutzer daran gewöhnen. Als Apple das iPhone einführte, hatten sie damit sofort Erfolg. Ich finde Windows 8 besser als die Vorgängerversionen, aber es ist nicht die riesen Neuerung, als dass sie sofort akzeptiert wird. Es sollte meiner Meinung nach auch noch ein 8.2 geben, in dem z.B. ein Metro-Dateimanager als Alternative eigeführt wird. Man könnte sich dann Stück für Stück an die neue Oberfläche gewöhnen, sodass sie eines Tages abgelöst wird.

  7. Das könnten im Befehlssatz komplexe Instruktionen sein, die wenn sie im Code aufkommen, erst mal bei der ersten Generation den Aufruf eines Unterprogramms bedeuten dass man aus einem Festwertspeicher laden kann. Das ist so wie früher die 8087 Operationen auf dem 8086 “emuliert” wurden. Die nächste Generation kann sie dann nativ im Microcode und ist so erheblich schneller.

    Das ist dann aber kein RISC mehr, sonden wieder CISC.

    Weitere Anmerkungen:
    Was die vielen Erweiterungen des CPU-Befehlssatzes angeht, ist es da nicht zumindest bei der Professional Software so, dass die Hersteller bestimmte DLLs mehrfach erstellen, so das die Möglichkeiten der jeweiligen Erweiterung auch genutzt werden können? Das sollte für die Hersteller im Hochpreisigen Segment eigentlich kein Problem sein, zumal mir dafür auch nur rechenintensive Anwendungen wie CAD, andere Hi-End-Grafik und eben Simulationen aller Art einfallen, womit wir u.a. auch wieder im wissenschaftlichen Bereich wären.
    Nebenbei frag ich mich gerade noch, ob es überhaupt ein Betriebssystem gibt, das die Schutzmechanismen der Intel-CPUs vollständig nutzt. Ich meine jetzt speziell die Ring-Architektur. Da gibt es diese 4 „Ringe“ die unterschiedliche Privilegien haben, aber von Windows werden AFAIK nur 2 genutzt. Bei Linux verhält es sich ähnlich, soweit ich weis, von MacOS hab ich keine Ahnung.

    Und was Microsoft mit .NET anstrebt ist doch das selbe, was Sun mit Java vor hatte. Was Oracle jetzt letztlich daraus machen wird, weis ich nicht. Aber soweit ich das bisher verfolgt habe, scheinen die mit Java nicht wirklich glücklich zu sein.
    Bezüglich GUI werde ich als last-Adopter beim nächsten PC darauf achten, dass ich dafür noch Win7 dazu bekomme und um Win 8 solange einen Bogen machen, bis es sich nicht mehr vermeiden lässt. Aber eher werde ich auf Linux umsatteln.

    Der C/C Compiler von Intel setzt unter Windows ein intalliertes MS Visual Studio voraus, wenn ich mich nicht irre. Und das nervt, wenn man nicht mit VS-Studio arbeitet/arbeiten will. – Abgesehen davon kauf ich, wenn es eben geht, lieber Rechner mit AMD-Prozessoren, also bringt mir der Intel-Compiler nichts.

    Office 2013 = gemietete Anwendung? – Ich dachte, das wär Office 365. Oder war letzteres nur für die Cloud?

  8. @Hans: Ich glaube OS2 nutzte damals tatsächlich mehr als zwei Ringe. Normalerweise wird eben nur Ring 0 (Kernel) und Ring 3 (User) verwendet, eben auch deshalb, weil viele andere Prozessorarchitekturen eben nur zwei Modis kennen und sonst das Betriebssystem nicht mehr portabel wäre. Aber ganz ehrlich, solange wir weiterhin monolithische Kernel anstatt Microkernel und Programmiersprachen wie C verwenden brauchen wir uns keine Illusionen über die Sicherheit unserer Betriebssysteme machen.

    Mir würde bei x86 bzw x64 eigentlich schon genügen wenn sie endlich einen tagged-TLB einführen würden, das würde Taskwechsel ungemein beschleunigen. Eine schöne RISC-Architektur oder eine Multicore-Architektur die diesen Namen auch verdient wäre natürlich nochmal besser.

  9. Moin Hans,

    32bit Xen läuft in Ring 0, Gäste in Ring 1, User Space in Ring 3. 64bit Xen hingegen hat auch den Gast Kernel im Ring 3, jedoch in einem speziellen geschützten Adressbereich.

    Bei QNX läuft der nur der Microkernel in Ring 0, die Devicetreiber und ähnliches in Ring 1, und normale Prozesse in Ring 3. Ring 2 kann von Root Prozessen benutzt werden.

    ciao,Michael

  10. Ah okay, danke für die Infos.
    Mich interessierte das hauptsächlich deshalb, weil in Assemblerbüchern zur x86-Architektur zwar steht, dass es die 4 Ringe gibt, dann aber meisst ohne weitere Erklärung irgendwo anders, dass unter Windows nur zwei davon genutzt werden. Das kam mir irgendwie seltsam vor. Aber wenn andere Prozessorarchitekturen nur zwei Modi kennen, zu denen es auch kompatibel sein soll, dann leuchtet es ein.
    Aber interessant, dass es doch noch Systeme gibt, die die vorhandenen Möglichkeiten auch nutzen, obwohl ich von diesen Systemen noch nix gehört bzw. gelesen habe.

Schreibe einen Kommentar zu Niels Harksen Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.