diff options
30 files changed, 470 insertions, 371 deletions
diff --git a/community/gsoc/project_ideas/file_locking.mdwn b/community/gsoc/project_ideas/file_locking.mdwn index b6b393f9..af010c98 100644 --- a/community/gsoc/project_ideas/file_locking.mdwn +++ b/community/gsoc/project_ideas/file_locking.mdwn @@ -8,7 +8,7 @@ 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]]."]]"""]] -[[!meta title="Fix File Locking"]] +[[!meta title="Fix and Complete File Locking Support"]] Over the years, [[UNIX]] has aquired a host of different file locking mechanisms. Some of them work on the Hurd, while others are buggy or only partially @@ -17,7 +17,8 @@ implemented. This breaks many applications. The goal is to make all file locking mechanisms work properly. This requires finding all existing shortcomings (through systematic testing and/or checking for known issues in the bug tracker and mailing list archives), and fixing -them. +them. The biggest missing feature is record locking, i.e. the lockf variant, +which needs a complete implementation. This task will require digging into parts of the code to understand how file locking works on the Hurd. Only general programming skills are required. diff --git a/community/gsoc/project_ideas/lexical_dot-dot.mdwn b/community/gsoc/project_ideas/lexical_dot-dot.mdwn index f0b8db7c..764cd37f 100644 --- a/community/gsoc/project_ideas/lexical_dot-dot.mdwn +++ b/community/gsoc/project_ideas/lexical_dot-dot.mdwn @@ -31,7 +31,7 @@ mechanism. See also [[!GNU_Savannah_bug 17133]]. -Possible mentors: ? +Possible mentors: Carl Fredrik Hammar (cfhammar) Exercise: This project requires changes to the name lookup mechanism in the Hurd-related glibc parts, as well as the Hurd servers. Thus, the exercise task diff --git a/community/gsoc/project_ideas/mtab.mdwn b/community/gsoc/project_ideas/mtab.mdwn index 045533e6..60dde525 100644 --- a/community/gsoc/project_ideas/mtab.mdwn +++ b/community/gsoc/project_ideas/mtab.mdwn @@ -67,7 +67,7 @@ implement both the actual [[mtab_translator|hurd/translator/mtabfs]], and the necessery interface(s) for gathering the data. It requires getting a good understanding of the translator mechanism and Hurd interfaces in general. -Possible mentors: Olaf Buddenhagen (antrik) +Possible mentors: Olaf Buddenhagen (antrik), Carl Fredrik Hammar (cfhammar) Exercise: Make some improvement to any of the existing Hurd translators. Especially those in [hurdextras](http://www.nongnu.org/hurdextras/) are often diff --git a/community/gsoc/project_ideas/secure_chroot.mdwn b/community/gsoc/project_ideas/secure_chroot.mdwn index a433e8d1..0a08bbf5 100644 --- a/community/gsoc/project_ideas/secure_chroot.mdwn +++ b/community/gsoc/project_ideas/secure_chroot.mdwn @@ -38,7 +38,7 @@ new mechanisms. (Translators.) More important than the actual code is the documentation of what he did: he must be able to defend why he chose a certain approach, and explain why he believes this approach really secure. -Possible mentors: ? +Possible mentors: Carl Fredrik Hammar (cfhammar) Exercise: It's hard to come up with a relevant exercise, as there are so many possible solutions... Probably best to make an improvement to one of the diff --git a/community/gsoc/project_ideas/server_overriding.mdwn b/community/gsoc/project_ideas/server_overriding.mdwn index 42edf287..80beab4c 100644 --- a/community/gsoc/project_ideas/server_overriding.mdwn +++ b/community/gsoc/project_ideas/server_overriding.mdwn @@ -68,7 +68,7 @@ discussing this topic, from a previous year's GSoC application -- see <http://lists.gnu.org/archive/html/bug-hurd/2007-06/msg00082.html>, <http://lists.gnu.org/archive/html/bug-hurd/2008-03/msg00039.html>. -Possible mentors: Olaf Buddenhagen (antrik) +Possible mentors: Olaf Buddenhagen (antrik), Carl Fredrik Hammar (cfhammar) Exercise: Come up with a glibc patch that allows overriding one specific standard server using method (1). diff --git a/community/gsoc/project_ideas/tmpfs.mdwn b/community/gsoc/project_ideas/tmpfs.mdwn index 69adef0f..93215d07 100644 --- a/community/gsoc/project_ideas/tmpfs.mdwn +++ b/community/gsoc/project_ideas/tmpfs.mdwn @@ -37,7 +37,7 @@ implementation. It requires digging into some parts of the Hurd, including the [[pager_interface|hurd/libpager]] and [[hurd/translator]] programming. This task probably doesn't require any design work, only good debugging skills. -Possible mentors: ? +Possible mentors: Carl Fredrik Hammar (cfhammar) Exercise: Take a look at tmpfs and try to fix one of the existing issues. Some of them are probably not too tricky; or you might discover something else you diff --git a/community/gsoc/project_ideas/unionfs_boot.mdwn b/community/gsoc/project_ideas/unionfs_boot.mdwn index a801290f..6c83092b 100644 --- a/community/gsoc/project_ideas/unionfs_boot.mdwn +++ b/community/gsoc/project_ideas/unionfs_boot.mdwn @@ -42,4 +42,4 @@ Completing this task will require gaining a very good understanding of the Hurd boot process and other parts of the design. It requires some design skills also to come up with a working mechanism. -Possible mentors: ? +Possible mentors: Carl Fredrik Hammar (cfhammar) diff --git a/community/gsoc/project_ideas/virtualization.mdwn b/community/gsoc/project_ideas/virtualization.mdwn index c7403f70..3a677306 100644 --- a/community/gsoc/project_ideas/virtualization.mdwn +++ b/community/gsoc/project_ideas/virtualization.mdwn @@ -73,4 +73,4 @@ Completing this project will require gaining a very good understanding of the Hurd architecture and spirit. Previous experience with other virtualization solutions would be very helpful. -Possible mentors: Olaf Buddenhagen (antrik) +Possible mentors: Olaf Buddenhagen (antrik), Carl Fredrik Hammar (cfhammar) diff --git a/community/gsoc/xorg_ideas.mdwn b/community/gsoc/xorg_ideas.mdwn index 406d370d..26177345 100644 --- a/community/gsoc/xorg_ideas.mdwn +++ b/community/gsoc/xorg_ideas.mdwn @@ -8,51 +8,11 @@ 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]]."]]"""]] -## libpciaccess Support for GNU Hurd - -xserver 1.5 introduces libpciaccess as a new method for handling PCI devices. -The purpose was to get rid of the messy old PCI code in the server, instead -using a new implementation that is encapsulated in a library, and uses external -PCI access interfaces provided by the operating systems. - -As libpciaccess is written from scratch, support for various operating systems -needs to be reimplemented individually, writing specific backends for each. -This task is about creating such a backend for GNU Hurd. - -Writing a "proper" native backend for the Hurd is rather involved, as there is -no kernel PCI interface so far -- it has to be created first. It would also -have the disadvantage of being somewhat tied to the specific driver framework: -The present framework is pretty dated (using some ancient Linux drivers with a -layer of glue code); and when this is replaced, the PCI interface will have to -be updated as well. - -Alternatively, a libpciaccess backend simply doing old-style register poking -from user space could be implemented. (Either from scratch, or by reusing some -existing PCI code from the old server or some BSD kernel.) That approach is not -as elegant; it would be somewhat fragile and limited, like the old PCI code in -the server. On the other hand, it is much simpler to implement; and it would -also benefit other non-mainstream platforms that can't afford -creating/maintaining a native backend. - -The goal of this project is getting a recent xorg server, using libpciaccess, -to run on the Hurd. - -This task probably doesn't require any previous X programming knowledge, though -a bit of experience with PCI programming will probably help. Some Hurd-specific -knowledge will have to be obtained while working on it -- especially if -implementing a proper kernel PCI interface. The task is pretty involved in the -latter case, but shouldn't be too hard if taking the user space register poking -approach. - -Exercise: Implement a stub backend for libpciaccess, which doesn't really do -anything useful, but compiles fine on the Hurd. - - ## VT Switching for GNU Hurd While XFree86 was first ported to the Hurd more than a decade ago, and there -are updates now and then to make newer versions of Xorg run as well (see also -the libpciaccess task), the support is quite rudimentary: in particular, there +are updates now and then to make newer versions of Xorg run as well, +the support is quite rudimentary: in particular, there is no support for switching back to the text console while X is running. Implementing this requires creating an interface between the X server and the @@ -74,7 +34,7 @@ The Direct Rendering Manager (DRM) is a kernel driver component taking care of graphics hardware access. Originally, it only took care of the 3D acceleration unit, and was used mostly by the DRI (Direct Rendering Infrastructure) in Mesa. -About two years ago, the developers came to the conclusion that a more robust +A few years ago, the developers came to the conclusion that a more robust and functional graphics stack requires the kernel driver to take care of other graphics access as well: mode setting in particular. (Essentially what the old KGI project proposed, see <http://www.kgi-project.org>.) Also, with the new GEM @@ -90,7 +50,7 @@ microkernel idea -- we want to run the drivers as priviledged user space server processes, rather than actual kernel modules. This task is about doing the first steps for porting the DRM to the Hurd. This -can be done by taking one of the existing DRM modesetting drivers (Intel or +can be done by taking one of the existing DRM modesetting drivers (Intel, Nouveau (Nvidia), or Radeon), trying to get parts of it running as a Hurd server, and porting/implementing necessary pieces of the general DRM framework as needed along the way. diff --git a/config_edittemplate/open_issue_page.mdwn b/config_edittemplate/open_issue_page.mdwn index 9e11b0d7..6afc24b4 100644 --- a/config_edittemplate/open_issue_page.mdwn +++ b/config_edittemplate/open_issue_page.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010 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 diff --git a/config_edittemplate/regular_page.mdwn b/config_edittemplate/regular_page.mdwn index 8650bdf7..63cc6343 100644 --- a/config_edittemplate/regular_page.mdwn +++ b/config_edittemplate/regular_page.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010 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 diff --git a/contributing/web_pages.mdwn b/contributing/web_pages.mdwn index 390cb942..13dc7a3e 100644 --- a/contributing/web_pages.mdwn +++ b/contributing/web_pages.mdwn @@ -131,8 +131,8 @@ For all cases: if you omit `[dest]` it will default to `hurd-web`. Later, you can just `cd` into the `hurd-web` directory and run a `git pull` to get hold of the latest changes others have been installing in the mean time. -(In most cases, even better would be to do a `git fetch`, followed by a `git -rebase origin/master` to avoid useless *Merge branch ...* messages. See the +(In most cases, you should use `git pull --rebase`, +to avoid useless *Merge branch ...* messages. See the Git documentation for details.) ## Editing the Content diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index 51b3abfc..c5dddfb6 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2010 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 @@ -13,9 +14,7 @@ is included in the section entitled [[Thomas_Schwinge|tschwinge]] has written a shell script for building a complete cross-build environment for GNU/Hurd systems. -For now, find the shell scripts at -<http://nic-nac-project.de/~schwinge/tmp/cross-gnu> and -<http://nic-nac-project.de/~schwinge/tmp/cross-gnu-env>. +Find it in the [[source repositories/incubator]], *cross-gnu* branch. ## Using diff --git a/hurd/documentation.mdwn b/hurd/documentation.mdwn index 589246bd..874ce847 100644 --- a/hurd/documentation.mdwn +++ b/hurd/documentation.mdwn @@ -63,3 +63,9 @@ is included in the section entitled [[Position_paper_*Improving_Usability_via_Access_Decomposition_and_Policy*|ng/position_paper]] Neal Walfield and Marcus Brinkmann give an overview about how a future, subsequent system may be architected. + + * [*Generalizing mobility for the Hurd*](http://users.student.lth.se/cs07fh9/2009-hammar-hurd-mobility.pdf), + a thesis written by Carl Fredrik Hammar, + investigates the mobility aspect of stores + and how it can be generalized and used for other applications. + The background chapter may be of interest to new developers. diff --git a/hurd/status.mdwn b/hurd/status.mdwn index cd2256e3..b0fe1460 100644 --- a/hurd/status.mdwn +++ b/hurd/status.mdwn @@ -52,7 +52,7 @@ to test-drive the Hurd in a real life system with access to about 50% of the Debian software archive. The most recent version of the Debian port at the time of writing -is *Debian GNU/Hurd K16*. +is *Debian GNU/Hurd L1*. That said, the last official release of the Hurd diff --git a/ikiwiki.setup b/ikiwiki.setup index 9cd23660..108078f5 100644 --- a/ikiwiki.setup +++ b/ikiwiki.setup @@ -38,7 +38,8 @@ IkiWiki::Setup::Standard->import({ # users who are wiki admins adminuser => [qw{tschwinge}], # users who are banned from the wiki - banned_users => [qw{ColetCris http://calvinyoung.myopenid.com/}], + banned_users => [qw{AlbertF bernhart ColetCris + http://calvinyoung.myopenid.com/}], # where the source of the wiki is located srcdir => $srcdir, # where to build the wiki @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009 -Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, +2010 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 @@ -53,7 +53,7 @@ to always greet the channel when you enter and before leave. Starting in early 2008, there have been regular IRC meetings held between the (now former) [[community/GSoC]] students and their mentors. These continue to take place even that the [[Google_Summer_of_Code_2008|community/gsoc/2008]] is -over, and still take place, currently **every Tuesday and Friday at 12:00 UTC in the `#hurd` +over, and still take place, currently **every Wednesday at 11:00 UTC in the `#hurd` channel**. Of course, the meetings are not only for (former) GSoC students and mentors, but open to any interested party. So, everyone, take your chance to chat with GNU Hurd developers! diff --git a/microkernel/for_beginners/discussion.mdwn b/microkernel/for_beginners/discussion.mdwn new file mode 100644 index 00000000..9831796b --- /dev/null +++ b/microkernel/for_beginners/discussion.mdwn @@ -0,0 +1,20 @@ +[[!meta copyright="Copyright © 2010 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]]."]]"""]] + +Good day. + +I am a developer, have some c knowledge, and in perspective hope to be able to make a contribution in Hurd kernel. At the moment I consider myself as a beginner. + +My question is about the second exercise. + +>Implement your own pager. Write a server that synthesizes content on the fly and have a client map the object into its address space and print out the file. + +* The second sentence "Write a server that..." is too long and too difficult for me to understand perhaps because English is not my native language. Could you please explain it in a little bit easier phrases? +* Am I write that in a given context "pager" means just "memory manager"? diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn index e0512f25..3bf8e85c 100644 --- a/public_hurd_boxen.mdwn +++ b/public_hurd_boxen.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2006, 2007, 2008, 2009 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010 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 @@ -13,13 +13,13 @@ Here are some Hurd boxes that users have made available to the public: [[!table class="table_style_1" data=""" "Hoster","Name","Distribution","Machine Specs","Comments" -"[[bddebian]]","[[blubber|zenhost]]","Debian GNU/Hurd","Celeron 2.2 GHz; 222 MiB","Xen domU on zenhost; for experimental stuff" +"[[bddebian]]","blubber","Debian GNU/Hurd","Celeron 2.2 GHz; 222 MiB","Xen domU on [[zenhost]]; for experimental stuff" "[[bddebian]]","clubber","Debian GNU/Hurd","PIII 1 GHz; 384 MiB" -"[[bddebian]]","[[flubber|zenhost]]","Debian GNU/Hurd","Celeron 2.2 GHz; 666 MiB","Xen domU on zenhost" -"[[bddebian]]","[[snubber|zenhost]]","Debian GNU/Hurd","Celeron 2.2 GHz; 160 MiB","Xen domU on zenhost; web server" +"[[bddebian]]","flubber","Debian GNU/Hurd","Celeron 2.2 GHz; 666 MiB","Xen domU on [[zenhost]]" +"[[bddebian]]","snubber","Debian GNU/Hurd","Celeron 2.2 GHz; 160 MiB","Xen domU on [[zenhost]]; web server" "[[bddebian]]","gnubber","Debian GNU/Hurd","PII 733 MHz; 384 MiB" "[[bddebian]]","goober","Debian GNU/Hurd","?" -"[[bddebian]]","[[grubber|zenhost]]","Debian GNU/Hurd","Celeron 2.2 GHz; 222 MiB","Xen domU on zenhost; for experimental stuff" +"[[bddebian]]","grubber","Debian GNU/Hurd","Celeron 2.2 GHz; 222 MiB","Xen domU on [[zenhost]]; for experimental stuff" "[[bddebian]]","[[zenhost]]","Debian GNU/Linux","Celeron 2.2 GHz","Xen dom0 for several hosts" """]] diff --git a/public_hurd_boxen/bddebian.mdwn b/public_hurd_boxen/bddebian.mdwn index acefba46..82fb0b8c 100644 --- a/public_hurd_boxen/bddebian.mdwn +++ b/public_hurd_boxen/bddebian.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2010 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 diff --git a/public_hurd_boxen/installation.mdwn b/public_hurd_boxen/installation.mdwn new file mode 100644 index 00000000..90dbba6d --- /dev/null +++ b/public_hurd_boxen/installation.mdwn @@ -0,0 +1,97 @@ +[[!meta copyright="Copyright © 2009, 2010 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]]."]]"""]] + +This page documents how installation of a new machine is being done on +[[zenhost]]. + + * Enable loggin with screen (`C-a H`). + + * \# lvcreate ... + + * ~tschwinge/machines/[MACHINE] + + * \# MACHINE=[MACHINE] TARGET=/dev/zenhost/[MACHINE]-root ~tschwinge/install_crosshurd + + * TODO + + I: Extracting /var/cache/apt/archives/dash_0.5.5.1-3_hurd-i386.deb... + tar: ./bin/sh: Cannot create symlink to `dash': File exists + tar: ./usr/share/man/man1/sh.1.gz: Cannot create symlink to `dash.1.gz': File exists + tar: Exiting with failure status due to previous errors + + Ignore? -- + <http://lists.gnu.org/archive/html/bug-hurd/2009-11/msg00094.html> + + * Check that `/tmp/crosshurd.[MACHINE]/etc/hosts` has been created correctly. + + * \# sudo umount /tmp/crosshurd.[MACHINE] + \# sudo rmdir /tmp/crosshurd.[MACHINE] + + * /etc/xen/[MACHINE] + + * \# xm create -c [MACHINE] + + * \# /install + + * TODO + + Unpacking debconf (from .../debconf_1.5.28_all.deb) ... + + debconf-set-selections + warning: Unknown type error, skipping line 9 + + * TODO + + +---------------------------Configuring grub-pc------------------------------+ + + Make it not install GRUB packages. + + Likewise, the *gnumach* package need not be installed. + + * If needed: + + \# cd /dev/ && ./MAKEDEV hd2 + \# mkfs.ext2 -I 128 -b 4096 /dev/hd2 # TAKE CARE! + \# mkdir /media/data && settrans /media/data /hurd/ext2fs /dev/hd2 + \# rmdir /home && ln -s media/data/home / + \# mkdir /media/data/home + + * If needed: restore (parts of) some files + + * /etc/fstab + + * /etc/{passwd,shadow,group,gshadow} + + * \# adduser ... sudo + + * \# passwd root + + * /etc/ssh/ssh_host_*key* + + Can do this here or have to move after install_packages due to the + files being overwritten again (don't think so)? + + * \# syncfs -s && halt + + * \# xm create -c [MACHINE] + + * \# /install_packages + + * Until [[open_issues/screen]] is fixed: + + * Install `flubber:~tschwinge/screen_4.0.3-11_hurd-i386.deb` instead. + + * \# printf 'screen\thold\n' | dpkg --set-selections + + * add line to zenhost's `/etc/hosts` + + * system-specific: + + * [[flubber]] + * [[snubber]] diff --git a/public_hurd_boxen/installation/flubber.mdwn b/public_hurd_boxen/installation/flubber.mdwn new file mode 100644 index 00000000..219c2db9 --- /dev/null +++ b/public_hurd_boxen/installation/flubber.mdwn @@ -0,0 +1,34 @@ +[[!meta copyright="Copyright © 2010 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]]."]]"""]] + +# *git-daemon* + +## `/etc/rc.local` + + [...] + # runit doesn't work yet... + LC_ALL=C date >> /var/log/git-daemon + git daemon --verbose --base-path=/var/cache /var/cache/git >> /var/log/git-daemon 2>&1 & + [...] + +Should [[fix runit|open issues/runit]] and use Debian's `git-daemon-run` +package instead. + + +# *polipo* + + Starting polipo: /usr/lib/polipo/polipo-control: 145: /sbin/route: not found + polipo. + +## `/etc/rc.local` + + [...] + /usr/lib/polipo/polipo-control go-online + [...] diff --git a/public_hurd_boxen/installation/snubber.mdwn b/public_hurd_boxen/installation/snubber.mdwn new file mode 100644 index 00000000..703169a8 --- /dev/null +++ b/public_hurd_boxen/installation/snubber.mdwn @@ -0,0 +1,33 @@ +[[!meta copyright="Copyright © 2010 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]]."]]"""]] + +# Additional Packages + + apache2-mpm-worker build-essential git-core gitweb ikiwiki inetutils-inetd + less libtext-csv-perl netcat nullmailer perlmagick screen texinfo + + $ find /etc/rc*/ | grep syslog | sudo xargs rm + + +# `~hurd-web/` + + $ mkdir hurd-web && GIT_DIR=hurd-web git init + + +# `~tschwinge/` + + $ mkdir tmp/backup && chmod 0733 tmp/backup + + +# Restore Backup + +## `/etc/apache2/mods-enabled/` + +`rewrite.load`, `userdir.conf`, `userdir.load` diff --git a/public_hurd_boxen/zenhost.mdwn b/public_hurd_boxen/zenhost.mdwn index e13c49b1..b828b8e9 100644 --- a/public_hurd_boxen/zenhost.mdwn +++ b/public_hurd_boxen/zenhost.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2010 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 @@ -15,140 +15,4 @@ License|/fdl]]."]]"""]] [[!inline pages=public_hurd_boxen/xen_handling feeds=no]] -# Installing - - * Enable loggin with screen (`C-a H`). - - * lvcreate ... - - * ~tschwinge/machines/MACHINE - - * ~tschwinge/install_crosshurd - - * MACHINE - - * /dev/zenhost/...-root - - * /etc/xen/MACHINE - - * xm create -c MACHINE - - * /install - - * If needed: - - * cd /dev/ && ./MAKEDEV hd2 - - * mkfs.ext2 -I 128 -b 4096 /dev/hd2 - - * mkdir /media/data && settrans /media/data /hurd/ext2fs /dev/hd2 - - * rmdir /home && ln -s media/data/home / - - * mkdir /media/data/home - - * If needed: restore (parts of) some files - - * /etc/fstab - - * /etc/{passwd,shadow,group,gshadow} - - * adduser ... sudo - - * passwd root - - * /etc/ssh/ssh_host_*key* - - Can do this here or have to move after install_packages due to the - files being overwritten again (don't think so)? - - * syncfs -s; halt - - * xm create -c MACHINE - - * /install_packages - - * add line to zenhost's `/etc/hosts` - -## TODO - -### crosshurd - - I: Extracting /var/cache/apt/archives/dash_0.5.5.1-3_hurd-i386.deb... - tar: ./bin/sh: Cannot create symlink to `dash': File exists - tar: ./usr/share/man/man1/sh.1.gz: Cannot create symlink to `dash.1.gz': File exists - tar: Exiting with failure status due to previous errors - -Ignore? - -### /install - - Unpacking debconf (from .../debconf_1.5.28_all.deb) ... - + debconf-set-selections - warning: Unknown type error, skipping line 7 - -Fix. - - Configuring dash - ---------------- - - The system shell is the default command interpreter for shell scripts. - - Using dash as the system shell will improve the system's overall performance. It - does not alter the shell presented to interactive users. - - Use dash as the default system shell (/bin/sh)? yes - -Automate. - - Configuring libpam-runtime - -------------------------- - - Pluggable Authentication Modules (PAM) determine how authentication, - authorization, and password changing are handled on the system, as well as - allowing configuration of additional actions to take when starting user - sessions. - - Some PAM module packages provide profiles that can be used to automatically - adjust the behavior of all PAM-using applications on the system. Please - indicate which of these behaviors you wish to enable. - - 1. Unix authentication - - (Enter the items you want to select, separated by spaces.) - - PAM profiles to enable: 1 - -Automate. - - +---------------------------Configuring grub-pc------------------------------+ - -Add grub*- somewhere. - - +---------------------ca-certificates configuration------------------------+ - | Trust new certificates from certificate authorities? | - -Used to be configured later -- move seeding forward. - ---- - -# snubber - - * apache2-mpm-worker build-essential git-core gitweb ikiwiki inetutils-inetd - less libtext-csv-perl netcat nullmailer perlmagick screen texinfo - - * `find /etc/rc*/ | grep syslog | sudo xargs rm` - - * `~hurd-web/` - - * `mkdir hurd-web && GIT_DIR=hurd-web git init` - - * `~tschwinge/` - - * `mkdir tmp/backup && chmod 0733 tmp/backup` - - * restore backup - - * `/etc/apache2/mods-enabled/` - - * `rewrite.load`, `userdir.conf`, `userdir.load` +# [[Installation of new machines|installation]] diff --git a/rules/source_repositories.mdwn b/rules/source_repositories.mdwn index 21419393..8215af3b 100644 --- a/rules/source_repositories.mdwn +++ b/rules/source_repositories.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -9,148 +9,4 @@ 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]]."]]"""]] -Git repositories on Savannah: <http://git.savannah.gnu.org/cgit/hurd/>. - -# Branches - -Members of the [[Hurd_Savannah_group|savannah_group]] are allowed to create -branches without formal permission: - - * named `SAVANNAH_LOGIN/BASE_BRANCH[-TOPIC]` for private general-purpose or - topic branches, respectively, or - * named `BASE_BRANCH-TOPIC` for public topic branches basing on - `BASE_BRANCH`. - -`TOPIC` shall be a suitable tag describing the branch's main concern. These -tags can be applied recursively (`TOPIC-SUBTOPIC-SUBSUBTOPIC`). - -*private* vs. *public* does, of course, in this scenario not mean visibility, -but instead authority: *private* branches are those that the user -`SAVANNAH_LOGIN` has authority over, whereas *public* branches are open for -every committer to install changes on. The private branches are those that you -would typically host on your own machine and publish through your own web -server, but we offer that you can instead do this from the centralized Savannah -repository, as a number of people don't have an always-accessible web server -running on their own machines. - -Examples: - - * GNU Mach - - * `master` -- the mainline branch - * `master-oskit` -- port to OSKit; branched off of `master` at some point - * `master-gdb_stubs` -- add support for GDB stubs; branched off of - `master` at some point - - * libpthread - - * `master` -- the mainline branch - * `master-viengoos` -- port to Viengoos; branched off of `master` at some - point - * `master-viengoos-on-bare-metal` -- port to Viengoos running on bare - metal; branched off of `master-viengoos` at some point - - * unionfs - - * `master` -- the mainline branch - * `master-unionmount` -- develop `unionmount` based on `unionfs`' master - branch - -To give a concrete example, the latter one was created like this: - - $ git clone --no-checkout ssh://git.savannah.gnu.org/srv/git/hurd/unionfs.git - $ cd unionfs/ - $ git checkout -b master-unionmount origin/master - $ ... - $ git push master-unionmount - -## Merging - -Merging between Git branches is trivial, at least as long as no conflicts -arise. - -Due to this, you are encouraged to freely make use of separate branches for -different working topics, as this really faciliates concentrating on one -specific working topic. - -You are encouraged to regularely merge from the respective mainline branches -(`BASE_BRANCH`; should be `master` in most cases) into your working branches, -and ensure that your modifications are still fine in the context of new -mainline changes. - -Merging from working branches into the mainline branches will usually be done -by one of the project administrators, unless negotiated otherwise. For this to -happen, the copyright of your changes has to be assigned to the Free Software -Foundation; read about the -[[copyright_assignment_process|savannah_group#copyright_assignment]]. - -It is explicitly encouraged to *merge* changes from working branches into the -mainline branches (as opposed to *rebase* them on top), as the former mode -easily allows to determine the context under which a patch has been developed. - -# Tags - -Equivalent rules apply. - -# Behavior - -Try to not introduce spurious, unneeded changes, e.g., whitespace changes. - -Adhere to the coding conventions that are already used. These are usually the -[GNU Coding Standards](http://www.gnu.org/prep/standards/html_node/) for stuff -written by ourselves, including new files, of course. - -GNU Mach code is largely based on external code. Don't GNU-ify it, as this -would make merging external patches unnecessarily difficult. - -## Commit messages - -We no longer maintain parallel `ChangeLog` and commit messages. When needed, -the `ChangeLog` files can be created automatically from the commit messages. - -Commit messages have this mandatory format: - - One-line summary. - Blank line. - ChangeLog-like list of changes, but without leading tabs. - -The header line of each former `ChangeLog` snippet (DATE NAME EMAIL) is no -longer to be included in the commit message, and instead the author and -committer of a change, together with the dates, will be maintained natively by -Git. - -Example: - - commit 3054666a46e0142cacef895c13edb4391435c722 - Author: Some One <someone@example.com> - AuthorDate: Thu Jun 11 15:59:55 2005 +0000 - Commit: Some One <someone@example.com> - CommitDate: Thu Jun 11 15:59:55 2005 +0000 - - Frobnicate the foo. - - * frob.c (foo): Frob it. - * oldfoo.c [OLD] (oldfoo): Likewise. - [OLD_OLD_FOO] (oofoo): Permute every second word with itself, and - beginning with the tenth line, every third one also. Pure - nonsense. - -Read about how to write [GNU-style `ChangeLog` -messages](http://www.gnu.org/prep/standards/html_node/Change-Logs.html). - -Don't waste time writing exhaustive `ChangeLog`-like commit messages for, e.g., -debugging stuff that will be removed again before merging your development -branch into the mainline. Sometimes the one-line summary might already -suffice. But please do write something. - -## Behavior on *private* branches - -Even though you are said to be the owner of branches tagged with your -`SAVANNAH_LOGIN`, it is generally nevertheless good to not do history-rewriting -stuff and the like (`git rebase` and friends), as others may in turn be basing -their work on your private branches. - -We could establish a branch-tagging policy for branches that others should -expect their history possibly to be rewritten. This may be useful for branches -that are only meant for aggregating the changes of (several) development -branches, like an imaginary `master-proposed_for_general_testing` branch. +[[!meta redir=/source_repositories]] diff --git a/source_repositories.mdwn b/source_repositories.mdwn new file mode 100644 index 00000000..7bf2ca69 --- /dev/null +++ b/source_repositories.mdwn @@ -0,0 +1,160 @@ +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 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]]."]]"""]] + +Git repositories on Savannah: <http://git.savannah.gnu.org/cgit/hurd/>. + + * [[glibc]] + * [[incubator]] + * ... + +# Branches + +Members of the [[Hurd Savannah group|rules/savannah group]] are allowed to create +branches without formal permission: + + * named `SAVANNAH_LOGIN/BASE_BRANCH[-TOPIC]` for private general-purpose or + topic branches, respectively, or + * named `BASE_BRANCH-TOPIC` for public topic branches basing on + `BASE_BRANCH`. + +`TOPIC` shall be a suitable tag describing the branch's main concern. These +tags can be applied recursively (`TOPIC-SUBTOPIC-SUBSUBTOPIC`). + +*private* vs. *public* does, of course, in this scenario not mean visibility, +but instead authority: *private* branches are those that the user +`SAVANNAH_LOGIN` has authority over, whereas *public* branches are open for +every committer to install changes on. The private branches are those that you +would typically host on your own machine and publish through your own web +server, but we offer that you can instead do this from the centralized Savannah +repository, as a number of people don't have an always-accessible web server +running on their own machines. + +Examples: + + * GNU Mach + + * `master` -- the mainline branch + * `master-oskit` -- port to OSKit; branched off of `master` at some point + * `master-gdb_stubs` -- add support for GDB stubs; branched off of + `master` at some point + + * libpthread + + * `master` -- the mainline branch + * `master-viengoos` -- port to Viengoos; branched off of `master` at some + point + * `master-viengoos-on-bare-metal` -- port to Viengoos running on bare + metal; branched off of `master-viengoos` at some point + + * unionfs + + * `master` -- the mainline branch + * `master-unionmount` -- develop `unionmount` based on `unionfs`' master + branch + +To give a concrete example, the latter one was created like this: + + $ git clone --no-checkout ssh://git.savannah.gnu.org/srv/git/hurd/unionfs.git + $ cd unionfs/ + $ git checkout -b master-unionmount origin/master + $ ... + $ git push master-unionmount + +## Merging + +Merging between Git branches is trivial, at least as long as no conflicts +arise. + +Due to this, you are encouraged to freely make use of separate branches for +different working topics, as this really faciliates concentrating on one +specific working topic. + +You are encouraged to regularely merge from the respective mainline branches +(`BASE_BRANCH`; should be `master` in most cases) into your working branches, +and ensure that your modifications are still fine in the context of new +mainline changes. + +Merging from working branches into the mainline branches will usually be done +by one of the project administrators, unless negotiated otherwise. For this to +happen, the copyright of your changes has to be assigned to the Free Software +Foundation; read about the +[[copyright assignment_process|rules/savannah group#copyright_assignment]]. + +It is explicitly encouraged to *merge* changes from working branches into the +mainline branches (as opposed to *rebase* them on top), as the former mode +easily allows to determine the context under which a patch has been developed. + +# Tags + +Equivalent rules apply. + +# Behavior + +Try to not introduce spurious, unneeded changes, e.g., whitespace changes. + +Adhere to the coding conventions that are already used. These are usually the +[GNU Coding Standards](http://www.gnu.org/prep/standards/html_node/) for stuff +written by ourselves, including new files, of course. + +GNU Mach code is largely based on external code. Don't GNU-ify it, as this +would make merging external patches unnecessarily difficult. + +## Commit messages + +We no longer maintain parallel `ChangeLog` and commit messages. When needed, +the `ChangeLog` files can be created automatically from the commit messages. + +Commit messages have this mandatory format: + + One-line summary. + Blank line. + ChangeLog-like list of changes, but without leading tabs. + +The header line of each former `ChangeLog` snippet (DATE NAME EMAIL) is no +longer to be included in the commit message, and instead the author and +committer of a change, together with the dates, will be maintained natively by +Git. + +Example: + + commit 3054666a46e0142cacef895c13edb4391435c722 + Author: Some One <someone@example.com> + AuthorDate: Thu Jun 11 15:59:55 2005 +0000 + Commit: Some One <someone@example.com> + CommitDate: Thu Jun 11 15:59:55 2005 +0000 + + Frobnicate the foo. + + * frob.c (foo): Frob it. + * oldfoo.c [OLD] (oldfoo): Likewise. + [OLD_OLD_FOO] (oofoo): Permute every second word with itself, and + beginning with the tenth line, every third one also. Pure + nonsense. + +Read about how to write [GNU-style `ChangeLog` +messages](http://www.gnu.org/prep/standards/html_node/Change-Logs.html). + +Don't waste time writing exhaustive `ChangeLog`-like commit messages for, e.g., +debugging stuff that will be removed again before merging your development +branch into the mainline. Sometimes the one-line summary might already +suffice. But please do write something. + +## Behavior on *private* branches + +Even though you are said to be the owner of branches tagged with your +`SAVANNAH_LOGIN`, it is generally nevertheless good to not do history-rewriting +stuff and the like (`git rebase` and friends), as others may in turn be basing +their work on your private branches. + +We could establish a branch-tagging policy for branches that others should +expect their history possibly to be rewritten. This may be useful for branches +that are only meant for aggregating the changes of (several) development +branches, like an imaginary `master-proposed_for_general_testing` branch. diff --git a/source_repositories/glibc.mdwn b/source_repositories/glibc.mdwn new file mode 100644 index 00000000..5530980e --- /dev/null +++ b/source_repositories/glibc.mdwn @@ -0,0 +1,18 @@ +[[!meta copyright="Copyright © 2010 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]]."]]"""]] + +There is a repository for maintenance of [[/glibc]] for the Hurd's needs: +<http://git.savannah.gnu.org/cgit/hurd/glibc.git/>. + +This repository uses [[TopGit]]. + +*A plan for the Hurd-specific glibc repository*, thread +[begins](http://lists.gnu.org/archive/html/bug-hurd/2010-01/msg00062.html), +[continues](http://lists.gnu.org/archive/html/bug-hurd/2010-02/msg00021.html). diff --git a/source_repositories/incubator.mdwn b/source_repositories/incubator.mdwn new file mode 100644 index 00000000..51f64c17 --- /dev/null +++ b/source_repositories/incubator.mdwn @@ -0,0 +1,12 @@ +[[!meta copyright="Copyright © 2010 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]]."]]"""]] + +There is a repository for *this*, and *that*, and *everything* -- the +*incubator*: <http://git.savannah.gnu.org/cgit/hurd/incubator.git/>. diff --git a/topgit.mdwn b/topgit.mdwn new file mode 100644 index 00000000..55ff5f54 --- /dev/null +++ b/topgit.mdwn @@ -0,0 +1,23 @@ +[[!meta copyright="Copyright © 2010 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]]."]]"""]] + +[[!meta title="TopGit"]] + +<http://repo.or.cz/w/topgit.git> + + * David Bremner: [*A topgit + testimonial*](http://www.cs.unb.ca/~bremner/blog/posts/topgit_testimonial/), + [*So your topgit patch was merged + upstream*](http://www.cs.unb.ca/~bremner/blog/posts/so_your_topgit_patch_was_merged/), + [more](http://www.cs.unb.ca/~bremner/tags/topgit/). + * Pete Hopkins: [*topgit Means Never Having to Wait for + Reviews*](http://blog.grogmaster.com/2008/12/topgit-means-never-having-to-wait-for.html) + * Christoph Egger: [*Git repository's and + topgit*](http://lists.debian.org/debian-devel-games/2008/11/msg00109.html) diff --git a/user/zhengda.mdwn b/user/zhengda.mdwn index e15aade1..dd8e6bac 100644 --- a/user/zhengda.mdwn +++ b/user/zhengda.mdwn @@ -2,14 +2,40 @@ Email: zhengda1936 at gmail dot com -Project: Network virtualization for subhurds etc. +--- + +#Project: Porting DDE to Hurd. + +##The goal: +porting DDE developed by DROPS to the Hurd, and it will still run in the user space. + +##Introduction +The introduction of DDE/DDEKit can be found in [here](http://wiki.tudos.org/DDE/DDEKit) and more information can be found [here](http://os.inf.tu-dresden.de/pipermail/l4-hackers/2009/004291.html). DDE/DDEKit is a library, and it should be compiled with the code of Linux or FreeBSD drivers. DDE Linux26 is still under development and it can now support network and block devices (but doesn't support SCSI). + +## My work +I separate DDE Linux26 to 2 parts: libddekit and libdde_linux26. I also provide a library called libmachdev on the top of the Linux code to provide the Mach device interface, so it is easy for the user to compile a Linux driver and run it in the Hurd. The latest code can be found in the dde branch of the incubator repository. -The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool). +The current status: the pcnet32 driver can work very well in DDE Linux26 now. I hope someone can try other NIC drivers. Please run DDE with GNUMach in the [master-user_level_drivers](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/) branch. -The [[howto]] shows the instructions of setting up the virtual network in hurd and subhurd. +There is a minor problem when we compile a Linux driver. Linux drivers use jiffies to measure time. Unfortunately, Mach doesn't provide it, so whenever we need it, we need to calculate it by ourselves. I decide to provide a macro to calculate it for the sake of performance and the cost is that the source code of Linux drivers has to include ddekit/timer.h. + +## Build and run DDE drivers + +To build a Linux driver with DDE Linux, the easiest way is to use dde_pcnet32 (also in the dde branch) as a template. The directory of dde_pcnet32 has Makefile, Makeconf.local, default.ld, pcnet32.c and main.c. If we need to build a new driver file, we only need to replace pcnet32.c with the new file and change Makefile accordingly. + +To run a DDE NIC driver: + +settrans -acfg pcnet32 hurd/dde_pcnet32/dde_pcnet32 +settrans -acfg /dev/eth0 hurd/devnode/devnode eth0 -M pcnet32 +settrans -acfg /servers/socket/2 hurd/pfinet/pfinet -i /dev/eth0 -a 172.16.172.10 -g 172.16.172.2 -m 255.255.255.0 --- +#Project: Network virtualization for subhurds etc. + +The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool). The [[howto]] shows the instructions of setting up the virtual network in hurd and subhurd. + + ## The design and the implementation ### The requirements: @@ -45,17 +71,11 @@ A filter translator is needed to enforce the policies between the interface and * BPF is also ported to the filter translator. There are two filers in the translator, one for outgoing packets, the other for incoming packets. * Only one pfinet can connect to the translator at a time. - ---- - ## TODO ### Coding - - make subhurds running without root privileges - merge BPF rules from the filter translator and the multiplexer ---- - ## Completed tasks ### Coding @@ -92,11 +112,6 @@ the devnode translator: - Create a device file to help open the network device. - -### The Code Read - -- boot - ### Documentation Read |