Porting POSIX-conforming operating systems to Win32...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S241000

Reexamination Certificate

active

06292820

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention generally concerns the problem of porting one operating system to another. More specifically, the invention concerns porting operating systems which conform to the POSIX standard to operating systems which conform to the Win32 API.
2. Description of the Prior Art
When an application programmer writes a program, he or she is writing the program for a machine which is defined by the characteristics of the physical machine that the program is to run on and the operating system which is controlling that physical machine when the physical machine executes the program. Originally, the applications programmer had to know both a programming language specific to the machine he was programming and the operating system that the machine was running. Life became simpler for the applications programmer when programming languages were developed which were machine independent, i.e., their instructions were automatically compiled or interpreted into the proper form for the machine that the program was to be executed on.
There remained the problem of the operating systems. Originally, each computer manufacturer sold its own proprietary operating systems. In the world of commercial data processing, these proprietary operating systems are still dominant; in the world of scientific and technical computing, on the other hand, operating systems based on the UNIX operating system (UNIX is a trademark of X/OPEN) became dominant, and eventually, an IEEE and ISO standard for such operating systems emerged. This standard is the so-called POSIX standard (IEEE Std 1003.1b-1993; POSIX is a registered trade mark of the IEEE). Operating systems which conform to the POSIX standard exist for hardware of all sizes from personal computers to the largest mainframes (such operating systems are termed herein “POSIX operating systems”).
The existence of the POSIX standard together with high-level languages such as C or C++ meant that the programmer could write a single program which needed only be recompiled to run on any machine from a personal computer to the largest mainframe, as long as that machine was running a POSIX operating system. As a consequence of this, changing from one manufacturer's work station to another manufacturer's work station typically requires little more than a recompilation of the application programs. If, however, the machine the program was to run on had a different operating system, the program had to be extensively rewritten.
At the same time that POSIX was becoming the standard for operating systems in the scientific and technical computing worlds, the personal computer revolution was taking place. Microsoft Corporation became the dominant manufacturer of operating systems for personal computers. By 1993, Microsoft had developed the Win32 Application Program Interface (API) and had announced that all of its future operating systems would conform to the Win32 API. (Win32 is a trademark of Microsoft Corporation; the Win32 API is described in the
Win
32
Programmer's Reference,
vols. 1-3, Microsoft Press, 1993.) An operating system that implements the Win32 API is termed henceforth a “Win32 operating system”.
Neither the first personal computer systems nor the first Microsoft operating systems were powerful enough to perform the kinds of tasks performed by the machines that ran POSIX operating systems; however, fully-implemented Win32 operating systems are as competent as POSIX operating systems, and the hardware in modern personal computers has become the equal of that found in scientific and technical work stations. At the same time, the number of personal computers is orders of magnitude larger than the number of any other kind of computer. The enormous market for the machines is resulting in a rapid decrease in their cost and in the production of enormous volumes of software for them, and these factors have in turn made the Win32 API a de facto standard of rapidly growing importance.
The emergence of personal computing and the Win32 API has placed the users of programs which are executed on a POSIX operating system in a difficult position (henceforth, “POSIX programs”). On the one hand, the advantages of personal computers are clear: they cost much less than scientific workstations of comparable power and they provide a highly-desirable graphical user interface and numerous useful application programs such as word processors and spread sheets. On the other hand, POSIX programs will not run on Win32 operating systems without extensive revisions. Thus, the low cost of the personal computers is more than outweighed by the costs of rewriting POSIX software for them and the user of the POSIX programs must choose between his programs and the computing environment offered by personal computers running a Win32 operating system.
One way of avoiding the need to rewrite POSIX programs is to port a POSIX operating system to a Win32 operating system. An operating system is ported to a machine when a version of the operating system is written for the machine. When the version is executed, the machine carries out out the functions defined for the operating system. For example, a port of a POSIX operating system to a personal computer is a program which causes the personal computer to carry out the functions defined for POSIX. Of course the “machine” to which the port is made can be defined by an operating system as well as hardware. Thus, a port of a POSIX operating system to a Win32 operating system is code which when executed on a machine that is running the Win32 operating system causes that machine to carry out the functions defined for POSIX.
There are several advantages to porting a POSIX operating system to the Win32 operating system instead of simply porting it to the hardware that the Win32 operating system is running on. First, the POSIX operating system appears to the user of the Win32 operating system simply as another application; thus, the user has available not only the POSIX programs, but also the Win32 programs. Second, POSIX programs running on the ported POSIX operating system can not only access POSIX system calls, but also Win32 system calls.
Given the advantages of porting a POSIX operating system to a Win32 operating system, it is not surprising that at least two attempts have been made to provide such a port. One, NuTCRACKER, is produced by Data Focus Incorporated. NuTCRACKER is a registered trademark of Data Focus Incorporated; information about NuTCRACKER could be found in 1996 at the URL www.datafocus.com. The other, Portage, is produced by Consensys Computers, Inc. Information about Portage could be found in 1996 at the URL www.consensys.com. Neither NuTCRACKER nor Portage is a complete port, that is, they reduce the amount of effort needed to adapt a POSIX program to run on a Win32 operating system, but they do not yet have the most important property of a complete port, that is, that all the user of a POSIX program need do to run his POSIX program on the Win32 operating system is to recompile his POSIX program.
Technically, what happens in a port of a POSIX operating system to a Win32 operating system is that each system call in the POSIX operating system is implemented by a function which executes on a Win32 operating system. The code for the function employs the resources provided by the Win32 operating system to provide the semantics specified for the system call in the POSIX operating system. Often, all that is involved in writing a function that implements a POSIX system call in the Win32 operating system is invoking a system call in the Win32 operating system that has the same semantics as the POSIX system call. However, where there are substantial semantic differences between the operating systems, porting is more difficult.
One area in which the differences between the POSIX operating system and the Win32 operating system are particularly large is in the semantics of processes. In a computer system, a process is the entity in the operating system which represents a gi

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Porting POSIX-conforming operating systems to Win32... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Porting POSIX-conforming operating systems to Win32..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Porting POSIX-conforming operating systems to Win32... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2503088

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.