Dragging point D around the unit semi circle results in perfectly linear motion. Points A and D are on the unit circle. Other rod lengths can be arbitrary as long as they are physically feasible.

You can switch on the circles that make up the linkages or you can view the step by step construction in my YouTube video. You might want to watch that at faster than 1X playback speed.