Requirement of Linux port

Michael Blizek michi1 at
Fri Apr 1 01:14:24 EDT 2011


On 11:30 Fri 01 Apr     , Jacky Lam wrote:
> Hi All,
>      Is there any document on web summarized the hardware (especially, 
> CPU) that a Linux depends on. For example, if a CPU doesn't support 
> misaligned access (no exception will be generated when misalignment 
> access), can Linux run on that?

I do not know of such a document, but I have not looked for one so far. But
- CPUs which do not support misaligned access are supported.
- CPUs less than 32 bit are not supported. When compiling with gcc, int is
  always 32 bit, long is 32/64 bit (depending on 32/64 bit CPU) and long long
  is always 64 bit. You can also use __u8 __u16 __u32 __u64 __s8 __s16 __s32
  and __s64, if you want to.
- Both big endian and little endian is supported.

The interesting stuff starts if you want to port a program to/from other OSes.
Then you have to take care of missing libs/syscalls (like I/O multiplexer and
a lot of GUIs stuff) or syscalls which behave differently (like fsync())...

programing a layer 3+4 network protocol for mesh networks

More information about the Kernelnewbies mailing list