Finally... ;D
I could make a quick look at tutorial and with a few notes, I am ready to (rock &) roll.
Note: I am sorry Pype, I have lots of thingz in my mind nowadays, I could not check tutorial thoroughly, I will make some simple comments here but more will surely be coming. (I dont know when ;D)
Introduction: Firstly I want to tell that I am not the one who is responsible for criticizing this tutorial, or the one who really has enough knowledge and experience to criticize this tutorial. I must say that there is a lot to talk about this tutorial other than anything I say here, in all contexts, but I will just make my OWN interpretation of tutorial. I cannot be held responsible for anything that is wrong about anything or anybody. here we go:
Devlopment (is there a mistake here?) of a pmode multitasked disk driver by Pype. Original tutorial can be downloaded at
http://clicker.sourceforge.net/docs/tea ... mming.html
Language:
Concise and explaining. Pype has done a great in literary work. An impressive beginning with scientific abstract, intended audience headers. BTW I could not understand intended audience??? Lacking of contents will be told later. Nice format with source code set aside, paragraphs well oriented, good fonts choice in italics and bold for encouraging readibility, Figures are not very self explaining but I will talk about them later. Titles are not very scholar type: they are self-explaining, oriented with paragraphs. Bulleting and numbering is added at right places to get attention. No important spelling mistakes as far as I could observe.
Contents:
I think there is a severe lack in contents. Text should be dealing with disk driver considerations in a multitasked, multiprogrammed environment important multitasking issues about mutexes and synchronization is added at the very end. I think reorganization should be considered.
I think text loses its general to specific approach to disk driver context at source codes at 4th page. Definitely adding the source code of about this length will discourage people. Source code, since it is a lot harder than tracing algorithms, is making person afraid of text. BTW, there is alot of things that a person should learn from page 4, I mean while trying to understand source code, one should also relate source code to design of driver structure graph showing queue scheduler, ioDiskList, ataController and ataRequest structures, but on top of all of these one must try to adopt the ideas in the text to his/her design, which is one's ultimate aim. With this much source code, a person cannot do all of these at one time. In that sense, text is too specific because of source code a person cannot do much but the things that source code says. Text mostly deals with Clicker and Mobius approach to disk driver, which is discouraging.
There are good ideas that I got from the text, like submit()ting request handler to scheduler and then a kind of "registering" its own handler, multispace buffer supporting virtual memory manager(which I definitely will implement too), sorry I could not read mutex parts thoroughly, so nothing really to say about them. BTW, I did not like very much the idea of PIO. Text does not issue DMA considerations anywhere but deals firstly with PIO, at least a brief introduction to DMA considerations would be good.
Prerequisites are very much generic, I mean a person ready to write a multitasking pmode device driver would most probably accomplish almost all of these prerequisites. Some theoritically thinking prerequisites would do more sense. I mean from point of view of a computer science person what are the prerequisites of a multitasked pmode disk driver? is a more meaningful prereq. for beginning.
As a last word, text is very much high level, I think a person of my experience in OS development will find it not very useful in the sense that it seems as a kind of reference to some specific implementation of disk driver rather than a tutorial.
-FIN-