VCU INFO300 - Computer Hardware and Software
Site Map:
 

Introduction & Overview

  • The text packs high-level concepts into chapter 1.  It sets the  focus of the text, and for much of the course, as Operating Systems.  

    Figure 1.1 might be a little incomplete.  Here's a diagram that shows a System or Network Administrator interfacing directly with the OS, and sometime directly with some of the hardware:

  • For IT professionals, knowledge and understanding of OSs is important for their organizations to maintain a competitive edge, keep their computing resources safe, secure, and economical.  Choice of 'platform' (hardware & OS combination) influences, facilitates some options, and limits others.  It is one of the most important strategic decisions an enterprise has to make.

    It's not a simple situation these days where there are so may choices competing for a share of the market.  My OS Humor page includes 3 battlefield diagrams of the Software Wars from 2000 thru 2003 that highlight the effect of the Open Source movement.

  • Operating Systems are always built for or adapted to a particular class of 'processor' or CPU.  The combination of computing hardware and OS provides a platform. Some OS are built for more than one CPU -- Mac OSX started on Power & was adapted to Intel. The Linux kernel runs fine on Acorn, ARM, Motorola, Intel, and has also been adapted to Sparc and SGI. IBM has embraced the Open Source community and has adapted the kernel to run 'native' on its p & z (mid-range & mainframe) processors.

    If an application has been written in a very 'generic' way, not using any special features of a particular CPU's instruction set, then it is very likely that the application's code can be moved very easily among any of these CPUs. Microsoft _used_ to run on MIPS, Sparc, and Intel but now I believe it's only deployed on Intel & Intel-clone CPUs

     The text briefly introduces this topic with a couple of block diagrams that emphasize the fit between OS and hardware, but it is an important practical matter to understand 'what is a platform?' since it's going to affect strategy..

    This topic is expanded below, where the platforms you're likely to encounter are shown in some detail...

  • These days, new 'layers' are being added to the traditional OS cake.  

    Microsoft has recently provided an important, additional 'layer', the .NET Framework, where several application environments (web services, web pages, Windows forms, &c) sit above a 'Common Runtime Language' that sits between application programs and the OS.  



    Lubricated by this CLR, it won't be long before the .NET framework is tweaked to work with Unix, Linux, and even mainframe-class hardware.   (So something like this might actually happen...)

    Actually, it _is_ happening with the Mono Project.

  • Other 'manufacturers' of hardware and/or software, like IBM, 
    Sun, and/or the Open Source Community provide similar layers to facilitate programming and operation of application software.  Java and its surrounding tools and 'addons' are an example.  These 'runtime layers' help make an application development environment easy to deploy on multiple OSs and provides lots of tools that make programmers much more productive.

  • Operating Systems traditionally have five components:

    • The User Interface, often called a 'shell', is what we see and use.  

      Windows provides a GUI shell that handles most OS functions.  It also provides a DOS or Command (no more DOS since XP) window where a 'command line interface' is desirable.

      A Linux or Unix user may have a choice of GUI by using one of the popular XWindows interfaces like Gnome or KDE.  But, many of us prefer to use command line or 'character based' interfaces for some OS functions.  

      We'll cover a few OS/shell combinations in later weeks.

      The shell allows a user to control the other four components.

    • Device Management components control access to: peripherals like keyboard, mouse, monitor, printers, speakers, &c;  and, Secondary Storage devices like disk, CD, or tape; network devices; and anything else that is put into a slot or plugged into a PC Slot or USB.

    • File Management functions let users, or application software, do the basic 'file functions' with files: create, modify, delete, & copy.  The OS generally handles entire files, locating them in a hierarchical directory path (hierarchy commonly denoted with \,/, or :) and by name.  

      To get at the data _inside_ the files usually takes some kind of 'application', sometimes provided by the OS and other times purchased thru some developer of software for a platform. For example, OS components called 'editors' (like vi in unix or notepad in Windows) allow users to modify the contents of ASCII, 'plain text', files. But, another, 'non-OS provided' editor provides more functionality for the non-casual user, especially a programmer or administrator, so we find data processing pros choose editors like EMACS, Midnight Commander, Crimson, Visual Studio, DreamWeaver MX, or FrontPage that provide extra power for the tasks at hand.

      The contents of files containing other data for images, spreadsheets, or Word documents are maintained by applications like GIMP, Excel, or Word.

    • Memory Management is concerned with the system's Primary Storage, which is RAM and Cache, located nearer or further, respectively, from The Processor.  DMA (Direct Memory Access) channels and hardware components in a computer's 'chip set' offload some memory processing from the CPU so that the CPU can initiate data movement to ro from RAM, do something else while the data are moving, and get notified via an interrupt when the data have been moved.

      Memory management involves activity in the 'background' like the 'garbage collection' routines that free up the space in RAM that has been used by OS and applications that no longer need the space.  Garbage collection routines attempt to regain large, contiguous, blocks of space and keep them available for the next process that is launched.  'Memory Leakage', which is rampant in some Windows (and *ix) applications, may result in no contiguous blocks of RAM and the 'blue screen of death' that was so familiar to Windoze Users & NT administrators if they failed to reboot their servers often enough...

    • Processor Management schemes are almost all 'multiprocessing' these days.  Using ps (process status) in *ix or the Process Manager (ctrl-alt-delete) in Windows shows a list of processes that are running on a computer. The OS's processor management functions more-or-less equitably divvy up the limited resource of CPU Time.

      In most GUI desktop systems (Windows, Mac, or Linux) there are usually a couple or a few dozen 'processes' vying for compute cycles in a single 32-bit CPU, space in RAM & Cache, and bandwidth on a disk or network controller. These systems have provided very 'crisp' response since processors have been at 200-400 MegaHz, where an active GUI presentation & mouse-event capturing was only taking about 80% of the CPU's power.

      The busy 'host computer' or server that is running an enterprise may have hundreds or thousands of users entering and using data processed by the applications it runs. Each user may be running running one or more processes as they do their work. The mid-range or mainframe computer has more resources and more 'channels' & 'dedicated processors' to manage them. For example, a 32-bit desktop PC can manage 2 GigaBytes of RAM and this is fine for a gamer or engineer running a 'compute intensive' task, and 'disk swapping' is minimal -- but, a large mid-range computer with 64-bit technology is able to reference multi-TeraBytes of RAM and avoid much disk access altogether, working directly from huge RAM-drives. (IBM has been providing dual-core, 64-bit processors in the Power line since the '90s. Intel, AMD, and others got there about 2006 and they're headed to the desktops.)

      Along with referencing relatively huge amounts of memory and cache with their 64-bit CPU words, modern workstations, gaming machines, mini-computers, and mainframes may have two or more CPUs working 'in parallel' or using 'SMP' (symmetrical multi-processing).  This allows  'multi-threading' techniques of modern OSs & programming languages to be used so that an application's processes can be programmed to run concurrently, when appropriate, instead of in sequence as is required when only one CPU is available. Java and .NET let programmers take advantage of multi-CPUs.

      An OS that supports SMP automatically divvies up tasks for the multiple CPUs without any of the Programmers' concern. These machines & OSs can service thousands of time-shared Users' keystrokes & requests for database access so efficiently that they all get sub-second response times. Of course, any computer can be 'over loaded' and Users of inadequately-sized systems decorated their cubicles with a picture of skeleton sitting in front of a computer terminal over the caption 'How is the response time?'.

      As an historical note, the Motorola line of CPUs included features for communication with a 'supervisory processor' on a board or a backplane that made them more suitable for deployment in a multi-CPU environment for years before Intel processors. When the 80486 processors came out, 'highly available' system manufacturers like Stratus used whichever gave the best bang/buck performance in the season the machine was delivered. Where we used to say that RISC processors were better suited for multi-CPU deployment of enterprise applications, it may be a moot point now that CISC CPUs can do it too. We used to see, in the '80s, that the 'point of diminishing returns' was reached at something less than six or eight CPUs in a SMP scheme, but now that number is higher, allowing 'ordinary' mid-range computers to make effective use of 32 or more CPUs for SMP in multi-user applications. (IBM provides the ultimate in 'process control', 'capacity on demand', where systems are shipped with additional CPUs to be used, and paid for, during peak seasons and turned off at other times...)


  • 'Modern' OSs include more functions than the text mentions:

    • Authenticating users & authorizing their access to files, applications, and OS functions is part of a 'multi user' OS like Unix, Linux, or Windows NT or 2003 Server.  Even a 'desktop OS' like XP includes methods for someone with administrator privileges on the machine to set up profiles for individuals who will be using the machine. DOS, on the other hand, had no way of identifying individual users, and made everything on a machine more-or-less available to whoever flipped the power on.

      A UserId and PassWord combination is involved in most methods for authenticating users as they 'log on' to a server or host machine.  Magnetic stripes, rf chips, or biometric devices are also involved in some systems.

      Other schemes for authenticating users as they connect from one node on a network to another involve keeping a 'private key' in the user's home directory on their 'home machine' and storing a 'public key' in their home directory on machines they visit.

      In computer rooms and NOCs where there may be a large number of servers it would be extremely inconvenient for a user to be challenged by each of the servers as it provided its service. In these cases, a 'super domain' scheme like Kerberos, or Windows Active Directory, is used to authenticate users once and then 'trust' and continue to authorize their use of resources in a secure way.
    • Network support is included in modern OSs since the mid-80's.  Windows after 3.11 for workgroups, and Unix provide networking functions. Earlier desktop OSs, like DOS or CPM, required purchase of a 'Network OS' like Novell, LanTastic, or Banyon Vines so that the PC could share networked resources. 

      All today's desktop systems, like Linux, Windows and Mac, have support for multiple LAN protocols along with TCP/IP for The Internet. Even the PDAs come out of the box able to participate in LANs, wired & WiFi, and Internet.

      Server OSs (NT, W2xServer, *ix) include networking functions for LAN, WAN, and The Internet.  They may serve 'The Internet' by acting as a gateway, firewall, and/or proxy for 'internet traffic' of http, smtp, pop3 and other web documents and services.



  • Platforms

    The text's first paragraph packs a wallop into a few words.  The author observes that: a computer fresh off the assembly line can't do anything without any software; it provides an unfriendly interface; even experienced programmers find it difficult to program the 'raw iron.'

    There are only a few hundred programmers who do this programming at the 'machine code level'.  They are gifted individuals who can visualize how a CPU and it's registers and instructions work in binary and write the 'assemblers' and 'compliers' that are used by other programmers to write the operating system and programming languages for a particular platform. 

    Machine Code is binary code, and/or hex code, that interacts directly with a particular CPU's 'instruction set'.  After it's in place, the way is paved for use of kinder, gentler languages to complete the platform.

    Assembler Code is somewhat more civilized than binary and provides a pretty much one-to-one correspondence between a CPU's instruction set and the abbreviations (acronymns) that make up the rather cryptic assembly language.  An 'assembler programmer' needs to understand how the CPU works, but their programming can be quicker because they can type abbreviations instead of long strings of zeroes and ones.  When the 'assembler program' has been edited and debugged, it can be 'assembled' into binary, or executable, code that will run on one (class of) processor.

    'Assembly Language', and higher order languages like C or C++, are used to write the OS.  There are relatively few 'assembler programmers'.  Even though coding in assembly language isn't _as_ tedious as coding in binary, it still takes special skills and interest to do this work.

    Machine and assembler programmers are likely to work for a software house that provides an operating system for a particular processor.  They work for Sun, IBM, MicroSoft, and SCO.  

    They also work in the OpenSource environment, providing Linux and FreeBSD platforms for Intel-like processors as a by product of their self-actualization.

    They make the application development languages work for their platform.  This paves the way for the 'application programmers' who write the programs we install after the OS is in place.  

    Some 'application programming languages' are 'platform independent' and have been designed so that it is easy for a platform provider to make that language work on their platform.  COBOL, C, C++, BASIC, FORTRAN, Pascal, Java, Python, and a host of less-well-known languages will run on Windows, and other platforms.  If you know how to program in COBOL on an IBM mainframe most of the skills will still apply on a UniSYS mainframe.  

    Other application programming languages are quite dependent on a particular platform and won't run anywhere else. VisualBasic, for example, runs only on a Windows platform, and inroads are being made by the Mono project to support the .NET Framework on Linux & BSD.
     
  • Operating Systems are dependent on & written for (or adapted to) a particular manufacturer's CPU.   There are important exceptions to this.  IBM's OS390 runs on IBM's 3090 & 9000 series of processors but is also licensed for use by their competitors, most notably Hitachi.  

    Microsoft writes OSs for an Intel CPU, but AMD builds a processor that uses the same binary instruction set as Intel, so either manufacturer's chip will combine with Windows to provide a stable platform.  

    Microsoft _used to_ write Windows to run on Sun's Sparc processor, which is quite a different instruction set from an Intel processor.  It was quite a quick combination for a couple of years and attracted a lot of attention, but there's no market for this platform anymore.

  • Here are platforms you're likely to encounter today:

    • Intel processors were at the forefront of the PC revolution, starting with the 8080 (I believe).  This style of instruction set (CISC - Complex Instruction Set Computer) has continued on through the current Pentium IVs and whatever comes next.  They were the first in the IBM PC, and the technology was made relatively open and easy to license, leading to the 'IBM Clones' that have had huge market share ever since.  

      DOS 1 thru 3.3, Windows 1 thru 3.11 for Workgroups,  Windows NT,  Windows 95 thru 98se, Windows ME (aggh!!), Windows 2000, and Windows XP in all its flavors are the most popular platforms for the Intel processor when it is deployed as a 'Personal' or 'Desktop' computer.

      IBM provided another platform for Intel processors with their OS/2.  It was released about the time that Windows 3 was released, and they provided several  releases of this probably-superior OS until they gave up the effort a couple years back.  OS/2 is still in use in some environments to run applications that are associated with IBM mainframes.  My bank uses OS/2 to run their telephone banking application. As at '09 OS/2 applications are pretty much off the digital landscape...

      Windows NT followed by 2000 & 2003 Server have gained share in the low-to-mid-range server market. Relative to Unix, Windows is a relative newcomer to the 'host' and 'server' market.  Each release becomes more stable and easy to use, making Windows an attractive option for this class platform. Emerging, low-cost & fast 64-bit Intel Processors are bringing true mainframe power to NT descendents...

      Software houses have combined Unix and unix-like OSs with the Intel processor to provide a more economical platform to support applications that were written for a unix-based minicomputer, perhaps ten or fifteen years before.  SCO (Santa Cruz Operation) is the 'owner' of the most prevalent platform, and maintains that they own some of the code in current Linux distributions. Here is a pedigree showing how unix & linux have evolved.  

      The Open Source community has provided a 'unix-like' platform, loosly collaborating with Linus Torvalds to make Linux run on Intel-class processors.  Linux quickly gained share in the unix-server market from SCO.   And, it made unix/linux readily available for the ordinary hacker, and cracker, which has fostered diverse interests in this platform.

      At 2010, a well-supported RedHat Linux distribution cost about $379 for two single-socket machines or one with two sockets. For this price, the machines can be used to support as many concurrent users as an Intel box can support, perhaps 200 or a thousand depending on the application.   SCO costs about $175 per user license, with some discounts for volume.  For an organization with 100 users in the domain, the OS costs $379 for Linux, where the SCO license cost more than $15,000.   See the attraction?

      SCO has been for the past year (since 2003) suing IBM and others for violation of intellectual property rights, claiming that substantial portions of their code has been included in the Linux kernel.  (Search google with IBM SCO suit and be prepared to read a lot.)  They're wanting end users of Linux to pay them a few hundred dollars for the right to use their code and have threatened some of the largest users of Linux with suits as well.  We expected these issues would be settled sometime in 2004, but now it appears litigation will be long-term. (Early in 2010, the case was thrown out of court with Novell declared the owner of the UNIX trademark. Mid-2010, SCO is trying to get the case back in court...

      FreeBSD provides another platform with the Intel processor.  This is another freely available unix, perhaps not as popular as Linux, but it does have its devotees. Microsoft ran HotMail using BSD for some years, had hitches at the first attempt to move HotMail to Windows servers, got it right a few years back... 

      Recently, IBM has packaged Intel processors in the low end of their xSeries, deployed as 'blades' in a chassis that provides redundant power supplies and connections to the network backbone.

    • Motorola has pretty much shed it's role as a leading manufacturer of CPUs for computers, following a few decades of dominance.  The demise of this product line was easily observed right here in River City where, in the mid-'90s Motorola bought a large tract of land West of town to build a new plant where they would make the follow-on models of their 68000-series CPU. They abandoned the project about Y2K, and since then have become less-and-less involved in CPU development. At VCU, their interest was one of the facilitating factors for the founding of the Engineering School. Now, Motorola specializes in relatively low-powered CPUs embedded in radios, cellphones, appliances of all kinds, and automobiles.

      This 'Motorola class of processor' uses a different style of instruction set, RISC (Reduced Instruction Set Computer), which is optimal for some diverse computing tasks, like graphics,  database management, SMP, and other tasks associated with running a 'host' computer using Unix or another 'multi-user' OS like DBMS.

      The Motorola 'Power' processor is (still) found in machines by several manufacturers.  Apple used it until a couple of years back in the Mac.   IBM used Motorola processors in their ubiquitous Unix platform, the RS6000, where it could easily scale to support a thousand or more simultaneous users.  They usually ran 'AIX', written & supported by SCO. 

      The 'cell chip' is IBM's state of the art of the 'Power' Technology. This has 8 64-bit processors on one chip, with a separate CPU to handle the SMP. First introduced as a game box CPU, the Cell Chip is now deployed in IBM's System i, mid-range system.

      From the late '70s these 'motorola' machines running somebody's Unix provided a more-or-less standard platform all around the world and many are still in service.  Hewlett-Packard, ADDS, NCR, Data General, McDonnell Douglas Information Systems, and many other less-well-known manufacturers used Motorola processors -- some putting them on their own processor boards and others buying Motorola boards & chassis and relabelling them as their own ('Original Equipment Manufacturers', called OEMs). 'Standard Unixes' were provided by many computer manufacturers who were compliant with industry standards.

      ANSI, System V, POSIX, and other standards prevailed and owners of *ix-based application software found that the hardware for their enterprise platforms was now available at commodity rates. XENIX arrived on the scene about the time that IBM PCs emerged, 1981, and the cost of computing hardware to complete an *ix platform plummeted. Relative to the owners of 'closed systems' (IBM System 38, AS400; UNIVAC, Burroughs, NCR, &c, &c), those who owned these 'open systems' were getting excellent results at a fraction of the cost, and found that it was inexpensive to extend the value of their legacy of data and applications to take advantage of the networking functionality built-into *ix.

      Motorola and IBM were members of a 'consortium' of manufacturers licensed to produce RISC technology, and Motorola provided the manufacturing facilities for these RISC processors until the emergence of the 'Power4' chips in the late '90s, which are manufactured directly by IBM. The recent developments in the line have been by IBM, with the dual-core, 64bit 'Power5' processor coming into the market at greatly reduced prices in the Summer of '04. The Power5 processor is well-suited for diverse applications like gaming, database, web servers, and process control. IBM uses these Power5 processors, sometimes dozens of them in a chassis, to power their 'eServer iSeries' platform, which covers the entire range of small to mid-range servers. (The 'Cell Chip', or 'SuperComputer on a Chip' is an extension of this, combining 9 PISC CPUs on one chip -- 8 to do processing and the other to divvy up tasks among the other 8.)

      Although they were not as active in development, Motorola continued manufacturing and providing the entire line of '68000' processors for industrial & embedded use, for prices ranging from a few dollars to about $75. I've learned from a student in class Fall '05 that Motorola no longer manufactures the low-end, industrial & embedded, CPUs, and need to update this posting.

      In 2010, there has been a resurgence of interest in RISC chips. ARM and other RISC chips are being actively deployed in Smart Phones including Androids, netbooks, and other machines where low power consumption and reduced instruction set are desirable.

    • IBM provides and supports platforms that range from desktop through mainframe and is notable for surviving as a major provider of computing goods and services since pioneering in the commercial market of the early 1900s.   Here is a side trip through IBM's current product line, to serve as an introduction to the range of computing platforms, from desktop (of which they've abandoned the manufacture in the Summer of '05) through Mainframes and Super Computers.

      Many 'game machines' and Apple's newest Macintoshes use  IBMs Power4 & Power5 processors, having obsoleted the Motorola chip where blazing speed is required, and much of the old Apple/Mac OS was replaced with Unix at the same time. Apple announced in Summer of '05 that they will be adapting their *ix-like OS to Intel processors, to avail the Mac platform (with a consistent couple-percent of the market for decades) of the power-saving & blazing speed of the CISC line's next generation of 64-bit, dual-core processors.

      IBM's eServer product line makes extensive use of IBM processors, although the lower end is likely to be Intel powered.   They've recently (2004) streamlined and renamed their venerable old product lines, always providing excellent support and backward compatability for the languages and DBMS for their customers' applications.  It is not uncommon for an application developed in the 70's for a System 38 or AS400 to be in use today on an eServer iSeries, and to be the best application for the job.

      IBM's eServer xSeries uses both Intel & 64-bit, RISC, Power processors. Through '04 & '05 IBM has gained market share among Intel platform providers by optimizing their 'blade center' to support dozens or hundreds of Intel machines to provide highly-available clusters and interface to the industry's fastest network storage. They provide 'instrumentation' software for the OSs in the blades so that they may be efficiently management by system & network administrators using IBM's 'Virtualization Engines' to manage their herd of CPUs.

      For many, perhaps the most reasonable, administrators (no bias here, no dinosaur in this room) the ideal is _not_ to have dozens or hundreds of little *ix or Windoze machines. The ideal is to have one big, fast machine that can handle everything -- that is quick and easy to back up and recover from a single volume of tapes -- or that can participate in a cluster or grid to ensure 100% availability. The 'mid-range' computer evolved in the '60s as an affordable alternative for businesses that had not afforded the 'mainframe' computer that dominated big business from its emergence in he '50s. In many cases, these mid-range computers (built to support larger & larger numbers of on-line, time-shared users) out-performed the mainframes (built for 'batch' processing).

      IBM's current _proprietary_ mid-range product line started with System 3 and 38 and grew into the very popular AS400. This has been renamed as the eServer iSeries and now it extends IBM's dual-core, true 64bit Power5 processors through a range of computers which may host from a few thru tens of thousands of simultaneous users and provide them with sub-second response times and 100% availability.   These machines run combinations of OS400, i5/OS, Linux, AIX, Windows, and other OSs for special purposes.

      Leading the industry in 'virtualization of resources', IBM took what it learned from the VM 'Virtual Machine' Mainframes that were able to run multiple OSs simultaneously and applied it to their mid-range computers. Today, for example, a single iSeries (perhaps deployed in multi-chassis) may be 'logically partitioned' into dozens of 'virtually separate machines' that share in a huge 'pool' of CPU, RAM, Disk, and Network components. This allows a company who may have inadvertantly grown a 'server farm' to migrate all the applications into 'one box' where it may be backed up, managed, and recovered much more conveniently than dozens of 'really separate machines' in some computer rooms.

      IBM's very popular _open_ mid-range product line started with the RS6000 in the '80s which has been renamed the eServer pSeries and makes use of IBMs Power processor.  The OS for this platform is either AIX (from SCO) or Linux. For decades IBM has provided support world-wide for these Motorola-based, RISC machines. This allowed companies to enjoy almost-commodity pricing of reliable hardware and also participate in the savings of excellent, multi-user applications developed for 'open systems' supporting *ix. IBM shared world-wide in this market along with HP, NCR, SGI, Sun & others I could recollect.

      The 'Mainframe' goes beyond the mid-range in capacity. Although originally developed for the 'batch processing' of transactions for large enterprises and agencies, 'the mainframe' has been adapted to modern networking and can also serve as a database or web server that can provide hundreds of thousands of simultaneous users with sub-second response time.

      Today, IBM has few competitors in the Mainframe market. After a few years of avoiding the term in favor of Super Servers to avoid the dinosaur imagery conjured up by the word mainframe, IBM now calls these machines mainframes and markets them as theeServer zSeries.  They use IBM's zAAP processor and can even run multiple OSs concurrently: z/OS, OS/390, VM, and Linux.  In the past, it took a working knowledge of IBM's assembler language to administer a mainframe-class system -- now, the machines can boot and run Linux without requiring this rare skillset.  Also, leaving the very, very expensive OS/390 or z/OS out of the platform allows IBM to market these machines at a much lower price for applications where backward compatability for a legacy of old COBOL applications isn't needed.  

      A middle-of-the-line zSeries machine costing a few million dollars can provide subsecond response to  hundreds of thousands of simultaneous web browsers, making this a really kick bu-- web server for a company that has a legacy of OS/360-based applications tending data that need to be made available for customers and employees via The Internet.   There's little wonder that EBay recently partnered with IBM and continues to provide crisp response for 100s of thousands of EBayers waiting until the last possible moment to snipe some item.
    • Sun Microsystems had a Sparc processor that for decades has out-performed many of its competiors and until recently was the server-of-choice for large *ix-based applications.  This processor and the Solaris OS provide a powerful and scalable platform for all kinds of networked applications.  They're hanging onto share in the multi-processor server market, and recently donated lots of software to the Open Source community.

    • SGI (Silicon Graphics) is trying to hang onto market share they gained when their Geometry Engine made them the processor of choice for graphics & animation.  Many of the animations and special effects that have dazzeled us for the last decade where produced on SGI platforms running irix as the OS. SGI was also, through the '90s, the platform of choice for data-warehousing and other database-intensive applications. Their ability to reference huge amounts of RAM got them in as the heart of AOL, which grew quickly from a small BBS to a huge on-line community just as the World Wide Web was also taking on more and more users.

    • There are dozens of other platforms still used for deploying applications.  These discussed here come to my mind as the most likely to be encountered, but they aren't the whole spectrum or history of computing.  

      If we look at particular 'vertical markets' we find odd names popping up.  For example, half the auto dealers in Richmond (or any city) are likely to use a platform provided by McDonnell Douglas Information Systems, which is now a UK-based firm that specializes in systems for police and hospitals.  

      If we go back to the 60s there are hundreds of platforms that have become obsolete, sometimes causing great expense for the enterprises that used their special, proprietary features to develop their applications and had to replace an entire legacy of application software.  But, I'm not going to try a recitation of those here...