History of General-Purpose Operating Systems Unix Opera

History of General-Purpose Operating Systems Unix Opera

Software systems and issues Operating system • operating systems • a program that controls the resources of a computer – controlling the computer – interface between hardware and all other software • file systems and databases – examples: Windows 95/98/NT/ME/2000/XP/Vista/7, – storing information Unix/Linux, Mac OS X, Symbian, PalmOS, ... • applications – programs that do things • runs other programs ("applications", your programs) • middleware, platforms • manages information on disk (file system) – where programs meet systems • controls peripheral devices, communicates with outside • interfaces, standards • provides a level of abstraction above the raw hardware – agreements on how to communicate and inter-operate – makes the hardware appear to provide higher-level services than it • open source software really does – freely available software – makes programming much easier • intellectual property – copyrights, patents, licenses What's an operating system? History of general-purpose operating systems • 1950's: signup sheets "Operating system" means the software code that, inter alia, • 1960's: batch operating systems (i) controls the allocation and usage of hardware resources – operators running batches of jobs (such as the microprocessor and various peripheral devices) of – OS/360 (IBM) a Personal Computer, (ii) provides a platform for developing • 1970's: time-sharing applications by exposing functionality to ISVs through APIs, – simultaneous access for multiple users and (iii) supplies a user interface that enables users to access – Unix (Bell Labs; Ken Thompson & Dennis Ritchie) functionality of the operating system and in which they can • 1980's: personal computers, single user systems run applications. – DOS, Windows, MacOS – Unix US District Court for the District of Columbia • 1990's: personal computers, PDA's, … Final Judgment, State of New York, et al v. Microsoft Corporation – PalmOS, Windows CE, … November 1, 2002 – Unix / Linux • 2000's: Windows vs. Unix/Linux? – Mac OS X is a Unix system • 2010's: Windows vs. Google? – Chrome-OS, Android OS, … (mostly Unix/Linux-based) ISV = independent software vendor • not all computers have general-purpose operating systems API = application programming interface – "embedded systems": small, specialized, but increasingly general Unix operating system Linux • developed ~1971 at Bell Labs • a version of Unix written from scratch for PC – by Ken Thompson and Dennis Ritchie – by Linus Torvalds, Finnish student (started 1991) • clean, elegant design – at least in the early days • source code always available (www.kernel.org, www.linux.org) • efficient, robust, easy to adapt, fun – large group of volunteers making contributions – widely adopted in universities, spread from there – anyone can modify it, fix bugs, add features • written in C, so easily ported to new machines – Torvalds approves, sets standard – runs on everything (not just PC's) – commercial versions make money by packaging and support, not by selling the code itself • influence – languages, tools, de facto standard environment • runs some major operations – enabled workstation hardware business (e.g., Sun Microsystems) – Google, Amazon, ABC, CBS, CNN, YouTube, ... – supports a lot of Internet services and infrastructure 1 What an operating system does To run programs, the operating system must • manages CPU, schedules and coordinates running programs • fetch program to be run (usually from disk) – switches CPU among programs that are actually computing • load it into RAM – suspends programs that are waiting for something (e.g., disk, network) – maybe only part, with more loaded as it runs (DLL's*) – keeps individual programs from hogging resources • transfer control to it • manages memory (RAM) • provide services to it while it runs – loads programs in memory so they can run – reading and writing info on disk – swaps them to disk and back if there isn’t enough RAM (virtual memory) – communications with other devices – keeps separate programs from interfering with each other • regain control and recover resources when program is finished – and with the operating system itself (protection) • protect itself from errant program behavior • manages and coordinates input/output to devices • share memory & other resources among multiple programs running – disks, display, keyboard, mouse, network, ... "at the same time" – keeps separate uses of shared devices from interfering with each other – manage memory , disks, network, ... – provides uniform interface to disparate devices – protect programs from each other • manages files on disk (file system) – manage allocation of CPUs among multiple activities – provides hierarchy of directories and files for storing information *DDL: Dynamic Link Library in Windows Memory management Recall CPU Caching • what's in memory? over-simplified pictures: • cache: small very fast memory for recently-used information Unix: – loads a block of info around the requested info • CPU looks in the cache first, before looking in main memory Op sys my Word your Word my browser yours • CPU chip usually includes 1 or 2 levels of cache Windows: – smaller is faster Op sys Word browser mail your prog • caching works because recently-used info is more likely to be used again soon • reality is more complicated – therefore more likely to be in the cache already – pieces of programs are partly in RAM, partly on disk • cache usually loads nearby information at the same time can only execute instructions that are in RAM – nearby information is more likely to be used soon • memory protection: – therefore more likely to be in the cache when needed – making sure that one program can't damage another or the OS • this kind of caching is invisible to users • virtual memory: – except that machine runs faster than it would without – making it look like there is more RAM than there really is – RAM becomes cache for disk Virtual memory a kind of cache General principle • If need more RAM for program than have: • things work more efficiently if what we need is close – Program dies – Fast storage but can’t be to big OR Physics – store some of RAM contents on disk cost • if we use something now • May be data or instructions on disk – we will likely use it again soon (time locality) • Rely on using instructions or data in RAM for a while before need – or we will likely use something nearby soon (space locality) what is on disk • If need to read from hardrive often, VERY SLOW – thrashing 2 other caches in computers: Operating system controls devices • CPU registers • operating system hides physical properties of devices • cache(s) in CPU – device has specific capabilities, parameters, etc. – hardware and software in device and OS present these at higher level • RAM as a cache for disk or network or … – e.g., printer • disk as a cache for network logical view: put characters out in 66 lines of 80 characters • network caches as a cache for faraway networks physical view: paint individual bits of characters in raster across page • caches at servers – e.g., CD-ROM logical view: file system just like the one on the hard drive physical view: long spiral of individual bits read by a laser • Memory hierarchy • OS uses device drivers to control physical devices – driver code has detailed knowledge of how to operate a particular device • some are automatic (in hardware), some are controlled by – implemented as functions that provide interface between specific software, some you have some control over capabilities of a device and what the operating system expects – loaded as part of OS as needed, e.g., when a device is plugged in ("Windows has found new hardware") • drivers insulate OS and application programs from specific properties of devices How does an operating system work? Outward face of operating system • loaded into RAM & started when machine is turned on (“boot”) • User interacts with operating system to – so it starts out being in charge / running on the bare hardware – Start programs • gives control in turn to each program that is ready to run – Use file system • responds to external events / devices / … – Get system information – does actions, relays events to programs, … Example Mac Activity monitor • programs (applications) request services by “making a system call” • Old style: type at terminal – execute a particular instruction that transfers control to specific – UNIX shell part of operating system Contrast: OS Kernal –core resource management and protection – parameters say what task to do • OS does operation, returns control (and result) to application • Modern: Graphical User Interface Xerox Alto Apple Macintosh Microsoft Windows Xerox Alto: root of OS GUIs Virtual machines • running other OS's on top of an OS – e.g., VMWare, Parallels, Xen, ... • Bit- mapped display • system calls to "guest" OS are intercepted by "host" OS • Window-based interface – e.g., guest == Win XP or Linux, host == MacOSX • WYSIWYG editor • passed to guest OS, which handles by converting into system calls • Mouse to host OS • Ethernet local area network • not the same as "dual boot" Win app Win app • Introduced mid 1970s Windows XP • Research machine • PARC Mac app(s) VMWare (Mac app) • Some universities Mac OSX 3 Bootstrapping: how does it all get started • CPU begins executing at specific memory location when turned on – location is defined by the hardware: part of the machine's design – often in ROM (read-only memory) so not volatile but changeable • "bootstrap" instructions placed there read more instructions – CPU tries to read first block from disk as bootstrap to copy more of the operating system – if that fails, tries to read bootstrap from somewhere else e.g., CD-ROM, USB, network, ... 4 .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    4 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us