Historically, job control was written by Bill Joy for the csh, while he was working on a new, cheap serial terminal - the Lear-Siegler ADM-3A. This terminal is famous for defining the arrows for Joy's vi editor, and assigning the ~ tilde character as the home directory in all POSIX shells.<p><a href="https://en.wikipedia.org/wiki/ADM-3A" rel="nofollow">https://en.wikipedia.org/wiki/ADM-3A</a><p>It is unfortunate that Bill Joy was both the first and last word in job control (even as his csh has been largely abandoned), as this functionality has been copied first into the Korn shell, then into the POSIX shell, and hasn't seen any substantial improvement since the 1970s.<p>It would be very helpful if shell job control could address available processors (and become aware of asymmetric big/LITTLE configurations), hold jobs until CPUs become available, and keep a list of failed jobs for retry.<p>The standards will likely never implement this functionality. This is the fault of the Austin Group.