Spíš na jaké planetě žije Firefox? Neřešme konkrétní OS nebo platformu, klidně uvažuj třeba WidloDOS 10.
Jeden proces obsahuje minimálně jedno vlákno, ale klidně je jich víc (například komunikace, paralelní výpočty). Vše v jednom procesu a se sdílením paměti, zamykání pomocí semaforů a mutexů,... To je příklad současnýho FF, kde taby sdílí paměť a při dynamické alokaci a nesmazání uvolněné paměti je přiděleno něco, kde už jsou data (klidně třeba PKI).
Pokud to nasekám do víc procesů, každý z nich má možnost obsloužit několik vláken.
To, co se píše v článku, to popisuje jako dělení vodorovně - jedna vrstva UI, druhá pluginy, třetí zpracování a renderování webu a svislý dělení je do vláken (pro každý tab). Na každé z těchto úrovní je sdíleí paměti, ale plugin nevidí přímo data, který má zpracovat a je potřeba na to jít třeba pomocí roury. Ale zato vidí na data sousedního tabu, a to je blbě - v jednom tabu může jet třeba bankovnictví nebo jiná důvěrná aplikace. A všechny animace všech tabů furt odře jedno CPU.
Mnohem lepší by bylo sekat svisle na procesy, kdy každý tab dostane svou RAMku, kde si nasdílí data, nevidí ostatní taby, může jet na libovolným CPU a plugin si udělá svoje vlákno na přehrávání zvuku, který se může dostat jenom k datům s ním zobrazené stránky. A jeden proces, který to zaštítí oknem a řízením.
Otázka je, co na tom e10s trvalo tak dlouho? Vymýšlení a testování ochrany paměti tabu? Nebo vymýšlení rychlé komunikace mezi procesy, když plugin potřebuje sosat data ze stránky a rychle je předávat? Obojí by měli při dělení svisle zadarmo... Prostě FF je čím dál víc bastl.