Inversion of Control vs Dependency Inversion?
Эти принципы просто относятся к разным вещам. IoC предлагает некий способ организации управления потоком выполнения в системе (кто кого почему и когда вызывает), в то время как DIP предлагает соблюдать определенное направление при организации зависимостей (между модулями), основываясь на уровне абстрактности оных.
В общем оба они направлены на повышение качественных характеристик системы (и это в них, как и во всех прочих принципах ООД, действительно общее), только один "подходит к проблеме" со стороны поведенческих аспектов системы, а второй - со стороны структурных.
DI - это частный случай IoC, с IoC вам нужно самим вызвать/доставать нужные "компоненты", когда DI сам их вам поставляет, например в качестве параметров в ф-ии.