To view parent comment, click here.
To read all comments associated with this story, please click here.
That's a little different. The IIS7 modularity has to do with the fact that it processes web requests in stages in a pipeline. Each part of the pipeline is implemented as a module, and so can be filtered or modified. The older versions had larger chunks of processing being done in the engine itself, so you couldn't, for instance, change the way that SSL processing was being done without modifying the core engine (not a real example.. just for illustrative purposes). The new IIS would handle connection establishment as part of a module that could be switched out without changing the rest of the serving pipeline. But all of this added modularity is in IIS itself, and has nothing to do with its interaction with the OS. It's just a program like any other.
HTTP.SYS is just a normal driver that helps IIS. It can be replaced or modified independently of the OS Kernel. I think the interface to http.sys is also public (search MSDN for HTTP API), so even apache or lighttpd could use it to serve requests. It's pretty unrelated to the Core OS.





Member since:
2008-01-01
I can't find the source right now, but I know I was reading about the fact that IIS6 being monolithical couldn't have been seriously upgraded without updating the files it has dependencies in. IIS is not just a program, http.sys is actually a kernel-mode driver, so it had dependencies in kernel code.
I think I was reading on IIS7 being modular and that was to be a benefit over IIS6 where it could be upgraded, like you say, like just a program.