====================================== Notes on Assessing an Operating System ====================================== (Based on material given in lectures by Harold Smith) Topic 1 - Introduction to Operating Systems - primary focus is detailed technical knowledge of MVS and Unix - College introduces Windows first, so you may think it's the best - don't be blinded by popularity - look at the requirements - you must know, in general, what an O/S is - your clients may ask you for O/S advice - switching O/S requires re-purchasing applications, or rewriting them - picking an O/S is a "bet your company" decision - don't pick one that is going to go away - must handle growth What is an O/S? - a program (software or firmware) - early hardware had no O/S - punch cards directly into memory - had to have your own I/O package to read disk - each hardware change caused programs to be rewritten - O/S took over management of hardware - changing hardware means changing O/S (drivers) - changing O/S means changing applications - O/S was intended to insulate application from hardware - system programmers handled the O/S; but, now, everyone has to handle the O/S - the O/S is no longer invisible - everyone has to become a Win95 system programmer! - Unix philosophy is better-suited, can hide complexity - "Manages the Hardware" on behalf of all running software - some say: launches other programs (applications) - shells also do part of that - develop applications, debug - software intended to aid in the preparation and execution of applications progrms - MS Windows O/S contains as built-in many things that would/should be separate applications (e.g. window manager, video player!) - MS forgot the purpose of an O/S; too many things built in - can't get rid of built-in things (e.g. window manager) - those who do not learn from the mistakes of the past are doomed to repeat them, e.g. antitrust (IBM) O/S Components - Boot Facility (IPL) - some method to get loaded into memory from disk/CD/tape/cards - "Bootstrap" process, boot deck of cards - BIOS chip separate from Processor - it finds first block of next boot - Shell (Command Line Processor, GUI, JCL) - to tell the O/S what we want it to do - Task Management - allocate processor time - can one task "lock" the machine or use all the CPU or I/O bandwidth? - Memory Management - allocate memory (virtual memory - all modern O/S) - very different between O/S! - program size not limited to RAM (virtual memory; swap file) - I/O control system (DOS term) - Data management (MVS) - device drivers - Security System (not Windows) - protect the O/S from you - protect you from other users - protect O/S and you from Internet - Networking Facilities - Utilities (system tools, text editor, etc.) - should O/S include media players or applications? - Help Facilities - GUI in Windows; text-based in Unix - win help is user level only - unix help is deeper (maybe too deep: for programmers!) O/S Terms - Kernel (nucleus) - that portion of the OS that is resident (running at all times) - huge for windows due to large O/S - can tailor kernel to include only relevant services - Batch vs. Interactive processing: periodic vs. real-time - win users never experience batch - MVS is a superb batch processing O/S - mainframes - Win has no batch; Unix has some - JCL is hard to learn because it has to support Batch processing - many things that you don't have to consider in interactivity - e.g. banking statements, tax forms - e.g. college services - schedule "right away" - transcripts at end of semester - paycheque every 2nd week - a lot of batch work; batch is really different - Spooling - print management - Simultaneous Peripheral Operations On Line - applications were able to share the printer - your application queues print jobs to disk - MVS has complex commands to control spooling - MVS can reprint any page from the spool queue, no need to re-run - Batch files (DOS); macros; WSH; shell scripts; "procs" - Windows Scripting Host (Win2000) - you must master this skill so that you can repeat tasks! - MultiTasking - more than one program loaded; only one is active - supports only one user of the machine - MultiProgramming - more than one loaded *and* more than one active - support many users of the same machine (keyboards, screens) O/S Selection Criteria - you cannot answer "which is the "best" O/S"; be more specific - Performance - throughput (batch) vs. Response Time (interactive) - RASSIM: (Reliability, Availablity, Servicablity, Scalability, Integrity, Manageability) - 1. Reliability - how often does it crash? (unplanned downtime) - uptime measurement: 99% = 3.6 days of downtime per year (14 minutes every day) 99.9% = 8.8 hours of downtime per year (90 seconds every day) 99.99% = 52.6 minutes of downtime per year (a minute every week) 99.999% = 5.3 minutes of downtime per year (26 seconds every month) 99.9999% = 31 seconds of downtime per year! - 2. Availability - how long is it available, even without crashes? - does it need to be shut down for maintenance? to add software? to remove software? to upgrade software? to be backed up? to replace a disk/mouse/cpu/memory? to clean the air filters? - 3. Servicability - how easy is it to maintain and fix? - technical support - hardware support (drivers) - if you call a vendor for help, the answer will always cost more - 4. Scalability - can you keep same O/S as needs increase? - IBM AIX has a 4 *petabyte* journalling file system! - will applications be available as your organization grows? - 5. Integrity - security, protection (external and internal) - not only against external threats (e.g. Internet); but - also against internal threats (rogue users, processes) - 6. Manageability - tools to support many users, many disks, etc. - using a GUI to create 1,000,000 accounts is not possible! - User Friendly Factor: - new users vs. experts have different requirements! - tailorable / customizable (beware the dark side of customization) - fast, efficient, courteous, self-service - Costs: TCO: "total cost of ownership" - pay vendor, upgrading costs, training costs, maintenance costs - software, hardware, people, installation, support - "Linux is only free if your time is worth nothing" - Applications: - what Software Development Kits (SDK)? - vapourware - promises of nonexistent software - "off the shelf" vs. "in house" software (not outhouse software!) Why not replace expensive mainframes with networks of cheap PC's? - you can pull a wagon with a thousand chickens or one good horse - inter-machine overhead becomes significant with networks of machines - BUT: can't get rid of the chickens (users want the friendly interfaces) - BUT: hard to control so many machines - BUT: what if you had software to network many machines - GRID computing (Kazaa, SETI, RSA-busting contest) Choosing an O/S - critical to choose O/S correctly - applications may not move ("port") to other O/S API's easily - not all applications are made available for all O/S - MacOS-X is still waiting for key players to migrate... - installation time to install new software - may need to train people on new software - can I find replacements for all my software that runs on new O/S? - what about my own software (not off-the-shelf) - may take years to convert - rewrite custom applications - may not be able to find the source to rewrite legacy applications! - think carefully about future of organization when choosing O/S Quick overview of several major O/S families: - the Microsoft USA family: - DOS (Disk O/S) [1981] - (128K, 256K machines of the day became 640K) - Bill bought DOS and re-marketed it - Win3.1[1990]/Win95/98/ME - unstable due to reliance on old DOS 16-bit unprotected code base - Integrity: an O/S should protect itself from bad applications! - WinNT/Win2000/WinXP - all based on more stable NT code base; less legacy DOS code - better tuning, more tools - better technical depth to help topics (more help) - good for inexperienced point-and-click type LAN administrators - the Unix/Linux family: - Unix V6/V7 originated with Bell Laboratories 1969-74 - the "C" language was created to write Unix source code - enhanced by University of California at Berkeley - BSD = Berkeley Systems Distribution - Unix was commercialized and balkanized by AT&T mid-1980's - Unix source code was made closed, secret, proprietary - too many private variants: Ultrix, AIX, Irix, Solaris, HP-UX, etc. - 1991: Linus Torvalds and the GNU organization create a free Unix clone - source code posted to the Internet; now developed world-wide - 1999: IBM ports Linux to its mainframe hardware - one IBM mainframe can run 44,000 virtual Unix machines - 2000: Apple adopts BSD "Darwin" Unix as the core of Mac OS-X - quickly becomes the most widely distributed Unix available - 2003: Apple announces X-Windows (BSD Darwin) available on Mac OS-X - you can now run Linux applications with windows open on your Mac - the IBM family: - OS/360/370/390 (MVS - Multiple Virtual Storage) - the only OS that lets you manage billions of lines of print output, dozens of printers and tape drives, and hundreds of disk drives - OS/2 - IBM attempt to create a windowing O/S to compete with Win3.1 - better than Windows; but, IBM failed at marketing - now on its way out - Linux: IBM supports open-source Linux development - Linux runs in its own partition under OS/390 - Linux runs also native (the only O/S) on new IBM hardware Details on Windows, Unix, and MVS: Windows (1990-present) Strengths: - common platform (only works on Intel hardware) - large installed base (due to monopolistic business practices?) - large number of applications - GUI good for beginners Weaknesses - historically single-user machines (can't share with another user) - no built-in remote console or remote management (PC Anywhere?) - serious RASSIM weaknesses (at least up to Win2000/XP) - Win9x task manager crashes a lot - BSOD [Blue Screen Of Death] - bells and whistles matter more than stability - integration with other O/S and other file formats difficult - a monopoly does not need to interoperate with anyone else - insecurity of automatic "Windows Update" - new EULA says you *must* permit Microsoft to update your computer - auto-update is bad for central corporate control - no macro facility to run programs automatically! - Others: DOS batch file, MVS procedure, UNIX script, AppleScript - Win98 now has a Windows Scripting Host (VBS, JS) - "integrated" IE into O/S, giving "Active Desktop" - should an O/S include a mandatory web browser and media player? - mandatory GUI is an impediment to experienced users - experts/power-users want direct access to system services - WinNT/Win2000/WinXP - originally intended for high-end workstations and servers - little experience required to operate (point-and-click system admin) - now being marketed to ordinary users - "Win9x is bad and cannot be made secure - buy Windows XP" - designed for 32 bit machines: UNIX-like internals, 12MB for the O/S Strengths - full networking, native 32 bit performance, 3D graphics - secure Internet access out of the box, even with inexperienced sysadmin - familiar Win9x GUI (in NT4.0 and later) Weaknesses - O/S kernel is still 10 times larger than UNIX kernel - windows limits programs to 4GB, but O/S takes 2GB, leaving only 2GB - poor RASSIM if compared with experienced sysadmin on UNIX/MVS - mandatory GUI still a barrier to experienced/power users UNIX (1969-present) - architecture designed for program development, not desktops - not designed by a marketing department; originated by two programmers - designed to be multi-programming (to share hardware) - designed with a small kernel, most things external to that, including the command line interpreter - designed before windowing software was used - most everything is possible using the command-line Strengths - historical open source and architecture, now open and free again - GNU Public License (GPL) copy-left mandates free/libre distribution - Unix taught to a generation of university students (free source) - spread and implemented on many types of hardware - runs on just about anything you can program, including wristwatches - I can change/grow hardware and still use Unix for my applications - emphasis on efficiency and elegance (showing off programming skill) - leads to better use of hardware; better performance - elegance is expensive if you have to pay for it; but, much Unix programming is done for the love of it - good file system performance, security, versatility - Linux lets you mount other O/S, including Windows (for the love of it) - MS does not let you mount anything else (to lock you in) - powerful command line interface/interpreter (CLI) - not easy to learn; but, easy to type and use - scripting of most anything is possible - several GUI are now available Weaknesses - AT&T balkanization resulted in too many flavours of Unix in 1980's - hard to standardize an O/S whose philosophy is independence! - many Unix GUI's available too! - cryptic command interface - less RASSIM (with respect to MVS) MVS - Multiple Virtual Storage (1960's- present) - around since punch cards - very large, IBM-only mainframes - handles a large percentage of world's computing - runs large mainframes (the best ones!) - only on IBM System/390 hardware (millions of dollars, secure rooms) Strengths - VIO - virtual I/O - can pull entire database into memory - JES - job entry subsystem - manage MVS jobs by priority, change parameters, etc. - reprint a single page from the output "spool" queue - don't want to reprint paycheques! - don't want to restart applications that run for hours - batch job scheduling and control - MVS lets you schedule programs based on *ending* time - deadline priority scheduling - big: 16TB of memory available in each memory address space! - hundreds/thousands of address spaces! - best commercial security model in the industry - RACF Resource Access Control Facility - available: 99.9999% (31 seconds of downtime per year!) - system management - central control of systems all across the country - mainframe is a natural for e-commerce because that's where the data typically resides - MVS shops: Revenue Canada, Stats Canada, CSIS, Bank of Canada, Metropolitain Life - number of installed MVS systems is increasing - it's difficult to learn! but it's worth it - will MVS be used in future? 85% of existing mainframe apps will stay right where they are to take advantage of mainframe security, performance, and reliability. - Gartner Group Weaknesses - built as batch; not originally interactive; interactivity added later - mainframes are batch - e.g. once a week, once a month ATM withdrawal - interactive Statement produced monthly - batch Yearly tax report - batch - non-GUI job control language (JCL) - complex (?) JCL Job Control Language - designed in 1960's; not user-friendly - necessary complexity to support features - could you control the same things using anything simpler? - need more info about how things run to implement deadline scheduling - MVS is primarily batch, so JCL is built into a batch of several dozen commands and submitted The O/S of the Future? - Mainframes - predicted disappearing mainframes did not happen (eat your editorial) - reason: size of investment in "legacy" applications - need RASSIM in mission-critical applications - MVS or Unix/Linux will run them - prediction: OS/390 (which can now run Linux inside!) - Servers - contenders: Netware(Novell), WinXP, OS/390, Unix/Linux, MacOS-X - Netware started out with better directory services - but MS "active directory" is now everywhere due to monopoly - Unix (standards? POSIX? Linux?) - good performance; but, complex to administer - too many versions? - Desktop - Win95/98 today; Win2000/WinXP will replace those - Unix is not quite friendly enough for Desktop; not enough applications - watch for MacOS-X - central control: Network Computer / Thin Client - too much intelligence on desktop - hard to administer - PC could disappear completely - centralize the computing; control the software environment - no local data, no way to install software on your own - no floppy, no CDROM; no viruses - no need for everyone to become a system administrator - WinCE, Win2000 terminal servers, JavaOS, TalOS, Rhapsody, Linux?