summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2011-11-05 14:50:57 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2011-11-05 14:50:57 +0100
commit3b6491bff3a456868ea8c2ccfbd3328d272e8543 (patch)
tree9709b6e2b20e3cba3e88be29b37a8c8796bc8cf7 /hurd
parentad0f2aa843232649166e0252e28b96c1736c5082 (diff)
parente640b97228bd1214a4dc37ac9d79a704acd40c0c (diff)
Merge branch 'master' of flubber:~hurd-web/hurd-web
Diffstat (limited to 'hurd')
-rw-r--r--hurd/building.mdwn183
-rw-r--r--hurd/building/example.mdwn60
-rw-r--r--hurd/libdiskfs.mdwn42
-rw-r--r--hurd/libhello_example.mdwn167
-rw-r--r--hurd/libstore/examples/ramdisk/discussion.mdwn72
-rw-r--r--hurd/running/virtualbox.mdwn18
-rw-r--r--hurd/translator/tmpfs/notes_various.mdwn8
7 files changed, 310 insertions, 240 deletions
diff --git a/hurd/building.mdwn b/hurd/building.mdwn
index a7066465..c0d5648c 100644
--- a/hurd/building.mdwn
+++ b/hurd/building.mdwn
@@ -1,10 +1,5 @@
-Additional to the following text, a further [[example]] has be posted.
-
/!\ The following information may very well be incomplete and out-dated.
-
-# Building the Hurd from Source
-
If you want to build the Hurd libraries and servers (translators) yourself
instead of just using pre-built binaries, follow these instructions.
@@ -18,8 +13,10 @@ for the GNU Hurd. You can either compile on a GNU/Hurd system, or need a
cross-compiler targeting GNU/Hurd. Our [[toolchain page|toolchain]] has the
details.
+[[!toc]]
+
-## Getting the Source Code
+# Getting the Source Code
You can chose between getting the [sources from the developers's
git](http://savannah.gnu.org/git/?group=hurd):
@@ -36,9 +33,9 @@ Please see the Debian [[running/debian/FAQ]] before using `apt-get source`.
The unpacked source tree is around 20 MiB, and the build tree (configured with
`--disable-profile`) is around 100 MiB.
-## Preparing for the Build
+# Preparing for the Build
-### ... on Debian systems
+## ... on Debian systems
Building the Hurd requires the *build-essential* and *fakeroot* packages, their
dependencies and additional packages that are specified by the source hurd
@@ -47,13 +44,13 @@ package:
# apt-get install build-essential fakeroot
# apt-get build-dep hurd
-### ... on non-Debian systems
+## ... on non-Debian systems
[TODO]
-## Building
+# Building
-### Debian `.deb` Files
+## Debian `.deb` Files
Change into the directory with the downloaded / unpacked Hurd sources, e.g.
@@ -71,7 +68,7 @@ process with
The `.deb` packages will then drop out at the `../` directory.
-### Building, but not the Debian Way
+## Building, but not the Debian Way
The Hurd has to be built in a separate directory:
@@ -100,7 +97,7 @@ This will automatically build all libraries that are required to build the
requested server or library.
-## RPC IDs
+# RPC IDs
[TODO: update / integrate somewhere.]
@@ -116,3 +113,163 @@ mapping between the number of the RPC call and its name:
Now you can use this file in the following way:
$ rpctrace -i ~/hurd.msgids ls
+
+
+# Testing
+
+Any statically linked binaries (`make proc && (cd proc/ && make proc.static)`)
+can be used directly, as they are self-contained regarding the Hurd libraries
+they're using.
+
+Dynamically linked binaries will use the system's shared Hurd libraries, which
+may be or may not be what you want.
+
+Check:
+
+ $ ldd utils/ps
+ libhurdbugaddr.so.0.3 => /lib/libhurdbugaddr.so.0.3 (0x01036000)
+ libps.so.0.3 => /lib/libps.so.0.3 (0x01038000)
+ libihash.so.0.3 => /lib/libihash.so.0.3 (0x0104a000)
+ libshouldbeinlibc.so.0.3 => /lib/libshouldbeinlibc.so.0.3 (0x0104e000)
+ libc.so.0.3 => /lib/i386-gnu/libc.so.0.3 (0x0105a000)
+ libhurduser.so.0.3 => /lib/i386-gnu/libhurduser.so.0.3 (0x011eb000)
+ libmachuser.so.1 => /lib/i386-gnu/libmachuser.so.1 (0x01211000)
+ /lib/ld.so => /lib/ld.so.1 (0x00001000)
+
+Run:
+
+ $ utils/ps
+ [...]
+
+For example, if you have done changes to [[libps]] and now want to test them
+with `ps` (which dynamically links to libps), this is not good. To overcome
+this, `LD_LIBRARY_PATH` can be used:
+
+Check:
+
+ $ LD_LIBRARY_PATH="$PWD"/libps ldd utils/ps
+ libhurdbugaddr.so.0.3 => /lib/libhurdbugaddr.so.0.3 (0x01036000)
+ libps.so.0.3 => /home/thomas/tmp/hurd/git.build/libps/libps.so.0.3 (0x01038000)
+ libihash.so.0.3 => /lib/libihash.so.0.3 (0x0104b000)
+ libshouldbeinlibc.so.0.3 => /lib/libshouldbeinlibc.so.0.3 (0x0104e000)
+ libc.so.0.3 => /lib/i386-gnu/libc.so.0.3 (0x0105a000)
+ libhurduser.so.0.3 => /lib/i386-gnu/libhurduser.so.0.3 (0x011eb000)
+ libmachuser.so.1 => /lib/i386-gnu/libmachuser.so.1 (0x01211000)
+ /lib/ld.so => /lib/ld.so.1 (0x00001000)
+
+Run:
+
+ $ LD_LIBRARY_PATH="$PWD"/libps utils/ps
+ [...]
+
+Additionally, a `hurd-build/lib` directory is populated with links to *all*
+shared Hurd libraries.
+
+Check:
+
+ $ LD_LIBRARY_PATH="$PWD"/lib ldd utils/ps
+ libhurdbugaddr.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libhurdbugaddr.so.0.3 (0x0102b000)
+ libps.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libps.so.0.3 (0x0102d000)
+ libihash.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libihash.so.0.3 (0x01040000)
+ libshouldbeinlibc.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libshouldbeinlibc.so.0.3 (0x01043000)
+ libc.so.0.3 => /lib/i386-gnu/libc.so.0.3 (0x0105a000)
+ libhurduser.so.0.3 => /lib/i386-gnu/libhurduser.so.0.3 (0x011eb000)
+ libmachuser.so.1 => /lib/i386-gnu/libmachuser.so.1 (0x01211000)
+ /lib/ld.so => /lib/ld.so.1 (0x00001000)
+
+Run:
+
+ $ LD_LIBRARY_PATH="$PWD"/lib utils/ps
+ [...]
+
+Likewise, if there is a reason to, it is possible to use the system's `/bin/ps`
+with a freshly built libps:
+
+ $ LD_LIBRARY_PATH="$PWD"/libps /bin/ps
+ [...]
+
+Etc.
+
+And, the same is possible with [[translator]]s, too.
+
+Check, system's shared Hurd libraries:
+
+ $ ldd tmpfs/tmpfs
+ libhurdbugaddr.so.0.3 => /lib/libhurdbugaddr.so.0.3 (0x01036000)
+ libdiskfs.so.0.3 => /lib/libdiskfs.so.0.3 (0x01038000)
+ libpager.so.0.3 => /lib/libpager.so.0.3 (0x01060000)
+ libiohelp.so.0.3 => /lib/libiohelp.so.0.3 (0x01069000)
+ libfshelp.so.0.3 => /lib/libfshelp.so.0.3 (0x0106c000)
+ libstore.so.0.3 => /lib/libstore.so.0.3 (0x01072000)
+ libthreads.so.0.3 => /lib/libthreads.so.0.3 (0x010ba000)
+ libports.so.0.3 => /lib/libports.so.0.3 (0x010c1000)
+ libihash.so.0.3 => /lib/libihash.so.0.3 (0x010ca000)
+ libshouldbeinlibc.so.0.3 => /lib/libshouldbeinlibc.so.0.3 (0x010ce000)
+ libc.so.0.3 => /lib/i386-gnu/libc.so.0.3 (0x010da000)
+ libmachuser.so.1 => /lib/i386-gnu/libmachuser.so.1 (0x0126b000)
+ libhurduser.so.0.3 => /lib/i386-gnu/libhurduser.so.0.3 (0x01282000)
+ libparted.so.0 => /lib/libparted.so.0 (0x012a8000)
+ libuuid.so.1 => /lib/libuuid.so.1 (0x01315000)
+ libdl.so.2 => /lib/i386-gnu/libdl.so.2 (0x01319000)
+ /lib/ld.so => /lib/ld.so.1 (0x00001000)
+
+Check, local libdiskfs, and otherwise system's shared Hurd libraries:
+
+ $ LD_LIBRARY_PATH="$PWD"/libdiskfs ldd tmpfs/tmpfs
+ libhurdbugaddr.so.0.3 => /lib/libhurdbugaddr.so.0.3 (0x01036000)
+ libdiskfs.so.0.3 => /home/thomas/tmp/hurd/git.build/libdiskfs/libdiskfs.so.0.3 (0x01038000)
+ libpager.so.0.3 => /lib/libpager.so.0.3 (0x01061000)
+ libiohelp.so.0.3 => /lib/libiohelp.so.0.3 (0x01069000)
+ libfshelp.so.0.3 => /lib/libfshelp.so.0.3 (0x0106c000)
+ libstore.so.0.3 => /lib/libstore.so.0.3 (0x01072000)
+ libthreads.so.0.3 => /lib/libthreads.so.0.3 (0x010ba000)
+ libports.so.0.3 => /lib/libports.so.0.3 (0x010c1000)
+ libihash.so.0.3 => /lib/libihash.so.0.3 (0x010cb000)
+ libshouldbeinlibc.so.0.3 => /lib/libshouldbeinlibc.so.0.3 (0x010ce000)
+ libc.so.0.3 => /lib/i386-gnu/libc.so.0.3 (0x010da000)
+ libmachuser.so.1 => /lib/i386-gnu/libmachuser.so.1 (0x0126b000)
+ libhurduser.so.0.3 => /lib/i386-gnu/libhurduser.so.0.3 (0x01282000)
+ libparted.so.0 => /lib/libparted.so.0 (0x012a9000)
+ libuuid.so.1 => /lib/libuuid.so.1 (0x01315000)
+ libdl.so.2 => /lib/i386-gnu/libdl.so.2 (0x01319000)
+ /lib/ld.so => /lib/ld.so.1 (0x00001000)
+
+Check, all local shared Hurd libraries:
+
+ $ LD_LIBRARY_PATH="$PWD"/lib ldd tmpfs/tmpfs
+ libhurdbugaddr.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libhurdbugaddr.so.0.3 (0x0102b000)
+ libdiskfs.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libdiskfs.so.0.3 (0x0102d000)
+ libpager.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libpager.so.0.3 (0x01056000)
+ libiohelp.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libiohelp.so.0.3 (0x0105e000)
+ libfshelp.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libfshelp.so.0.3 (0x01061000)
+ libstore.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libstore.so.0.3 (0x01066000)
+ libthreads.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libthreads.so.0.3 (0x010ae000)
+ libports.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libports.so.0.3 (0x010b6000)
+ libihash.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libihash.so.0.3 (0x010be000)
+ libshouldbeinlibc.so.0.3 => /home/thomas/tmp/hurd/git.build/lib/libshouldbeinlibc.so.0.3 (0x010c1000)
+ libc.so.0.3 => /lib/i386-gnu/libc.so.0.3 (0x010d8000)
+ libmachuser.so.1 => /lib/i386-gnu/libmachuser.so.1 (0x01269000)
+ libhurduser.so.0.3 => /lib/i386-gnu/libhurduser.so.0.3 (0x01281000)
+ libparted.so.0 => /lib/libparted.so.0 (0x012a7000)
+ libuuid.so.1 => /lib/libuuid.so.1 (0x01313000)
+ libdl.so.2 => /lib/i386-gnu/libdl.so.2 (0x01317000)
+ /lib/ld.so => /lib/ld.so.1 (0x00001000)
+
+Run, system's shared Hurd libraries:
+
+ $ settrans -ca tmp-0 /usr/bin/env "$PWD"/tmpfs 32M
+
+Run, local libdiskfs, and otherwise system's shared Hurd libraries:
+
+ $ settrans -ca tmp-0 /usr/bin/env LD_LIBRARAY_PATH="$PWD"/libdiskfs "$PWD"/tmpfs 32M
+
+Run, all local shared Hurd libraries:
+
+ $ settrans -ca tmp-0 /usr/bin/env LD_LIBRARAY_PATH="$PWD"/lib "$PWD"/tmpfs 32M
+
+Likewise, if there is a reason to, it is possible to use the system's
+`/hurd/tmpfs` with a freshly built libdiskfs:
+
+ $ settrans -ca tmp-0 /usr/bin/env LD_LIBRARAY_PATH="$PWD"/libdiskfs /hurd/tmpfs 32M
+
+Etc.
diff --git a/hurd/building/example.mdwn b/hurd/building/example.mdwn
deleted file mode 100644
index 7c84b102..00000000
--- a/hurd/building/example.mdwn
+++ /dev/null
@@ -1,60 +0,0 @@
-[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-
-[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
-id="license" text="Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no Invariant
-Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
-is included in the section entitled
-[[GNU Free Documentation License|/fdl]]."]]"""]]
-
-I checked out the source code on my Ubuntu GNU/Linux system connected to the
-Internet using:
-
- git clone git://git.sv.gnu.org/hurd/hurd.git
-
-I mounted the hurd directory on Ubuntu from my GNU Hurd system connected to the
-LAN through NFS:
-
- settrans -ac /mnt /hurd/nfs ubuntu:/home/shaks/code
-
-Copy the hurd directory, locally.
-
-For compilation, you require build-essential, libc0.3-dev, hurd-dev. I used
-Debian GNU Hurd K10 CDs for installation and they are available in the first
-CD.
-
- apt-get update
- apt-get install build-essential libc0.3-dev hurd-dev
-
-Enter into the hurd directory and start building it:
-
- cd hurd
- mkdir build
- cd build
- ../configure
- make
-
-There is a "libiohelp needed by" error. So, do a manual compilation for
-libiohelp.
-
- cd ..
- make libiohelp
- cd build
- make
-
-There is a "libiostore needed by" error. So, do a manual compilation for
-libiostore.
-
- cd ..
- make libiostore
- cd build
- make
-
-There is a "libiohelp.so: No such file or directory" error.
-
-Copy libiohelp/libiohelp.so file to build/libiohelp/ and re-run make,
-
- make
-
-The executables are created in the subdirectories in build/ directory.
diff --git a/hurd/libdiskfs.mdwn b/hurd/libdiskfs.mdwn
new file mode 100644
index 00000000..dd499785
--- /dev/null
+++ b/hurd/libdiskfs.mdwn
@@ -0,0 +1,42 @@
+[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+
+# Paging
+
+In the course of Maksym's [[translator/tmpfs]] work:
+
+IRC, freenode, #hurd, 2011-10-24:
+
+ <mcsim> I've compared the way pagers are handled in ext2fs and found out
+ that for every file new pager is created when occurs reading or writing
+ to this file. Is it necessary? And can one pager handle several memory
+ objects?
+ <antrik> mcsim: yes, this in necessary. one pager port corresponds to one
+ memory object
+ <antrik> mcsim: note that a pager, from the kernel's point of view, is
+ essentially just the port used to communicated with the process
+ responsible for paging the object. how your process manages multiple
+ pager ports is up to you
+ <mcsim> so, how can I attach those pager_* functions, which are declared
+ now in pager-stubs.c to new pager?
+ <mcsim> or is it done automatically with all pagers, which I create, If
+ only I'm not using default one?
+ <antrik> I'm not sure how libpager works; but I suspect it's based on
+ libports. you probably need a port class for the pager ports, and add the
+ port for each new pager your create to that class
+ <antrik> (of course you also need to add it to some port bucket. if you use
+ a single dispatcher for everything, this would be the default bucket; if
+ you want a separate thread for pager handling, you'd have to create an
+ extra bucket for the pagers)
+
+This is the `diskfs_get_filemap` function that a `libdiskfs` client has to
+provide; used in `libdiskfs/rdwr-internal.c:_diskfs_rdwr_internal`, which in
+turn is used by the [[interface/io_read]]/[[interface/io_write]] RPCs.
diff --git a/hurd/libhello_example.mdwn b/hurd/libhello_example.mdwn
deleted file mode 100644
index 2c5490e2..00000000
--- a/hurd/libhello_example.mdwn
+++ /dev/null
@@ -1,167 +0,0 @@
-[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-
-[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
-id="license" text="Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no Invariant
-Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
-is included in the section entitled
-[[GNU Free Documentation License|/fdl]]."]]"""]]
-
-## Howto write a Hurd library
-
-Build the Hurd sources:
-------------------------
-
-Refer to this [[hurd/building/example]].
-
-Create the library files:
-----------------------
-
-Create a directory, say, libhello in the Hurd sources directory.
-
-Create a lhello.h header file:
-
- /* lhello.h - Example library header file.
- Copyright (C) 2006 Free Software Foundation, Inc.
- Written by Shakthi Kannan <shaks@shakthimaan.com>.
-
- This file is part of the GNU Hurd.
-
- The GNU Hurd is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2, or (at
- your option) any later version.
-
- The GNU Hurd is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with the GNU Hurd; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
- #ifndef _HURD_HELLO_H
- #define _HURD_HELLO_H 1
-
- struct hello
- {
- int x;
- };
-
- #endif /* _HURD_HELLO_H */
-
-Replace filename, year, author name and e-mail address appropriately.
-
-Create a lhello.c file:
-
- /* lhello.c - Example library .c file.
- Copyright (C) 2006
- Free Software Foundation, Inc.
- Written by Shakthi Kannan <shaks@shakthimaan.com>.
-
- This file is part of the GNU Hurd.
-
- The GNU Hurd is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The GNU Hurd is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with the GNU Hurd; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
- #include "lhello.h"
-
- void
- print_hello (void)
- {
- struct hello example;
- example.x = 2;
- printf ("foo and bar are %d words!\n", example.x);
- }
-
-Replace header file year, author name and e-mail address appropriately.
-
-Create a Makefile
-
- #
- # Copyright (C) 2006 Free Software Foundation, Inc.
- #
- # This file is part of the GNU Hurd.
- #
- # The GNU Hurd is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License as
- # published by the Free Software Foundation; either version 2, or (at
- # your option) any later version.
- #
- # The GNU Hurd is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- dir := libhello
- makemode := library
-
- libname := libhello
- SRCS = lhello.c
- installhdrs = lhello.h
- LCLHDRS = $(installhdrs)
-
- OBJS = $(SRCS:.c=.o)
-
- include ../Makeconf
-
-Update the Makeconf file:
-
-Add libhello to lib-subdirs target in the top-level Makefile in the Hurd
-sources.
-
- cd build
- ../configure
- make
-
-Testing the library
--------------------
-
-Write a file, say, foo.c:
-
- /* foo.c */
-
- #define _GNU_SOURCE
-
- int
- main (int argc, char *argv[])
- {
- print_hello();
- return 0;
- }
-
-Static compilation and linking method:
-
- gcc -g -o foo foo.c -L/path/to/libhello -lhello -static
-
-Run the example:
-
- ./foo
-
-Compilation and dynamic linking method:
-
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libhello
- gcc -g -o foo foo.c -L/path/to/libhello -lhello
-
-where /path/to/libhello = /path/to/hurd/build/libhello
-
-Run the example:
-
- ./foo
diff --git a/hurd/libstore/examples/ramdisk/discussion.mdwn b/hurd/libstore/examples/ramdisk/discussion.mdwn
new file mode 100644
index 00000000..d73bf903
--- /dev/null
+++ b/hurd/libstore/examples/ramdisk/discussion.mdwn
@@ -0,0 +1,72 @@
+[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+
+# IRC, freenode, #hurd, 2011-10-15
+
+ <antrik> youpi: I'm not at all talking about ordinary tmpfs. I'm talking
+ about the proposed variant using a separate backing store
+ <antrik> youpi: and as you might remember, I once came up with a crazy
+ passive translator command line (based on another crazy passive
+ translator command line from tschwinge) that can automatically do the
+ mkfs
+ <antrik> so there is really very little benefit in using something else
+ than ext2fs when not paging to the swap partition
+ <antrik> real tmpfs IMHO is mostly useful precisely because it uses the
+ ordinary swap, and doesn't have an explicit size limit...
+ <youpi> well, it is still quite a waste to bounce data betwen page cache
+ and memory storage
+ <youpi> or is ext2fs able to map the store data directly?
+ <youpi> then there's only the medata bounce which is spurious
+ <youpi> and still, even a one-liner settrans doesn't fit with the "is just
+ an fs alternative for the existing tmpfs-mounting scripts"
+ <antrik> youpi: well, if the invocation is the major concern, it would be
+ trivial to write a tiny wrapper binary or script that acts like a
+ "normal" FS...
+ <youpi> antrik: could you write it then?
+ <antrik> you mean a shell script that uses ext2fs on a memory store to act
+ like a "proper" tmpfs?
+ <youpi> I mean whatever that permits to just run mount none /tmp -t tmpfs
+ <youpi> and just works already nowadays
+ <youpi> which we could e.g. ship instead of our currently-completely bugged
+ tmpfs
+ <antrik> I suspect the mount script just looks for /hurd/tmpfs in this
+ case? if so, that should indeed be pretty trivial. let's see if I can dig
+ up my crazy command line -- turning that into a "proper" script should be
+ quite easy I hope...
+ <antrik> hm... I digged up
+ http://lists.gnu.org/archive/html/bug-hurd/2007-04/msg00013.html ; but I
+ wonder how much of it is really necessary for a generic pseudo-tmpfs...
+ <antrik> the major complication seems to be the chmod, which I guess we
+ don't need for most use cases...
+ <youpi> I actually don't see why it's inlined there
+ <youpi> doesn't the caller do it if it needs it?
+ <youpi> ah, well, here there is no caller, it's just a passive entry
+ <antrik> is it a problem that this solution needs an extra node for the
+ store?
+ <youpi> yes
+ <youpi> because you need to say where it resides
+ <youpi> and there's no safe place
+ <youpi> since such safe place would typically be a mounted tmpfs
+ <antrik> I feared that much...
+ <antrik> I suspect we could work around this by not attaching the store to
+ any node; but this a) doesn't work in a shell script, and b) is much more
+ involved...
+ <antrik> hm... can we assume /dev/fd to be present? I have a vague crazy
+ idea...
+ <youpi> yes
+ <antrik> I consider hacking settrans so it grows an option which allows
+ passing the port to the translator as an FD, instead of attaching it to
+ any node... this way, we could work with anonymous translators in shell
+ scripts :-)
+ <antrik> (of course that's not less work than just doing the wrapper in
+ C... but it could be useful in other cases)
diff --git a/hurd/running/virtualbox.mdwn b/hurd/running/virtualbox.mdwn
index 0731b8d6..f57fcbc3 100644
--- a/hurd/running/virtualbox.mdwn
+++ b/hurd/running/virtualbox.mdwn
@@ -22,7 +22,25 @@ The network controller should be configured as PCnet-PCI II or PCNet-FAST III
for instance. INTEL PRO or Paravirtualized Network do not work.
+## Converting from qemu image
+
+It is possible to convert qemu raw image to one of the formats recognized by VirtualBox, namely vdi format.
+
+If you are not sure if the image is a raw format, use qemu to get the information:
+
+ qemu-img info debian-hurd-original.img
+
+To convert the image you need the VirtualBox package properly installed with a VBoxManage tool (which is part of the package). Convert image from raw to vdi:
+
+ VBoxManage convertfromraw debian-hurd-original.img debian-hurd-converted.vdi --format VDI
+
+
# Performance
If [[QEMU with KVM|qemu]] is not available, VirtualBox reportedly has better
performance.
+
+IRC, freenode, #hurd, 2011-10-31:
+
+ <youpi> I don't know what virtualbox does with hardware emulation, but
+ gnumach is awfully slow to probe things there
diff --git a/hurd/translator/tmpfs/notes_various.mdwn b/hurd/translator/tmpfs/notes_various.mdwn
index d16210ca..d1c5cf62 100644
--- a/hurd/translator/tmpfs/notes_various.mdwn
+++ b/hurd/translator/tmpfs/notes_various.mdwn
@@ -212,3 +212,11 @@ License|/fdl]]."]]"""]]
<antrik> seems something more broke in the meantime :-(
<antrik> ah, right... but I the main problem was some other change
<antrik> (or maybe it never really worked, not sure anymore)
+
+---
+
+IRC, freenode, #hurd, 2011-10-11:
+
+ <mcsim> There is no patch for "tmpfs crashes on filling an empty file". For
+ second bug there is Zheng Da's patch, but it wasn't applied (at least I
+ didn't found).