Abo
  • Services:
Anzeige
Parallele Browserengine in Rust
Parallele Browserengine in Rust (Bild: Mozilla)

Servo, der aktuelle Stand

Mozilla-Entwickler Patrick Walton hat in einer E-Mail den aktuellen Stand von Servo zusammengefasst. Demnach läuft Servo derzeit nur unter Linux und Mac OS X, es gibt aber keinen Grund dafür, dass Servo nicht auch unter Windows laufen sollte. Es hat sich bisher nur niemand darum gekümmert.

Strukturell verfolgt Mozilla bei Servo einen ähnlichen Ansatz wie das Webkit-Projekt und nutzt Git-Submodule, um die Browserengine in mehrere unabhängige Teile zu gliedern, die auch unabhängig voneinander entwickelt werden können. So sollen auch Module entstehen, die später in anderen Applikationen eingesetzt werden können, beispielsweise Netzwerk, URL-Parsing oder Layer.

Anzeige

Soweit möglich, verwendet Servo derzeit existierende C- und C++-Bibliotheken, was ausdrücklich nicht ausschließt, dass diese Funktionen später in parallelem Rust-Code nachgebaut werden. Mit diesem Ansatz aber lassen sich schneller erste Ergebnisse erzielen.

So verwendet Servo derzeit unter anderem Harfbuzz und Ragel zur Textdarstellung, Mozillas Azure zur Darstellung von 2D-Grafik sowie derzeit SDL und demnächst GLUT zur Abstraktion des nativen Fenstersystems. Zum Decodieren von Bildern wird stb_image und als Javascript-Engine Mozillas Spidermonkey eingesetzt. Die Netzwerkkommunikation wird über die von Node.js-Projekt entwickelte libuv abgewickelt, die eine Abstraktion der asynchronen I/O-Mechanismen unterschiedlicher Betriebssysteme bietet, einschließlich Windows.

Skalierbare Rendering-Engine

Die Arbeit an Servo konzentrierte sich bisher darauf, die Basis für eine skalierbaren Rendering-Engine zu schaffen. Dazu wurde die Rendering-Pipeline in mehrere Tasks aufgespalten, die als schlanke Rust-Threads umgesetzt sind.

Sobald Servo Unterstützung für mehrere Tabs und Fenster erhält, werden diese Tasks dann für jede Quelle repliziert. DOM-Strukturen werden zwischen den Tasks nach dem Modell Read-Copy-Update ausgetauscht. Sollte der Content-Task einen DOM-Node verändern, während der Layout-Task gerade darauf arbeitet, wird dieser DOM-Node temporär kopiert. So gibt es einen Content-Task, in dem Javascript läuft und der neue Layout-Tasks erzeugt und gleichzeitig verwaltet. Und einen Layout-Task, der weitere Tasks überwacht, die verschiedene Layout-Aufgaben erledigen. Derzeit arbeitet der Layout-Task noch weitgehend sequenziell, es wird aber beispielsweise an einem parallel arbeitenden CSS-Sektor gearbeitet.

Hinzu kommt ein Renderer-Task, der Displaylisten erhält und sie rendert. Allerdings soll noch eine Layer-Infrastruktur in Servo integriert werden, so dass später mehrere Render-Tasks parallel arbeiten können - jeweils einer pro Schicht.

Der Platform-Task kümmert sich um den Haupt-OS-Thread und die Ereignisschleife der zugrundeliegenden Plattform, die aber auf das Nötigste beschränkt werden soll. Ähnliches gilt für den Engine-Task, der ausschließlich dafür da ist, alle anderen Tasks zu überwachen. Der noch nicht implementierte I/O-Task soll die Netzwerkfunktionen übernehmen und dabei dem asynchronen Vorbild libuv folgen. Auch der Compositor-Task, der die einzelnen Layer zusammensetzt und sich um Scrollen und Animationen kümmern soll, ist noch nicht implementiert.

Servo wird offen entwickelt, der Code findet sich unter github.com/mozilla/servo.

 Servo: Mozilla arbeitet an einer neuen Browserengine

eye home zur Startseite
hobobobo 03. Apr 2013

Meinst du echt, dass es dem Web gut tun würde, wenn fast alle die gleiche Engine nutzen...

theonlyone 28. Jun 2012

Klar könnte man triviale Standards machen, aber HTML ist "riesig" und was da alles...



Anzeige

Stellenmarkt
  1. Daimler AG, Sindelfingen
  2. Deutsche Telekom AG, verschiedene Standorte
  3. W&W Asset Management GmbH, Ludwigsburg
  4. Bechtle IT-Systemhaus GmbH, Düsseldorf, Krefeld


Anzeige
Hardware-Angebote
  1. und Destiny 2 gratis erhalten
  2. (reduzierte Überstände, Restposten & Co.)

Folgen Sie uns
       


  1. Spieleklassiker

    Mafia digital bei GoG erhältlich

  2. Air-Berlin-Insolvenz

    Bundesbeamte müssen videotelefonieren statt zu fliegen

  3. Fraport

    Autonomer Bus im dichten Verkehr auf dem Flughafen

  4. Mixed Reality

    Microsoft verdoppelt Sichtfeld der Hololens

  5. Nvidia

    Shield TV ohne Controller kostet 200 Euro

  6. Die Woche im Video

    Wegen Krack wie auf Crack!

  7. Windows 10

    Fall Creators Update macht Ryzen schneller

  8. Gesundheitskarte

    T-Systems will Konnektor bald ausliefern

  9. Galaxy Tab Active 2

    Samsungs neues Ruggedized-Tablet kommt mit S-Pen

  10. Jaxa

    Japanische Forscher finden riesige Höhle im Mond



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Indiegames-Rundschau: Fantastische Fantasy und das Echo der Doppelgänger
Indiegames-Rundschau
Fantastische Fantasy und das Echo der Doppelgänger
  1. Verlag IGN übernimmt Indiegames-Anbieter Humble Bundle
  2. Indiegames-Rundschau Cyberpunk, Knetmännchen und Kampfsportkünstler
  3. Indiegames-Rundschau Fantasysport, Burgbelagerungen und ein amorpher Blob

Xperia Touch im Test: Sonys coolem Android-Projektor fehlt das Killerfeature
Xperia Touch im Test
Sonys coolem Android-Projektor fehlt das Killerfeature
  1. Roboter Sony lässt Aibo als Alexa-Konkurrenten wieder auferstehen
  2. Sony Xperia XZ1 Compact im Test Alternativlos für Freunde kleiner Smartphones
  3. Sony Xperia XZ1 und XZ1 Compact sind erhältlich

Arktika 1 im Test: Monster-verseuchte Eiszeitschönheit
Arktika 1 im Test
Monster-verseuchte Eiszeitschönheit
  1. TPCast Oculus Rift erhält Funkmodul
  2. Oculus Go Alleine lauffähiges VR-Headset für 200 US-Dollar vorgestellt
  3. Virtual Reality Update bindet Steam-Rift in Oculus Home ein

  1. Re: 1. Win10 Bluescreen nach Update

    HubertHans | 01:27

  2. Re: Guter Trend auf Golem

    FreiGeistler | 01:09

  3. Re: Leider verpennt

    quineloe | 01:06

  4. Re: "Es sei nicht einzusehen, dass Netflix an die...

    Der Held vom... | 01:00

  5. Re: Gefunden...

    FreiGeistler | 00:20


  1. 17:14

  2. 16:25

  3. 15:34

  4. 13:05

  5. 11:59

  6. 09:03

  7. 22:38

  8. 18:00


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel