But Linux wasn’t a complete OS. It was just a kernel, unable to do anything useful without programs running in top of it.
So Linux was in search of programs already available for free that emulated the working environment of a UNIX-like computer… which was exactly what the GNU project was producing. Meanwhile the GNU project was struggling to develop a free, open source, UNIX-like kernel… which was exactly what Linus Torvalds and his crew were doing. So a perfect match was found. It is not that both teams merged into one. The GNU project continued with its development of the HURD. It’s just that for practical purposes, if one person wanted to have a complete OS, he needed both parts: the Linux kernel and the GNU applications.
That was the origin of a very fruitful relationship between Linux and GNU. Today many free software advocates call the OS by the full name GNU/Linux (pronounced “GNU slash Linux”). Richard Stallman even proposed the name “Lignux” one time. It you ever come across a discussion as to whether the OS should be called “Linux” or “GNU/Linux,” you should know that the latter name is defended by the followers of Richard Stallman who think his applications are as important as the kernel itself.