Re: serial.c

From: Jesse Pollard (pollard@tomcat.admin.navo.hpc.mil)
Date: Fri May 12 2000 - 18:12:07 EST


Rich Bryant <rfb6435@osfmail.isc.rit.edu>:
>
> > >
> > > I realize that, but I don't have any type of disk drive.... My boot medium
> > > isn't large enough to hold the file system and kernel. I have plenty of
> > > ram after that, but it also has to be used as RAMDISK.
> >
> > Nevertheless it _is_ possible to strip the system down to run in less
> > than 4MB RAM (_including_ a ramdisk ROOT-FS). The kernels I have
> > generated for my embedded Systems are typically around 650 KB
> > (uncompressed & stripped). I doubt that stripping down the code
> > in serial.c would reduce that by any significant amount.
>
> The idea was to reduce serial.c and the other 2 or so drivers that I
> need. I then would remove the filesystem as we know it and just use
> something incredebly simplistic. It is getting too far off topic as what I
> was thinking of makes the system something other than linux since I
> wouldn't even be able to run regular programs. It is really a mute point
> as far as dicussions here are concerned.
>
> The amount of RAM that I run in isn't the issue at all, but rather the
> type of boot medium that I have. This board doesn't have a floppy
> drive, only ROM. The ROM isn't big enough to hold the sytem so the amount
> of RAM really means nothing at all. Flash might be an answer, but I will
> have to talk to the guy designing the board. I just don't see Linux as
> viable in this type of system since I need to have a megabyte of
> static storage somewhere bit it disk, rom, flash or network to simply boot
> it. Correct me if I am wrong.

Umm... You might consider replacing init (use the fork, but not the exec) and
call a program similar to "ash" (example only) ASH itself is a single program
image that contains all the runtime needed for the builtin applications, but no
shared libraries. If it replaces init, then when the kernel boots there
would be no need for a disk. Everything would be contained in the kernel
image. Ash is a standalone shell aimed at single user mode recovery
activity. It may provide a foundation that could help.

Even this might not make the kernel small enough execpt for testing purposes.
(boot from net for tests, no need for the ROM).

I used to work in embedded systems - Most of them had a kernel of only
4-16k, ROM, and 16k ram. For this level of embeded operation you usually don't
even have a multi-tasking OS.

I don't know if it would help but the mulinux project has a very small
footprint for a fully functioning linux set (http://mulinux.firenz.linux.it/).
It does boot (and run) from a 1.7 MB floppy, so the kernel has to be REALLY
small.

You can also look at (since I didn't see any of these reference pop up
in this thread): http://www.tux.org/pub/distributions/tinylinux/
This has a copy of mulinux, plus peanut-linux, pocket-linux, and smalllinux.

BTW, have you looked at that web "server in a pocket" project? That might
give you something better than linux (at least as far as the approach). I
don't have a reference for it though.
-------------------------------------------------------------------------
Jesse I Pollard, II
Email: pollard@navo.hpc.mil

Any opinions expressed are solely my own.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 15 2000 - 21:00:22 EST