99e1c71ee6
only a read lock on the inode, or without a lock at all (in case of prefetching) - it is now using the cache_ref's lock to make sure it's retrieved only once and doesn't waste/corrupts any memory. - since that fix made it mandatory to fix write_chunk_into_cache() to not call pages_io() while holding the cache_ref's lock (was a to-do item before), I changed it to make that possible. - It now also supports write-through caches in theory - as there is no way yet to tell a cache to work this way. - Optimized for the not so uncommon case of writing the last part of a file that is not a multiple of the page size - it won't call pages_io() anymore then, but zero the rest of the page directly. - vm_page_write_modified() is now calling write_page() without holding the cache_ref's lock as well. The updated write_chunk_to_cache() is not so well tested, though, but appears to work so far. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14006 a95241bf-73f2-0310-859d-f6bbb57e9c96 |
||
---|---|---|
data | ||
docs | ||
headers | ||
src | ||
configure | ||
Jamfile | ||
Jamrules | ||
makehdimage | ||
ReadMe |
Setting Up -------- The build system uses Jam/MR (http://www.perforce.com/jam/jam.html). A BeOS executable of Jam 2.5 is available at: http://haiku-os.org/downloads.php?mode=download&id=10&mirror=0 Unzip the executable and copy it to /boot/home/config/bin. The Jam source code is also included in the source tree. You can as well cd into "src/tools/jam" and run "make" to obtain an executable. To build Haiku you also need Oliver Tappe's GCC 2.95.3. You can get it at BeBits: http://www.bebits.com/app/4011 Older versions of GCC 2.95.3 will likely not work. Configuring -------- Open a Terminal and change to your Haiku trunk folder. To configure the build you can run configure like this: $ ./configure --target=TARGET Where "TARGET" is the target platform for the build. Valid targets are "r5", "bone", "dano" and "haiku". If you omit the target it defaults to "haiku". To configure for ZETA use the "dano" target. The configure script generates a file named "BuildConfig" in the "build" directory. As long as configure is not modified (!), there is no need to call it again. That is for re-building you only need to invoke Jam or makehdimage (see below). If you don't update the source tree very frequently, you may want to execute configure after each update just to be on the safe side. Building -------- The preferred method to build Haiku (currently only possible on a BeOS machine) is this: $ makehdimage /Haiku Where "/Haiku" is the mounted BFS partition where you want to install Haiku on. This can be any BFS partition with enough space available. Use DriveSetup to initialize a partition to BFS. If the parameter is omitted, makehdimage currently creates a 60 MB Haiku image in this directory that you can use for Bochs, Qemu and other emulators to boot. To build the whole source tree for your selected target platform (to use the apps, drivers, add-ons, etc.) you can simply invoke Jam: $ jam Or to build only a specific app/driver/etc. include it as an argument: $ jam Pulse NOTE: If you have checked out the latest SVN revision, it is not unlikely that some parts of the tree won't build. Running ------- Generally there are two ways of running Haiku. On real hardware using a partition and on emulated hardware using an emulator like Bochs. 1. On Real Hardware If you have installed Haiku to it's own partition you can include this partition in your bootmanager and try to boot Haiku like any other OS you have installed. To include a new partition in the BeOS bootmanager run this in a Terminal: $ bootman And follow the steps of the installer. 2. On Emulated Hardware For emulated hardware you should build a "haiku.image" using makehdimage without arguments. How to setup this image depends on your emulater. A tutorial for Bochs on BeOS is below. Bochs ----- Version 2.2 of Bochs for BeOS (BeBochs) can be downloaded from BeBits: http://www.bebits.com/app/3324 The package installs to: /boot/apps/BeBochs2.2 You have to set up a configuration for Bochs. You should edit the ".bochsrc" to include the following: ata0-master: type=disk, path="/path/to/haiku.image", cylinders=122, heads=16, spt=63 boot: disk Now you can start Bochs: $ cd /boot/apps/BeBochs2.2 $ ./bochs Answer with RETURN and with some patience you will see Haiku booting. If booting into the graphical evironment fails you can try to hit "space" at the very beginning of the boot process. The Haiku bootloader should then come up and you can select some safe mode options. Docbook documentation --------------------- Requirements : - Docbook XML DTD (http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip) - Docbook Stylesheets (http://prdownloads.sourceforge.net/docbook/docbook-xsl-1.68.1.tar.bz2) - libxml2, xmllin (http://libpak.neoni.net/packages/LibPak_libxml2_dev.zip) - libxslt, xsltproc (http://libpak.neoni.net/packages/LibPak_libxslt_dev.zip) XML catalogs must be configured to avoid internet access : - in Docbook Stylesheets directory : sh ./INSTALL - in your .profile, add something like this : export XML_CATALOG_FILES="/boot/home/docbook-xsl-1.68.1/catalog.xml /boot/home/docbook-xml-4.2/catalog.xml /etc/xml/catalog"