Linux/Alpha Progress Report - Part 1

Linux/Alpha Progress Report - Part 1

Post by Jim Parad » Sun, 20 Nov 1994 03:12:50



                       Linux/Alpha Progress Report
                           Part 1 - Overview
                           November 14, 1994

                              Jim Paradis
                      Alpha Migration Tools Group
                     Digital Equipment Corporation


1.0  INTRODUCTION - WHAT IS LINUX/ALPHA?  

The Linux FAQ (Frequently-Asked-Questions) list describes Linux as
follows:  

     Linux is a Unix clone for 386/486-based PCs, written from scratch
     by Linus Torvalds, with assistance from a loosely-knit team of
     hackers across the Net.  It aims towards POSIX compliance.  

     It has all the features you would expect in a modern
     fully-fledged Unix, including true multitasking, virtual memory,
     shared libraries, demand loading, shared copy-on-write
     executables, proper memory management and TCP/IP networking.  

     It uses the hardware features of the 386 processor family (TSS
     segments et al) to implement these features.  

     It is distributed under the GNU General Public License

Although the distributed Linux kernel depends heavily on the x86
processor architecture, it is feasible to port it to other
architectures.  Indeed, ports are currently in progress to the Alpha,
680x0, PowerPC, MIPS, and possibly other architectures.
Linux/Alpha  is my port of the Linux operating system to the Digital
Alpha architecture.  

2.0  OVERVIEW OF LINUX/ALPHA  

Linux/Alpha  is a port of Linux to the Digital Alpha RISC
microprocessor.  It is based on the Linux V1.0 kernel.  Linux V1.0 was
current when I started the project.  To limit the number of variables,
I decided to stick with a single version while developing the
Alpha-specific pieces.  Although the Linux V1.0 kernel provides more
than enough functionality for our current needs, we might investigate
subsequently leapfrogging to the most-current stable kernel when
Linux/Alpha  is stable.  

Linux/Alpha is a 32-bit operating system.  Except for those cases where
the kernel must interface with the Alpha hardware, no kernel data
type is wider than 32 bits.  As far as C programmers are concerned
pointers and longs are 32 bits.  The decision to remain with 32-bit
data types was based on our group's experience with migrating legacy
software to a 64-bit environment.  By not changing the size of any
data types, those parts of Linux that are unaffected by the port (such

Linux/Alpha Progress Report                                       Page 2

as the file system code) should continue to work without modification.
Changing the data type size would require significant code review to
ensure that all data types are used correctly.  Note that 64-bit
quantities are still available for computation through the use of
"long long" and "long double" C data types.  Thus, the only limitation
of a 32-bit operating system is the unavailability of 64-bit pointers.
On PC-class machines, with at most a few tens of megabytes of physical
memory, this should not be a significant restriction for the
forseeable future.  

Linux/Alpha is primarily aimed at PC-class Alpha platforms that
support ISA, VLB, and PCI devices.  Support for other devices
and platforms is possible in the future.  Contribution of drivers for
other platforms is always welcome.  

--

      The purpose of time is to keep everything from happening at once.  
                               It's not working.

--

PLEASE remember Keywords: and a short description of the software.