GB2399436A - Network browser with its own operating system - Google Patents

Network browser with its own operating system Download PDF

Info

Publication number
GB2399436A
GB2399436A GB0413360A GB0413360A GB2399436A GB 2399436 A GB2399436 A GB 2399436A GB 0413360 A GB0413360 A GB 0413360A GB 0413360 A GB0413360 A GB 0413360A GB 2399436 A GB2399436 A GB 2399436A
Authority
GB
United Kingdom
Prior art keywords
browser
module
computer
operating system
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0413360A
Other versions
GB0413360D0 (en
Inventor
Rong-Wen Chang
John K Lee
Ron K Lin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ELEGENT TECHNOLOGIES Inc
Original Assignee
ELEGENT TECHNOLOGIES Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ELEGENT TECHNOLOGIES Inc filed Critical ELEGENT TECHNOLOGIES Inc
Priority claimed from GB0326737A external-priority patent/GB2393543A/en
Publication of GB0413360D0 publication Critical patent/GB0413360D0/en
Publication of GB2399436A publication Critical patent/GB2399436A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A computer system having one or more processors and its own operating system is provided with a self contained browser having its own operating system on a storage medium such that in operation the browser can function without invoking the operating system of the host computer. Preferably the browser comprises a kernel and may provide its own memory and peripheral device functions. Device drivers may also be provided to facilitate interaction with one or more peripheral devices. In one embodiment, the storage medium may be a BIOS. In use the browser may be loaded either before loading or after shutdown of the host computer operating system.

Description

-L: -it - 2399436 ... ...
- , - . . SELF-CONTAINED:NETWORK BROWSER - . ::5: , : -:. .: :.- : .- - . , . . . . . - This invention relates generally to network browser software and more particularly to a self--contained,network browser with,dia-gnostic abilities. , . -
-
: ' ' ' . ' : A web browser (or "browser software") is,software that is executed by a personal computer in.order to send and receive data from a network. Usually, the network: is a,wide area network, such as the.Internet, or it can be a local area network, such as an intranet. Once the browser. .; : Software has. connected to the network, the browser software can request information, such as hypertext markup language : 20 ('!HTML") files from another computer or "server" on the network. ..
An aspect of most browser software, such as the Netscape Navigator (TM) available from Netscape Corporation in Mountain View, California, is that it is an application À _ - 2.S program. FIG. l shows a known software stack 100 for a personal computer. The software that forms the software stack is persistently stored in a read-only memory-('ROM,) and a hard drive of the,personal computer. In fact, The basic input output system (hereinafter "BIOS") 104, which consists of limited purpose,executzble firmware code permanently attached to a processor, is stored in the ROM.
-
The BIOS 1C4 controls low-level input and output operations when so directed by the operating system.
The operating system 08 is one or more software products (e.g., device drivers) that jointly manage the system resources (e.g., memory management and peripheral devices) of a personal computer, as well as any other programs (e.g., applications) that use the system resources.
It is noted that the device drivers can be part of the - operating system 108, or they can be added over the top of the operating system 108. For example, some device drivers can be downloaded into memory as needed.
One or more applications 316 are stacked on top of the operating system 158. The applications 116 communicate with the operating system 108 through an application-programming interface (hereinafter API) 112, which contains functions and procedures that are called by the applications 116. The API 112 functions and procedures that are called by the applications 116 are in turn passed to the operating system 108. The operating system 108 then passes any required input/output processes on to the BIOS 104, or processes them directly using a device driver.
The operating system 108, the API 112, and the applications 116, unlike the BIOS 104, are all stored in the hard drive of the personal computer. This is largely due to the size of these software components, but also due to their extensible nature.
The primary reason that most browser software is written as an application is that it will be more "portable'', meaning it can be more easily modified to run on different operating systems (e.g., UNIX, Windows 98 (TM), etc.) as well as on different types of computers running the same operating system. This expands a software vendor's market for their product. t
In light of recent legal woes, Microsoft Corporation has made much of the fact that their browser (Internet ' Explorer) is part of their operating system, rather than an application added to the operating system. It is not known whether Microsofts browser is part of the operating system, or an application added to the operating system. Regardless of whether Microsofts (or any known) browser ispart of the operating system, or that it is an application program, the fact remains that the browser, just like the operating system, is still stored in the hard disk. When the hard disk fails, the browser and the personal computer are usually useless.
According to the present invention there is provided a computer, comprising: a mass storage for storing a general purpose operating system; a storage medium for storing a self-contained browser which contains its own operating system; and one or more processors; wherein the one or more processors execute the browser without invoking the general purpose operating system. if;
À : . :
BRIEF DESCRIPTION OF THE DRAWINGS
The figures of the accompanying drawings are shown by way of example and not by way of limitation, In which like reference numerals refer to like components and in which: FIG. 1 depicts a known software stack.
FIG. 2 is a block diagram of a self-contained ROM-based browser software stack according to the present invention.
FIG. 3 is a high-level block diagram of the present invention.
FIG. 4 is a detailed block diagram of the present invention.
FIG. SA is a flowchart depicting the invocation of the present invention.
FIGS. SB and SC are flowchart depicting useful applications of the present invention. - FIG. 6 is a block diagram of a personal computer.
I- - f -
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS - -
FIG. 2 depicts a block diagram of a self-contained, - persistently stored browser software stack 208. The browser software stack 208 is persistently stored, but not on a traditional electromagnetic hard drive. As used herein! an "electromagnetic hard drive'' is a magnetic storage medium, usually called a platter, that is mechanically rotated.
Read and write operations are performed by a read-write head: that is part of the hard drive.
Preferably, the browser 208 is stored in PC BIOS in a - read-only memory ("ROM"), 212 or a ROM equivalent, such as: electrically programmable read-only memory ("EPROM"), electrically erasable programmable read-only memory ("EEPROM")1 electrically alterable programmable read-only memory ("EAPROM"), and flash erasable programmable read-only memory ("FLASH" or "FEPROMi,). As used herein, PC oIOS stands for "personal computer basic input output system." The PC BIOS is a firmware code region of memory that is permanently resident in the personal computer. It is primarily responsible for performing low level input output operations, usually on behalf of an operating system.
However, according to an embodiment of the present invention, the PC BIOS includes the self-contained browser software stack 208.
The browser 208 is independent of a known operating
_
- -- system and a hard drive. Thus, employing the browser 208 makes a personal computer less susceptible to failures and allows the personal computer to operate in spite of certain types of failures -- whether they are failures that occur at startup, or during run-time operation of the personal computer. Moreover, the browser 208 can be used to diagnose problems associated with hardware components coupled to the personal computer.
: ? . - ( : The browser 208 depicted in FIG. 2 architecturally defines an embodiment of the invention. According to a - presently preferred embodiment, the browser 208 is stored in a ROM 212. Before describing the functional blocks comprising the browser 208 in detail, it is useful to describe the modular elements (e.g., program code and hardware combination) of the browser as they relate to the - overall invention. For this we turn to FIG. 3.
OPERATIONAL OVERVIEW
- FIG. 3 is a high-level block diagram of the browser 300 as it operates with electronic hardware, such as a personal computer (one embodiment of a personal computer is described below with reference to FIG. 6). According to an embodiment : : of the present invention, a personal computer (hereinafter "computer 300') having the browser software performs at least four basic operations. One operation includes an input/output function. To this end, the computer 300 includes an input-module 304. The input module 304 comprises hardware that provides one or more communication means with an external device, such as a keyboard, a mouse, a stylus,: or a touch screen. A serial port, an I1O controller, a USE port, an IEEE 1394 port, and a CEBus are examples of communications means. Software, which is included in the browser, handles interrupts, buffering, and command and control dispatching for inputs received over the communication means. It is noted that Output can also be achieved by the communication means of the input module 304, although it is not the primary function of the module 3-04.
Another operation of the computer 300 is that of lower level network communications. For this, a network communications module 308 is provided that handles communication functions and operations at the physical, data : - l: : link, network and transport layers of, for example, the : -. :, seven layer OSI ("Open Systems Interconnection") Reference Model, which is generally known in the art of networking.
Hardware devices that can implement the network communications module 308 include an Ethernet card, a traditional landline modem, a cable modem, and a wireless modem. Multiple Internet RECs, which are standards for the Internet, define the specifications of the software that allows these hardware devices to operate. According to embodiments of the invention, the Internet RFC's include 791 - (InterneL Protocol or "IP"), 792 (Internet Control Message Protocol or "ICMP"), 793 (Transmission Control Protocol or "TCP"), 826 (Address Resolution Protocol or "ARP"), and 1661 (Point-to-Point Protocol or "PPP"), all of which are available on the Internet at the URL http://www.pmg.lcs.mit.edu/rfc.html.
A third operation of the computer 300 is processing data and control to and from the network communications module 308. At the network application module 312, various protocols are employed that interpret messages from the network communications module 308 and either provide a client (or "user interface") specifically for them (for example, terminal monitor software or an electronic mail client), or access another client at a different module (for example in the page rendering module 316, which is described
_
- - below). If the network application module 312 provides a client for a user, then in addition to handling data to and from the network communications module 308, it can receive data from the input module 304 -- either directly or through- another module, such as the page rendering module 316.
Exemplary applications (or "protocols") for the network application module 312 are DNS (Domain Name System), HTTP (Hypertext Transfer Protocol), SSL (Secure Sockets Layer), -A i; ( . . HTTPS (HTTP Secure), SMTP (Simple Mail Transfer Protocol), - POP3 (Post Office Protocol Version 3), TELNET, and FTP (-File Transfer Protocol). These network applications are further described in Internet RFCs: 1034 (DNS) , 2068 (HTTP) , B21 (SMTP), 1081 (POP3), 85g (TECNET), and 959 (FTP). It is presently preferred:that only SMTP, POP3, DNS, HTTP, SSL and HTTPS are simultaneously implemented in the network application module 342. Generally, the less protocols that are included with the browser, the smaller the resulting footprint (i.e., the amount of memory required to store the - self-contained Network browser is reduced).
At the top of the diagram is the page rendering module 316. The page rendering module 316 handles interpretive aspects of transforming hypertext markup language ("HTMLn) :15 documents, as well as other document formats. For example, the page rendering module 316 renders graphics files, performs page layout functions, and handles window positioning, sizing, and scrolling in response to data from the input module 304 (for example, data from a mouse). The page rendering module 316 communicates directly with a display module (not shown).
DETAILED MODULE DESCRIPTION
FIG. 4 is a detailed functional block diagram of the software in the selfcontained network browser. FIG. 4 is = organized in accordance with a typical data flow from a network (for example, over a peripheral-device) to its ultimate presentation on a computer display or terminal.
Although the functionality of the various detailed modules (FIG. 4) can be moved between the general purpose modules (FIG. 3), they are hereinafter described with reference to a - particular general purpose module. For example, the input -module 304 (FIG. 3) includes software modules 408 through
A- -f {I.
412. In an embodiment, the network communications module 308 includes software modules 416 through 432, the network application module 312 includes software modules 436 through 464, and the page rendering module 316 includes software S modules 468 through 482. :
Data input is received at a peripheral device 404 (i.e., an internal or external device that is added to the computer 300, such as an Ethernet adapter, a keyboard, a mouse, or a wire-line/wireless modem). When the data is received by the input module 304, it is routed from one or more of the computer's input/output ("I/O") pores to its respective module for processing. Generally speaking, each peripheral device is attached to a particular I/O port and data communicated from the peripheral device causes an interrupt in the real-time kernel, which -is further - described below with reference to FIG. 2. The interrupt identifies an exception vector or memory address of an algorithm that handles the input of data from the peripheral device. For example, a signal from a modem can trigger a - first serial port interrupt, which in turn causes the modem point-topoint protocol ("PPP") module 416 to be activated.
Before describing the individual components of the detailed block diagram of FIG. 4, it is noted that the debug - console module 412 is not required. The debug console module 412 is used as a debug port for software and hardware = - testing purposes. Moreover, elements shown with solid lines are part of the browser software, whereas elements shown with dashed lines are part of the overall personal computer while the browser software is executing.
Additionally, the physical page cache 490 and the display 494 are not part of the browser software stack. The page cache 490, preferably formed from a volatile memory, acts as a buffer for data processed by one or more network : ::: :
- - : :
-
- -f.- : if-.
f: :,:: : applications before the data is passed on to the page rendering module 4?2. For example' the page cache 490 can pre-cache HTML files (both not-yet-interpreted and interpreted files) before they are passed on to the display 494. The display 494 can be a peripheral device that the page rendering module 472 communicates with or it can beta volatile memory buffer for the actual display device that presents data to a user. The display 494 receives data from the page rendering module 472.
l0 Furthermore, the ROM files 468 are not required (although they are preferred). The ROM files 468 can persistently store one or more user diagnostic interfaces or templates used by a particular remote vendor (e.g., a computer manufacturer or an interned service provider) to diagnose a problem with the personal computer. For example, an HTML form or an executable diagnostic program that is used when the browser connects with a remote vendor can be - stored in ROM files 468. Although they are called "ROM files", the files can be stored in an electrically alterable ROM, such as a FLASH memory. This is useful when cookies or other files May be stored in the ROM files 468, since cookies are not necessarily purely static files, but rather, they may change from time to time.
Cursor control module 408 is used to process incoming data from a mouse or stylus. The data is generally two = ; dimensional movement data corresponding to movement of the mouse. The data also includes control signals, such as a mouse selector click. The cursor control module 403 preferably receives the data via a serial port, but it can -also receive data from a wireless port, such as an infrared port.
Keyboard module 410 is the keyboard driver. It is used to enter or type text into forms and/or to enter commands A: : : [: - t. If : - -
-!---- directed to the page rendering module 472, as well as other odules interfacing the page rendering module 472 -- such as modules 45.2 through 464. An important aspect of the keyboard module 472 is its ability to launch the browser.
Typically, a user enters a special key or sequence of keys (e.g., CTRL-ALT-B or CTRL-ALT-HOME) that manually launch the self- contained browser, thereby bypassing the normal operating mode for the personal computer. Typically, the special key sequence is active only when the personal computer is booting up. The keyboard module 410 is also : used co control page scrolling and field selection, for example through use of direction and/or tab keys on a keyboard.
The debug console 412 is used for debugging purposes and is included primarily for software tuning. For example, since the device drivers can be different as between chipsets and hardware devices on different computers, the debug console 412 is useful in monitoring the browser performance as it operates with one or more new hardware -20 devices. The debug console 412 is not a necessary component of the browser software.
The modem PPP module 416 is used to process incoming packet data from a public switched telephony network ("PSTN"). The functionality of the-module 416 preferably complies with Internet RFC 1616, as it is configured to = assist a modem in connecting to an interned service provider ("ISP") or internet access provider ("IAP"), and then making virtual connections with one or more remote servers. The modem PPP module 416 also includes the device drivers for the modem.
The Ethernet ARP module 420 is also used to process incoming packet data from a network. Here, however, the network can be 2 high-speed local area network ("LAN"), or a : - Hi: : - : <:-: - : : / - \ : - -
-
high-speed wide area network ("WAN"). The module -420 includes one or more device drivers for the Ethernet card (a peripheral device). The Ethernet ARP module 420 complies with Internet RFC 826, as the module is configured to - 5 translate between IP and Ethernet addresses.
The IP/ICMP module 424 receives packets from modules 416 or 420, depending on the network connection. The IP ' portion of the IP/ICHP module 424 handles fragmentation, packet routing and re-assembly of IP packets. ICMP is an extension to IP that handles generation of error messages and other information associated with IP. The functionality of the IP/ICMP module 424 is consistent with Internet RFCs 791 and 792.
TCP/UDP module 428 assembles IP packets into messages for the network applications. The TCP/UDP module 428 operates in accordance with Internet RFC 793 (TCP) and Internet RFC 768 (User Datagram Protocol or U3pH) . As the TCP/UDP module 428 is compliant with both TCP and UDP, it
-
can support both connection-oriented communications (TCP) and connectionless communications (UDP).' The socket application programming interface ("API") module 432 provides an interface between the network communications module 308 and the network application module 312 of FIG. 3. As a network application is executed on the computer 300, the network application calls functions and = - sends and receives data/messages to and from the network communications module 308. To this end; the socket API 432 is used as a dispatcher to create and destroy IP virtual connections, or "sockets'', with remote servers. Because both TCP and UDP are supported by the browser software, the sockets can be connection-oriented or connectionless.
As is mentioned above, modules 436 through 464 can be classified as network application modules. The network -it if application;modules are communicatively coupled to both the socket API 432 and the page rendering module-472.
DNS module 460 is used to map (or 'resolve") English- type URLs (e.., "http://www.elegent.com", where "htcp://" identifies the network application protocol and "www.elegent.com" identifies the URL) to IP addresses (e.g.:, "206.171.12.20"). (As was mentioned above, Ethernet ARP module 420 maps IP addresses to Ethernet addresses.) DNS is described in Internet RFC 1034. DNS module 460 passes domain name requests ("queries") to a resolver or name server for processing in accordance with RFC 1034.
HTTP module 456 is used for the transfer of HTML ("hypertext markup languages files to or from a remote - server. Most of the HTML files are ultimately presented to a user via the page rendering module 472. HTTP module 456 is compliant with Internet RFC 2068.
SMPT module 436, POPS module 440 and e-mail module 464 - are all involved with processing electronic mail messages.
SMTP module 436 includes software that handles sending electronic mail messages in accordance with Internet RFC 821, which -has been incorporated herein by reference in its entirety. The SMTP module 436 is communicatively coupled to both the socket API 432 and the electronic mail.client (or "e-mail module") 464 (which is a user interface for the SMTP and POP3 network applications). POP3 module 440 includes _.
software that handles retrieving electronic mail messages from a remote server. Like the SMTP module 436, the POP3 module 440 is communicatively coupled to both the socket API 432 and the electronic mail client 464. E-mail module 464 30- is preferably an HTML-based software interface that is interpreted by the page rendering module 472.
Whereas SMTP and POP3 are two presently preferred protocols used in the present invention, other electronic : ': r.. ' , t -. ' ; ' - ' ' : I' . _, ,, . ' mailprotocols can also be employed. For example, a protocol wherein the electronic mail messages are - manipulated on a remote mail server rather than on the computer 300. For instance, modules 436 and 440 could be replaced by Internet MessageAccess Protocol ("IMAPi') compliant software. A recent version of IMAP is described - in Internet RFC 2060.
ETP module 444 complies with Internet RFC 959. The FTP module 444 handles file transfers between the computer on lO which the browser resides and a remote server. The FTP module 444 is not necessary or required for a successful implementation of the browser of the present invention.
SSL module 448 and HTTPS module 452 manage complementarysecurity protocols employed by the browser.
These modules are activated when secure exchanges are desired between the self-contained network browser and the remote server. When these modules are activated, dedicated ports (e.g., port 443) between the browser and the remote vendor/server are used to pass IP packets. The browser and the server establish session identifiers and share one or more encryption keys. The session identifiers and - encryption keys are used to verify the authenticity of the exchanged information, as well as to protect the information exchanged from snoopers (unauthorized persons who try to eavesdrop on a communication). Both the SSL module 448 and A - the HTTPS module 452 are not required for successful implementation of the present invention.
Now that the network application modules have been described, the page rendering module 472 is described. The page rendering module 472 engages in two-way communications with the network application modules 312. Exchanges between the page rendering module 472 and the network application modules 312 are generally buffered by the page cache 90.
: : At: :: : : : : - rat - : :
- .
The page rendering module 472 also communi-cat'es scr-een - information to the display 494, which usually includes a graphics accelerator adapter for a bitmap display. The page rendering module 472 also receives data from one or more' input devices (such as a mouse or keyboard). : , : - The page rendering module 472 includes five basic elements. One element is as a graphics rendering element; , 474. The graphics rendering element 474 interprets GIF, JPEG, and MPEG type files for presentation on a bitmap display. The graphics rendering element 474 also handles' image scaling. Another page rendering module 472 element is a font engine 476. The font engine 476 supports the various - fonts used by HTML files. The multi-lingual element 478 supports the interpretation of characters in HTML files into one of a number of different languages, although only one language needs to be supported by the browser. The page layout element 480 interprets the formatting tags in HTML files, for example the <bold>, center, and Recolors tags' , as well as the stabled and'frame> tags. : : 20 The windowing system 482 of the page rendering module 472 provides a window environment for' each page or suLframe of the HTM1 files presented to a user. The windowing system 482 handles window sizing for the display 494, as well as the generation of horizontal and vertical scroll bars that a 'peripheral device can control (via cursor control module = ; 408) . Movement of the cursor or stylusdetected at the cursor control module 408 is communicated directly to the page rendering module 472, and in particular the windowing system 482, for processing.
BROWSER SOFTWARE ARCHITECTURE
Returning to FIG. 2, it depicts a functional block diagram of the selfcontained browser software stack 208 as At: )# - : I: :: : : : i: : : : : : : i.: : depicted and described in detail with reference to FIG. 4.
The diagram is useful in understanding the overall architecture of the self-contained network browser, which is preferably contained in a readonly memory 212.
The real-time kernel 220 (which is not shown as a single module in FIG. 4) performs at least two basic tasks.
The basic tasks of the real-time kernel 220 include (1) detecting and dispatching data to and from peripheral - devices to their appropriate modules and (2) memory IO management. As for data processing and dispatching, the real-time kernel 220 actively polls peripheral devices 404 in an attempt to detect a change of state in the devices (for example, if peripheral devices share a common bus), or the kernel 220 passivelyreceives direct interrupt requests from the peripheral devices 404. The real-time kernel 220 differs from a traditional operating system in that it handles low level tasks that the traditional operating system may perform, but does not handle higher level tasks.
- Rather, the higher level tasks are reserved for unique - 20 modules in the browser 208.
The memory management aspects of the real-time kernel 220 include management of the page cache 490, as well as other volatile execution memory while processes are running.
For example, the real-time kernel 220 performs functions such as memory allocation and garbage collection for global _.
and/or local memory areas utilized by each of the modules depicted in FIG. 4.
According to one embodiment of the invention, the real- time kernel 220 manages the page cache 490 (FIG. 4) as three logical memory regions.
A request queue region 4sl stores requests detected by the cursor control 408 and passed to the page cache 490 by the page rendering module 472. The request queue region 491 : - : t: : =' : - : At: ::
- -
: ---: : also stores requests generated by the page rendering module 472.
A pre-processed data region 492 stores data that has not been interpreted by the page rendering module 472. The pre-processed region 492 is particularly useful when one or more network applications pre-fetch batches of HTML files, or request multiple HTML files, prior to actually receiving an explicit request from a user.
A post-processed dataregion 493 holds data that has been interpreted by the page rendering module 472 but has not yet been sent to the display 494. Data stored in the post-processed data region 493 passes from a network application to the page rendering module 472, and then from the page rendering module 472 to the page cache 490. From the page cache 490 it can again pass through the page rendering module 472 on to the display 494.
The real-time kernel 220 handles input and output between the hardware resources (for example internal and external devices/components) and the software processing - modules of the computer 300. Accordingly, the real-time kernel 220 _communicates with one or more device drivers 216 associated with individual hardware components to ensure propercommunication processing as well as proper hardware component initialization.
According to one embodiment, the real-time kernel 220
_
is communicativelycoupled with an initialization module (not shown). The initialization module detects each peripheral device connected to the computer 300, formats the peripheral device with any initialization parameters needed, and, if the initialization is not successful, then the initialization module triggers a diagnostic processing mode for the browser. Thus, the browser 208 can be invoked by either the initialization module enabling the diagnostic I: : : : l: : - l i: :; : : : processing mode, or by a direct call from a traditional operating system or an end-user. In an embodiment, the initialization module is shared with both the browser 208 and a traditional operating system.
The browser 208 includes device driver software 216 that communicates with and/or controls the peripheral - devices of the computer. The device driver software 216 can include initialization and testing software that ensures a particular peripheral device is operational (some of the testing software can be separate from the browser 208). The : real-time kernel 220 operates over the device driver software 216, and manages the computer system resources and uses - the device drivers 216 to communicate with the peripheral devices. Internet protocol software 224 is stacked over the real-time kernel 220, and is used to handle- a variety of network communications, such as those described above with reference to FIG. 4.
On top of the interned protocol software 224 is a graphics windowing software 228. The graphics windowing software 228 handles behind-thescene processing of data that is presented to a user on a display device. For example, window positioning, cursor and keyboard input/control, and graphics processing is handled, in part, by the graphics windowing software 228.
The software components of FIG. 2 that operate above = - the graphics windowing software 228 are more closely related to end- user applications. For example,-SSL software 236 handles security information processing. The font software supports various fonts that are displayed to the end-user, and the imaging software 232 interprets graphics files that are also displayed to the end-user. - The e-mail software 244 is an end-user client that allows the end-user to send and receive electronic messages.
:- - - :: \. : ' : : : : : : A-; : HTML software 248 is an end-user application that interprets HTML files, for example by parsing the files and passing the parsed sections on to the appropriate module for further processing. : 5 :
BROWSER INVOCATION AND DIAGNOSTIC ABILITIES :
FIG. 5A is a flowchart depicting steps for invoking the: : browser on a personal computer according to an embodiment of the invention. In step 504, the computer system hardware -10 components, internal and external, are initialized. In step 508, a test is performed to determine whether a browser command or trigger has been set. According to one embodiment, the browser command is invoked in response to a : key or sequence of keys typed on a keyboard while the personal computer is booting up. In another embodiment, a: physical or CMOS setup switch is set that triggers the self- contained network browser.
If no browser trigger was detected in step 508, then the personal computer continues to step 512 where the computer enters a normal operating mode. For example, the traditional operating system boots and general purpose applications are be executed. Similar to step 508, in step 516 a test is performed to determine whether the browser trigger is- activated. It is noted that this process can be handled by an exception vector or interrupt routine, or it -- - can be handled by a particular device driver or the traditional operating system. If a browser trigger was detected in step 516, then in step 520 the operating system shuts down and the process continues to step 524.
In step 524, which follows steps 508 or 520, the self contained browser is invoked. FIGS. 5B and 5C depict particularly useful applications for the self-contained : : : : : : : : : -
-
t: is:; : : browser once it has been invoked. The steps shown in FIGS. : SB and 5C replace connector "A" (element 528).
fin FIG. 5B, a flowchart is shown depicting use of the: : browser to diagnose and repair a failed hardware component.
In step 532, the browser connects to a network or "remote" server corresponding to a particular vendor. The vendor can be the company that sold the personal computer, or it can be another service provider that handles technical - service/repair of the personal computer. In step 536, diagnostic files, for example files stored in ROM files 468, as well as files downloaded from the remote server, are loaded. These diagnostic files allow an end- user to report a problem type, to perform-system configuration detection, or to diagnose selected hardware components. The diagnostic files can include interpreted software code, executable software code, or HTML interfaces such as forms. The vendor is thus able to remotely diagnose the problem the personal computer is experiencing.
Before diagnosing the problem, the vendor can send a command that tells the browser launch a particular diagnostic program, or the vendor can send a particular compiled or interpreted diagnostic program to the browser.
If a diagnostic program is sent to the browser, then it is sent using a FTP, an HTTP, an HTTPS, or a SMTP protocol. If a public network is used, for example the Internet (versus = - an intranet), a certificate is used to authenticate the diagnostic program. For example, RSA Data Security, Inc. or X.509 compliant certificates are employed to verify the authenticity of the diagnostic program.
In step 50, the diagnostic program, whether it was stored locally or was sent from a remote vendor, is executed. For example, the diagnostic program can confirm that the hard disk did fail, or it can examine the contents
_
it: : -- : : : l: : of an error log corresponding to the operating system and other hardware components. Part of executing the diagnostic program can also include uploading the results to the vendor so that the vendor can take corrective action.
A test is performed in step 544 to determine whether the problem-can be repaired. If the problem can be repaired, then it is repaired in step 548, which may also include downloading an additional program from the vendor for example, as was described above with reference to step 10:540. However,: if the problem cannot be repaired, then in step 552 a notification is sent to either the user or the vendor (or both) indicating that a repair cannot be made.
If the vendor is notified in step 552, then the vendor can - follow up with the end-user of the personal computer.
In FIG. 5Cj the browser is used to explore or "surf'' the Internet as is shown in step 556. For example, a user of the personal computer can use the self-contained network browser to connect to remote servers and send data and retrieve HTML files.
- 20 Since aspects of the traditional operating system and - the browser overlap, that is each is separately (but not necessarily concurrently) used in one form or another to manage the computer system resources, each can be executed independently of the other. Thus, failures of the traditional operating system or of a peripheral device, in = particular the hard disk, will not necessarily affect the browser.
: : : ::: : - : : : : : / : . i- ' ,:
HARDWARE OVERVIEW
FIG. 6 is a block diagram that illustrates an embodiment of a computer system 600 upon which the invention can be implemented. . . . Computer system 600 includes a bus 602, or other communication mechanism for communicating information, and a - processor 604 coupled with bus 602 for processing information. Computer system 600 also includes a main memory 606, such as a random access memory ("RAM"),.or other dynamic (or ''volatile") storage device, coupled to bus 602. The main memory 606 stores information and instructions executed by processor 604 during exec:utlon. Main memory 606 also stores temporary variables or other intermediate information during.
execution of instructions by processor 606.
15- Computer system 600 further includes a read only memory : ("ROM") 608 or other static (or "persistent"j storage device (e.g., FLASH, PROM, EEPROM, etc.) coupled to bus 602. The RCM 608 stores static information and instructions for processor 604, in particular the browser-as described herein.
À 20 It is worth noting that one or more banks of memory can comprise RQM 608. A storage device 610 (or "hard disk,', or "hard driven), such as a magnetic disk or optical disk, is À . coupled to bus 602. The storage device 610 stores information such as data structures and instructions, for example the operating system or application programs that use _. . the operating system.
Computer system 600 is preferably coupled via bus 602 to :: a display 612, such as a cathode ray tube ("CRT") or an active or passive-matrix display. The display 612 presents images to an end-user. An input device 614, including: alphanumeric and other keys, is coupled to bus 602. The input device 614 communicates information and command selections to processor 604. Another type of user input
- : - r
device is cursor control 616, such as a mouse, a trackball', or cursor direction keys, for communicating direction information and command selections to processor 604 and for controlling cursor 'movement on display 612. This input device 614 typically has two degrees of freedom in two axes, - a first axis (e.g., x) and a second axis (e.g., y); that allows the device to specify positions in a plane.
The invention is a persistently stored, self-contained browser, where the browser is not stored in the hard disk, such as storage device 630. One application for the invention is for diagnosis and repair of the computer system 600. Another is as a diskless interned device. According to an aspect of the invention, the processor 604 in the computer system 600 executes one or more sequences of : instructions contained in main memory 606. Such instructions are read into main memory 606 from another computer-readable medium, such as storage device 610 or ROM - 608. Execution of the sequences of instructions contained in main memory 606 causes processor 604 to execute the browser and other processes described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to ' implement the invention.' Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software. = .
The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions -.o processor 604 for execution. Such a medium may take many forms, including but not limited to, non volatile media,' volatile media, and transmission media. Nonvolatile media includes, for example, optical or magnetic disks, such as storage device 610. Volatile media includes dynamic memory, such as main memory 606. Transmission media : : : : : ::: : : .. : ( : i .
includes coaxial cables, copper wire and fiber optics, - including the wires that comprise bus 602. Transmission meoia can also take the form of acoustic or light waves, such as those generated during radio-wave and infrared data communications.
Common forms of computer-readable media include, a - floppy disk,: a flexible disk, a hard disk, a magnetic tape, or any other magnetic media, a CD-RDM, any other optical media, punchcards, a paper- tape, any other physical media with patterns of holes, a RAM, a ROM, a FLASH, or any other memory chip or cartridge, a carrier wave as described hereinafter, or any other media from which a computer can read.
Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to processor 604 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 600 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 602 can receive the data carried in the infrared signal and place the data on bus 602. Bus 602 = - carries the data to main memory 606, from which processor 604 retrieves and executes the instructions. The instructions received by main memory 606 may optionally be stored on storage device 610 before or after execution by processor 604.
Computer system 600 also includes a communication interface 618 coupled to bus 602. Communication interface 618 provides a two-way data communication coupling to a - : ' : : : : : : :: / ret network link 620 that is connected to a local network 622. i.
- For example, communication interface 618 may be an integrated services digital network ("ISDN") card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 618 may be a local area network ("LAN") card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 618 sends and receives electrical, - electromagnetic or optical signals that carry digital data streams representing various types of information. - Network link 620 preferable provides data communication through one or more networks to other data devices. For example, network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider ("ISP'') 626. ISP 626 in turn provides data communication services through the "Internet,' 628 -- for example computer diagnostic services. Local network 622 and Internet 628 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 620 and through communication interface 618, which carry the digital data to and from computer system 600, are exemplary forms of carrier waves transporting the information.
= . Computer system 600 can send messages and receive data, including program code, through the network(s), network link 620 and communication interface 618. In the Internet example, a server 630 might transmit requested code for an application program through Internet 62.0, ISP 626, local network 622 and communication interface 618 -- for example using the FTP protocol. In accordance with the invention, one such downloaded application is executable software code -- > : À :: : : : : : : : : : ; in: . : f: i::::: : - - : - or computer configuration parameters that either further diagnose the computers problem, or fix the problem outright.
The received code may be executed by processor 604 as it is received, and/or stored in main memory 606, storage device 610, or ocher nonvolatile storage for later execution. In this manner, computer system 600 may obtain application code in the form of a carrier wave.
- Referring to FIGS. 3 and 6, it is notable that the input module 304 interacts with input device 614 and cursor control 616. Network communications module 308 and network application module 312 interact with communication interface 618. And page rendering module 316 interacts with display 612.
In one embodiment, all of the self-contained network browser software code is stored in one or more banks of ROM 608. When executed, however, the browser software code is copied to main memory 606. In one embodiment, the page cache 490 is also be a portion of main memory 606.
Advantages of the present invention include a small footprint, selfcontained browser architecture that is independent of, yet complimenting, a traditional operation system. A computer incorporating the browser can function without a hard disk. Thus, a user can still operate the computer when the hard disk fails, or the user can operate just the browser software so she has fast and ready access ox- to the Internet without having to wait for the operating system to boot, or other application software to load.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof.
It will be evident, however, that various modifications and changes may be made thereto while still remaining consistent with the description above. For example, more or less regions can be specified for the page cache, more or less f : / : : : : l, functionality can be-included in both the network - communication and application modules, as well as in-the page rendering module. Further still, other embodiments may - include a virtual machine for interpreting or executing Java code, or other portable program code. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. ( rat /

Claims (7)

1. A computer, comprising: a mass storage for storing a general purpose operating system; a storage medium for storing a self-contained browser which contains its own operating system; and one or more processors; wherein the one or more processors execute the browser without invoking the general purpose operating system.
2. The computer of claim 1, wherein the browser comprises a kernel.
3. The computer of claim 2, wherein the kernel provides memory management functions.
4. The computer of claim 3, wherein the kernel further provides peripheral device management functions.
5. The computer of claim 4, wherein the browser further comprises one or more device drivers for facilitating interaction with one or more peripheral devices.
6. The computer of claim 1, wherein the one or more processors execute the browser before loading the general purpose operating system.
7. A computer constructed and arranged to operate substantially as hereinbefore described with reference to and as illustrated in the accompanying drawings. : To
The computer of claim 1, wherein the one or more processors execute the browser after the general purpose operating system has been shut down.
A The computer of claim 1, wherein the storage medium further comprises a basic:nput-output system (BIOS3.
i - . -I. , . . . At-. - . . - :- . -- .i, I. .i.-.-.
: :: -- .. : ' ,' -- Em. . - ' ::- --::- -hi:
GB0413360A 1999-11-24 2000-06-20 Network browser with its own operating system Withdrawn GB2399436A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US44906599A 1999-11-24 1999-11-24
GB0326737A GB2393543A (en) 1999-11-24 2000-06-20 Self-contained network browser

Publications (2)

Publication Number Publication Date
GB0413360D0 GB0413360D0 (en) 2004-07-21
GB2399436A true GB2399436A (en) 2004-09-15

Family

ID=32910480

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0413360A Withdrawn GB2399436A (en) 1999-11-24 2000-06-20 Network browser with its own operating system

Country Status (1)

Country Link
GB (1) GB2399436A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606901B2 (en) * 2000-06-14 2009-10-20 Sap Ag Communication between client and server computers via http, method, computer program product and system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590197A (en) * 1995-04-04 1996-12-31 V-One Corporation Electronic payment system and method
EP0760568A1 (en) * 1995-08-03 1997-03-05 International Computers Limited Internet access apparatus
WO1997028499A1 (en) * 1996-02-02 1997-08-07 Award Software International, Inc. A set-top box with an internet bios for internet access
GB2318658A (en) * 1996-10-28 1998-04-29 Intel Corp Remote diagnostics after boot error
WO2001001259A1 (en) * 1999-06-30 2001-01-04 Sun Microsystems, Inc. Self-contained and secured access to remote servers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590197A (en) * 1995-04-04 1996-12-31 V-One Corporation Electronic payment system and method
EP0760568A1 (en) * 1995-08-03 1997-03-05 International Computers Limited Internet access apparatus
WO1997028499A1 (en) * 1996-02-02 1997-08-07 Award Software International, Inc. A set-top box with an internet bios for internet access
GB2318658A (en) * 1996-10-28 1998-04-29 Intel Corp Remote diagnostics after boot error
WO2001001259A1 (en) * 1999-06-30 2001-01-04 Sun Microsystems, Inc. Self-contained and secured access to remote servers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606901B2 (en) * 2000-06-14 2009-10-20 Sap Ag Communication between client and server computers via http, method, computer program product and system

Also Published As

Publication number Publication date
GB0413360D0 (en) 2004-07-21

Similar Documents

Publication Publication Date Title
WO2001039042A2 (en) Self-contained network browser with diagnostic abilities
US6680730B1 (en) Remote control of apparatus using computer networks
US6023698A (en) System and method for transparently registering and updating information over the internet
US5734831A (en) System for configuring and remotely administering a unix computer over a network
KR100311191B1 (en) Customization of web pages based on requester type
US7454476B2 (en) Remote maintenance and servicing of a network peripheral device over the world wide web
US6701364B1 (en) Method and apparatus for remote computer management using web browser application to display system hardware and software configuration
US5678002A (en) System and method for providing automated customer support
US6243738B1 (en) Data acquisition system which includes remote access to data acquisition devices
EP2511828A2 (en) System and method for installing application programs from a memory device linked to a server
EP2149090B1 (en) System diagnostic utility
US8380873B2 (en) Tunneling SSL over SSH
US20040254978A1 (en) System and method of remotely accessing a computer system to initiate remote mainteneance and management accesses on network computer systems
US7660886B2 (en) Apparatus and method of representing real-time distributed command execution status across distributed systems
US20040203693A1 (en) Over the air firmware and policy programming
US6990655B2 (en) Apparatus and method of providing a pluggable user interface
US6611865B1 (en) Method and apparatus for exporting diagnostics interface and menu system to allow remote execution
US6880151B2 (en) Apparatus and method of providing common distributed services for system management applications across heterogeneous environments
GB2399436A (en) Network browser with its own operating system
US20050055572A1 (en) Coordinated network initiator management that avoids security conflicts
US20030061318A1 (en) Apparatus and method of ascertaining remote systems accessibility before running remote commands
Cisco Release Notes for Cisco iSCSI Driver Version 2.1.3 for Microsoft Windows 2000
GB2393543A (en) Self-contained network browser
Cisco Release Notes for Cisco iSCSI Driver Version 2.1.4 for Microsoft Windows 2000
US20060074914A1 (en) Dynamic sample data switch

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)