diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2011-11-05 14:50:57 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2011-11-05 14:50:57 +0100 |
commit | 3b6491bff3a456868ea8c2ccfbd3328d272e8543 (patch) | |
tree | 9709b6e2b20e3cba3e88be29b37a8c8796bc8cf7 /hurd | |
parent | ad0f2aa843232649166e0252e28b96c1736c5082 (diff) | |
parent | e640b97228bd1214a4dc37ac9d79a704acd40c0c (diff) |
Merge branch 'master' of flubber:~hurd-web/hurd-web
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/building.mdwn | 183 | ||||
-rw-r--r-- | hurd/building/example.mdwn | 60 | ||||
-rw-r--r-- | hurd/libdiskfs.mdwn | 42 | ||||
-rw-r--r-- | hurd/libhello_example.mdwn | 167 | ||||
-rw-r--r-- | hurd/libstore/examples/ramdisk/discussion.mdwn | 72 | ||||
-rw-r--r-- | hurd/running/virtualbox.mdwn | 18 | ||||
-rw-r--r-- | hurd/translator/tmpfs/notes_various.mdwn | 8 |
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). |