Opened 10 months ago

Last modified 10 months ago

#18473 new task

Write more chapters for the "Haiku internals" documentation

Reported by: SamuraiCrow Owned by: nielx
Priority: normal Milestone: R1
Component: Documentation Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Forum Post by Pulkomandy

Starting with simple things:

  • The source repository directory layout
  • The main jam targets used in Haiku
  • The buildtools repository, what’s in it, why it exists
  • How to navigate the bugtracker and find things to work on (the current instruction is “look at this list of 5000 issues and find something interesting”)
  • The governance of the project, how do people get commit access, how there are no “maintainers” for specific parts of the code and everyone is expected to know everything, how that can’t possibly be the case so there are, in fact, default owners for each compoment in Trac that provide a good idea of who is responsible for each component. How we communicate, which channels we use, why we have chosen them (free software tools, and asynchronous modes of communication), what their limitations are, what we are doing about it (such as using the forum more and the mailing lists less)
  • An up to date documentation on how to write and run unit tests (the current doc is 3 different blog posts, one of which still references CVS as the place the Haiku source are stored)
  • Tips for efficient testing and debugging: how to use network boot to quickly iterate on testing a driver, how to make best use of qemu, how to test changes to an application or library from inside Haiku without rebooting and recompiling a full filesystem image

More “in-depth” stuff:

  • Documentation for the internals of each “kit” and “server”, for example, how the net_server loads network drivers, how it assign network protocol to each network interface
  • A complete and up to date guide to the driver architecture, how busses and bus_managers work, etc
  • Complete and up-to-date documentation on the graphics stack, including the remote_app_server with both the html5 and native backends, and the test_app_server
  • Proper documentation for the file cache and block cache and the vfs, and what services are provided by each of these, and how they connect to filesystem drivers,
  • The policies for ABI stability for releases and beta versions, and the various things we have set up to avoid breaking applications all the time: libshared, symbol visibility, “fragile base class” padding
  • Documentation on porting Haiku to a new architecture, where to start, how to use bootstrap builds and how to avoid using them since they don’t actually work, tips for debugging the early boot process on both real hardware and virtual machines.

Change History (2)

comment:1 by waddlesplash, 10 months ago

Component: Website/www.haiku-os.orgDocumentation
Keywords: HaikuBook Documentation removed
Owner: changed from waddlesplash to nielx

comment:2 by pulkomandy, 10 months ago

Summary: Finish HaikuBookWrite more chapters for the "Haiku internals" documentation

I'm renaming the ticket since the "Haiku book" is the replacement for the Be Book, hosted at api.haiku-os.org, and is meant for people writing applications and drivers for Haiku.

This documentation is meant to document the internals (in various ways) for people who want to contribute to the OS itself.

Note: See TracTickets for help on using tickets.