결과물을 가지고 비교하시는 것이 가장 이해가 쉬울 것 같습니다.
managed 는, 결과물을 IL Code 로 내놓습니다. 실제 실행되기 위해서는 해당 IL Code 는 반드시 기계어 코드로 바뀌어져야 합니다
반면 unmanaged 는, 결과물이 예전과 동일하게 기계어 코드입니다.
managed 는 그 성격상, 반드시 .NET Runtime 을 필요로 하지만, unmanaged 는 그렇지 않습니다. 현재 VS.NET 이후로 유일하게 Unmanaged 환경을 지원하는 언어는 VC++ 뿐입니다. 나머지는 모두 managed 코드를 생산하고 있습니다.
다르게 표현해보면.
managed 는 그 실행환경 자체가 CLR 에 의해서 "관리"되어 집니다.
하지만, unmanaged 는 "관리"를 해주는 환경이 없이 운영체제 위에서 바로 실행이 되어지죠. ^^