OK, maybe not the perfect injection point but this does, sort of, dove
tail into the latest Pontificates article. Can it be that you (Peter)
have crossed over to the dark side? Implementing garbage collection,
preventing buffer overruns, what’s next, allowing threads to trounce on
all of memory and the system fully recover or better yet crash and
continue running? Hmm, maybe the Blue Pill does have its application in
Windows.
Allowing this type of blind development; sloppy implementation, bad
design and Unix-like memory consumption which is rampant in almost all
C# applications, would lead us into a world where every Gingus Milktoast
would be implementing a driver. Wait, maybe we’re already there!
I’m not saying that there shouldn’t be added protection mechanisms to
minimize the times where a Java programmer writing their first
compression driver as a filter decides to allocate all buffers as
MustSucceed since their driver is crucial to MSFT making their next
dollar BUT how about the other end? How about making it easier to
diagnose problems when they do occur? Adding layers of crap onto an
already complex system is only going to make OCA useless at best and
make our job one of trying to decipher some MSFT geniuses idea of what
he thinks is a slick implementation of ‘new’ that offers everything
including … well, we won’t go there.
My point is, I can’t believe that you are offering up anything other
than going back to our roots, everything in C and the occasional few
lines of assembly when needed, variables at the top of a function as God
intended (thanks snoone) and un-mangled function names! What has our
world come to, I ask …
Sing#? C#? These types of layers are only required for developers that
don’t care about how they implement the design and want to get to an end
point without the satisfaction of writing 25K lines of C to ensure a
fully robust implementation of AES-in-a-filter. Once we are there, we
might as well just offer out complete solutions in the WDK for
everything from content control to encryption to compression, hell,
throw in a full data manipulation framework, all for free. Have these
samples wrapped in the latest, or better yet implemented in, Sing# just
to show that it can be done!
This will really inject into the kernel mode consulting industry the
needed opiate so we can further chase the next obscure problem down the
twisted path of futility. There, I tied it back to the current thread,
sort of …
Pete
Kernel Drivers
Windows File System and Device Driver Consulting
www.KernelDrivers.com
866.263.9295
xxxxx@osr.com wrote:
From a monetary standpoint, no. It is most emphatically NOT worth it to learn kernel-mode programming. Not anymore.
This isn’t because “bone headed middle managers don’t get it.” There are two general factors that cause the salaries of kernel devs to exceed those of other dev:
-
There’s insufficient demand for kernel-mode devs in most areas to create a specialist market. Back in the day when lots of operating systems were being developed, kernel-mode devs commanded a VERY significant premium. Now? Not so much. You wanna write OS code, where are you gonna go work?
-
As somebody already pointed out, the VAST majority of kernel-mode devs are occasional kernel-mode developers: They work on some .NET application in the morning, some MSMQ-based communication system in the afternoon, and tomorrow they’ll spend a few hours fixing bugs in the company’s filter driver. Do they “deserve” – from a corporate compensation point of view – a significant pay premium for what might be less than 30% of their job? Hey, if they don’t wanna do the driver work, the next guy might be interested in learning something new.
In terms of consultants, nobody should get the idea that consulting is a goldmine for a kernel dev. What a consultant can charge a client is all about (a) the certainty that you’ll deliver a working solution, and (b) the value you bring to client and their products with that solution.
MANY hardware companies view a driver much like they view electrical safety and emissions testing (FCC, UL, CSA, etc): An annoying yet necessary step in bringing their product to market. The faster, easier, and cheaper it can be accomplished… the better. Thus, when they hire consultants to write drivers for these products, the consultants are paid commodity rates. I have seen entire drivers written for significantly less than what I charge for one week of my time.
As Mr. Terhell said, if low-level programming is what interests you and it you derive maximal satisfaction from it, then it’s worth it from a personal standpoint … of course.
If you wanna make “the big bucks”… Forget kernel-mode programming, go learn SQL or javascript or some such stuff that’s highly in demand. You’ll sleep better, and your bank account will be happier.
Peter
OSR
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer