====================================== 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 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 - Win95 has many things that should be applications built-in to O/S - too many things built into the O/S - MS forgot the purpose of an O/S - can't get rid of built-in things - 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 - Memory Management - allocate memory (virtual memory - all modern O/S) - very different between O/S! - Win95 task manager crashes a lot - BSOD! - bells and whistles matter more than stability - 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) - Reliability - how often does it crash? - Availability - how long is it available? need preventive maintenance? - Servicability - how easy is it to maintain and fix? - Scalability - can you keep same O/S as needs increase? - Integrity - security, protection - Manageability - tools to support many users, many disks, etc. - User Friendly - new users vs. experts have different requirements! - tailorable / customizable - fast, efficient, courteous, self-service - Costs - pay vendor, upgrading costs, training costs, maintenance costs - TCO: total cost of ownership - software, hardware, people, installation, support - "Linux is only free if your time is worth nothing" - what Applications are available - what Software Development Kits? - vapourware - promises of nonexistent software - "off the shelf" vs. "in house" software (not outhouse software!) - hardware support (drivers) - technical support - Security Why not replace mainframes with networks of 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 - picture of room-size mainframe - silo tape drive - page printer with auto-envelope stuffing - JCL: job control language Major O/S analyses - critical to choose O/S correctly, since applications may not move - may need to train people on new software - installation time to install 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 - think carefully about future of organization Quick review of several O/S: - DOS/Win3.1 (128K, 256K machines of the day became 640K) - Win95 - August 24, 1995; unstable due to old DOS 16-bit code - O/S should protect itself from bad applications! - Win98 (an upgrade) - Win2K - Professional and Server (based on NT, not 95/98) - "Millenium" follow-on to Win98, based on 98 - MS hopes everyone goes from 98 to W2K/Pro; Millenium is to hedge bets - W2K: better tuning, more tools, more knobs; training needed? - better technical depth to help topics (more help) - WinNT: (NotThere, NotTelling); NT5 has become W2K/Server - good for inexperienced LAN administrators - Unix (Ultrix, AIX, Solaris, HP-UX, Linuxes) - MVS - OS/390 (IBM - popular, expanding) - Open VMS (VAX/VMS) (losing share, dying off) [not same as MVS] - OS/2 - IBM attempt to create a windowing O/S to compete with Win3.1 - great O/S; deserves better market share; stable; secure - IBM blew the marketing - likely on the way out? - MacOS - only on Apple Hardware; came first; much more stable - better design, more efficient; MS stole ideas - now has a Unix kernel (BSD) in Mac OS-X Details on DOS/Windows, Unix, and MVS: DOS/Windows - DOS(81) - Win3.1(90) - Win95 - Win98 - W2K/Pro - Strengths - 100M copies, 80% of market and growing - MS: 9/10 satisfied users - massive amounts of applications - MS gave away SDK's to people to develop programs - large installed base - GUI good for beginners - multi-tasking (under Windows) - Weaknesses - single-user (can't share with another user) - serious RASSIM weaknesses (at least up to W2K) - GUI is an impediment to experienced users (e.g. changing swap file size to prevent it from eating whole drive; full swap file means you can't save data and you can't quit programs to free up memory! No way to create a shortcut to this dialog box.) Experts want direct access to system services. - top concern of 200 IT managers at Fortune 1000 companies is integrating and maintaining 32 bit O/S - integration with other O/S difficult - employers aren't converting to Win98 - improved admin tools? no - support for new hardware? get it for 95 - better file system? get it for 95 - automatic update? bad for corporate control - Corporations say: I'm waiting for 2000 (more stable) - Win95 has no macro facility! - there are: DOS batch file, MVS procedure, UNIX script - Win98 has a Win Scripting Host (VBS, JS) - integrated IE, Active Desktop (different GUI - single click) - ZDnet: you may want to stay with other O/S - WinNT/W2K(server) - designed for 32 bit machines, UNIX-like internals, 12MB for the O/S - 10 times larger than UNIX kernel - Intended for high-end workstations and servers Strengths - 32 bit performance, 3D graphics - Networking (NT/W2K Server) - no experience required to operate - secure Internet access out of the box with inexperienced sysadmin - Win95 GUI (in NT4.0 and later) - you can learn NT: Win95 GUI with Unix-like internals Weaknesses - RASSIM if compared with experienced sysadmin on UNIX/MVS - GUI still a barrier to experienced users UNIX - 1.5 jobs for every consultant here in Silicon Valley North ($40-$60/hr) - high pressure, pager-tied, evenings, weekends, no family life - architecture designed for program development, not desktops - not designed by a marketing department; two programmers - multi-programming (to share hardware) - designed with a small kernel, most things external to that - can change shells that interact with kernel Strengths - open architecture - started out freely shared - started out open source (now Linux only) - Internet - early development on Unix - 60% of Internet servers are Unix (performance, stability, security) - 80% firewalls are Unix - many vendors have a version - humour is in the O/S; strange things you don't see in MS - 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 - commercialization of Unix source meant source became secret - Linus Torvalds wrote an open-source Unix that cannot be made secret again - will show you the copy-left document that mandates open source - therefore, I can change hardware and keep Unix for my applications - efficiency and elegance (showing off programming skill) - e.g. putting command in if statement instead of testing $? - better use of hardware; better performance - elegance is expensive if you have to pay for it - much of Unix programming is done for the love of it - File system - performance, security - Linux lets you mount other O/S (for the love of it) - MS does not mount anything else (for the cash) - Powerful Command line interface - but the command names are very terse and not memorable - not easy to learn; but, easy to use - are GUI's better? the modern way? - cmd line is easier to use - e.g. find all files containing a string in MS vs. Unix - MS gives you file names, not the text containing the string - Unix gets you the lines - scripting possible - GUI available to ease transition for new users - Linux interest (the only one MS thinks is a competitor) - employers now taking note Weaknesses - Open architecture - but each vendor modified things slightly - too many flavours of Unix; but, only one version of Windows - hard to standardize an O/S whose philosophy is independence! - many Unix GUI's available too! - cryptic command interface - RASSIM (with respect to MVS) MVS - Multiple Virtual Storage - very large, IBM only, mainframes - around since 1960's - 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, kicking out everyone! - JES - job entry subsystem - manage MVS jobs by priority, change parameters, etc. - e.g. you print to Windows and you can't change ordering or copies - reprint a single page from the spool queue - don't want to reprint paycheques! - can't restart some applications that run for hours - need an O/S that has good control of output - batch job scheduling and control - MVS lets you schedule programs based on *ending* time - deadline priority scheduling - how much memory can be assigned to an application? - big: 16TB in each memory address space! - windows limits programs to 4GB, but O/S takes 2GB, leaving 2GB - still 2GB in Win2000! - hundreds/thousands of address spaces! - best security in the industry - RACF Resource Access Control Facility - best commercial security - available: 99.9999% - minutes 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 - don't sell your book! - 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 - complex (?) JCL Job Control Language - designed in 1960's; not user-friendly - could you control the same things using anything simpler? - need more info about how things run to implement deadline scheduling - necessary complexity to support features - MVS is too big to run here - we have Montreal dial-up account demos (Gricks) (no money for students) - MVS is primarily batch, so JCL is built into a batch of several dozen commands and submitted - use Notepad to write the JCL The OS of the Future? - picking an O/S is a "bet your company" decision - don't pick one that is going to go away - must handle growth - predict what the O/S will be (you do this in your research project) - Harold Smith predicts: - Mainframes - predicted disappearing mainframes (eat your editorial) - size of investment in "legacy" applications - need RASSIM in mission-critical applications - MVS or Unix will run them - prediction: OS/390 (which can now run Unix inside!) - Servers - contenders: Netware(Novell), WinNT, OS/390, OS/2, Unix - Netware has better directory services - Unix (standards? POSIX? Linux?) - good performance; but, complex to administer - too many versions? - prediction: WinNT still easier to install and run on LAN - prediction: UNIX will run on high-performance hardware - Desktop - Win95/98 today; W2K will take over - Unix is not friendly enough; too many GUI - MacOS, OS/2 just haven't made it - prediction: Network Computer / Thin Client - PC will disappear completely - too much intelligence on desktop - 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, W2K terminal servers, JavaOS, TalOS, Rhapsody, Linux?