<!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 > 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 > hpc/comm.c: The intra-cluster communication setup</P ></LI ><LI ><P > hpc/config.c: The config code for openMosix: after you run the startup script</P ></LI ><LI ><P > hpc/decay.c: decay (age) the stats and info collected from other nodes</P ></LI ><LI ><P > hpc/deputy.c: Code executed on the deputy: service remote syscalls (ie. after the process has migrated), signals, etc.</P ></LI ><LI ><P > hpc/dfsa.c: Direct File System Access code: the distributed file system abstraction layer</P ></LI ><LI ><P > 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 > 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 > hpc/hpcadmin.c: tune openMosix admin values (through /proc/hpc)</P ></LI ><LI ><P > hpc/hpcproc.c: The /proc/hpc code is handled here</P ></LI ><LI ><P > hpc/info.c: The info daemon: sends and receives (multicast) load+mem usage stats throughout the cluster</P ></LI ><LI ><P > hpc/init.c: Initialization code: initializes the daemons, etc.</P ></LI ><LI ><P > hpc/kernel.c: most of the "core" code: all the important algorithms, decisions, etc. made here.</P ></LI ><LI ><P > hpc/load.c: calculation of local load, etc.</P ></LI ><LI ><P > hpc/mig.c: Code that handles the migration. Code in this file is invoked on any migration: deputy->remote, remote->deputy; remote->remote</P ></LI ><LI ><P > hpc/prequest.c: handles the process's requests: signals, more memory, etc.</P ></LI ><LI ><P > 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 > 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 >