The article is quite specific to the .Net garbage collector. Only some of the most general concepts touched on in the introductory sections apply to other garbage collected languages.
In particular as far as I know .NET's decision to segment things into 3 generations is pretty unusual.
Looks broadly identical to JVM generations. Gen0 = eden space, Gen1 = survivor space, Gen2 = old gen (think they're calling it tenured now lol).
Unless I'm creatively remembering, Dave Moon's EGC (Ephemeral Garbage Collector) in Symbolics Genera in 1985(?) had three generations.