Hello all,

I've copied the history section of mach from the wiki (https://www.gnu.org/software/hurd/microkernel/mach/history.html) into the gnumach/doc/mach.texi). My diff seems to be adding some changes that I did not intentionally make. I don't think that it changed the manual in any significant way, because I compiled my changes into mach.pdf without any issues. BUT, if there is something wrong with my diff, I can generate it again.

Also, when I first tried compiling it, texi2pdf gave me an error that said that it could not find version.texi. That's why the diff shows me removing it and adding it in again. Also where is version.texi? Can I put it in the same directory as mach.texi?

    Thanks,

Joshua
diff --git a/.gitignore b/.gitignore
index 4488bc2..bc44acf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,3 +37,15 @@ build-aux/
 /mach/machine
 /linux/src/include/asm
 /linux/dev/include/asm
+/doc/mach.aux
+/doc/mach.cp
+/doc/mach.cps
+/doc/mach.fn
+/doc/mach.fns
+/doc/mach.ky
+/doc/mach.log
+/doc/mach.pdf
+/doc/mach.pg
+/doc/mach.toc
+/doc/mach.tp
+/doc/mach.vr
diff --git a/doc/mach.texi b/doc/mach.texi
index 6fc79f7..937966d 100644
--- a/doc/mach.texi
+++ b/doc/mach.texi
@@ -16,7 +16,7 @@
 @syncodeindex tp fn
 
 @c Get the Mach version we are documenting.
-@include version.texi
+@c @include version.texi
 @set EDITION 0.4
 @c @set ISBN X-XXXXXX-XX-X
 
@@ -408,8 +408,81 @@ system.
 @node History
 @section History
 
-XXX A few lines about the history of Mach here.
-
+Mach has quite a history. Everything actually started at the
+University of Rochester in 1975. It was invented to demonstrate how
+operating systems could be built using a modular design where
+processes communicated using message passing, even across
+networks. The system was called the Rochester Intelligent Gateway and
+ran on a 16 bit mini computer called Eclipse from Data General.
+
+One of the engineers behind the project was Richard Rashid. In 1979 he
+moved his socks to Carnegie Mellon University to continue his research
+on message passing operating systems. The result emerged in 1981 and
+was called Accent.
+
+Accent kept running at CMU until 1984 but was by then being run over
+by UNIX. Rashid then decided to use an early embrace strategy and
+started designing the third generation OS project called Mach. By
+making Mach compatible with UNIX, Mach was supposed to gain a lot of
+available UNIX software.
+
+Mach was a vast improvement over Accent. It incorporated parts
+commonly used today, such as: threads, better IPC, multiprocessor
+support and an advanced VM system.
+
+At the time of Mach's conception, DARPA was seeking a multiprocessor
+(MP) capable OS and found Mach. With money from the Dept. of Defense,
+4.2BSD support was added, to bloat the kernel; but most of all, to add
+complete UNIX compatibility.
+
+Now enters the UNIX war.
+
+UNIX was owned by AT&T which controlled the market almost
+completely. Industry giants such as IBM, DEC and H got together and
+formed the Open Software Foundation, OSF. In an effort to conquer
+market share, OSF took the Mach 2.5 release and made it the OSF/1
+system. By that time Mach contained a lot of BSD and AT&T code but the
+OSF hoped that it would be able to take control of the rudder with
+OSF/1. What happens after that is a story better told by someone else.
+
+In 1989 CMU decided to revamp Mach. They removed the bloat and put the
+UNIX emulation in user space making the Mach 3.0 release -- the pure
+Mach release.
+
+Later on support for Mach 3.0 at CMU vaned and the project was taken
+over by the University of Utah. The FLUX group started the Mach4
+project. An ambitious project which included complete rewrite of the
+x86 support code and integration of Linux 2.0 drivers. That's right,
+Linux awoke around 1991 so this makes it apx. 1994.
+
+GNU Mach is based on Mach4 from University of Utah, which in turn is
+based on Mach3 from Carnegie-Mellon University. The last release of
+Mach4 was the UK22 release.
+
+The OSKit was what evolved when the Mach4 project at University of
+Utah was dropped. The people involved wanted to reuse the work they
+had put into Mach in the form of hardware support and drivers.
+
+The oskit-mach version of GNU Mach was presented in November 1999 by
+Roland
+McGrath. http://mail.gnu.org/pipermail/bug-hurd/1999-November/003554.html
+The purpose of the port was to get better hardware support through new
+drivers and platform code available in the OSKit.
+
+On May 27 2002, after the Gnumach 1.3 release, Roland McGrath merged
+OSKit-Mach onto the HEAD of CVS making it the Gnumach 2.x mainline.
+
+Meanwhile, OSKit became unmaintained, thus posing more of a burden on
+than being helpful in GNU Mach development. Consequently, as of March
+2006, nobody is working on OSKit Mach, or trying to use it.
+
+In 2005 Gianluca Guida started a different attempt to use the osenv
+interface with minimal changes to GNU Mach 1.x, thus allowing use of
+the generic driver interface while importing as little of the
+umaintained OSKit code as possible. However, there turned out to be
+serious problems with OSKit, so this attempt was abandoned as well.
+
+Today, GNU Mach development focuses on the 1.x branch again.
 
 @node Installing
 @chapter Installing
@@ -3932,7 +4005,7 @@ primitive.  The lock values must be one or more of the following values:
 Only data which is cached at the time of this call is affected.  When a
 running thread requires a prohibited access to cached data, the kernel
 will issue a @code{memory_object_data_unlock} call specifying the forms
-of access required. 
+of access required.
 
 Once all of the actions requested by this call have been completed, the
 kernel issues a @code{memory_object_lock_completed} call on the
@@ -4209,12 +4282,12 @@ value is ignored.
 
 @cindex thread port
 @cindex port representing a thread
-@deftp {Data type} thread_t 
+@deftp {Data type} thread_t
 This is a @code{mach_port_t} and used to hold the port name of a
 thread port that represents the thread.  Manipulations of the thread are
 implemented as remote procedure calls to the thread port.  A thread can
 get a port to itself with the @code{mach_thread_self} system call.
-@end deftp 
+@end deftp
 
 @menu
 * Thread Creation::               Creating new threads.
@@ -5445,7 +5518,7 @@ Everything described in this section is declared in the header file
 @cindex ports representing a host
 
 @cindex host name port
-@deftp {Data type} host_t 
+@deftp {Data type} host_t
 This is a @code{mach_port_t} and used to hold the port name of a host
 name port (or short: host port).  Any task can get a send right to the
 name port of the host running the task using the @code{mach_host_self}
@@ -5694,7 +5767,7 @@ mapped-time interface:
 
 @c XXX Complete the example.
 @example
-do 
+do
   @{
     secs = mtime->seconds;
     usecs = mtime->microseconds;
@@ -5733,7 +5806,7 @@ sets and control the processors and processor sets.
 A processor is not a central part of the interface.  It is mostly of
 relevance as a part of a processor set.  Threads are always assigned to
 processor sets, and all processors in a set are equally involved in
-executing all threads assigned to that set. 
+executing all threads assigned to that set.
 
 The processor set is represented by two ports, a name port
 @var{processor_set_name} used to query information about the host
@@ -5768,7 +5841,7 @@ manipulate it.
 
 @cindex processor set name port
 @cindex port representing a processor set name
-@deftp {Data type} processor_set_name_t 
+@deftp {Data type} processor_set_name_t
 This is a @code{mach_port_t} and used to hold the port name of a
 processor set name port that names the processor set.  Any task can get
 a send right to name port of a processor set.  The processor set name
@@ -5776,7 +5849,7 @@ port allows to get information about the processor set.
 @end deftp
 
 @cindex processor set port
-@deftp {Data type} processor_set_t 
+@deftp {Data type} processor_set_t
 This is a @code{mach_port_t} and used to hold the port name of a
 privileged processor set control port that represents the processor set.
 Operations on the processor set are implemented as remote procedure
@@ -6128,7 +6201,7 @@ This is a pointer to a @code{struct processor_set_sched_info}.
 
 @cindex processor port
 @cindex port representing a processor
-@deftp {Data type} processor_t 
+@deftp {Data type} processor_t
 This is a @code{mach_port_t} and used to hold the port name of a
 processor port that represents the processor.  Operations on the
 processor are implemented as remote procedure calls to the processor
@@ -6307,7 +6380,7 @@ has control over the device master port can use all hardware devices.
 
 @cindex device port
 @cindex port representing a device
-@deftp {Data type} device_t 
+@deftp {Data type} device_t
 This is a @code{mach_port_t} and used to hold the port name of a
 device port that represents the device.  Operations on the device are
 implemented as remote procedure calls to the device port.  Each device
@@ -6864,7 +6937,7 @@ display in signed decimal
 @item u
 display in unsigned decimal
 
-@item r 
+@item r
 display in current radix, signed
 
 @item c

Reply via email to