Uniform Driver Interface: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
m Toned down the "Sales Pitch" and made the article more honest and down to earth.
More toning down of the hyperbole.
Line 17:
===Advantages===
* Portability (both cross-OS and cross-platform), which was mentioned in the above section, is perhaps the primary concern for which UDI was developed in the first place. All we can hope for is that enough operating systems will embrace the model so we can actually take advantage of it.
* Performance is comparable or better than that of legacy drivers for a native implementation. Let'sFor faceenvironments it,where performance is alwayscritical, importantUDI does not inhibit service quality. UDI featuresis aexplicitly non-blockingdesigned model,to besides thebe non-blocking oneand lockless, featuring a synchronization model for increased MP scalability andwithout muchlocking more.and UDImany driversother havehigh-scalability provenfocused themselves over DDI drivers (and others)features.
* CompatibilityUDI hascan alsointegrate been takenseamlessly into account.existing UDIkernel environments can be implemented regardless of the OS architecture ([[Monolithic Kernel|monolithic kernel]] vs. [[microkernel]], POSIX vs. non-POSIX, etc.) with little or no extra performance overhead for any exotic design one might think of.
* StabilityReliability isand usuallystability overlookedhave bybeen theexplicitly designprovided andfor falls back toby the implementation phasedesign. UDI tries to eliminate some categories of potential bugs, such as (but not limited to) resource leaks and deadlocks (all interfaces can potentially be implemented without any locking at all).
* Flexibility is another thing UDI has been designed mind with: not only in the way the specification was conceived (i.e., to be extensible), but also in the sense that it permits system programmers to apply techniques such as driver isolation, shadow drivers, etc. if they see fit to do so.
* The interface is fully asynchronous, in every respect; high scaling systems are becoming increasingly predominant and asynchronicity is slowly becoming an "expected" feature for modern kernels. UDI moves ahead of the herd to enable a compliant kernel to slowly adopt asynchronous interfaces without having to do major redesign later on.
 
===Disadvantages===