For a more well-rounded mix of comparisons, you might want to compare and
contrast some of the embedded OS’s like OS9 where they use functional
calling of drivers.
- Dennis
Dennis Merrill
Embedded Systems Engineer
Thermo Nicolet Corporation
-----Original Message-----
From: Steve Dispensa [mailto:xxxxx@positivenetworks.net]
Sent: Wednesday, October 10, 2001 6:15 PM
To: NT Developers Interest List
Subject: [ntdev] RE: What do we need to know as far as OS techniques go ?
I think the idea of a class with this material is a great idea.
I’ve had a bunch of grad cs classes, and most of the professors don’t have
nearly this much industry experience. Done right, this could be a huge
benefit that not many cs programs can duplicate.
As for the content, one way to keep it technical (as opposed to theoretical)
while still not making it a one-OS class is to explicitly design it as a
compare/contrast format. Learn driver development basics on windows, linux,
and maybe bsd or sun too. Go topic-by-topic, teach the concept (memory
management, IRQs and ISRs, whatever), and then show two or three different
implementations. You could start the first week with “hello world” drivers
on each platform, and then add features & functionality as you move through
the material.
And if you *really* wanted to be altruistic, you might consider making that
coursework available via the web a la MIT…
-sd
On Wed, Oct 10, 2001 at 03:53:32PM -0400, Harmon, Larry CT wrote:
O.K. Here are some concepts…
Drivers - an object oriented interface (all drivers have the same methods)
User vs Kernel memory, privileges, libraries
Packageing requests into structures (IRPs) vs function calls
Driver -> Device hierarchy
Device instance data (device extension)
IRQL
ISRs
Deferred Procedure Calls (DPCs) don’t hog the CPU
Driver layering (my driver can use your driver)
Common hardware access methods
I/O vs Memory mapped registers
DMA - bus Master
data allignment (packed structures mapped to registers)Here are some skills needed
C language
Using DDK “Build” utility
Debugging concepts - breakpoints - debug printf - call stack
Online documentation use - how do I find the info?
I would hope that graduate students could write and debug a simple
“virtual” (NO Hardware) driver in the class.Larry
-----Original Message-----
From: Moreira, Alberto [mailto:xxxxx@compuware.com]
Sent: Wednesday, October 10, 2001 3:17 PM
To: NT Developers Interest List
Subject: [ntdev] What do we need to know as far as OS techniques go ?I’m going to stick my head out with this one, and this may be slightly
off-topic, but what the heck ?You guys may not know, but I’m also a grad school computer science
teacher.
I’m going to teach an “Advanced OS” course next Spring to Master Degree
students. I want to strongly tilt it towards kernel mode development. My
college has a battery of Win2K workstations, and several “electronic
classrooms” with thirty or so PCs in them, so I’m not unwilling to teach
the
students how to write a WDM driver. On the other hand, I’d like to keep
their eyes open to Linux driver development too. And I want to target it
to
a professional as opposed to theoretical tack, so that they can do some
real
work during the course that prospective employers - like some of you-
may eventually be interested in hiring them after they graduate.If nothing else, I want them to leave my course in a position to be able
to
understand an OSR course, and immediately start programming after that.What do you think they should learn as far as WDM and Kernel Mode
development is concerned ? What basic skills are needed for young
professionals to get started in our kernel and driver development world ?
How far is far enough in a 16-week two-hour-a-week lab course ?Your input is appreciated!
Alberto.
You are currently subscribed to ntdev as: xxxxx@diebold.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: xxxxx@positivenetworks.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: xxxxx@thermonicolet.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com