#include 
#include 
#include 
#include 
#include 
#include 
struct BootInfo Bootrecord = {
   "192.168.1.50",	/* Default IP address */
   "192.168.1.1",	/* Default Gateway */
   "192.168.1.5",	/* Default Timer Server */
   "192.168.1.6",	/* Default File Server - Not currently Used */
   "",
   "192.168.1.7",	/* Default Name Server */
   "",
   0xffffff00UL	/* Default Subnet Mask */
   };
extern Webpage website[];
static char *mail_name="mail";
static char *tftpdemo_name="tftpdemo";
static char *fred_name="fred";
void x_fred()
{
	kprintf("Cool!\r\n");
}
main()
{
	int fd;
	struct cmdent	*mycmds;
	mycmds=(struct cmdent *) getmem(sizeof(struct cmdent)* 3);

	/* Set up mail and tftpdemo commands */
	mycmds[0].cmdnam = mail_name;
	mycmds[0].cbuiltin = TRUE;
	mycmds[0].cproc = (SHELL_CMD)x_mail;
	mycmds[0].cnext=(struct cmdent *)NULL;
	mycmds[1].cmdnam = tftpdemo_name;
	mycmds[1].cbuiltin = TRUE;
	mycmds[1].cproc = (SHELL_CMD)x_tftpdemo;
	mycmds[1].cnext=(struct cmdent *)NULL;
	mycmds[2].cmdnam = fred_name;
	mycmds[2].cbuiltin = TRUE;
	mycmds[2].cproc = (SHELL_CMD)x_fred;
	mycmds[2].cnext=(struct cmdent *)NULL;
	kprintf("\nWebserver Demo\n");
	telnet_init();
	http_init(http_defmethods,httpdefheaders,website,80);
	snmp_init();
	shell_add_commands(mycmds, 3);
	open(SERIAL0, 0,0);
	if ((fd=open(TTY, (char *)SERIAL0,0)) == SYSERR) 
	{
        kprintf("Can't open tty for SERIAL0\n");
        return SYSERR;
	}
	kprintf("Starting up a shell on device %d\n", fd );
	shell_init(fd);
}
Listing 2—There’s lots of functionality here that was assembled with very little code.