> because linux never picks the correct method

Because linux is not an operating system. A specific operating system will have some specific behaviour.