https://learning.oreilly.com/library/view/linux-cookbook-2nd/9781492087151