Peter, Mihal,
Mihal is usually right on target, just about on anything he writes ! Your
points are very well taken, looks like I could call this course “Driving
your Hardware”, or, to borrow the term from Patterson and Hennessy, “The
Hardware/Software Interface”. The limitations I have as far as equipment and
software availability go will dictate how much I can do; for example, I do
not have SMP machines, so handling MP issues will have to be done on a
classroom-only basis, no real work. There’s also the issue of Windows vs.
Linux, and here again, it depends on what kind of support I get from my IT
department. Thanks for the input! Highly appreciated.
Alberto.
-----Original Message-----
From: PeterGV [mailto:xxxxx@osr.com]
Sent: Thursday, October 11, 2001 12:05 PM
To: NT Developers Interest List
Subject: [ntdev] Re: What do we need to know as far as OS techniques go
?
“Moreira, Alberto” wrote in message
news:xxxxx@ntdev…
>
> 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 ?
>
Well, I can tell you what you need to know before you come to an OSR
seminar…
Michal Vodicka is right on target:
> They should know about synchronization primitives, processes and
> threads, IPC, interrupts, memory management etc. and now should learn how
> theoretical concepts are implemented on different OSes. Compare and show
how
> to use them and mainly explain why.
To amplify:
- Wait locks versus spin locks
- Threads and processes: What’s these are in the NT world versus the Unix
world
- What we mean by “thread safe”, fully re-entrant, and MP safe (thanks Jean)
- Processor modes (man, if they don’t know that by the time they get to
“advanced OS”…)
- Memory management - User mode, versus Kernel Mode. What we mean by
“demand paged virtual memory”
- Multiple, Nested, Interrupt Levels
- How user threads/processes get the system to do work for them: In other
words, the flow of a system service (and hence an I/O request) from user
mode down to the driver down to the device.
- Port space versus memory space
- SOMEthing, PLEASE, about the hardware path that data travels from a device
to memory during an I/O transfer. Perhaps, oh dare I dream, that there is
more than one way to connect an I/O bus to a memory bus? Work through a few
block diagrams: North bridge, south bridge, etc. Show 'em some NON-X86
architecture diagrams, please, where the I/O bus is NOT directly connected
to the memory bus, but is rather interfaced some other way (think “map
registers”)
- SOMEthing about how devices work: What a device register looks like,
why/when devices interrupt
If somebody were to attend one of our seminars and know the above
information, it would be a relative breeze to learn how to write a driver
for XP.
Peter
OSR
—
You are currently subscribed to ntdev as: xxxxx@compuware.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