Driver {FS} development as a career

Please excuse for posting ‘non technical’ questions. But here is the best people I know who can answer me.

I am new to driver development. But I get a project of FS :(. In a span of short time I have managed to handle the project (in about 6 months) from a previous code base. It was really nice experience - just I feel like that when I started to understand something written on papers many years ago. I have a computer science BS and lot on interest in low level programming. As a final year undergrad project I built a virtual machine of about 225 instructions. I read books and even manuals like IA part 3 from intel. You may view the following powerpoint presentation on my interest-

http://www.kuashaonline.com/vm.zip

Its not spam. Its my fourth year project presentation which a lot of people appreciated. It shows how java virtual machine works - graphically. And its my work.

All right- you understand I like system level. Now, as I am living in Bangladesh it is hard to get driver job - let alone FS driver job. If I do work next two years on a FS project- can it help? Or should I switch to some c++/.NET/java project?

What big guys say about it?

IMHO you will find much more and probably better paid positions if you work in Win32 user level applications. In my company we use to say: ‘the lower you work (for low level or kernel coding), the lower you work (as for job position)’.:frowning:

Anyway, here is a link at an OSR page with driver related jobs, some of them for FS:

http://www.osronline.com/forumOpen.cfm?id=4

Have luck.
Inaki.

-----Mensaje original-----
De: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] En nombre de xxxxx@gmail.com
Enviado el: mi?rcoles, 05 de septiembre de 2007 7:45
Para: Windows File Systems Devs Interest List
Asunto: [ntfsd] Driver {FS} development as a career

Please excuse for posting ‘non technical’ questions. But here is the best people I know who can answer me.

I am new to driver development. But I get a project of FS :(. In a span of short time I have managed to handle the project (in about 6 months) from a previous code base. It was really nice experience - just I feel like that when I started to understand something written on papers many years ago. I have a computer science BS and lot on interest in low level programming. As a final year undergrad project I built a virtual machine of about 225 instructions. I read books and even manuals like IA part 3 from intel. You may view the following powerpoint presentation on my interest-

http://www.kuashaonline.com/vm.zip

Its not spam. Its my fourth year project presentation which a lot of people appreciated. It shows how java virtual machine works - graphically. And its my work.

All right- you understand I like system level. Now, as I am living in Bangladesh it is hard to get driver job - let alone FS driver job. If I do work next two years on a FS project- can it help? Or should I switch to some c++/.NET/java project?

What big guys say about it?


NTFSD is sponsored by OSR

For our schedule debugging and file system seminars
(including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars

You are currently subscribed to ntfsd as: xxxxx@pandasecurity.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Maruf,

It is obvious that you are intelligent person, so that I would advise you to keep on learning system-level stuff - after all, there are not that many people in the world who have enough intelligence to do system-level programming. Therefore, I think it will be just a waste of talent for you to switch to .NET/JAVA. I know it is easier to find .NET/JAVA job, but I can assure you that, in the end of the day, all your efforts will pay off - dont forget that the world is bigger than just Bangladesh…

Anton Bassov

> In my company we use to say: 'the lower you work

(for low level or kernel coding), the lower you work (as for job position)'.:frowning:

Indeed, I came across companies where CTOs and Senior Architects are techically, softly speaing, not-so-well-versed. Your company seems to be pretty much the same…

I think this is because system-level developers prefer to stay purely on the technical side, so that they have no interest in constant meetings with clients, budget planning and other “exciting” things that promotion implies. Therefore, the company has no option other than promoting some VB “guru”
to the position of CTO. As a result, you may hear questions whether your driver that is written for *32-bit* Windows is going to have problems on the vector station; get presented with the requirement that a driver should not rely on user-mode services when it wants to display a msgbox;
etc,etc,etc…

Anton Bassov

I can add a bit of perspective.

The good news: Good kernel-mode developers are in demand in both the Pacific Northwest (USA) and Silicon Valley (USA). These jobs pay very well.

The bad news: Aside from a few jobs “here and there” those two are the only places of which I am aware where there is on-going demand for engineers with kernel-mode skills. You will have better employment prospects overall if you can work outside the kernel.

Working in Windows kernel-mode, including file systems and drivers, is a sort of special specialty. If you have the skills, and you can find yourself the right position (at a company that’ll help you stay up to date, not treat you like a peon, etc) you can do extremely well. The problem is FINDing the right position.

The vast majority of kernel mode devs these days (outside of MSFT, at least) don’t limit their work strictly to drivers or file systems. Most folks do some driver work, but also spend time writing apps or user-mode infrastructure of some kind. In fact, I find that these days most kernel-mode devs are “accidental driver writers” – they never PLANNED on writing a driver as part of their career, they just happened to be working someplace where the company needed somebody to look into (or take over) writing a driver for something… and thus they became a driver dev.

Thus, I’d advise anybody getting into the software field these days to arm themselves broadly: If you can learn kernel-mode stuff, that’s great. But it’ll be best to also be well familiar with user-mode development. If you REALLY love the kernel-mode side, you can search for a position that focuses on that… but if you don’t find one, you can use your other skills to generate some cash.

Peter
OSR

I would agree with everything Peter said, and add that if you add that
there are numerous superb opportunities in the greater DC area for
people with knowledge of the proverbial “kernel mode Windows internals.”
However, the overwhelming majority of these positions are with Federal
defense contractors, and require, minimally, that you are a U. S.
citizen. I haven’t followed this thread at all, so, this may not apply
to you; if not, my apologies. That being said, even here, what Peter
said is still overwhelmingly true - user mode is much more marketable,
albeit at a much lower rate; and because of the extreme difficulties in
finding qualified people in this area who also satisfy the security
requirements, or are willing to do so, the sector has gone through the
“accidental developer” part already, which has been and still is largely
marked by consultants who know almost literally nothing, and the sector
is desperately trying to get out of that faze. Although presently they
lack enough qualified personnel to do so, they now do understand the
need for true professionals who have qualifications other than just
meeting the security requirements.

mm

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@osr.com
Sent: Wednesday, September 05, 2007 10:38
To: Windows File Systems Devs Interest List
Subject: RE:[ntfsd] Driver {FS} development as a career

I can add a bit of perspective.

The good news: Good kernel-mode developers are in demand in both the
Pacific Northwest (USA) and Silicon Valley (USA). These jobs pay very
well.

The bad news: Aside from a few jobs “here and there” those two are the
only places of which I am aware where there is on-going demand for
engineers with kernel-mode skills. You will have better employment
prospects overall if you can work outside the kernel.

Working in Windows kernel-mode, including file systems and drivers, is a
sort of special specialty. If you have the skills, and you can find
yourself the right position (at a company that’ll help you stay up to
date, not treat you like a peon, etc) you can do extremely well. The
problem is FINDing the right position.

The vast majority of kernel mode devs these days (outside of MSFT, at
least) don’t limit their work strictly to drivers or file systems. Most
folks do some driver work, but also spend time writing apps or user-mode
infrastructure of some kind. In fact, I find that these days most
kernel-mode devs are “accidental driver writers” – they never PLANNED
on writing a driver as part of their career, they just happened to be
working someplace where the company needed somebody to look into (or
take over) writing a driver for something… and thus they became a
driver dev.

Thus, I’d advise anybody getting into the software field these days to
arm themselves broadly: If you can learn kernel-mode stuff, that’s
great. But it’ll be best to also be well familiar with user-mode
development. If you REALLY love the kernel-mode side, you can search
for a position that focuses on that… but if you don’t find one, you
can use your other skills to generate some cash.

Peter
OSR


NTFSD is sponsored by OSR

For our schedule debugging and file system seminars
(including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars

You are currently subscribed to ntfsd as: xxxxx@evitechnology.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Peter,

The bad news: Aside from a few jobs “here and there” those two are the only
places of which I am aware where there is on-going demand for engineers with
kernel-mode skills. You will have better employment prospects overall if you
can work outside the kernel.

But why should one limit himself strictly to the possibility of a “regular” full-time employment???
With such approach someone who is located outside the US West Coast, indeed, has a very slim prospect of *ever* writing a driver. However, does it mean that one should not even try learning how to write drivers??? Although very, very few companies write drivers on the regular basis, many companies may need a driver from time to time. Once writing a driver is going to take a very,very long time for someone who has to clue about the kernel, training their stuff to do driver jobs
is hardly for feasible for a company that has to meet strict deadlines of product release. Therefore, in such situations companies normally request an assistance from outside, i.e. hire people to do work on per-contract basis. Certainly, it does not always work this way - more on it below.

In fact, I find that these days most kernel-mode devs are “accidental driver writers” – they never > PLANNED on writing a driver as part of their career, they just happened to be
working someplace where the company needed somebody to look into (or
take over) writing a driver for something… and thus they became a driver dev.

And this is what happens when they believe that writing drivers is easy, so that they tell their staff to learn how to write drivers. At this point we see posts like “I want to write a driver but I don’t know C. Can I write them in C#?” No, I don’t make it up - if you check OSR archives, you will find a thread where a guy was asking the above question.

In such case everything depends on how long a company can afford to wait. If you check OSR archives, you will find a thread where a guy was asking how to handle interrupts in the user mode for 6 MONTHS !!!

Anton Bassov

Maybe. Maybe not.

Hey, one of the things we DO here at OSR is write drivers on a contract basis, so I ain’t knockin’ the idea of consulting.

But would I advise a new graduate in CS to START as a consultant writing drivers? No way. Maybe later, when they grow up and decide they have a clue and want to run a business.

In any case, it is no longer the case that writing Windows drivers takes “a very,very long time for someone who has no clue about the kernel.” I would have agreed with you a year ago, but no more.

Indeed, if you take a SMART dev (not a retard, this is an absolute prerequisite), who has a decent background in OS concepts (just a vague notion of virtual memory is really sufficient), and introduce them correctly to WDF… they can be writing useful USB, filter, or even simple PCI drivers in a VERY short time.

And doing it intelligently and with reliable code.

I kid you not… I see the start of this process all the time in the KMDF seminars we teach.

It’s not a “cure all” but it’s clearly paradigm changing,

Peter
OSR

I agree with Peter here, particularly having gone the road of
independent consulting after leaving college (worked out; was not easy;
I’m glad I was not one of my early clients). The small point I would
add is that in addition to being smart, one has to willing to suffer and
remain persistent, at least to the extent that his or her complaining
doesn’t completely piss off everyone else. I don’t mean to dramatize
the issue, but I really think that, in practice, what separates someone
who succeeds at crossing over and someone who fails, leaving out those
who get filtered out immediately by Peter’s requirement, are things like
willingness to reboot every ten minutes for a few weeks in the beginning
and after when basically nothing works and you have no clue and ability
to cope with the drastically reduced number of samples as compared to
user mode. We see all the time on this list people who ask questions
about someone having an outrageously specific example that they wish to
give away, rather than asking about the information for them to do it
themselves.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@osr.com
Sent: Wednesday, September 05, 2007 17:20
To: Windows File Systems Devs Interest List
Subject: RE:[ntfsd] Driver {FS} development as a career

Maybe. Maybe not.

Hey, one of the things we DO here at OSR is write drivers on a contract
basis, so I ain’t knockin’ the idea of consulting.

But would I advise a new graduate in CS to START as a consultant writing
drivers? No way. Maybe later, when they grow up and decide they have a
clue and want to run a business.

In any case, it is no longer the case that writing Windows drivers takes
“a very,very long time for someone who has no clue about the kernel.” I
would have agreed with you a year ago, but no more.

Indeed, if you take a SMART dev (not a retard, this is an absolute
prerequisite), who has a decent background in OS concepts (just a vague
notion of virtual memory is really sufficient), and introduce them
correctly to WDF… they can be writing useful USB, filter, or even
simple PCI drivers in a VERY short time.

And doing it intelligently and with reliable code.

I kid you not… I see the start of this process all the time in the
KMDF seminars we teach.

It’s not a “cure all” but it’s clearly paradigm changing,

Peter
OSR


NTFSD is sponsored by OSR

For our schedule debugging and file system seminars
(including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars

You are currently subscribed to ntfsd as: xxxxx@evitechnology.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Peter,

But would I advise a new graduate in CS to START as a consultant writing
drivers? No way. Maybe later, when they grow up and decide they have a clue
and want to run a business.

Well, the “only” question is how much they know at this point. If they “grow up” writing .NET programs, they just would not have sufficient knowledge for writing drivers, so that, when it comes to driver jobs, they are in exactly the same position they were in right after their graduation 20 years ago…

Indeed, if you take a SMART dev (not a retard, this is an absolute
prerequisite), who has a decent background in OS concepts (just a vague notion
of virtual memory is really sufficient), and introduce them correctly to WDF…
they can be writing useful USB, filter, or even simple PCI drivers in a VERY short time.

I can agree with you if you mean those who have no experince of Windows programming, but still have a solid understanding of OS concepts (i.e. they wrote Linux drivers, some small proprietary Oses, etc) - these guys are, indeed, going to learn things pretty shortly (and not only KMDF but “real” WDM drivers as well). In practical terms, companies that employ them are normally specialized in hardware-related programming, so that you have a chance to be employed as a Windows driver by them. The “only” problem is that these companies are quite a “rare beast” anywhere, apart from the US West Coast, and this is exactly the problem that the OP (and not only the OP) faces…

However, I just cannot agree with you if you mean those people who spent all their career in the user mode ( probably, even in .NET languages so that they have no idea about C - after all, these days user-mode Windows programmer who writes his programs in C is becoming an “extinct creature” as well). No, they are not really retards - the only reason why I could call them the ones is because they were fully content with their position and their level of knowledge. OK, you can teach them how to write drivers in KMDF, so that they will start writing drivers without even understanding what they actually do (i.e. do something that they did all their life long when writing programs in .NET languages). Problems will arise when they try to introduce the *actual* functionality, rather than the one that they have learnt in the class, to their drivers. As far as this thread is concerned, I meant companies that employ exactly this kind of developers - after all, companies like that can be easily found anywhere in teh world…

Anton Bassov

This has one other assumption - the kid must not come from a JAVA/.NET background, with little to none C knowledge. C or at least C++ knowledge is a must. I am currently tutoring a local student (and a close friend) to write file system filters. He asked me, no joke, “what is a void *” and “is there a C equivalent of Java’s null”?

(I started cca 10 years ago with knowledge of Pascal, and going into C was possible - now I am irritated by how much Pascal hides things - user mode kids can make a few assumptions, we can’t;)

Indeed, if you take a SMART dev (not a retard, this is an absolute prerequisite), who has a decent background in OS concepts (just a vague notion of virtual memory is really sufficient), and introduce them correctly to WDF… they can be writing useful USB, filter, or even simple PCI drivers in a VERY short time.


Kind regards, Dejan
http://www.alfasp.com
File system audit, security and encryption kits.

Martin,

I agree with Peter here, particularly having gone the road of
independent consulting after leaving college (worked out; was not easy;
I’m glad I was not one of my early clients).

Actually I would not agree with Peter exactly for the same reason that you have mentioned.
In fact, my way was even more complex than yours - I have no formal computer training whatsoever. I have learnt everything myself and ended up as a kernel-level consultant, and I did it in a country where people have no concept of the kernel-level development and where they are obsessed with diplomas so that you have a very slim chance to get a job without the one…

The small point I would add is that in addition to being smart, one has to willing to
suffer and remain persistent,

Well, after having read “the story of my life” you can imagine that my way was not easy at all.
Everything depends on what you want and whether your desire is strong enough to move towards your goal, despite everything that stands in your way. I don’t know, but, judging from Maruf’s posts, I have a feeling that he happens to be pretty much the same like myself, and wants to work towards his goal. Therefore, I would not advize him to give up that easily…

Anton Bassov

Given: If somebody doesn’t know what they’re doing when they’re writing code in .NET (or whatever), they sure as hell won’t know what they’re doing when they’re writing code anywhere else, KMDF included.

But, I’m TELLing you: There are a lot of career user-mode folks who DO know what they’re doing… and I’ve SEEN these people, with my own two eyes, write intelligent drivers using KMDF… and NOT just the canned stuff we give them in class.

Don’t fall into the trap of thinking we driver devs are NECESSARILY “all that” – You don’t have to be a genius to learn what D0 is and how to bang the Interrupt Enable bit on and off on a device or setup a transfer on a bulk pipe.

I’m not saying you dip these people into KMDF and they become Jake Oshins… All I’m saying is with the right training, a little knowledge, and a few months effort, a good user mode dev can turn-out a perfectly acceptable KMDF driver for a straight-forward device.

And, for the most part, that’s all that 90% of the driver development community will ever need to do.

We professional devs may wring our hands and cry out in hyperprofessional consternation: “Oh, but that driver could be better,it’s over serialized, it could be more efficient, it wastes CPU cycles”, but in the end… who cares? As long as it works, and it doesn’t crash the system, everyone’s happy.

Mom and Dad have too many spare cycles on their system anyways,

Peter
OSR

Anton,

I also did the no degree route (never finished one in pure math), but I
definitely did not have to deal with degree obsession. It’s not that I
would do it differently if I were to start over, but I certainly
couldn’t tell anyone that it was the easiest way to go, particularly
because while at this point (10 years), that I’ve done a wide variety of
things (NLP work to kernel work) is a good thing, it was not at all
helpful early on when dealing with retards from HR who wanted 6.1234567
years of C experience. The other thing is, as stupid as it sounds, I
really think a lot of people, again HR types, look at a resume like
mine, with almost everything except my present job lasting less than 1.5
years, and conclude that I never stayed at permanent jobs long.

You said something in one of your earlier posts about previous user mode
experience, that made me think of something that I had originally left
out that, in my mind, really makes jumping in to this very difficult -
someone without WinDbg experience, which is pretty much every from user
mode. I definitely agree with you here, but I also agree with Peter as
well - I think you can get someone doing the types of drivers he talked
about up and running to the point of being useful - but from a billable
point of view only. Any bumps in the road, and they’re done, and I
think that might be what you are saying.

mm

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Wednesday, September 05, 2007 18:26
To: Windows File Systems Devs Interest List
Subject: RE:[ntfsd] Driver {FS} development as a career

Martin,

I agree with Peter here, particularly having gone the road of
independent consulting after leaving college (worked out; was not
easy;
I’m glad I was not one of my early clients).

Actually I would not agree with Peter exactly for the same reason that
you have mentioned.
In fact, my way was even more complex than yours - I have no formal
computer training whatsoever. I have learnt everything myself and ended
up as a kernel-level consultant, and I did it in a country where people
have no concept of the kernel-level development and where they are
obsessed with diplomas so that you have a very slim chance to get a job
without the one…

The small point I would add is that in addition to being smart, one
has to willing to
suffer and remain persistent,

Well, after having read “the story of my life” you can imagine that my
way was not easy at all.
Everything depends on what you want and whether your desire is strong
enough to move towards your goal, despite everything that stands in your
way. I don’t know, but, judging from Maruf’s posts, I have a feeling
that he happens to be pretty much the same like myself, and wants to
work towards his goal. Therefore, I would not advize him to give up that
easily…

Anton Bassov


NTFSD is sponsored by OSR

For our schedule debugging and file system seminars
(including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars

You are currently subscribed to ntfsd as: xxxxx@evitechnology.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

> Given: If somebody doesn’t know what they’re doing when they’re writing code in .NET (or whatever), they sure as hell won’t know what they’re doing when they’re writing code anywhere else, KMDF included.

But, I’m TELLing you: There are a lot of career user-mode folks who DO know what they’re doing… and I’ve SEEN these people, with my own two eyes, write intelligent drivers using KMDF… and NOT just the canned stuff we give them in class.

I agree with you, completely. I think Anton does, too.

I’m not saying you dip these people into KMDF and they become Jake Oshins

(you should tell everyone he’s a guru @ Microsoft :wink:

We professional devs may wring our hands and cry out in hyperprofessional consternation: “Oh, but that driver could be better,it’s over serialized, it could be more efficient, it wastes CPU cycles”, but in the end… who cares? As long as it works, and it doesn’t crash the system, everyone’s happy.

Ahh, spoiled multi-core era folks :wink:


Kind regards, Dejan
http://www.alfasp.com
File system audit, security and encryption kits.

Martin,

I also did the no degree route (never finished one in pure math), but I
definitely did not have to deal with degree obsession. It’s not that I
would do it differently if I were to start over, but I certainly
couldn’t tell anyone that it was the easiest way to go, particularly
because while at this point (10 years), that I’ve done a wide variety of
things (NLP work to kernel work) is a good thing, it was not at all
helpful early on when dealing with retards from HR who wanted 6.1234567
years of C experience. The other thing is, as stupid as it sounds, I
really think a lot of people, again HR types, look at a resume like
mine, with almost everything except my present job lasting less than 1.5
years, and conclude that I never stayed at permanent jobs long.

Actually, the main trick here is just to bypass a stupid filter known as HR. This can be done by writing articles and participating in the NGs, so that you get known to the technical guys who are interested in your skills, rather than in any formal parameters - you can get a job/consultancy offer without even applying for a position. In my experience, it is invariably going to be made by some company in the US - it does not seem to work this way in other part of the world. I discussed the latest proposal as recently as yesterday, and no one even bothered to ask me to send a resume. Instead, I just received an email last week. The guy told me that he is interested in my skills, so that he wants to talk to me on the phone. We arranged a discussion, spoke for around an hour strictly about the technical issues, and the guy offered me a job (now we have to see whether it can be done remotely). I don’t want to say that it happens every other day, but still the whole thing is feasible. However, it is understandable that, in order to make it work, first of all, you must gain a solid technical knowledge to make people interested in your skills…

Anton Bassov

" Actually, the main trick here is just to bypass a stupid filter known
as HR."

Truer words have never been spoken, my man. Not much in the way of
consensus on this list, but this one might do it.

mm

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Wednesday, September 05, 2007 20:10
To: Windows File Systems Devs Interest List
Subject: RE:[ntfsd] Driver {FS} development as a career

Martin,

I also did the no degree route (never finished one in pure math), but
I
definitely did not have to deal with degree obsession. It’s not that
I
would do it differently if I were to start over, but I certainly
couldn’t tell anyone that it was the easiest way to go, particularly
because while at this point (10 years), that I’ve done a wide variety
of
things (NLP work to kernel work) is a good thing, it was not at all
helpful early on when dealing with retards from HR who wanted
6.1234567
years of C experience. The other thing is, as stupid as it sounds, I
really think a lot of people, again HR types, look at a resume like
mine, with almost everything except my present job lasting less than
1.5
years, and conclude that I never stayed at permanent jobs long.

Actually, the main trick here is just to bypass a stupid filter known as
HR. This can be done by writing articles and participating in the NGs,
so that you get known to the technical guys who are interested in your
skills, rather than in any formal parameters - you can get a
job/consultancy offer without even applying for a position. In my
experience, it is invariably going to be made by some company in the US

  • it does not seem to work this way in other part of the world. I
    discussed the latest proposal as recently as yesterday, and no one even
    bothered to ask me to send a resume. Instead, I just received an email
    last week. The guy told me that he is interested in my skills, so that
    he wants to talk to me on the phone. We arranged a discussion, spoke
    for around an hour strictly about the technical issues, and the guy
    offered me a job (now we have to see whether it can be done remotely).
    I don’t want to say that it happens every other day, but still the whole
    thing is feasible. However, it is understandable that, in order to make
    it work, first of all, you must gain a solid technical knowledge to make
    people interested in your skills…

Anton Bassov


NTFSD is sponsored by OSR

For our schedule debugging and file system seminars
(including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars

You are currently subscribed to ntfsd as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Maruf,

Your best bet is to verse yourself in c if you want to be able to get involved in this arena. A touch of ASM doesnt hurt either, but is not a requirement. I would suggest you get used to threading, passing values, referencing memory, and the wild world of Microsoft functions.

I would suggest you do a couple of projects involving say a user interface with some kind of processing that works like a good UI. This means firing off some threads and not putting the code in the UI. Perform messaging back to the UI for updates. Performing different drawing, or operational functions without stalling other objects unnecessarily. Allocate portions of memory, small, large, you name it, but be able to do it safely, and at the end of the day know that you released all handles and deleted all new objects. Get to know C++ well and understand the differences between c and c++. Understand why C++ is not used in most drivers. Driver writing is a passion. There is no other way to put it. It is not for the faint hearted. You have to be truly dedicated to doing it, and most importantly digging through hundreds or thousands of pages of information to find out WHY it is doing something. Driver writing is the most paranoid code you will probably ever write. why? simple… in userland, it explodes, you debug it, little song, little dance, you get there… Driver explodes, it could be a ton of different things, and you are now working from a snapshot to debug. Theres no ‘oh let me change this code and runtime compile/update’.

1 word… “Reboot”

Its easy to get broadsided in driver writing, and some times its something that wasnt clearly documented that only experience would tell you what to do.

Many of the responses in here are great. This forum is part of my daily reading, mostly from the educational point of view, and sometimes there are some funny things posted. From a company’s perspective, someone will have some idea. That idea will pass by a tech who will wind up telling that managerial person they need something special done. In this case a driver. The manager will first look internally at his development staff to see if someone might be able to accomplish this task and bring in a junior person to handle some of that dev’s easywork. This is the path of least resistance. A lot of driver writers are accidentally found this way. They have the passion to learn, and go on the journey. They results are usually less than stellar, but results in a new career for that developer since either you enjoy it or you would rather faceprint yourself in a waffle iron.

Almost any of the gurus here have the ability to write a killer driver and/or any given application, but each has a niche they are best at. But every niche has its caveots. This would be like asking a driver developer to write a time accurate video capture UI with fully layered alpha blending using GDI+ or DirectX, they will have to spend the time to learn the nuances and headaches that come along with it.

Bottom line… Versatility is the starting point here. Be very proficient in the language, system and envionment. And when you are at that point, be the expert of a niche that you really want to be a part of. And dont stare at every shiny new object (language or tech), they are always coming out, select the choices that point to your goals.

–Royal

Royal,

Y our best bet is to verse yourself in c if you want to be able to get involved
in this arena. A touch of ASM doesnt hurt either, but is not a requirement. I
would suggest you get used to threading, passing values, referencing memory, and
the wild world of Microsoft functions.

I would suggest you do a couple of projects involving say a user interface with
some kind of processing that works like a good UI.

Please read Maruf’s original post carefully…

It is obvious that all the things that you have mentioned are already funny to him - he already knows C and he already knows x86-specific stuff and instruction set. Furthermore, if you read his post on another thread, you will see that he has already read Windows Internals, plus Nagars and Oney’s books, so that he already knows what makes the OS tick and is familiar with the basics of driver development. If it is still not enough for you, he even wrote a *FSD* - althought it has very limited functionality, still it is a workable FSD…

Do you really think that a guy like that should give it up, and , instead, waste his time on .NET/Java???

Anton Bassov

This may all be true, but his location works against him in obtaining
filesystems jobs. The efforts will assist in any driver job, but it is
difficult to find jobs in this arena except in limited locations. Many
companies will not hire consultants unless they are local or will relocate
close to their company. The main exception is those companies and
individuals who have a well known name. Another problem for consultants is
that many companies will not hire them unless they work for a company, even
if it is a company where they are the only employee. The lawyers want
something to sue and there may be other valid reasons for that restriction
other than just limiting their liability for taxes, etc.


David J. Craig
Engineer, Sr. Staff Software Systems
Broadcom Corporation

wrote in message news:xxxxx@ntfsd…
> Royal,
>
>>Y our best bet is to verse yourself in c if you want to be able to get
>>involved
>> in this arena. A touch of ASM doesnt hurt either, but is not a
>> requirement. I
>> would suggest you get used to threading, passing values, referencing
>> memory, and
>> the wild world of Microsoft functions.
>
>> I would suggest you do a couple of projects involving say a user
>> interface with
>> some kind of processing that works like a good UI.
>
> Please read Maruf’s original post carefully…
>
> It is obvious that all the things that you have mentioned are already
> funny to him - he already knows C and he already knows x86-specific stuff
> and instruction set. Furthermore, if you read his post on another thread,
> you will see that he has already read Windows Internals, plus Nagars and
> Oney’s books, so that he already knows what makes the OS tick and is
> familiar with the basics of driver development. If it is still not enough
> for you, he even wrote a FSD - althought it has very limited
> functionality, still it is a workable FSD…
>
>
> Do you really think that a guy like that should give it up, and , instead,
> waste his time on .NET/Java???
>
> Anton Bassov
>