Re: ELKS Development/FAQ Questions

Riley Williams
2003-07-31T06:01:21Z

Hi Phil.

> Ok. I'd like to help with the ELKS website, and with the
> documentation. But my main interest is to help with
> development of the ELKS code.
>
> I have virtually no experience with the Linux development
> environment, but I do have experience in cross-development
> for embedded microprocessor systems (in DOS and Win32
> environments)

You need to remember here that the tools used for ELKS are of
no use for Linux even though they are for the same processor.
This is because ELKS only uses the x86 processors in what is
called "Real Mode" since the 8086 that ELKS is primarily aimed
at has no other mode, whereas Linux uses it exclusively in
"386 Protected Mode" and, whilst the actual opcodes are mainly
the same, the environment they are used in, and the assumptions
the tools need to make, are completely different.

> I am trying to follow the FAQ in setting up the environment
> so that I can compile the ELKS kernel, but have almost
> immediately run into a problem.
>
> The FAQ is telling me to install the Dev86 package in the
> root (/) directory. I don't want to do this, and I see no
> reason that I should have to.
>
> I would much rather do all of my cross development in my
> home directory, with my standard user privileges, not root
> privileges. I feel this would be much safer, especially
> since I already have some tools installed that have the same
> name as the Dev86 tools. I don't know where they came from,
> and I'd rather not clobber them.

Have you ever installed the bin86 package? If so, that's an old
version of the dev86 package, and installing the dev86 package
will just install more recent versions of all of the same tools.

The Linux C compiler is "gcc" and the associated assembler and
loader are "as" and "ld" respectively. The ELKS compiler is "bcc"
and its associated assembler and loader are "as86" and "ld86"
respectively. As a result, it is not possible to interfere with
one by upgrading the tools associated with the other.

> Is it possible to set up everything in ~/? If so, how
> is it done? What reasons are there for me NOT to do it that
> way? If I can't set up everything in ~/, please explain why?

From a purely practical viewpoint, as long as the relevant tools
are in a directory in the PATH environment variable, and no
earlier directory in that variable contains tools with the same
name, it doesn't actually matter where they are. However, it is
NOT a good idea to put a user directory ahead of the system
binary directory.

The standard place to put personal binaries is in the directory
~/bin with the same directory appended to the END of the standard
PATH variable with an entry of...

if [ -d ~/bin ]; then
export PATH=${PATH}:~/bin
fi

...in your ~/.bashrc file. This ensures that the said directory
is only added if it actually existed when you logged on.

> I will gladly update the ELKS FAQ with any answers you can
> give me.

Hopefully, the above will help you.

Best wishes from Riley.
---
* Nothing as pretty as a smile, nothing as ugly as a frown.

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.505 / Virus Database: 302 - Release Date: 30-Jul-2003