old-www/HOWTO/openMosix-HOWTO/x1451.html

265 lines
4.9 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Introduction</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="The openMosix HOWTO"
HREF="index.html"><LINK
REL="UP"
TITLE="Getting started with openMosix internals"
HREF="internals.html"><LINK
REL="PREVIOUS"
TITLE="Getting started with openMosix internals"
HREF="internals.html"><LINK
REL="NEXT"
TITLE="FAQ"
HREF="p1504.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The openMosix HOWTO: </TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="internals.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 18. Getting started with openMosix internals</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="p1504.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN1451"
></A
>18.1. Introduction</H1
><P
>this part has been written by Amit Shah</P
><P
>There's not much documentation available right now for the kernel. I hope to
write some in the coming weeks. Anyways, here's how the sources are laid out:</P
><P
>The openMosix code resides largely in hpc/ and include/hpc. There are lots of
patches to the core kernel files everywhere, right from the arch/i386
directories to mm/, fs/, etc. You need to read up the code which interests
you and think that would matter for the present situation (that shouldn't be
a problem, since you've done kernel coding).</P
><P
>here's what you should expect in each of the source files:
<P
></P
><UL
><LI
><P
>&#13;hpc/badops.c: one file to handle all the bad operations: mostly return err
codes</P
></LI
><LI
><P
>hpc/balance.c: The load balancer code (load + mem usage + n/w usage)</P
></LI
><LI
><P
>&#13;hpc/comm.c: The intra-cluster communication setup</P
></LI
><LI
><P
>&#13;hpc/config.c: The config code for openMosix: after you run the startup script</P
></LI
><LI
><P
>&#13;hpc/decay.c: decay (age) the stats and info collected from other nodes</P
></LI
><LI
><P
>&#13;hpc/deputy.c: Code executed on the deputy: service remote syscalls (ie. after
the process has migrated), signals, etc.</P
></LI
><LI
><P
>&#13;hpc/dfsa.c: Direct File System Access code: the distributed file system
abstraction layer</P
></LI
><LI
><P
>&#13;hpc/div.c: the algorithms to do floating point divisions</P
></LI
><LI
><P
>hpc/export.c: export symbols needed in other files</P
></LI
><LI
><P
>&#13;hpc/freemem.c: to keep track of free, avl. memory and to free it if need be.
hugely taken from the Linux mm/ code.</P
></LI
><LI
><P
>&#13;hpc/hpcadmin.c: tune openMosix admin values (through /proc/hpc)</P
></LI
><LI
><P
>&#13;hpc/hpcproc.c: The /proc/hpc code is handled here</P
></LI
><LI
><P
>&#13;hpc/info.c: The info daemon: sends and receives (multicast) load+mem usage
stats throughout the cluster</P
></LI
><LI
><P
>&#13;hpc/init.c: Initialization code: initializes the daemons, etc.</P
></LI
><LI
><P
>&#13;hpc/kernel.c: most of the "core" code: all the important algorithms,
decisions, etc. made here.</P
></LI
><LI
><P
>&#13;hpc/load.c: calculation of local load, etc.</P
></LI
><LI
><P
>&#13;hpc/mig.c: Code that handles the migration. Code in this file is invoked on
any migration: deputy-&#62;remote, remote-&#62;deputy; remote-&#62;remote</P
></LI
><LI
><P
>&#13;hpc/prequest.c: handles the process's requests: signals, more memory, etc.</P
></LI
><LI
><P
>&#13;hpc/remote.c: Code executed when the process is on the remote: syscalls
handling on remote, passing control to deputy, etc.</P
></LI
><LI
><P
>&#13;hpc/rinode.c: fs/ related stuff: used mostly for DFSA</P
></LI
><LI
><P
>hpc/service.c: setting up daemons, getting memory, etc.</P
></LI
><LI
><P
>hpc/syscalls.c: handles all the remote syscalls here</P
></LI
><LI
><P
>hpc/ucache.c: handles the ucache: mostly mm/, fs/ stuff.</P
></LI
></UL
>
the other files like auto_syscalls.c, alternate.c are generated at compile
time.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="internals.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="p1504.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Getting started with openMosix internals</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="internals.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>FAQ</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>