Added new category - chrestomathies
Posted: Tue Dec 05, 2017 11:06 am
One of the problems we keep running into is that there are a lot of things we really can't give a general example for in the wiki. A lot of the things we keep getting questions about over and over again are ones where an answer really depends on a lot of other details of the OS being developed.
As a result, most of the things in the wiki either don't have any example code, or have a skeletal example which couldn't really be used as they are, but which we've repeatedly seen newcomers trying to use unchanged despite warnings to the contrary.
I think we need to address this from more than one angle, but one which has occurred to me is to provide, not one skeleton example, but several working examples from other OSes, in a way that makes it clear that the readers are meant to compare the different approaches rather than just copy them.
This specifically came up while I was trying to figure out how to write different examples of how to use heap allocation for assembly-language data structures (especially things like linked lists and trees). Whereas I could have parallel examples for different architectures and assemblers without too much trouble, trying to have comparisons in three dimensions - CPU, assembler, and operating system - when the examples wouldn't even apply to the OSDevver's own systems, seemed to present a serious problem which called for a solution beyond just that one page.
To this end, I have created a new wiki category, Chrestomathy, where we could add actual code examples, as well as post links to others. In my idea, the chrestomathy pages would give a few different examples of the particular technique, especially ones from established systems (presumably open-source ones in the case system internals, though other examples would be of userland APIs and that different proprietary OSes expose - the one page I've already added, Application-level Memory Management Examples is an example of this), while others can add either more examples from their own OSes (or ones they know of which aren't already there) if they think that it is uniquely of interest to those designing new systems (e.g., it uses a method that is distinctly different from any of the examples already there), or links to same (if they want to show them but don't think they a significantly different from all the ones already there).
Does anyone have any opinions on this? My main concerns in this are that a) in-page examples might not be complete enough to illustrate the techniques; b) different topics will have uneven examples, with some have few if any and others having page after page of trivial ones; c) it might be too tempting of people to use it to promote interest in their OSes rather than focusing on useful examples; and d) the pages are likely to suffer from a lack of updates, which has been a problem for the wiki in general.
As a result, most of the things in the wiki either don't have any example code, or have a skeletal example which couldn't really be used as they are, but which we've repeatedly seen newcomers trying to use unchanged despite warnings to the contrary.
I think we need to address this from more than one angle, but one which has occurred to me is to provide, not one skeleton example, but several working examples from other OSes, in a way that makes it clear that the readers are meant to compare the different approaches rather than just copy them.
This specifically came up while I was trying to figure out how to write different examples of how to use heap allocation for assembly-language data structures (especially things like linked lists and trees). Whereas I could have parallel examples for different architectures and assemblers without too much trouble, trying to have comparisons in three dimensions - CPU, assembler, and operating system - when the examples wouldn't even apply to the OSDevver's own systems, seemed to present a serious problem which called for a solution beyond just that one page.
To this end, I have created a new wiki category, Chrestomathy, where we could add actual code examples, as well as post links to others. In my idea, the chrestomathy pages would give a few different examples of the particular technique, especially ones from established systems (presumably open-source ones in the case system internals, though other examples would be of userland APIs and that different proprietary OSes expose - the one page I've already added, Application-level Memory Management Examples is an example of this), while others can add either more examples from their own OSes (or ones they know of which aren't already there) if they think that it is uniquely of interest to those designing new systems (e.g., it uses a method that is distinctly different from any of the examples already there), or links to same (if they want to show them but don't think they a significantly different from all the ones already there).
Does anyone have any opinions on this? My main concerns in this are that a) in-page examples might not be complete enough to illustrate the techniques; b) different topics will have uneven examples, with some have few if any and others having page after page of trivial ones; c) it might be too tempting of people to use it to promote interest in their OSes rather than focusing on useful examples; and d) the pages are likely to suffer from a lack of updates, which has been a problem for the wiki in general.