Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@gnome.org>2002-07-18 03:06:09 +0400
committerMiguel de Icaza <miguel@gnome.org>2002-07-18 03:06:09 +0400
commit6642017c876eea49a33872eceb8921fceb100e28 (patch)
tree7221d867a9ce26eaa799102a6e1223f02b41b032 /web
parenteb8b92b9271d0c58ecf9a1adae41f50ba568c45e (diff)
removed
svn path=/trunk/mono/; revision=5884
Diffstat (limited to 'web')
-rw-r--r--web/mono-beginning-xml1294
1 files changed, 0 insertions, 1294 deletions
diff --git a/web/mono-beginning-xml b/web/mono-beginning-xml
deleted file mode 100644
index 6ab1019c225..00000000000
--- a/web/mono-beginning-xml
+++ /dev/null
@@ -1,1294 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" []>
-<article>
-
- <articleinfo>
-
- <!-- Use "HOWTO", "mini HOWTO", "FAQ" in title, if appropriate -->
- <title>Running Mono</title>
-
-
- <author>
- <firstname>Hinne</firstname>
- <surname>Hettema</surname>
- <affiliation>
- <address><email>h.hettema@auckland.ac.nz</email></address>
- </affiliation>
- </author>
- <author>
- <firstname>Jaime</firstname>
- <surname>Anguiano Olarra</surname>
- <affiliation>
- <address><email>jaime@genuara.ugr.es</email></address>
- </affiliation>
- </author>
-
- <pubdate>2002-06</pubdate>
-
- <!-- Most recent revision goes at the top; list in descending order -->
- <!-- All dates specified in ISO "YYYY-MM-DD" format -->
- <revhistory>
- <revision>
- <revnumber>0.1</revnumber>
- <date>2002-06-20</date>
- <authorinitials>HH</authorinitials>
- <revremark>First release</revremark>
- </revision>
- </revhistory>
-
- <!-- Provide a good abstract; a couple of sentences is sufficient -->
- <abstract>
- <para>
- This document describes how to install mono on your Linux system
- from the source and describes some simple experiments you can
- perform with this installation.
- </para>
- </abstract>
-
- </articleinfo>
-
-
-<sect1 id="intro">
-<title>Introduction</title>
-
-<para>
-Mono is an open source implementation of the Common Language Infrastructure
-(CLI) specified in ECMA standard 335. It comes with a C# compiler and
-provides an extensible platform to develop and run applications that
-are interoperable with Microsoft .NET.
-</para>
-
-<para>
-Mono is not finished--it is a project still under development. As a
-result, installation and configuration may not be as smooth as you
-will be used to from other Linux applications. Nevertheless, mono is
-in a state that will allow you to get it up and running and gain
-experience with it--which is, I would suggest, a very smart thing to do.
-</para>
-
-<para>
-This document is limited in the following sense: it describes how to
-download a 'stable' version of mono as a 'tarball' and get it to run on
-your computer. I'm also assuming you run mono on Linux rather than
-on Windows. All the examples have been tested on a 'vanilla' Red Hat 7.3
-installation.
-</para>
-
-<para>
-There are two items this document will <emphasis>not
-</emphasis> cover: the first is how to self host the mcs compiler
-under linux and the second is the graphical user environment
-which is implemented as GTK#. These two interesting topics
-are the subject of two more howto's that I'm planning.
-</para>
-
-<para>
-This document is also less useful for two types of people.
-</para>
-<itemizedlist>
-<listitem>
-<para>
-If you are a very inexperienced linux user and want to know what mono is
-all about, there is an easier way to install mono. Go to mono.baselabs.org
-and download the rpm's ready for installation on your system. This site also
-runs a tutorial that is worth reading.
-</para>
-</listitem>
-<listitem>
-<para>
-If you are a very experienced user wanting to contribute to the mono code,
-you should probably regularly do a CVS download. At the moment, the mono
-code grows very fast, and the 'stable' releases still appear too slowly.
-</para>
-</listitem>
-
-</itemizedlist>
-
-<para>
-This document is aimed at the mono beginner, and aims to present a complete
-view of a minimal installation, which will allow you to experiment with
-mono to some degree. It also describes some of those experiments. We
-expect that after reading this document you'll go on to do either of
-two things:
-</para>
-<orderedlist>
-<listitem>
-<para>
-Continue to contribute to the mono project in some shape or form. The
-website has some ideas and suggestions under the heading 'Contributing'.
-</para>
-</listitem>
-<listitem>
-<para>
-Continue to write applications that run in mono.
-</para>
-</listitem>
-</orderedlist>
-
-<para>
-We hope this document will be useful to you in your first steps with mono.
-Happy hacking!
-</para>
-
-<sect2 id="note">
-<title>A note on the development of this document</title>
-<para>
-This document is expected to grow into a full 'running mono howto' over time.
-As of yet, it does not really discuss some of the excellent efforts of others
-to package mono into an rpm or deb and prepare it for easy installation.
-It is our aim to include this in future versions of this document.
-</para>
-</sect2>
-
-<sect2 id="prerequisites">
-<title>Prerequisites</title>
-<para>
-This document assumes you are somewhat familiar with the architecture
-of the Common Language Infrastructure and the C# programming language.
-</para>
-
-<para>
-To compile mono on your system, you will also have to satisfy
-some dependencies on other software. A list of these are given
-on the mono download page. Read through this list to see if
-you've got all components.
-</para>
-
-<para>
-On a practical note, I had no dependency issues with the
-installation of mono 0.12 on a 'standard issue' Red Hat 7.3 build.
-</para>
-
-</sect2>
-
-<sect2 id="disclaimer"> <title>Disclaimer</title>
-
-<para>
-No liability for the contents of this document can be accepted.
-Use the concepts, examples and information at your own risk. There may
-be errors and inaccuracies, that could be damaging to your system.
-Proceed with caution, and although this is highly unlikely, the author(s)
-do not take any responsibility.
-</para>
-
-<para>
-All copyrights are held by their by their respective owners,
-unless specifically noted otherwise. Use of a term in this document
-should not be regarded as affecting the validity of any trademark or
-service mark. Naming of particular products or brands should not be
-seen as endorsements.
-</para>
-</sect2>
-
-<!-- Give credit where credit is due...very important --> <sect2
-id="credits"> <title>Credits / Contributors</title>
-
-<para> This document was originally created by Jaime Anguiano Olarra,
-but has been extensively rewritten. Credits are due to </para>
-<itemizedlist>
-<listitem>
-<para>Jaime Anguiano Olarra <email>jaime@geneura.ugr.es</email>
-for creating the original version of this document, and in fact
-the document that got me through installing mono for the first time.
-</para>
-</listitem>
-<listitem>
-<para>
-My partner Margaret for support on my more exotic ventures.
-</para>
-</listitem>
-</itemizedlist>
-</sect2>
-
-<!-- Feedback -->
-<sect2 id="feedback"> <title>Feedback</title>
-
-<para>
-Feedback is most certainly welcome for this document. Send your
-additions, comments and criticisms to the following email address:
-<email>mono-docs-list@ximian.com</email>. I am lurking on this list
-and will maintain this document as required.
-</para>
-</sect2>
-</sect1>
-
-<!-- This is the preamble stuff over with the rest of document
-follows... -->
-<sect1 id="installation">
-<title> Installing Mono</title>
-
-<sect2 id="obtaining">
-<title>Obtaining Mono</title>
-<para>
-There are several ways to get Mono running on your computer. This
-document will discuss only one of those: downloading the source tarball
-and utilising the make utilities to get mono up and running. There is
-only one mono package to worry about if you are just after a 'base' install
-of mono: the mono runtime. This package, found under the name "mono-x.xx"
-has got a compiled version of the compiler built in.
-</para>
-
-<para>
-You'll be able to complete everything in this document if you just install
-the runtime, but taking a look at the compiler package is well worth the
-effort. The compiler is written in C# and is 'self hosting' which means it
-is able to compile itself.
-</para>
-
-<para>
-As of this moment, it is my understanding that there are still some issues
-with the 'self hosting' bit of the compiler on linux, although this is
-expected to work in later versions of mono. If you are just interested in
-finding out how mono will work under linux, I would not worry about the
-self-hosting bit for now. The self-hosting of the compiler will be the
-topic of a future howto.
-</para>
-
-<para>
-See <ulink url="http://www.go-mono.com/download">the mono download
-site</ulink> for the source of the tarballs.
-</para>
-
-<para>
-This page also lists the current versions of the software
-mono depends on. Make sure that your system has all the
-required versions, otherwise mono won't compile.
-</para>
-
-<para>
-At a minimum for mono 0.12, you'll need to:
-</para>
-
-<itemizedlist>
-<listitem>
-<para>
-download and install
-<ulink url="http//www.freedesktop.org/software/pkgconfig">
-pkg-config</ulink>.
-</para>
-</listitem>
-<listitem>
-<para>
-download and install
-<ulink url="ftp://ftp.gtk.org/pub/gtk/v1.3/glib-1.3.12.tar.gz">
-glib 1.3</ulink>.
-</para>
-</listitem>
-</itemizedlist>
-
-<para>
-Installing the tarballs is done via GNU autoconf and
-automake. The general upshot of running autoconf and automake is that you
-can type <command>./configure</command> and then <command> make</command>
-to do the build.
-Typing <command>make install</command> completes the installation of mono
-on your system.
-</para>
-
-<para>
-To build the mono runtime package, unzip the tarball to some useful
-location. I tend to use <command>/usr/src</command> as the location,
-but you could really do it anywhere. For the install process, it is
-also a good idea to be 'root'. The installation process will shuttle
-some executables into <command>/usr/local/bin</command> (more about
-that later).
-</para>
-
-<para>
-Unzipping the tarballs will have created two directories in <command>
-/usr/src/</command>, one called something like mono-x.xx and the other
-mcs-x.xx. The one called 'mono' is the runtime environment, and this contains
-all that is initially needed to run mono and investigate its inner workings.
-</para>
-
-<para>
-To start building the mono runtime, first type <command>./configure</command>.
-You will see an output like this:
-</para>
-<programlisting>
-[root@taurus mono-0.12]# ./configure
-loading cache ./config.cache
-checking host system type... i686-pc-linux-gnu
-checking target system type... i686-pc-linux-gnu
-checking build system type... i686-pc-linux-gnu
-checking for a BSD compatible install... (cached) /usr/bin/install -c
-checking whether build environment is sane... yes
-checking whether make sets ${MAKE}... (cached) yes
-checking for working aclocal... found
-
-
-snip ....
-
-
-checking BASE_DEPENDENCIES_CFLAGS... -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-checking BASE_DEPENDENCIES_LIBS... -lglib-2.0
-checking for GC_malloc in -lgc... (cached) no
-configure: warning: Compiling mono without GC.
-checking if off_t is 64 bits wide... no
-checking if _FILE_OFFSET_BITS=64 gives 64 bit off_t... ok
-
-snip ...
-
-creating Makefile
-creating mono/Makefile
-creating mono/utils/Makefile
-creating mono/metadata/Makefile
-creating mono/dis/Makefile
-creating mono/cil/Makefile
-creating mono/arch/Makefile
-creating mono/os/Makefile
-creating mono/os/win32/Makefile
-creating mono/os/unix/Makefile
-creating mono/arch/x86/Makefile
-creating mono/arch/ppc/Makefile
-creating mono/arch/sparc/Makefile
-creating mono/arch/arm/Makefile
-creating mono/interpreter/Makefile
-creating mono/tests/Makefile
-creating mono/benchmark/Makefile
-creating mono/monoburg/Makefile
-creating mono/monograph/Makefile
-creating mono/jit/Makefile
-creating mono/io-layer/Makefile
-creating mono/handles/Makefile
-creating runtime/Makefile
-creating scripts/Makefile
-creating man/Makefile
-creating doc/Makefile
-creating docs/Makefile
-creating config.h
-config.h is unchanged
-
-
- GC: auto
-
-
-[root@taurus mono-0.12]#
-</programlisting>
-
-
-<para>
-This means that the configure script has now created all the
-makefiles necessary to complete the build on your system.
-Note the "GC: auto" at the end of the list of commands.
-GC stands for "garbage collection" and it
-will be addressed in a later section of this document.
-</para>
-<para>
-You are now ready to start the mono "build" process. To kick
-this off, you can type <command>make</command> at the
-command prompt. You'll see something like this:
-</para>
-
-<programlisting>
-[root@taurus mono-0.12]# make
-make all-recursive
-make[1]: Entering directory `/usr/src/mono-0.12'
-Making all in mono
-make[2]: Entering directory `/usr/src/mono-0.12/mono'
-Making all in utils
-make[3]: Entering directory `/usr/src/mono-0.12/mono/utils'
-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/include/glib-2.0
--I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0
--I/usr/lib/glib-2.0/include -I../.. -I../../mono
--D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -Wall
--Wunused -Wmissing-prototypes -Wmissing-declarations
--Wstrict-prototypes -Wmissing-prototypes -Wnested-externs
--Wpointer-arith -Wno-cast-qual -Wcast-align -Wwrite-strings
--c mono-hash.c
-
-</programlisting>
-<para>
-and this will continue for a while. On my 1 GHz Duron with 256 MB of RAM the
-total build process takes about three minutes. All the terrible flags after gcc
-have essentially been set by the configure script and there is no need to worry
-about these.
-</para>
-<para>
-To finally install mono, you can type <command>make install</command>
-to get a working version of mono. This command will copy the
-scripts that run the executables to a place where the operating system
-will be ale to find them. This location is <command>/usr/local/bin</command>
-on my system.
-</para>
-
-</sect2>
-
-<sect2 id="garbage_collection">
-<title> Garbage Collection</title>
-<para>
-To make the mint interpreter work with garbage collection, you first need to
-install a garbage collection package on your system. Mono works with
-Boehm Garbage collection, which is found at
-<ulink url="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">
-http://www.hpl.hp.com/personal/Hans_Boehm/gc/
-</ulink>.
-</para>
-
-<para>
-To get garbage collection to work, I downloaded the source tarball
-into <command>/usr/src/</command> and typed <command>./configure</command>
-followed by <command>make</command> and <command>make install</command>.
-</para>
-
-<para>
-There is one glitch to work around. The header file for the garbage collection
-<command>gc.h</command> is found in the <command>/usr/src/gc6.0/include
-</command> directory (at least on my system). The mono build process will break
-on this location: it is looking for the header file in some other place called
-<command>/usr/include/gc/</command> and won't be able to find the correct
-header file.
-</para>
-
-<para>
-The solution is to build a symbolic link between these two locations as
-follows
-</para>
-
-<programlisting>
-[root@taurus include]# ln -s /usr/src/gc6.0/include/ /usr/include/gc
-</programlisting>
-
-<para>
-after which you'll be able to list the directory contents as if they were
-in <command>/usr/include</command>
-</para>
-
-<programlisting>
-[root@taurus include]# pwd
-/usr/include
-[root@taurus include]# ls /usr/include/gc
-cord.h gc_backptr.h gc_inline.h javaxfc.h
-ec.h gc_cpp.h gc_local_alloc.h leak_detector.h
-gc gc_gcj.h gc_mark.h new_gc_alloc.h
-gc_alloc.h gc.h gc_pthread_redirects.h private
-gc_amiga_redirects.h gc_inl.h gc_typed.h weakpointer.h
-[root@taurus include]#
-</programlisting>
-
-<para>
-To get mono to work with garbage collection, you'll have to rebuild the
-environment. This is done easily by typing <command>make distclean</command>
-to clean up any existing executables.
-</para>
-
-<para>
-Continue the build by typing <command>./configure</command>, and look at
-the last line. It should read:
-</para>
-
-<programlisting>
-
-snip...
-
-creating config.h
-
-
- GC: boehm
-
-
-[root@taurus mono-0.12]#
-
-</programlisting>
-
-<para>
-The GC: boehm tells you that garbage collection has been turned on. Now to
-compile the runtime, you type <command>make</command> and <command> make
-install</command> as previously.
-</para>
-
-<para>
-You now have mono working with Garbage Collection.
-</para>
-
-<para>
-Although my experimentation is incomplete as of this time, I have found some
-issues with running Garbage Collection continuously, and my recommendation
-would be to turn it off for now.
-</para>
-
-<para>
-To turn garbage collection off again, you have to go to the <command>/usr/src
-</command> directory where you extracted the tarball. Enter the <command>gc6.0
-</command> directory and type <command>make uninstall</command> to uninstall
-Garbage Collection. Then in your <command>mono</command> directory, type
-<command>make distclean</command> followed by <command>./configure</command>,
-<command>make</command> and <command>make install</command>.
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="running">
-<title>Running mono</title>
-<sect2 id="basic">
-<title>Basic steps</title>
-<para>
-To work with mono, you first have to create a C# program. Open up
-your favourite editor, and type in the following code:
-</para>
-<programlisting>
-using System;
-
-class Hello
-{
-public static void Main(String[] args)
- {
- Console.WriteLine("mono:: is alive and well...");
-
- for (int i = 0; i < args.Length; i++)
- Console.WriteLine("Argument {0} = {1}", i, args[i]);
- }
-}
-</programlisting>
-
-<para>
-Save the file as hello.cs. To compile this into a working program,
-type mcs hello.cs. If you get the following:
-</para>
-<programlisting>
-[hinne@taurus hello]$ mcs hello.cs
-RESULT: 0
-[hinne@taurus hello]$
-</programlisting>
-<para>
-you know the compile worked fine. If you see some strange error
-messages including the word 'parser' somewhere, you made a mistake in
-your program. Fix this up first.
-</para>
-
-<para>
-You are now ready to execute your first mono program. To execute
-the code, type
-</para>
-
-<programlisting>
-[hinne@taurus hello]$ mono hello.exe arg1 arg2 arg 3
-</programlisting>
-<para>
-(where we have given some arguments just for fun) and you'll
-see the following:
-</para>
-
-<programlisting>
-mono:: is alive and well...
-Argument 0 = arg1
-Argument 1 = arg2
-Argument 2 = arg
-Argument 3 = 3
-RESULT: 0
-</programlisting>
-<para>
-As you can see, mono printed the line "mono:: is alive and well"
-and printed the list of arguments. This completes the creation
-and execution of your first mono program.
-</para>
-</sect2>
-
-<sect2 id="interpreter">
-<title>Interpreter</title>
-<para>
-But mono will allow you to do more. First of all, mono is the
-compiled mono execution environment which uses the Just in
-Time (JIT) compiler. Mono also comes with an interpreted
-environment, which can be accessed using the command 'mint'
-as follows
-</para>
-<programlisting>
-[hinne@taurus hello]$ mint hello.exe arg1 arg 2
-mono:: is alive and well...
-Argument 0 = arg1
-Argument 1 = arg
-Argument 2 = 2
-[hinne@taurus hello]$
-</programlisting>
-<para>
-As you can see, it makes no difference to mono output which
-environment you use, but what happens under the hood is very
-different. If you use 'mono' as the command line tool, you
-call the 'production' execution environment which will read
-your portable executable (PE) file, and call the just in
-time (JIT) compiler to compile the PE code down to machine
-level code (in my case, an x86 architecture) after which
-it is executed.
-</para>
-<para>
-If you use mint, the JIT is not used, and the PE code is
-interpreted into x86 instructions for execution. In fact,
-for our simple 'hello' mint is slightly faster. The point
-is that the JIT compiler will take some time to compile the
-code of our program and store it in some location in memory,
-but the subsequent execution of the code is faster with mono.
-</para>
-<para>
-
-You can see what happens below (the thing to look for is the
-'user' time: 0.1 seconds with mono and 0.06 seconds with mint):
-
-</para>
-<programlisting>
-[hinne@taurus hello]$ time mono hello.exe arg1 arg 2
-mono:: is alive and well...
-Argument 0 = arg1
-Argument 1 = arg
-Argument 2 = 2
-RESULT: 0
-
-real 0m0.575s
-user 0m0.100s
-sys 0m0.010s
-[hinne@taurus hello]$ time mint hello.exe arg1 arg 2
-mono:: is alive and well...
-Argument 0 = arg1
-Argument 1 = arg
-Argument 2 = 2
-
-real 0m0.545s
-user 0m0.060s
-sys 0m0.000s
-[hinne@taurus hello]$
-</programlisting>
-<para>
-After this simple run of mono, it is time to play with some options.
-I won't cover these in detail since there are quite a few, and also because
-I assume you downloaded mono to hack it around in the first place. So
-I'll leave some pointers.
-</para>
-
-
-<sect3 id="debugging">
-<title>Debugging</title>
-<para>
-Mono supports a debugging option when you specify the "-d" flag while running
-the runtime. Utilising this flag will get you a significant amount of output,
-and it may be an idea to specify an output file as well. The interesting aspect
-of this file is that it allows you to see to some extent (quite precisely,
-actually) what the JIT compiler is up to.
-</para>
-</sect3>
-
-<sect3 id="statistics">
-<title>Statistics</title>
-<para>
-It is also possible to collect some runtime statistics on your program. These
-will give you some idea of the resource utilisation of your program.
-</para>
-<programlisting>
-[hinne@taurus hello]$ mono --stats hello.exe
-mono:: is alive and well...
-RESULT: 0
-Mono Jit statistics
-Compiled methods: 58
-Methods cache lookup: 15
-Method trampolines: 698
-Basic blocks: 188
-Max basic blocks: 15
-Allocated vars: 238
-Analyze stack repeat: 61
-Compiled CIL code size: 2450
-Native code size: 10167
-Max code size ratio: 7.13 (FileStream::FlushBuffer)
-Biggest method: 1016 (StreamWriter::Write)
-Code reallocs: 27
-Allocated code size: 22073
-Inlineable methods: 17
-Inlined methods: 22
-
-Created object count: 18
-Initialized classes: 127
-Used classes: 37
-Static data size: 288
-VTable data size: 8292
-</programlisting>
-</sect3>
-
-</sect2>
-
-<sect2 id="ILAsm_code" >
-<title>Inspecting IL Assembly code</title>
-<para>
-Mono also provides a small tool that will let you disassemble
-the executable (.exe) file so you can have a peek
-under the hood. This tool is monodis, and is run as
-follows:
-
-</para>
-<programlisting>
-[hinne@taurus hello]$ monodis hello.exe
-.assembly extern mscorlib
-{
- .ver 0:0:0:0
-}
-.assembly 'hello'
-{
- .hash algorithm 0x00008004
- .ver 0:0:0:0
-}
- .class private auto ansi beforefieldinit Hello
- extends [mscorlib]System.Object
- {
-
- // method line 1
- .method public hidebysig specialname rtspecialname
- instance default void .ctor() cil managed
- {
- // Method begins at RVA 0x20ec
- // Code size 7 (0x7)
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void System.Object::.ctor()
- IL_0006: ret
- } // end of method instance default void .ctor()
-
- // method line 2
- .method public static
- default void Main(string[] args) cil managed
- {
- // Method begins at RVA 0x20f4
- .entrypoint
- // Code size 56 (0x38)
- .maxstack 5
- .locals init (
- int32 V_0,
- int32 V_1)
- IL_0000: ldstr "mono:: is alive and well..."
- IL_0005: call void System.Console::WriteLine(string)
- IL_000a: ldc.i4.0
- IL_000b: stloc.0
- IL_000c: ldloc.0
- IL_000d: ldarg.s 0
- IL_000f: ldlen
- IL_0010: clt
- IL_0012: brfalse IL_0037
-
- IL_0017: ldstr "Argument {0} = {1}"
- IL_001c: ldloc.0
- IL_001d: box [mscorlib]System.Int32
- IL_0022: ldarg.s 0
- IL_0024: ldloc.0
- IL_0025: ldelem.ref
- IL_0026: call void System.Console::WriteLine(string, object, object)
- IL_002b: nop
- IL_002c: ldloc.0
- IL_002d: ldc.i4.1
- IL_002e: add
- IL_002f: stloc.1
- IL_0030: ldloc.1
- IL_0031: stloc.0
- IL_0032: br IL_000c
-
- IL_0037: ret
- } // end of method default void Main(string[] args)
-
- } // end of type Hello
-
-[hinne@taurus hello]$
-</programlisting>
-<para>
-This is the listing of the code of your program in a language
-called IL assembly, or Common Intermediate Language (CIL). The
-CIL provides the portability of the mono platform, and ensures
-that code compiled with Microsoft's .NET framework will work
-on mono and vice versa.
-</para>
-</sect2>
-
-<sect2 id="man_pages">
-<title>Man pages</title>
-
-<para>
-Mono has man pages already installed, and generally, typing <command>
-man</command> before the command you wish to execute should help in
-getting a list of the options. In many cases, it's still up to you
-to figure out what they do.
-</para>
-
-</sect2>
-
-
-</sect1>
-
-
-<sect1 id="problems">
-<title>Problems</title>
-<para>
-With mono being as new as it is, it is likely that you will have some
-problems with installation. The following are some ideas to help you
-out in a bind:
-</para>
-
-<orderedlist>
-<listitem>
-<para>
-See the Ximian Bugzilla page to find out if there is a bug
-report about your specific issue.
-</para>
-</listitem>
-
-<listitem>
-<para>Read this document. If it does not solve your problem, we want to
-know about it. Please send a message to the email address listed for
-feedback at the beginning of the document.</para>
-</listitem>
-
-<listitem>
-
-<para>
-Visit the mono mailing lists' archives and do a little
-research in there for threads talking about the problem you have.
-</para>
-</listitem>
-
-<listitem>
-<para>
-If you still cannot correct the problem, send a message to the
-mono list. When you do this, please be as precise as possible--i.e.
-mention the system you are running, the version of mono that you have the
-problem with, and give any error codes and other output that might appear.
-</para>
-</listitem>
-</orderedlist>
-
-</sect1>
-
-<sect1 id="knownproblems">
-<title>Known Problems</title>
-
-<para> mcs fails to compile in Linux.
-To the best of my knowledge, as of yet mcs cannot compile in Linux.
-Try to install the already made packages from
-http://mono.baselabs.org/index.php/software. </para>
-</sect1>
-
-<!-- Legal Sections --> <sect1 id="copyright">
- <title>Copyright and License</title>
-
- <!-- The LDP recommends, but doesn't require, the GFDL --> <para>
- This document, <emphasis>Running mono</emphasis>, is copyrighted
- (c) 2002 by <emphasis>Hinne Hettema</emphasis> and
- <emphasis>Jaime Anguiano Olarra</emphasis>. Permission is
- granted to copy, distribute and/or modify this document under the
- terms of the GNU Free Documentation License, Version 1.1 or any later
- version published by the Free Software Foundation; with no Invariant
- Sections, with no Front-Cover Texts, and with no Back-Cover Texts.
- A copy of the license is included in the section entitled "GNU Free
- Documentation License".
- </para>
-
-<sect2 id="gfdl"> <title>GNU Free Documentation License</title>
-<!-- GNU Project - Free Software Foundation (FSF) -->
-
-<para>Version 1.1, March 2000</para>
-
-<blockquote> <para>Copyright (C) 2000 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is
-permitted to copy and distribute verbatim copies of this license document,
-but changing it is not allowed.</para> </blockquote>
-
-<sect3 id="gfdl-0"> <title>PREAMBLE</title>
-
-<para>The purpose of this License is to make a manual, textbook,
- or other written document "free" in the sense of freedom: to assure
- everyone the effective freedom to copy and redistribute it, with
- or without modifying it, either commercially or noncommercially.
- Secondarily, this License preserves for the author and publisher
- a way to get credit for their work, while not being considered
- responsible for modifications made by others.</para>
-
-<para>This License is a kind of "copyleft", which means that
- derivative works of the document must themselves be free in the
- same sense. It complements the GNU General Public License, which
- is a copyleft license designed for free software.</para>
-
-<para>We have designed this License in order to use it for manuals
- for free software, because free software needs free documentation:
- a free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to software
- manuals; it can be used for any textual work, regardless of subject
- matter or whether it is published as a printed book. We recommend
- this License principally for works whose purpose is instruction
- or reference.</para>
-</sect3>
-
-<sect3 id="gfdl-1"> <title>APPLICABILITY AND DEFINITIONS</title>
-
-<para>This License applies to any manual or other work that
- contains a notice placed by the copyright holder saying it can be
- distributed under the terms of this License. The "Document", below,
- refers to any such manual or work. Any member of the public is a
- licensee, and is addressed as "you".</para>
-
-<para>A "Modified Version" of the Document means any work
- containing the Document or a portion of it, either copied verbatim,
- or with modifications and/or translated into another language.</para>
-
-<para>A "Secondary Section" is a named appendix or a front-matter
- section of the Document that deals exclusively with the relationship
- of the publishers or authors of the Document to the Document's overall
- subject (or to related matters) and contains nothing that could fall
- directly within that overall subject. (For example, if the Document
- is in part a textbook of mathematics, a Secondary Section may not
- explain any mathematics.) The relationship could be a matter of
- historical connection with the subject or with related matters, or
- of legal, commercial, philosophical, ethical or political position
- regarding them.</para>
-
-<para>The "Invariant Sections" are certain Secondary Sections
- whose titles are designated, as being those of Invariant Sections,
- in the notice that says that the Document is released under this
- License.</para>
-
-<para>The "Cover Texts" are certain short passages of text that
- are listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License.</para>
-
-<para>A "Transparent" copy of the Document means a
- machine-readable copy, represented in a format whose specification
- is available to the general public, whose contents can be viewed and
- edited directly and straightforwardly with generic text editors
- or (for images composed of pixels) generic paint programs or
- (for drawings) some widely available drawing editor, and that is
- suitable for input to text formatters or for automatic translation
- to a variety of formats suitable for input to text formatters.
- A copy made in an otherwise Transparent file format whose markup
- has been designed to thwart or discourage subsequent modification
- by readers is not Transparent. A copy that is not "Transparent"
- is called "Opaque".</para>
-
-<para>Examples of suitable formats for Transparent copies include
- plain ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and standard-conforming
- simple HTML designed for human modification. Opaque formats include
- PostScript, PDF, proprietary formats that can be read and edited
- only by proprietary word processors, SGML or XML for which the
- DTD and/or processing tools are not generally available, and the
- machine-generated HTML produced by some word processors for output
- purposes only.</para>
-
-<para>The "Title Page" means, for a printed book, the title page
- itself, plus such following pages as are needed to hold, legibly,
- the material this License requires to appear in the title page.
- For works in formats which do not have any title page as such,
- "Title Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.</para>
-</sect3>
-
-<sect3 id="gfdl-2"> <title>VERBATIM COPYING</title>
-
-<para>You may copy and distribute the Document in any medium,
- either commercially or noncommercially, provided that this License,
- the copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that
- you add no other conditions whatsoever to those of this License.
- You may not use technical measures to obstruct or control the
- reading or further copying of the copies you make or distribute.
- However, you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow the
- conditions in section 3.</para>
-
-<para>You may also lend copies, under the same conditions stated
- above, and you may publicly display copies.</para>
-</sect3>
-
-<sect3 id="gfdl-3"> <title>COPYING IN QUANTITY</title>
-
-<para>If you publish printed copies of the Document numbering more
- than 100, and the Document's license notice requires Cover Texts, you
- must enclose the copies in covers that carry, clearly and legibly,
- all these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The front
- cover must present the full title with all words of the title equally
- prominent and visible. You may add other material on the covers
- in addition. Copying with changes limited to the covers, as long as
- they preserve the title of the Document and satisfy these conditions,
- can be treated as verbatim copying in other respects.</para>
-
-<para>If the required texts for either cover are too voluminous to
- fit legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto adjacent
- pages.</para>
-
-<para>If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a machine-readable
- Transparent copy along with each Opaque copy, or state in or with each
- Opaque copy a publicly-accessible computer-network location containing
- a complete Transparent copy of the Document, free of added material,
- which the general network-using public has access to download
- anonymously at no charge using public-standard network protocols.
- If you use the latter option, you must take reasonably prudent steps,
- when you begin distribution of Opaque copies in quantity, to ensure
- that this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you distribute
- an Opaque copy (directly or through your agents or retailers) of
- that edition to the public.</para>
-
-<para>It is requested, but not required, that you contact the
- authors of the Document well before redistributing any large number
- of copies, to give them a chance to provide you with an updated
- version of the Document.</para>
-</sect3>
-
-<sect3 id="gfdl-4"> <title>MODIFICATIONS</title>
-
-<para>You may copy and distribute a Modified Version of the
- Document under the conditions of sections 2 and 3 above, provided
- that you release the Modified Version under precisely this License,
- with the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version
- to whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:</para>
-
-<orderedlist numeration="upperalpha"> <listitem><para>Use in the
-Title Page
- (and on the covers, if any) a title distinct from that of the
- Document, and from those of previous versions (which should, if
- there were any, be listed in the History section of the Document).
- You may use the same title as a previous version if the original
- publisher of that version gives permission.</para>
-</listitem>
-
-<listitem><para>List on the Title Page,
- as authors, one or more persons or entities responsible for
- authorship of the modifications in the Modified Version, together
- with at least five of the principal authors of the Document (all
- of its principal authors, if it has less than five).</para>
-</listitem>
-
-<listitem><para>State on the Title page
- the name of the publisher of the Modified Version, as the
- publisher.</para>
-</listitem>
-
-<listitem><para>Preserve all the
- copyright notices of the Document.</para>
-</listitem>
-
-<listitem><para>Add an appropriate
- copyright notice for your modifications adjacent to the other
- copyright notices.</para>
-</listitem>
-
-<listitem><para>Include, immediately
- after the copyright notices, a license notice giving the public
- permission to use the Modified Version under the terms of this
- License, in the form shown in the Addendum below.</para>
-</listitem>
-
-<listitem><para>Preserve in that license
- notice the full lists of Invariant Sections and required Cover
- Texts given in the Document's license notice.</para>
-</listitem>
-
-<listitem><para>Include an unaltered
- copy of this License.</para>
-</listitem>
-
-<listitem><para>Preserve the section
- entitled "History", and its title, and add to it an item stating at
- least the title, year, new authors, and publisher of the Modified
- Version as given on the Title Page. If there is no section entitled
- "History" in the Document, create one stating the title, year,
- authors, and publisher of the Document as given on its Title Page,
- then add an item describing the Modified Version as stated in the
- previous sentence.</para>
-</listitem>
-
-<listitem><para>Preserve the network
- location, if any, given in the Document for public access to
- a Transparent copy of the Document, and likewise the network
- locations given in the Document for previous versions it was
- based on. These may be placed in the "History" section. You may
- omit a network location for a work that was published at least four
- years before the Document itself, or if the original publisher of
- the version it refers to gives permission.</para>
-</listitem>
-
-<listitem><para>In any section entitled
- "Acknowledgements" or "Dedications", preserve the section's title,
- and preserve in the section all the substance and tone of each
- of the contributor acknowledgements and/or dedications given
- therein.</para>
-</listitem>
-
-<listitem><para>Preserve all the
- Invariant Sections of the Document, unaltered in their text and in
- their titles. Section numbers or the equivalent are not considered
- part of the section titles.</para>
-</listitem>
-
-<listitem><para>Delete any section
- entitled "Endorsements". Such a section may not be included in
- the Modified Version.</para>
-</listitem>
-
-<listitem><para>Do not retitle any
- existing section as "Endorsements" or to conflict in title with
- any Invariant Section.</para>
-</listitem> </orderedlist> <para>If the Modified Version includes new
-front-matter sections
- or appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option designate
- some or all of these sections as invariant. To do this, add their
- titles to the list of Invariant Sections in the Modified Version's
- license notice. These titles must be distinct from any other section
- titles.</para>
-
-<para>You may add a section entitled "Endorsements", provided it
- contains nothing but endorsements of your Modified Version by various
- parties--for example, statements of peer review or that the text has
- been approved by an organization as the authoritative definition of
- a standard.</para>
-
-<para>You may add a passage of up to five words as a Front-Cover
- Text, and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one passage
- of Front-Cover Text and one of Back-Cover Text may be added by (or
- through arrangements made by) any one entity. If the Document already
- includes a cover text for the same cover, previously added by you or
- by arrangement made by the same entity you are acting on behalf of,
- you may not add another; but you may replace the old one, on explicit
- permission from the previous publisher that added the old one.</para>
-
-<para>The author(s) and publisher(s) of the Document do not by
- this License give permission to use their names for publicity for
- or to assert or imply endorsement of any Modified Version.</para>
-</sect3>
-
-<sect3 id="gfdl-5"> <title>COMBINING DOCUMENTS</title>
-
-<para>You may combine the Document with other documents released
- under this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination all of
- the Invariant Sections of all of the original documents, unmodified,
- and list them all as Invariant Sections of your combined work in
- its license notice.</para>
-
-<para>The combined work need only contain one copy of this
- License, and multiple identical Invariant Sections may be replaced
- with a single copy. If there are multiple Invariant Sections with
- the same name but different contents, make the title of each such
- section unique by adding at the end of it, in parentheses, the
- name of the original author or publisher of that section if known,
- or else a unique number. Make the same adjustment to the section
- titles in the list of Invariant Sections in the license notice of
- the combined work.</para>
-
-<para>In the combination, you must combine any sections entitled
- "History" in the various original documents, forming one section
- entitled "History"; likewise combine any sections entitled
- "Acknowledgements", and any sections entitled "Dedications".
- You must delete all sections entitled "Endorsements."</para>
-</sect3>
-
-<sect3 id="gfdl-6"> <title>COLLECTIONS OF DOCUMENTS</title>
-
-<para>You may make a collection consisting of the Document and
- other documents released under this License, and replace the
- individual copies of this License in the various documents with a
- single copy that is included in the collection, provided that you
- follow the rules of this License for verbatim copying of each of
- the documents in all other respects.</para>
-
-<para>You may extract a single document from such a collection,
- and distribute it individually under this License, provided you
- insert a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.</para>
-</sect3>
-
-<sect3 id="gfdl-7"> <title>AGGREGATION WITH INDEPENDENT WORKS</title>
-<para>A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume
- of a storage or distribution medium, does not as a whole count
- as a Modified Version of the Document, provided no compilation
- copyright is claimed for the compilation. Such a compilation is
- called an "aggregate", and this License does not apply to the other
- self-contained works thus compiled with the Document, on account
- of their being thus compiled, if they are not themselves derivative
- works of the Document.</para>
-
-<para>If the Cover Text requirement of section 3 is applicable to
- these copies of the Document, then if the Document is less than
- one quarter of the entire aggregate, the Document's Cover Texts
- may be placed on covers that surround only the Document within
- the aggregate. Otherwise they must appear on covers around the
- whole aggregate.</para>
-</sect3>
-
-<sect3 id="gfdl-8"> <title>TRANSLATION</title>
-
-<para>Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section 4.
- Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include
- a translation of this License provided that you also include the
- original English version of this License. In case of a disagreement
- between the translation and the original English version of this
- License, the original English version will prevail.</para>
-</sect3>
-
-<sect3 id="gfdl-9"> <title>TERMINATION</title> <para>You may not copy,
-modify, sublicense, or distribute the
- Document except as expressly provided for under this License.
- Any other attempt to copy, modify, sublicense or distribute the
- Document is void, and will automatically terminate your rights under
- this License. However, parties who have received copies, or rights,
- from you under this License will not have their licenses terminated
- so long as such parties remain in full compliance.</para>
-</sect3>
-
-<sect3 id="gfdl-10"> <title>FUTURE REVISIONS OF THIS LICENSE</title>
-
-<para>The Free Software Foundation may publish new, revised
- versions of the GNU Free Documentation License from
- time to time. Such new versions will be similar
- in spirit to the present version, but may differ in
- detail to address new problems or concerns. See <ulink
- url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
-
-<para>Each version of the License is given a distinguishing
- version number. If the Document specifies that a particular
- numbered version of this License "or any later version" applies
- to it, you have the option of following the terms and conditions
- either of that specified version or of any later version that has
- been published (not as a draft) by the Free Software Foundation.
- If the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation.</para>
-</sect3>
-
-<sect3 id="gfdl-11"> <title>How to use this License for your
-documents</title>
-
-<para>To use this License in a document you have written, include
- a copy of the License in the document and put the following copyright
- and license notices just after the title page:</para>
-
-<blockquote><para> Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.1 or any later version published by the Free Software
- Foundation; with the Invariant Sections being LIST THEIR TITLES,
- with the Front-Cover Texts being LIST, and with the Back-Cover
- Texts being LIST. A copy of the license is included in the section
- entitled "GNU Free Documentation License".
-</para></blockquote>
-
-<para>If you have no Invariant Sections, write "with no Invariant
- Sections" instead of saying which ones are invariant. If you
- have no Front-Cover Texts, write "no Front-Cover Texts" instead of
- "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.</para>
-
-<para>If your document contains nontrivial examples of program
- code, we recommend releasing these examples in parallel under your
- choice of free software license, such as the GNU General Public
- License, to permit their use in free software.</para>
-</sect3> </sect2> </sect1>
-
-</article>
-