Web Server on Embedded System

Hello,

I am currently implementing a web server application on a ARM-based embedded system. The requirement is to able to access and control the devices on the board through a web interface. The board runs on eCOS.

How do I go about creating a web interface for the devices? I read that a few popular webserver available such as BOA, tthttpd and GoAhead webserver. Which one will be good for this purpose?

Thanks in advance for your advices!

Reply to
mantaray
Loading thread data ...

You have to

  1. right a driver that performs the low level accesses
  2. generate CGI code to call the driver that can be accessed from the webserver
  3. generate web pages with control/status data form CGI

The book at

formatting link
provides a good example of this.

Reply to
Clark Pope

All this is good advice for an embedded Linux system, but...

^^^^^^^^^^^^^^^^^^^^^^

.. I'm not sure if any of this applies to eCOS.

Does eCOS even have tasks in the sense that Linux does (i.e. processes in seperate address spaces, fork(), etc.)? If not, then I suspect that some, maybe all of these web servers will not run on eCOS.

Rob

--
Robert Kaiser                     email: rkaiser AT sysgo DOT com
SYSGO AG                          http://www.elinos.com
Klein-Winternheim / Germany       http://www.sysgo.com
Reply to
Robert Kaiser

Hi Robert,

eCos has threads, but not processes. The goahead web server runs on eCos, but I don't know about the others. eCos is certainly a different environment than Linux, and this must be take into consideration.

formatting link

Ciao, Dave

Reply to
David N. Welton

You write HTML?

It depends on your requirements, which you neglected to state.

I've used GoAhead under eCos and it worked well.

If you want useful answers you're going to have to ask better questions. This is a linux newsgroup, BTW, and you'd be far, far, better off asking eCos questions on the eCos mailing list.

I suggest you read this to start with:

formatting link

--
Grant Edwards                   grante             Yow!  I'm a nuclear
                                  at               submarine under the
                               visi.com            polar ice cap and I need
                                                   a Kleenex!
Reply to
Grant Edwards

McObject has released an in-memory embedded web server that would be appropriate. It has a (much) smaller footprint than e.g. GoAhead.

formatting link

Reply to
Information

If you don't mind a basic question, how does a thread differ from a process?

Steve

Reply to
Steve Pope

Each process has it's own address space that is distinct and protect from that of other processes. Threads share a single address space.

--
Grant Edwards                   grante             Yow!  .. I want a COLOR
                                  at               T.V. and a VIBRATING BED!!!
                               visi.com
Reply to
Grant Edwards

Thanks, that makes sense.

S.

Reply to
Steve Pope

Thanks for the advices guys. I guess I wanted a quick overview idea of howta go about doing it. Frankly, requirement given to me is just as vague. Perhaps after going thru everything more throughly I can ask more precise qns. Thanks!

Reply to
mantaray

[See Grant Edward's good explanation]

Specific to the discussion of Web servers it is important to note that the usual method for web servers to invoke CGI scripts is by running them as sub-processes (usually through fork()). (Often, CGI scripts are written in Perl, so a perl interpreter gets invoked to interpret a perl script). Obviously, if an OS lacks processes, CGI scripts won't work so easily.

Actually, I would like to know how the goahead web server implements CGI script execution.

Rob

--
Robert Kaiser                     email: rkaiser AT sysgo DOT com
SYSGO AG                          http://www.elinos.com
Klein-Winternheim / Germany       http://www.sysgo.com
Reply to
Robert Kaiser

With that µCLinux would not have processes :-(

I suppose it's more the intended use: with multiple threads you _want_ to use common memory locations, while with multiple processes you always use system means to move information from one process to another.

-Michael

Reply to
Michael Schnell

The GoAhead web server doesn't do CGI at all.

Instead, it allows you to attach C functions to specific URLs (typically the ones used by forms to submit data) to handle what would be done by a CGI application in apache. There is a set of C-callable functions to retrieve the values of variables submitted by the form. The server is single-threaded, so no other requests can be handled while the form-handler function is active.

--
Grant Edwards                   grante             Yow!
                                  at              
FISH-NET-FISH-NET-FISH-NET-FISH-NET-FISH!!
                               visi.com
Reply to
Grant Edwards

This is correct. uCLinux does not have real processes.

Best regards,

Wolfgang Denk

--
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88   Web: www.denx.de
Philosophy is a game with objectives and no rules.
Mathematics is a game with rules and no objectives.
Reply to
Wolfgang Denk

You might consider Run-Time-Access as the interface to the low level program. It is described at

formatting link

Reply to
Bob Smith

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.