RE: What do we need to know as far as OS techniques g- o ?

Larry,

You’re still “thinking inside the box”. If you want versatility then you do
not emphasize Windows or Unix or Linux. They may be used as tools to get
there, but if you want pliable, unbiased, methodologies that lean toward the
solution of a problem, regardless of the platform, then you shouldn’t spend
a lot of time worrying about how GNU’s make or Microsoft’s BUILD work. Those
are tools. When was the last time you saw a carpentry class that spent an
entire semester on a hammer?

I think Alberto’s ideal is release an engineer with software literacy such
that he, she, or it, can write a driver for a widget, red green or blue,
that executes on Windows, Linux or Unix.

Gary G. Little
Staff Engineer
Broadband Storage, Inc.
xxxxx@broadstor.com

-----Original Message-----
From: Harmon, Larry CT [mailto:xxxxx@diebold.com]
Sent: Wednesday, October 10, 2001 12:54 PM
To: NT Developers Interest List
Subject: [ntdev] RE: What do we need to know as far as OS techniques go ?

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 :slight_smile: -
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@broadstor.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