Working on the OS FAQ [Mega-Tokyo Wiki]

All about the OSDev Wiki. Discussions about the organization and general structure of articles and how to use the wiki. Request changes here if you don't know how to use the wiki.
BI lazy

Re:Working on the OS FAQ

Post by BI lazy »

yes.

It shall grow.

The visitor shall then pick out the information he needs.

Just my 2 cents
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Working on the OS FAQ

Post by Solar »

Transfer of content from the old FAQ to the new one is complete as far as I can see.

:)
Every good solution is obvious once you've found it.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Working on the OS FAQ

Post by Solar »

One thing I saw happening in the Wiki is the addition of many pages consisting of nothing more but a single sentence - like a Glossary, but with only one term per page. (For example "Mutual Exclusion".)

I feel that this, in the long run, could ruin readability and maintainability of the Wiki. It also makes it much more difficult to, one day, compile a printable version of the FAQ.

I think we would be better off to keep the "link depth" of the Wiki limited to only one level (i.e., every page is linked directly from HomePage, and after clicking through each of the HomePage links you've read the whole FAQ). This cannot be enforced by PhpWiki, only encouraged (for example, by posting it here ;-) ).

As for a Glossary, here's a tip: PhpWiki can handle intra-page linking (as in http://www.example.com/index.php#chapter with static HTML):
#[Link] sets the anchor, and
[#Link] (or [Page#Link] if on a different page) links to it.

(And, PS: Would it be possible to make this thread sticky?)
Every good solution is obvious once you've found it.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Working on the OS FAQ

Post by Pype.Clicker »

well ... i have myself created a few glossary links (ProtectedMode and RealMode, for instance). i was hoping it would rather help to have small -- but sufficient -- informations about one topic at one place, and that those pages could be a placeholder for 'external links about ...'. Keeping them appart from the rest was mainly because i didn't exactly see where the information i submit could fit in the FAQ.

If we ever had to make a printable version of the FAQ, all that would be required would be to collate those info in a separate "glossary" section. Btw, i have to admit that "Mutual Exclusion" is certainly a deviation of this as it is soo lacking content and so small that it probably have been a better option to keep it in a parenthese within the base page about semaphores ...

And ... You're sticky, now :-)
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Working on the OS FAQ

Post by Solar »

Hm... I see the point.

One possible solution would be the "Category" feature of PhpWiki: add a link "CategoryGlossary" at the bottom of each such glossary page. That way, it is possible to list all "glossary" pages on the "CategoryGlossary" page (by using a feature of PhpWiki allowing to list all pages linking the current one); linking the Category page without showing up in the list (i.e., from HomePage) would be possible by writing Category:Glossary (note the colon). For that setup to work would require a minor adjustment by df (changing a locked page), but it could help somewhat.

Would that be satisfying?

(Sorry, df, for messing so much with the admin side of things, but with you gone hi[k|d]ing and me knowing PhpWiki rather well... 8) )
Every good solution is obvious once you've found it.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Working on the OS FAQ

Post by Pype.Clicker »

Also, i guess it would be good practice if people that perform page merges could put a banner like

Code: Select all

----
   This page is about to be merged down into <collecting page URL>
----
before you start the merge and

Code: Select all

----
   This page has been merged down into <collecting page URL>
----
when you're done, so that other people do not start editting that page in the meantime ...
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Working on the OS FAQ

Post by Solar »

He, sorry about that - your ext2fs edits are now where they belong. ;-)

I don't expect much "merging" to happen now that the old FAQ is... well, merged. And PhpWiki handles concurent edits to the same page quite well. But you're right, after doing something radical you should check out the RecentEdits about an hour later to see if someone else was "around" the same time...
Every good solution is obvious once you've found it.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Working on the OS FAQ

Post by Pype.Clicker »

http://www.osdev.org/osfaq2/index.php/C ... 0kernel%3F

looks a bit weird to me ... i was expecting some informations like 'what kind of magic should i write to have new and delete ?' for instance assuming that we have a

Code: Select all

Object Pool[MAX_OBJECTS]
, how can one write a operator that returns

Code: Select all

Pool[i++]
as the result of new Object ?
And if one has a kmalloc() implemetation done, how can (s)he create a generic new operator that will call kmalloc regardless of which object is to be created -- and possibly without having to make all the objects sub-classes of class Kmalloc_allocated ...

Btw, do we included informations about constructor lists ? i think there's some info about this in the tutorial from www.InvalidSoftware.something ...
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Working on the OS FAQ

Post by Solar »

Pype.Clicker wrote: i was expecting some informations like 'what kind of magic should i write to have new and delete ?'...
Yes... I'll write that as soon as I tested it in FirstStep. ;-)
...assuming that we have a

Code: Select all

Object Pool[MAX_OBJECTS]
, how can one write a operator that returns

Code: Select all

Pool[i++]
as the result of new Object ?
Uh... not sure what you mean, here. Unless I'm mistaken, declaring Object Pool[MAX_OBJECTS] does not call constructors... and... writing an operator? [me=Solar]is confused.[/me]
And if one has a kmalloc() implemetation done, how can (s)he create a generic new operator that will call kmalloc regardless of which object is to be created -- and possibly without having to make all the objects sub-classes of class Kmalloc_allocated ...
I think the solution there is very easy, but I don't want to post stuff I haven't verified to work.
Btw, do we included informations about constructor lists ?
Not yet, and those I have working. Will write to FAQ Wiki ASAP.
Every good solution is obvious once you've found it.
Adek336

Re:Working on the OS FAQ

Post by Adek336 »

've put working code examples for new, new[], delete and delete[].

I think there was a way to pass multiple arguments to new, but can't remember how. Perhpaps someone?

Code: Select all

char *ch = new char [0x100] "allocating buffer for scanf...";
Cheers,
Adrian
Tim

Re:Working on the OS FAQ

Post by Tim »

I think the syntax goes like this:

Code: Select all

char *ch = new("allocating buffer for scanf...") char [0x100];
// ...
void *new(size_t bytes, const char *message)
{
    return my_malloc(bytes, message);
}
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Working on the OS FAQ

Post by Pype.Clicker »

doh ? the small hints in the bottom of the Wiki Edit page says that <code> and <tt> html tags are allowed, but it doesn't look like being interpreted at all ... is there a working way to fontify code as code rather as plain text ?
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Working on the OS FAQ

Post by Solar »

For inline code (like, writing about malloc() and wanting malloc() to be in monospace) use enclosing "=", as in =malloc()=.

For code blocks, use either <pre> or <verbatim>. <pre> allows you to use Wiki markup in the code (like, making a certain statement inline), while <verbatim> suppresses all further markup.

When using <pre>, beware of FunctionNames() as they are Wiki words and are rendered as links. Use Preview! ;-)
Every good solution is obvious once you've found it.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Working on the OS FAQ

Post by Pype.Clicker »

weird ... that works @work but not @home ... my xfsTrueType server definitely needs a revision ...
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:Working on the OS FAQ

Post by Candy »

Solar wrote: For code blocks, use either <pre> or <verbatim>. <pre> allows you to use Wiki markup in the code (like, making a certain statement inline), while <verbatim> suppresses all further markup.
<verbatim> isn't html.
Post Reply