Midori nimmt Formen an: Das Ende von Windows ist besiegelt

Um sicher zu gehen, dass keine native Malware eingeschleust wird, muss Midori nativen Code von außen ganz und gar verbieten. Das wird zumindest bei Treibern für PCI-Geräte nicht funktionieren. Bei Geräten, die über USB, Bluetooth, SCSI oder SATA angeschlossen sind, kann man Treiber komplett in Managed Code entwickeln. Bei PCI-Geräte müssen zumindest Interrupthandler und Hardware-I/O mit nativem Code realisiert werden. Die Handler für Deferred Procedure Calls lassen sich auch in Managed Code entwickeln.

Wenn Treiber für USB-Geräte komplett in Managed Code entwickelt werden, hat das natürlich Stabilitätsvorteile. Schlecht programmierte Treiber für Noname-DVB-T-Sticks können nicht mehr den ganzen Computer zum Absturz bringen, so wie das heute oft der Fall ist. Bei PCI-Geräten wird der Anteil von Native Code immerhin stark reduziert, so dass Hoffnung besteht, dass sich Entwickler genug Mühe geben, um den nativen Teil des Codes absturzsicher zu programmieren.

Ungeklärt ist bis jetzt allerdings, ob Microsoft für Anwendungsprogramme weiterhin Native Code erlaubt. Obwohl Managed Code für viele komplexe Anwendungen die richtige Lösung ist, gibt es durchaus performancekritische Routinen, die sich schneller und effektiver mit C oder Assembler lösen lassen. Webanwendungen, die sich häufig ändern und zudem naturgemäß dem Internet ausgesetzt sind, lassen sich in C gar nicht so schnell entwickeln, wie sie sich wieder ändern. Flüchtigkeitsfehler mit möglicherweise fatalen Folgen für die Sicherheit sind vorprogrammiert. Managed Code, beispielsweise in C#, ist in diesem Fall die richtige Lösung.

Im technisch-wissenschaftlichen Umfeld gibt es hingegen sehr rechenintensive Anwendungen, die sich durch immer weitere Optimierungen beschleunigen lassen. Nicht selten arbeiten Programmierer mehrere Jahrzehnte an der Optimierung von mathematischen Algorithmen. Das geschieht meist in C oder in Assembler. Diese hochoptimierten Algorithmen lassen sich nicht in die Beschränkungen von Managed Code zwängen. Für Anwendungen wie Kinofilmeffekte, Windkanalsimulation oder Molekülmodellierung ist Managed Code wenig geeignet. Je näher man direkt am Prozessor programmiert, beispielsweise durch direkten Zugriff auf SSE2-Befehle mittels Compiler Intrinsics, desto schneller wird der Code. An solche Techniken ist bei Managed Code nicht zu denken.

Man sollte nicht der falschen Vorstellung verfallen, dass Managed Code den größten Teil aller Sicherheitsprobleme löst. Managed Code, so wie er in Midori vermutlich zwingend vorgeschrieben ist, geht nur ein Teilaspekt von fehlerhaftem Code an, der immer dann entsteht, wenn Code von Menschen geschrieben wird. Trotz aller Sorgfalt gibt es keine bugfreien Programme.

Themenseiten: Betriebssystem, Microsoft, Security-Analysen, Windows

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

10 Kommentare zu Midori nimmt Formen an: Das Ende von Windows ist besiegelt

Kommentar hinzufügen
  • Am 21. April 2009 um 20:17 von nobody

    Unbegründet …
    "Denn dabei besteht die konkrete Gefahr, die Marktführerschaft einzubüßen, wenn Midori keine breite Akzeptanz findet." – Falsche Schlussfolgerung!
    Technologien können über reine Themen oder Sparten den Einstieg beginnen.
    Zum Beispiel: Midori mit Exchange. Dadurch liese sich die Technologie in kleineren Rahmen testen und später in andere Sparten ausweiten, bis hin zu den Clients im Endstadium.
    Viel spannender ist die Frage: Wo sieht Linux dann aus? oder beginnt dann schon das Web 3.0 um sich zu greifen ….

  • Am 22. April 2009 um 9:28 von Michél

    Lohnt es sich noch…?
    Lohnt es sich denn dann noch in NET einzuarbeiten. Erfahrungen mit dem SQL Server zu sammeln und Datenbankanwendungen mit C Sharp zu programmieren???

    Oder sollte man sich in weiser voraussicht schon auf Alternativen stürzen?

    • Am 22. April 2009 um 11:58 von Dino

      AW: Lohnt es sich noch…?
      Da du sowieso dann mit C# (soll java imitieren) arbeiten musst das keine pointer kennt, wird es warscheinlich klüger sein c’# zu lernen als c++ aber bis dahin ist noch viel zeit. und bis dahin sollte man eh entweder mit c++ oder java arbeiten je nach den anforderungen die gestellt werden.
      Es gibt auch ein altes bosnisches sprichwort: "Von zuviel Wissen hat noch keiner Kopfschmerzen gekriegt!".

    • Am 22. April 2009 um 16:15 von jal

      AW: Lohnt es sich noch…?
      Python ist die Alternative :-)

  • Am 25. April 2009 um 19:26 von mac4ever

    Alternativen
    Solange die Anwender die Macken von Windows für "nromales Computerverhalten" halten und hinnehmen, Linux bei 1% MA auf dem Desktop dahindümpelt und Macs als "elitär" und "überteuert" halten (wer braucht schon Technik, die gut funktioniert, wenn es auch welche tut, die weniger gut funktioniert), ist doch alles in bester Ordnung!

    Aber für MS wird nicht alles beim Alten bleiben:

    Das MacOSX entwickelt sich gerade zur endlich auch breiter akzeptierten Alternative für diejenigen, die für erheblich weniger Probleme bereit sind, ein wenig mehr Geld auszugeben. Das spricht sich herum . gut so!

    • Am 26. April 2009 um 15:25 von Dino

      AW: Alternativen
      Also Mac OS X als ernsthafte bedrohung zu sehen für Windows ist ungefähr das gleiche wie Zune als ernsthafte bedrohung für den ipod. Also Linux mag zwar auf 2% rumdümpeln aber die 5 bis 8% vom Mac sind auch nicht gerade riesig vor allem in anbetracht der momentanen finanzkrise ist keiner bereit für Mac mehr zu zahlen die selbe hardware und ein betriebssystem zu kriegen das zwar schöner aussieht als windows aber genau so anfällig ist was man auch sehen würde wenn es wirklich viele mac benutzer geben würde :D
      also schön auf dem boden bleiben.

  • Am 5. Mai 2009 um 18:28 von Bytehunter

    Vorherrschaft
    Es gibt vor allem auch einen ganz großen Punkt, warum Windows (zumindest im privaten Bereich) überhaupt noch existent ist: Die Spiele-Industrie !
    Solange Zocken auf Linux oder Mac nur Tetris-Charakter hat wird Windoof
    immer der Standard bleiben.
    Da bin ich bei Midori allerdings gespannt, ob das quasi-Monopol gesprengt wird.

    • Am 9. Juni 2009 um 10:54 von Thomas F.

      Jepp, die Spiele sind es!
      Genau so sehe ich das schon seit Jahren.
      Ich spiele auch mit 44 Jahren noch leidenschaftlich gern am PC, und das seit ich mit 16 Jahren in der Schule an den ersten ASCII-Spielen mitprogrammierte.
      Alle andern Tätigkeiten wie Home-Office, Webentwicklung usw. kann ich gut mit jedem anderen BS tun. Aber die Spiele binden mich an Windows. Sollte es irgendwann möglich sein, alle Spiele genauso unter Linux zu spielen – und sollte Linux so anwenderfreundlich werden wie es Windows heute ist – dann wechsle ich sofort mit Freuden.

  • Am 9. Juni 2009 um 11:09 von Thomas F.

    Kommt mir sehr bekannt vor
    Damals beim AMIGA OS war es schon so, dass jeder Prozess seinen Speicher vom Kernel erbitten musste und der ihm dann einen Bereich zuwies. Kein Prozess wusste. wo der Speicher wirklich lag, er wurde vom Kernel in Echtzeit umadressiert. Und das war schnell. Überläufe waren so nicht möglich. Man konnte so auch problemlos jeden Prozess einfrieren oder killen, wobei das komplette RAM zurückgegeben wurde.
    Kaum 20 Jahre später kommt auch MS auf die Idee. :-)

    • Am 1. Juni 2010 um 12:44 von adams

      AW: Kommt mir sehr bekannt vor
      Die älteren Amigas hatten eine 68000 CPU von Motorola. Diese hatte keine MMU. Somit konnten die Adressen nicht ‚umprogrammiert‘ werden. Das einzige was gemacht wurde ist, dass eine relative Adressierung verwendet wurde. Das hat aber auch schon DOS gemacht. Erst die 68030 brachte eine MMU mit, die einen Speicherschutz ermöglichte. Gleiches war ab dem 386er von Intel (im Protected Mode) möglich. Die Idee so etwas auszunutzen ist dann auch ab windows 3.1 geschehen.
      Im übrigen ist es im Amiga schon zu Speicherüberläufen durch Programme gekommen. Dies führte dann zu den bekannten Guru-Meditations.
      Das neue an Midori ist doch, dass bevor ein Programm gestartet wird, nun bekannt ist, dass (theoretisch) kein Speicherüberlauf passieren kann. Dies wird durch ein Zusammenspiel der MSIL und dem Compiler ermöglicht.
      Das Amiga-OS hat Prozesse einfach nur gestartet und drauf *gehofft*, dass kein Prozess Mist baut…

Schreibe einen Kommentar

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