diff options
author | arnebab <arne_bab@web.de> | 2008-08-31 16:41:47 +0200 |
---|---|---|
committer | arnebab <arne_bab@web.de> | 2008-08-31 16:41:47 +0200 |
commit | 8030f0c72cfb0563a5b8452bf13142b7c6fbd7a0 (patch) | |
tree | 6e7e76705067dbe7d25513d1e29956072cbabfd5 /microkernel | |
parent | d0bf7ed725d1153ede15e494c6fd8240bd625113 (diff) | |
parent | 9d20739a84793024f67bca22c5495919bd078a1f (diff) |
Merge branch 'master' of arnebab@flubber:~wiki/wiki
Diffstat (limited to 'microkernel')
-rw-r--r-- | microkernel/mach/mig/dealloc.mdwn | 11 | ||||
-rw-r--r-- | microkernel/mach/mig/documentation.mdwn | 70 | ||||
-rw-r--r-- | microkernel/viengoos.mdwn | 5 | ||||
-rw-r--r-- | microkernel/viengoos/hardware.mdwn | 50 | ||||
-rw-r--r-- | microkernel/viengoos/serial_port.mdwn | 15 |
5 files changed, 141 insertions, 10 deletions
diff --git a/microkernel/mach/mig/dealloc.mdwn b/microkernel/mach/mig/dealloc.mdwn new file mode 100644 index 00000000..1ed9d52b --- /dev/null +++ b/microkernel/mach/mig/dealloc.mdwn @@ -0,0 +1,11 @@ +[[meta copyright="Copyright © 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]]."]]"""]] + +[[meta redir=documentation#dealloc]] diff --git a/microkernel/mach/mig/documentation.mdwn b/microkernel/mach/mig/documentation.mdwn index 222f89d1..8c977e55 100644 --- a/microkernel/mach/mig/documentation.mdwn +++ b/microkernel/mach/mig/documentation.mdwn @@ -1,27 +1,77 @@ -[[toc ]] +[[meta copyright="Copyright © 2002, 2003, 2005, 2007, 2008 Free Software +Foundation, Inc."]] -# About +[[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 is a small collection of links to external documents describing the *Mach +Interface Generator* used by GNU Mach. -This is a small collection of links to external documents describing the Mach Interface Generator used by GNU Mach. # MIG and C Thread Programming -A tutorial which demonstrates the use of the C Threads library primitives in writing a multithreaded program and the use of the Mach Interface Generator (MIG) to generate remote procedure calls for interprocess communication. Like its companion tutorial, it is based on the Mach 2.5 system. However, the concepts are applicable to Mach 3.0 user level programming. +A tutorial which demonstrates the use of the C Threads library primitives in +writing a multithreaded program and the use of the Mach Interface Generator +(MIG) to generate remote procedure calls for interprocess communication. Like +its companion tutorial, it is based on the Mach 2.5 system. However, the +concepts are applicable to Mach 3.0 user level programming. + +Linda R. Walmer and Mary R. Thompson. *A Programmer's Guide to the Mach User +Environment*. [PostScript +](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.ps), +[Doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc). +February 1988. School of Computer Science, Carnegie Mellon University. -Linda R. Walmer and Mary R. Thompson. **A Programmer's Guide to the Mach User Environment**. [PostScript ](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.ps)[Doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc) February 1988. School of Computer Science, Carnegie Mellon University. +An ftp directory containing the [mig programming +examples](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example) +for this tutorial. -An ftp directory containing the [mig programming examples](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example) for this tutorial. +Slides to Rich Drave's talk on MIG, on November 21, 1991: +[PostScript](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/root.ps), +[TeX](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/slides.tex). -Slides to Rich Drave's talk on Mig, the Mach Interface Generator, on November 21, 1991: [PostScript](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/root.ps) [TeX](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/slides.tex) # Roots Mig is an implementation of a subset of the Matchmaker **language**. -"Matchmaker is a language for specifying and automating the generation of multilingual interprocess communication interfaces. MIG is an interim implementation of a subset of the Matchmaker language that generates C and C++ remote procedure call interfaces for interprocess communication between Mach tasks." +"Matchmaker is a language for specifying and automating the generation of +multilingual interprocess communication interfaces. MIG is an interim +implementation of a subset of the Matchmaker language that generates C and C++ +remote procedure call interfaces for interprocess communication between Mach +tasks." + +Richard P. Draves, Michael B. Jones, Mary R. Thompson, *MIG - THE MACH +INTERFACE GENERATOR*. +[ps](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps), +[doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.doc). +November 1989. Department of Computer Science, Carnegie-Mellon University. -Richard P. Draves,Michael B. Jones,Mary R. Thompson, **MIG - THE MACH INTERFACE GENERATOR**. [ps](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps) [doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.doc) November 1989. Department of Computer Science, Carnegie-Mellon University. # Related Work -See the citations about [Mach and matchmaker: kernel and language support for objectoriented distributed systems](http://citeseer.ist.psu.edu/context/93073/0) here. "M. B. Jones and R. F. Rashid, \`Mach and matchmaker: kernel and language support for objectoriented distributed systems', Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, October 1986, pp. 67--77." +See the citations about [Mach and matchmaker: kernel and language support for +objectoriented distributed +systems](http://citeseer.ist.psu.edu/context/93073/0). "M. B. Jones and +R. F. Rashid, *Mach and matchmaker: kernel and language support for +objectoriented distributed systems*, Proceedings of the Conference on +Object-Oriented Programming Systems, Languages, and Applications, October 1986, +pp. 67--77." + + +# Further Relevant Documentation + + * The [GNU Mach Reference + Manual](http://www.gnu.org/software/hurd/docs.html#manuals), espacially + [Chapter 4, Inter Process + Communication](http://www.gnu.org/software/hurd/gnumach-doc/Inter-Process-Communication.html), + which, for example, explains how the <a name="dealloc">`dealloc` flag</a> + works in [Chapter 4.2.4, + Memory](http://www.gnu.org/software/hurd/gnumach-doc/Memory.html) + + * MIG *in action*: [[hurd/io_path]]. diff --git a/microkernel/viengoos.mdwn b/microkernel/viengoos.mdwn index 83dd310d..9a4f726f 100644 --- a/microkernel/viengoos.mdwn +++ b/microkernel/viengoos.mdwn @@ -13,3 +13,8 @@ Walfield. It can be found in the *hurd-l4* repository, available at <http://savannah.gnu.org/cvs/?group=hurd>. + +* [[Building]] +* Running + * [[QEMU]] + * [[Hardware]] diff --git a/microkernel/viengoos/hardware.mdwn b/microkernel/viengoos/hardware.mdwn new file mode 100644 index 00000000..1b4ce514 --- /dev/null +++ b/microkernel/viengoos/hardware.mdwn @@ -0,0 +1,50 @@ +[[meta copyright="Copyright © 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 boot over the network using PXE. + +On my build machine, I have installed a tftpserver. Specifically, I use +the one built into dnscache. In /tftpboot, I have symlinks to pistachio, +sigma0, and the root of the build tree. + +My build machine boots using PXE. It gets an IP address, contacts +my build machine and loads [grub2pxe](http://grub.enbug.org/PXEBOOT). +Note that there is no need to use pxelinux; grub2 is a valid PXE +executable. Further, grub2 uses the PXE interface for accessing the +network, so if your hardware supports PXE, then you do not need to +worry about a network driver. Here is how I build grub2 and the +grub2 image: + + cd ~/src + svn co svn://svn.savannah.gnu.org/grub/trunk/grub2 + cd grub2 + mkdir build + cd build + ../configure --prefix=$HOME/src/grub2/install && make && make install + cd ~/src/grub2/install + bin/grub-mkimage --output=core.img --prefix="(pxe)" pxe pxecmd help reboot serial multiboot pc configfile normal boot + cat lib/grub/i386-pc/pxeboot.img core.img > grub2pxe + +Here is my /tftpboot/grub.cfg, which sends output to the first +[[serial_port]]: + + # Timeout for menu + set timeout=1 + + # Set default boot entry as Entry 0 + set default=0 + + menuentry "Viengoos" { + multiboot /viengoos/laden/laden -o serial -D + module /pistachio + module /sigma0 + module /viengoos/viengoos/viengoos.stripped -D 3 -o serial + module /viengoos/hieronymus/hieronymus.stripped + } diff --git a/microkernel/viengoos/serial_port.mdwn b/microkernel/viengoos/serial_port.mdwn new file mode 100644 index 00000000..53b988c5 --- /dev/null +++ b/microkernel/viengoos/serial_port.mdwn @@ -0,0 +1,15 @@ +[[meta copyright="Copyright © 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]]."]]"""]] + +Viengoos can be configured to send output to the serial port (in fact, +this is the only configuration that I use). To talk to the serial +port, I use ser2net, which provides a telnet interface to the serial +port. Be sure to edit /etc/ser2net.conf to use 115200 bps, which +Viengoos uses by default. |