Describe the trend in GUI design towards increasing user convenience • GUI interface is said to be user-friendly • Help is available at the click of a mouse button. • You’re supposed to find out everything you need to know by looking at the screen rather than by thumbing through books. • GUIs make great demands on the hardware resources • they take up lots of memory • the processor has to be very fast if the screen is to respond quickly enough to be satisfactory Command Line Interface (Advantage via Disadvantage.) • It doesn’t take much processing power to run an interface • A CLI does not take up a lot of room in memory. • a CLI feel pleasantly in control of things • You have to learn what all the commands are, and you have to learn how to use them (their syntax) • To use commands properly you have to learn a lot about switches and parameters. • CLI error messages are notorious for not making sense to the uninitiated. • on-line help - you need to know quite a bit before you can even get it, never mind make sense of it. Explain how this trend leads to – Increasing software complexity – Increasing demands on system resources – Increasing burdens on system performance the user interfaces have increased in complexity, with more features, higher resolution graphics, increased use of colour, and increasing options for the user to customise the look and feel of the interface. This has resulted in the operating system making increasing demands on the system. Early operating systems only required a few kilobytes of RAM, whereas modern operating system may require hundreds of Megabytes. Not only do modern operating systems require huge amounts of RAM, they also require fast processors, mainly because of the need to process high resolution graphics in real time. The development of increasingly user-friendly software and increasingly powerful computers is intertwined. Over the last 30 years, there has been an interdependent spiral of Improved hardware (faster, smaller, more complex, larger capacity, new materials) Improved software (more features, more user-friendly) As hardware developers produce more powerful machines, software developers extend their products to use the new hardware, then make further demands, which lead the hardware developers to improve the hardware, and it shows no sign of stopping! The double click on the mouse button will generate an interrupt to the processor, indicating that the current process must be stopped to deal with the double click event. In order to "understand" what this double click means, the system must keep track of the position of the mouse pointer at all times, by receiving and processing the steady stream of electronic signals coming from the mouse’s movement sensor system (optical or mechanical). It must then compare the pointer position with the current screen display to identify what the use has double-clicked on Was it a file? Was it an icon representing a command? Was it a "blank" area of the screen? Once this has been identified, the system then activates the appropriate operation within the file and memory management sub systems. The system must update the screen mapping in memory to effect this change in the display. Pupil task Complete questions 1 – 4 on page 189 questions 5 – 7 on page 193 THEN go to page 194 for wed sites and write a brief summary…… Comparing 2 Operating Systems WINDOWS 98 VIA Linux Memory management Processing modes Input and output Filing system Resource sharing User interface Applications support Security It should be made clear from the first that the two systems not just technically different; they are, so to speak, morally different. Comparing 2 Operating Systems Windows 98. and Linux. Windows is a commercial system, created by the programmers of a gigantic software house. It’s there to make money. It has done this with great success. Linux is a free system, as a matter of principle. You can download it from the Internet for nothing. It is an example of open source software. Today there are tens of thousands of people all over the world happily working away at Linux, altering it, fixing bugs in it, writing applications and games for it. Many large organisations (such as NASA) use Linux. Companies in the computing industry such as IBM, Intel and Dell have announced support for it. More and more commercial software houses are adapting their applications to run under it. If you’ve ever surfed the Internet, you are practically bound to have landed on sites that have been created under Linux. Corporate vendors offer what are called distributions of it; the Linux part is still free Memory management Windows 98 offers multi-tasking and multi-threading with pre-emptive scheduling. Memory management is handled by the Virtual Machine Manager. The VMM creates and manages a single virtual machine (VM) that contains all Win32 applications (and the Win32 API subsystem). Each virtual machine has its own memory space and access to devices. More than one virtual machine can be running on one real machine. The VMM maintains one virtual machine for each DOS application and one for all the Windows applications. Linux is designed to run on a variety of hardware platforms. It is, like Windows, a multi-tasking, multi-threading system but, unlike Windows, it is a multi-user system . Linux, like Windows, runs a virtual memory system, This means LINUX offers • a large address space for each process (much larger than physical memory); • fair allocation of real memory between processes; • protection, so that all processes are protected from each other (and a crashing process won’t affect the other processes or the operating system); • shared virtual memory, so that two processes can use the same library (rather on the lines of Windows’ DLLs). Processes are divided into pages. Linux uses demand paging, so that only the pages that a process demands are brought into memory. When the system begins to run out of memory, Linux uses: • swapping, so that pages that have been modified are swapped out to a swap file; • discarding pages, so that pages that have not been modified and can easily be read back in from file are discarded. Linux allocates pages according to the buddy system. (The size of the pages will vary according to the hardware, but is often about eight kilobytes.) Pages are allocated in blocks which are powers of 2 in size (1, 2, 4, etc). A process asks for a block of a certain size. The memory manager looks through the list of blocks of that size. If one is free, the process gets it. If not, the manager looks for blocks of the next size up. The process continues until all free memory has been searched or a space has been found. If the block allocated is larger than that needed, it’s broken down (in powers of two) until there is a block of the right size. For example, a process wants a block of 2 pages and there are no blocks of that size free; there are no blocks of size 4 free either; but there is a free block of size 8; that block is divided into two blocks of 4, one of which is divided again into two blocks of 2 and given to the process; the spare blocks of size 2 and 4 are added to the lists of free blocks. Processing modes Windows 98 allows multi-tasking and multi-threading: it can run a lot of tasks, and each task can run a lot of threads. In fact, Windows 98 regards a process as an instance of an application with at least one running thread. The scheduler controls all the running threads. It uses pre-emptive scheduling when more than one thread demands the processor. Linux allows multi-tasking and multi-threading, and does so for multi-users. It can also run lots of processors, whereas Windows is designed for a single user and a single processor. Note: terms can become confusing. Multi-processing is normally taken to mean running lots of different processes rather than lots of different processors. Because of its reliability, Linux is being used more and more to handle real-time processes. Such processes are given very high priority. They can be handled on a round robin basis, or simply as a queue, first come first served, depending on how the real-time system is meant to behave. Input and output In Windows 98, device drivers are DLLs. The main advantage of this is that the drivers common to running applications (such as the display driver) need only to be loaded into memory once and can be shared by the different applications. Windows 98 supports a range of plug and play devices. At present, you would hardly describe Linux as supporting plug and play, but they’re working on it. In Linux, device drivers are part of the kernel and, to install a new device driver, you rebuild the kernel to include it. Once the kernel has been rebuilt, you need to reboot the system Each device is represented by a special file that has a place in the directory structure (usually in a directory called dev) In Windows, device drivers are implemented as DLLs: new drivers can be added without the Windows code being affected. Windows and Linux both allow devices direct memory access. Linux supports a wide range of terminals for a wide range of computers. Windows works with screens that can be run by a PC. Filing system Windows 98 uses the FAT32 system which allows a 4 KB cluster size on hard discs. This (compared, say, to the 32KB clusters available in previous versions of Windows) is small and leads to less waste of space. The FAT32 system supports long filenames, with spaces in. Files can be organised in a hierarchy of folders. The File Manager utility, which comes as part of Windows, makes it easy to move, copy and delete files and folders. In Linux directory information is held, for the most part, in the files rather than in the directory. Each file has associated with it an information node (inode) which contains all the information about the file, such as who owns it and how big it is. A directory entry contains merely a filename and a pointer to the relevant inode. A file can have entries in many directories, each potentially with a different name, although all will refer to the same inode. Linux also supports long filenames, but using spaces can lead to problems. (People tend to use the underscore instead.) ManyLusersLregardLthisLasLaLnuisance. For file storage, Windows 98 uses clusters, which are multiples of a disc’s physical sector size. Linux works directly with single sectors, which leads to a more efficient use of disc space. Resource sharing Windows 98 is a single-user system and cannot be used to serve a multi-user network. It can be used by the machines on a peer-to-peer network. The file system and devices can be made accessible to other Windows systems, protected by passwords. Linux is designed as a multi-user system and is therefore built to run networks and allow the sharing of resources and, moreover, the supervision of such sharing. The network manager can maintain a single list of all system users and put users into groups; members of a group have the same access to system resources. It allows files to be shared, so that a user can create files and make them available to other users of the network; on the other hand, the user who owns a file or the system manager can restrict access, either to everyone or merely to certain groups or users User interface Windows 98 comes with a GUI that provides a full WIMP environment. This makes it easy for the user to do relatively simple things, such as load an application. A GUI is essentially interactive. (The drawback is that it’s not designed to be programmable.) It’s easy to get started in Windows. On the other hand, doing advanced things can be very complicated and exasperating: either you need to do lots of different things in lots of different windows or you need to get in and edit things like the registry (which handles configuration) by hand, just as you would in a CLI. Linux basically provides a command line interface. It offers a selection of what are called shells. (A shell surrounds a kernel.) Each shell has its set of commands. Each command will have a set of options or switches that can be used to shape its behaviour. Commands can be typed in directly. The scripting language is pretty much a programming language. It provides highlevel programming structures such as selection, repetition and modularity. You can use variables, which can be assigned values, and parameters. You can ask for input from the user at run time and process it. LINUX CONT’D The shells and the scripting language offer the user precise control of the operating system. However, not everyone particularly wants to learn commands and switches and all the rest of it. So Linux also offers a selection of GUIs (rather than just one). Applications support The great strength of Windows comes from its long dominance of the market. By default, applications for PCs are written to run under Windows. Microsoft itself has written many good applications, such as the word processor Word and the spreadsheet Excel. If you want software for a Windows machine, there’s an awful lot to choose from. As yet, there is nothing like the same range of software available to run under Linux. Wordperfect runs under it; so does Netscape Navigator, and so on. But, if you’re moving from a Windows system, you can’t assume that equivalent packages to the ones you’ve been used to will be available. Security Perhaps the basic threat to a computer system is a hardware failure. No operating system can protect you against that. What they can do is make restoration possible, so that, once the hardware fault has been fixed, the system can be put back to normal Windows 98 is designed for a single user, even though most computers these days at places of work or in educational establishments are networked. Passwords are used to prevent access to shared resources on the network, but there’s nothing to prevent someone using a Windows box as a stand-alone machine Linux is a multi-user system and takes security much more seriously. All users have IDs and passwords, and a valid combination has to be entered before you can do anything at all. Some systems even check that your suggested password is obscure enough. The system logs password attempts and can be set to permit only a limited number of attempts, as a defence against hackers. Passwords are saved in encrypted form. When a password is entered, it is encrypted, and the encryptions are compared. Apart from the system manager (often known as a superuser or root) there are three sorts of people on a Linux system: the user, the group that the user belongs to, and everyone else. Comparing Windows 98 and Linux Range of platforms The range of computers that Windows can run on is extremely limited. Windows runs only on PCs with (single) Intel processors. Linux runs on a wide range of machines, including ones with lots of processors. Cost The cost of an operating system on a PC is usually hidden as part of the purchase price. Windows 98 on its own costs about 100 pounds. Linux is free, though a distribution version can cost about 50 pounds. Ease of Installation Windows is easy to install because it’s designed to run on one kind of chip. Linux, because it’s designed to be flexible, is a little more difficult. On the other hand, you can get free online technical support for Linux (from enthusiasts), which is not available for Windows. Reliability It’s not easy to get statistics about the reliability of operating systems. Often, estimates of reliability come down to hearsay and anecdote. For example, when the writer of these notes sat down to write them, his Windows LAPTOP FROZE – he had to switch it off and start again…… Scholar activity page 211 comparing and contrasting… THEN Reporting on 2 operating systems