Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
Porting Linux
- 11-05-2006
- techie.embedded
November 5, 2006, 5:49 pm

Hi
I have a real fundamental question.. Hoping someone point me to some
plausible answers.
1. What is meant by porting of a Operating System???
2. What does say porting uCLinux onto LPC2148 do to the board.. in the
sense that, how does it change its functionality??
thanks heaps
techie.
I have a real fundamental question.. Hoping someone point me to some
plausible answers.
1. What is meant by porting of a Operating System???
2. What does say porting uCLinux onto LPC2148 do to the board.. in the
sense that, how does it change its functionality??
thanks heaps
techie.

Re: Porting Linux

Porting an Operating System means making it runnable on hardware which from
begin shouldn't be supported by that OS.
For example, Linux was originally written for 386-class PCs (that was the
first "port"). Later it was "ported" to the m68k architekture, which meant
that it changed that way, that a motorola cpu (with a completely different
instruction set) could run Linux.
uCLinux is a port of Linux onto architectures which don't have a MMU. Linux
fundamentally requires a MMU to run and to work with the memory, but many
(embedded) systems don't get one. So the linux kernel was changed. This
"new" kernel doesn't require a MMU, but that meant also, that memory
protection doesn't exist or isn't that strict to use. This may even have
some other downsides, but -it runs-. And that's the point everything depends
on.

Linux is changed so that this board is supported. That means e.g. a
different set of hardware (no intel timer chip, no BIOS but firmware,
different boot loading schemes, whatever) has to be supported. Another boot
loader might be needed, so that the firmware is able to find, load and
execute the kernel.
This is meant by porting something.
Hope that helps, if not, ask further :-)
Regards

Re: Porting Linux

One thing to remember when writing operating systems as well as any
other low level code is to watch up for the processor endiannes. For
instance the x86 is little endian, while m68k is big endian. If the
code is written in only one endiannes in mind, porting it to the other
endiannes may require thousands and thousands of manual changes.
However, if the code has been originally written so that it can run on
both as big or little endian, this part of the porting job would be
minimal.
Paul
Site Timeline
- » Read-Write hdd sectors
- — Next thread in » Embedded Linux
-
- » Moving an application from User Space to Kernel Space
- — Previous thread in » Embedded Linux
-
- » Crosscompiling for ARM: reloc type R_ARM_ABS32 is not supported for PIC - ...
- — Newest thread in » Embedded Linux
-
- » Re: Capacitors at RF
- — The site's Newest Thread. Posted in » Electronics Repair
-