This page hosted by  Get your own Free Home Page
[Small version - click here to download]

Important Operating Systems.

We considered here some contemporary operating systems (OS's) that have important market presence. The word market brings in the discussion operating systems that usually are not appreciated in purely technical point of view. This also excludes other OS's that may interest only the technicians or academics.

Win32 Operating Systems

Under this name are Microsoft Windows operating systems that address memory using 32 bit addresses. That means Windows 95 or 98, and Windows NT. The most important use of Win32 systems is in Intel x86 processors, from the Intel 80386 till the newer Intel Pentium II. Compatible processors like the ones made by AMD and Cygnus can also be used to run Win32 OS's.

Theoretically, in an Win32 operating system a program can be 4 GB long. This is 4 gigabytes, or almost 4 trilion bytes, or four times ten to the twelfth power! Of course, such a program size isn't possible in current hardware: a very huge computer -- possibly a network server ---, will have nothing more than 1 GB in memory. That is, 4 times less than the Win32 limit. However it is important to note that the days of programs not greater than 1 MB are definitely over.

Another gain is that under the 32 bit operating systems, a programmer doesn't have to segment its data: now memory is seen as an array of bytes, where you can access all bytes merely incrementing from a base; this is called linear addressing of memory. Now immense structures can be manipulated without immense programming effort. :-) Previously, in MS-DOS, memory was split in 64 KB slices, called segment; that was the segmented addressing. That way, if you had a data structure with, say, 100 KB, then you'd have to break it in two segments.

A 32 bit operating system running in a Intel x86 processor can offer memory protection. This means that any process can accesss only the memory assigned to it; if it tries to access memory belonging to other proceses, it is discontinued, without blocking the whole machine. This obligation becomes a right if we remember that the memory owned by a process won't be accessed by others. This makes debugging easier for the programmer, and makes operation more stable for the user.

Unfortunately this isn't true for all Win32 OS's. Windows 95 and Windows 98 are not pure 32 bit operating systems and don't offer all possible advantages of this mode. Please read more about this under the entries of these OS's.

The Win32 API

Before talking about the Win32 API, let's talk about the meaning of API. It means Application Program Interface. As you probably know, an application is any program that does useful work and uses an operating system to do low-level work like talking to -- or interfacing with -- the hardware. In order to communicate with the hardware, an application must know how; there must be a standardized way so the application programmer can know what can be asked to the and how to ask it. This is the API.

Nowadays, the expression API is used to mean almost any interface between a software module and other; between an application and a software library, between two libraries, etc. It is a way for a software ask another to do something without an close relationship with it. For instance, when an application calls an operating system to do something, it is through an API.

Now suppose that an OS doesn't have how to interface with a new hardware. That was what happened when the first CD ROM drives were launched. Then their maker has to write a device driver to teach the OS how to do a new trick; that is how to interface with the new hardware. To enrich the OS, the device driver writer has to understand a lot of the OS. So, the relationship between a device driver and the OS is a lot more closer than the one between an application and the OS.

In a perfect world, all OS's and all hardware would be very simple, trustable and predictable. So, the relationship between an OS and its device driver would be very simple, as simple as the relationship between an OS and its applications. However, even in that case, there would be a distinction between an API and a device driver interface:

The discussion above makes the definition of Win32 very easy. The Win32 API is the standardized way that an application running in a Win32 Operating system has to talk to the OS. For instance, when the application wants that a window is shown, it calls the function ShowWindow() from the Win32 API. The Win32 API function CreateFile() is used to create a file, be it in a disk or not.

Windows 95

Windows 95 was a marketing feat of Microsoft. Certainly one more maketing feat of Microsoft. Windows 95 was a marketing action that made everybody and her sister change from a 16 bit operating system like the siamese twins MS-DOS 6.2X / MS-Windows 3.1X, to a 32 bit operating system. Or something like that.

Microsoft sold Windows 95 as a full 32 bit operating system, that was able to take advantage of the more powerful protected mode of the Intel x86 chips, listed in item Win32 Operating Systems. Even before Windows 95 hit the streets hackers (in the good sense :-)) like Andy Schulman were able to report that Windows 95 wasn't a full 32 bit operating system. In the book Unauthorized Windows 95, Schulman showed that Windows 95 was not a revolution from previous Microsoft OS's, but really an evolution of them. That means Windows 95 borrowed heavily from the previous OS. Windows 95 is not much more than an integration of MS-DOS 6.2X parts with Window 3.1X parts. That is, it doesn't need MS-DOs anymore because MS-DOS is into it. The great surgery was to make the siamese twins have just a single façade. :-)

The idea Microsoft had in mind was not to lose the immense user base the siamese twins had at that time. That include the game users; as we all know, games sometimes access the bare hardware in order to get the highest speed; a real operating system doesn't like this competition in the use of the hardware. So, they made an OS that lets MS-DOS/MS-Win software take the basically the same liberties as before. Even with this there were lists of incompatible software. However, no matter how long these lists were, they would be far more longer had Windows 95 be a conventional OS that took total care of its hardware.

Andy Schulman also shows that in some cases there was even a step backwards. That is, siamese twins like MS-DOS 6.XX / Windows 3.11 had parts that used more 32 bit resources than the new, fully 32 bit OS. :-) Unfortunately, some marketing campaigns forget much of the truth and don't mind using half truth to maximize sales.

That said, Windows 95 showed a better user interface: for instance, what's called  hot mouse. If you click on an item in the menu bar, that item open up as usual; if you roll the mouse to left or right side of the item, other menu items keep opening as you move the mouse. Previously, the only way to open a menu item was to click on it. So, if you wanted to open two menu items, you had to click in the first and click on the second.

That is just a small improvement, even if a visible one. Generally, the Windows 95 interface -- adopted afterwards also in Windows NT v4.0 is a distincive advantage of the OS. It is so good that one could say from the user interface point of view, Windows 95 and is better than even more mature operating systems like Linux or any Unix, and their GUIs (Graphical User Interfaces) based upon X Windows. Maybe Windows 95 user interface reflects the work of the Microsoft Usability Labs, and the ongoing work on the standardization of user interfaces Microsoft does. It seems that in any sober and non religious debate, Microsoft superiority in user interface won't be denied. There's an email signature that reads like: Windows -- lots of nice applications without an operating system; Linux -- a nice operating system without applications... It can be explained in part by the absence of standard interface guidelines in Linux. That will soon change, as some Linux initiatives are dealing with this problem.

Other important improvement in Windows 95 was the high expansion of the size of filenames. Under MS-DOS 6.2X / Windows 3.1X, filenames followed the  8.3  rule: a name with up to eight characters followed by an extension of up to 3 characters. Not to name the cleaning up realized in the local area network and Internet parts of the system. MS-DOS / MS-Windows really haven't planned for the explosion in these two key areas. The so-called trend setter Mr. Bill Gates ignored Internet till very few years ago.

What we mean is that in MS-DOS / MS-Windows the features of Internet and LAN operation entered as after-thoughts, while in Windows 95 they seem to be better integrated in the OS.

The last version of Windows 95, called OSR2 introduce the FAT32. In few words, FAT is a short for File Allocation Table, a table where the disk is subdivided in several parts, and each one is labeled with an integer number. Previously there was FAT16, where disk fragments, or clusters were assigned to 16 bit numbers. It is easy to see that a 16 bit number can have only 65.536 values, that we may also call 64K. So, the disk was subdivided in at most that number of fragments. It looks huge, doesn't it?

So, take a (nowadays) small sized hard disk, with 1 G, or 1024 M, or 1.073.741.824 bytes. If we divide this by 64K we get 16.384. That is, each cluster will have 16.384 bytes, 16K. That size is atomic; we can't have a half cluser, for instance. In other words, each time we ask the OS for a cluster, it gives us a whole cluster. If we need just 1 byte, the OS will give us 16K, wasting 16K - 1 bytes away. That's not so little if we remember that some form of wasting away will occur in every file allocation.

Specialists estimate that on the average a file size wastes away a half cluster; in this case, 8K. So, in a hard disk with 10K files, there will be 10K times 8K = 80M bytes wasted away. That still may not sound a huge loss, but it grows quickly with larger hard disks, with larger clusters, and much more files.

Windows 98

Windows 98 is being a political and legal feat of Microsoft. Certainly one more political and legal feat of Microsoft. :-) That is, it impressive to see how Microsoft is being able to make Windows 98 survive to all attacks from the US Government and from other corporations.

Windows 98 is basically Windows 95 with Internet Explorer as a shell. That is, everything, including your hard disks, will look like the Internet. So, Internet Explorer will substitute Windows Explorer, the familiar face for Windows 95.

The problem is that Internet Explorer is a product that has other concurrents, like Netscape Communicator, and more recently Opera. So, Microsoft is simply trying to kill these companies, what seems to be an illegal use of their quasi-monopoly in OS's. They reply that their Windows 98 has a way to substitute Internet Explorer as the OS shell. However, it seems that Microsoft has sent Compaq and other hardware corporations a written memo demanding they don't install Netscape in their computers.

The US Dept of Justice as well as several US states sued Microsoft based on anti-trust law, but Windows 98 was launched anyway.

Besides these delicate problems, Windows 98 offers also a better device driver interface -- equivalent to the Windows NT interface --, and carries with it the FAT32. Some sources, like the gnu-win32 users state that Windows 98 is a little more stable than Windows 95, but not much...

Windows NT

Windows NT is the most ambitious Microsoft OS till now. Ambitious in technical terms and -- being it from Microsoft :-) -- also in marketing terms. That means they want to create a very stable, smart, efficient, secure operating system, that fully dominates the market. Will they be able to do this? Crystal balls apart, Microsoft doesn't seem to face a very strong opposition...

UNIX brands

A Bathroom operating system?

Linux

Linux has a curious history. First of all, it could have happened only in Finland. Finland is a small and cold, very cold country. Proportionally, it is the country with the strongest Internet presence in the world. It has gigantic servers, like the famous ftp://ftp.funet.fi, ftp site for so many interesting files.

A computer science student, called Linus Torvald, was investigating the multitasking capabilities built in in the Intel 386 chip. He delivered the interesting code he developed to one of his teachers, who offered it to the public domain in the university's ftp server.

Time has passed and Torvald's notorious programming abilities as well as his leadership transformed the program fragment in a whole Unix-like operating system. A public domain operating system developed wholly in Internet, by a group of other equally proficient programmers.

One of Linux best qualities is the stability: the system seems to be very robust. A system crash is a very unusual event in the life of a Linux-powered machine. Another of Linux best qualities is the low machine demand. Tecbnical folklore says that a 386 computer ruled by Linux can do things as fast as a Pentium under Windows NT. Add to this the availability of very good to excellent public domain softwares, like X11 packages, the gcc compiler, database management systems, etc.

Linux good technical qualities have attracted a lot of users, both dilettanti and professional. Linux has already several companies that offer technical support, as well as several commercial softwares.

Several WWW sites, both commercial and academic, offer information and links about the Linux system.

Solaris

Sun's version of Unix.

Irix

Silicon Graphics version of Unix.

Back to page Free C++ Help.

Back to page Panorama of C++ and Related Topics.

Back to main page.

Thank you for visiting my pages.


Under construction
These pages are under permanent construction.

Acknowledgements:



You can reach me by e-mail at: HFernandes@GeoCities.Com
In Association with Amazon.com

These pages were accessed    times since 1998/10/05.


Last altered: 1998/10/05 21:15:04