Gerade das copy-on-write Verhalten kann ich mit im virtuellen Speicher von Windows als echte Aufgabe vorstellen.
Das wird das geringste Problem sein. Kompliziert ist bei der Verwaltung von virtuellen Speicher eigentlich "nur" die Entscheidung, welche Seiten nun im physischen Speicher bleiben und welche ausgeswapt werden.
Meiner Meinung nach passen Threads und fork als Konzept einfach nicht wirklich zueinander. Und es ist ja nicht nur die Frage, wie mit Threads beim forken umgegangen wird, sondern auch mit anderen
Ressourcen (Locks, Handles/Filedescriptoren, usw.).
Ich halte fork (auch heute) für ein interessantes Konzept, insbesondere weil man effizient und ziemlich einfach Speicher mit komplexen Datentypen teilen kann und Trennung in unterschiedliche Addressräume hat. Das Nächste was in diese Richtung gehen würde, wäre Rumgebastel mit Memory Mapped Files.
Aber die meisten Anwendungen sind mit Threads wohl
sehr viel besser bedient.