Unit 1 Module 2 PDF - Operating Systems

Summary

This document is a lesson on operating systems, covering definitions, history, and types of operating systems. It's part of a module for an undergraduate-level course in MAT 102: Fundamentals of Computing.

Full Transcript

LESSON 03.1 OVERVIEW ON OPERATING SYSTEMS In this lesson, you will learn about some basic descriptions of computing and its meaning and importance. Let us all start our incredible journey of learning this subject! What is an Operating System? The 1960's defini...

LESSON 03.1 OVERVIEW ON OPERATING SYSTEMS In this lesson, you will learn about some basic descriptions of computing and its meaning and importance. Let us all start our incredible journey of learning this subject! What is an Operating System? The 1960's definition of an operating system is "the software that controls the hardware." It is the most important program that runs on a computer. Every general- purpose computer must have an operating system to run other programs. Operating systems perform basic tasks, such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers. Some examples of operating systems are UNIX, Mach, MS-DOS, Microsoft Windows, Mac OS, Linux, and Windows/NT – these will be further discussed in the latter part of the module. Figure 1 – How an operating system works on different computer peripherals. Generally, an operating system is defined as: ▪ A program that makes the hardware usable, dubbed as the soul of the computer. ▪ It is the set of programs that controls a computer. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING ▪ It is responsible for controlling and launching the installed applications and computer peripherals. ▪ It schedules, allocates storage, handles the interface to peripheral hardware, and presents a "default" interface to the user when no application program is running. ▪ It acts as a host for applications that are run on the machine. Brief History of Operating Systems: The Four Generations First Generation: 1940s During this time, the earliest electronic digital computers had no operating systems. Machines of the time were so primitive that programs were often entered one bit at a time on rows of mechanical switches (plugboards). Programming languages were unknown (not even assembly languages). Operating systems were unheard of. Second Generation: 1950s By the early 1950s, the routine had improved somewhat with the introduction of punch cards. General Motors Research Laboratories implemented the first operating systems in the early 1950s for their IBM 701. The structure of the '50s generally ran one job at a time. These were called single-stream batch processing systems because programs and data were submitted in groups or batches. Third Generation: 1960s The systems of the 1960s were also batch processing systems, but they were able to take better advantage of the computer's resources by running several jobs at once. So operating systems designers developed the concept of multiprogramming. Several jobs are in main memory; a processor is switched from one job to another as needed to keep several jobs advancing while keeping the peripheral devices in use. Another feature present in this generation was the time-sharing technique, a variant of multiprogramming technique, in which each has an on-line (i.e., directly connected) terminal. Because the user is present and interacting with the computer, the computer system must respond quickly to user requests; otherwise, user productivity could suffer. Timesharing systems were developed to multiprogram a large number of simultaneous interactive users. Fourth Generation: 1970s During this period, with LSI (Large Scale Integration) circuits, chips, the operating system entered in the personal computer and the workstation age. Microprocessor technology evolved to the point that it becomes possible to build desktop computers as powerful as the mainframes of the 1970s. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING LESSON 03.2 TYPES AND EXAMPLES OF OPERATING SYSTEMS After being oriented on the definition of computing, we would now proceed to discuss its history. We will go deeply study the background of computing for you to appreciate and understand it fully. Let us now begin another journey in learning this subject! Classification of Operating Systems Operating systems can be classified as follows: 1. Multi-user In this type of operating system, it is accessed by multiple users of a computer. Time-sharing systems are one example of multi-user systems, and most batch processing systems for mainframe computers may also be considered "multi-user" to avoid leaving the CPU idle. At the same time, it waits for I/O operations to complete. 2. Multiprocessing This operating system allows using two or more central processing units (CPUs) within a single computer system. 3. Multitasking With this type of operating system, it allows a user to perform more than one computer task (such as an application program) at a time. The operating system can keep track of where you are in these tasks and go from one to the other without losing information. 4. Multithreading A program or an operating system process can manage its use by more than one user and even manage multiple requests by the same user without having to have multiple copies of the programming running on the computer. 5. Real-Time It is an operating system (OS) intended to serve real-time applications that process data as it comes in, typically without buffer delays. A real-time system is a time- bound system which has well-defined, fixed time constraints. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING Operating Systems Services The following are the five services provided by operating systems to the convenience of the users. 1. Program Execution – This allows the user to execute programs. Operating systems provide an environment where the user can conveniently run programs. 2. I/O Operations – The operating systems by providing I/O makes it convenient for the users to run programs. Users cannot control I/O for efficiency and protection, so user-level programs cannot provide this service. 3. File System Manipulation – This service involves secondary storage management. 4. Communications – The operating system passes messages between processes. 5. Error Detection – The operating system continually monitors the system for detecting the errors Some Operating System Examples Figure 2 - Process on how Operating Systems communicate Operating systems can be found on almost any device that contains a computer — from cellular phones and video game consoles to supercomputers and web servers. Figure 3- The gadgets or technology where the operating systems can be found MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING Examples of popular modern operating systems include Android, BSD, iOS, Linux, Mac OS X, Microsoft Windows, Windows Phone, and IBM z/OS. All these, except Windows and z/OS, share roots in UNIX. Android BSD iOS Linux Mac OS X Windows Phone MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING Microsoft Windows IBM z/OS 1. Microsoft Windows Microsoft Windows is not the only operating system for personal computers. Its inconsistent behavior and an interface that changes radically with every version are the main reasons people find computers difficult to use. Microsoft adds new bells and whistles in each release and claims that they've solved the countless problems in the previous versions this time. But the hype is never really fulfilled. Windows 7 offers little new: it's Vista without quite so many mistakes built into it. The upgrade prices serve Figure 4 - Microsoft Windows primarily to keep the cash flowing to Microsoft, to subsidize their logo efforts to take over other markets. A slew of intrusive "features" in the recent versions benefit Microsoft at the expense of both your privacy and your freedom. Switching to Windows 7 requires buying new hardware and learning a new system, so instead, consider switching to something better. There's an exciting array of interesting operating systems out there, and the overall quality is stronger than ever. 2. Mac OS The Mac OS user interface inspired the creation of Windows and is still the target Microsoft is trying to equal. As a popular consumer product, there's plenty of software available for it, and it's moving beyond its traditional niches of graphic design, education, and home use, into general business use (after all, Apple Corp. runs on it). OS X (ten) uses Unix technology, which makes it more stable and secure than Windows. But the real star is OS X's visual interface, which shows the difference between Figure 5 - Mac OS logo Microsoft's guesswork in this area and Apple's innovative design work: it's both beautiful and easy to use. The main "negative" to Mac OS is that you need to buy an Apple computer to use it, but that's not much of a sacrifice: MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING in addition to being stylish, they're top-notch in quality, and both faster and less expensive than you might expect. Apple has a section of their site for people wondering if they can switch to Mac OS. 3. Linux The Linux ("LIH-nux") operating system is a free Unix- like operating system, originally developed by programmers who love the challenge of solving problems and producing quality software, even if that means giving the resulting product away. Not coincidentally, there's also a wealth of free software for it. Unlike proprietary operating systems, which are usually controlled in every detail by a single company, Linux has a standard consistent core (called the "kernel") around Figure 6 - Linux logo which various companies and organizations have produced many varieties (known as "distributions"). Some are aimed at geeks, some focus on business users' needs, and some are designed with typical home users in mind. It has become a popular option for the makers of inexpensive "netbooks" and laptops to preinstall. You can test-drive Linux with versions such as Knoppix, which runs directly from a CD without affecting the OS on your hard drive. Most individuals should start with one of the mainstream distributions, such as Ubuntu, Mandriva, or Linspire. Businesses might preferRedHat/Fedora, Novell/SUSE, or CentOS. Geeks should check out Debian, Slackware, and Gentoo. Linux is a first-rate choice for servers; this site is a Linux system. 3. Google Chrome The Google Chrome operating system is still vaporware so far, and it's arguably just another flavor of Linux. Even, it promises to be a viable alternative to Windows on small portable "netbooks," which will come with it preinstalled. The user interface will be based on Google's web browser of the same name and take advantage of technology to make online apps like Google Docs work even if you're not online. It is open- source software, so netbook manufacturers won't have to Figure 7 - Google Chrome logo pay to use it. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING 4. Haiku Haiku operating system is based on BeOS, which was designed with multimedia in mind, including features that Microsoft is just recently tacking onto Windows. Although Microsoft successfully drove Be Corp. out of business through illegal interference with their marketing efforts, BeOS's death reports were premature. A team of BeOS users has banded together to re- develop it as Haiku, an open-source clone which will run all the Figure 8 - Haiku OS logo old BeOS software, and then provide a platform to be upgraded for the present and future. Meanwhile, the original Be source code was licensed to a European software firm, which created Zeta. And the free BeOS R5 Personal Edition is still available to download and has been packaged with all the latest drivers and free add- ons as BeOS Max Edition. 5. FreeBSD FreeBSD operating system is commonly called "the free Unix." It's descended from the classic 1970's Berkeley Software Distribution of Unix (from before the OS became "UNIX"®), making it one of the most mature and stable operating systems around. It's "free" as in "free beer" (you can download it for nothing) and as in "free speech" (you can do pretty much whatever you like with it... like when Microsoft took code from it to add better networking to Windows NT). Unlike the plethora of Figure 9 – FreeBSD logo Linux, there's only one current version of FreeBSD, with a consistent structure and an easy-to-use "ports" system for installing software. It can also run most Linux binaries. Much of the Internet infrastructure was built on FreeBSD due to its combination of quality and cost. It's always been excellent for servers, but it's become comparable to mainstream Linux distros as a desktop OS as well. Its leading platform is the Intel x86 architecture, with ports to a few others. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING 6. OpenBSD OpenBSD operating system is "the other free Unix." It's similar to the FreeBSD booth in the Berkeley code based on and the licensing terms. One key advantage it has over its BSD siblings (and nearly any other OS) is that it's incredibly secure from attack. It is as implied by its blowfish mascot and made explicit by their boast of only one remotely-exploitable hole - ever - in their default installation. (Compare that to Windows' hundreds.) "Open" is a reference to their code auditing Figure 10– OpenBSD logo process, not a welcome-mat for crackers. It's not as speedy as FreeBSD, but it's safer. It's also available for some hardware platforms FreeBSD doesn't support, including Mac 68K, PPC, Amiga, Sun, Vax, and others. 7. NetBSD NetBSD operating system is "the other free Unix." It's the work of another group of volunteer developers using the net to collaborate (hence the name of their product). Their mission is to get the OS to run - and run well - on hardware platforms, no other Unix supports. In addition to most of the usual suspects above, it has been ported to run on the NeXT box, MIPSmachines, the Figure 11– NetBSD logo good Atari computers, the BeBox, and WinCE- compatible handhelds, ARM processors, and even game machines like the Playstation 2 or the orphaned Sega Dreamcast. So with NetBSD, you can standardize your software even if you have a whole bunch of different, "incompatible" hardware, one of the strengths of the Unix-like system 8. Darwin The Darwin operating system is a cousin of Free/Open/NetBSD and the free foundation on which the commercial Mac OS X is built. Although its development was initially managed rather tightly by Apple (understandable, because their business depends on it), they've loosened the leash, making participation in the development more open. Darwin is making progress toward becoming an open-source OS in its own right. Any Darwin software will run on OS X. Still, software written Figure 12– Darwin OS logo specifically for OS X won't run on Darwin because the Mac interface (and various other proprietary bits) is not part of Darwin itself. Instead, Darwin typically uses X11 with either TWM or KDE. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING 9. Syllable Syllable operating system is a free alternative OS for standard PCs. It uses some of the better ideas from Unix, BeOS, Amiga OS, and others. It is compatible enough with Unix's portable software that many have already been ported over to it. It's not a full-featured OS yet, but it's functional sufficient to be used with built-in web and e-mail clients and media players. Figure 13– Syllable OS logo 10. Amiga Amiga operating system owners used to taunt PC and Mac users with their smoothly-multitasking graphical operating system, back when the Macs couldn't multitask, and PCs weren't even visual. Even though the "classic" Amiga machines are no longer being produced, there's been a lot of activity in Amiga space in the meantime: The OS has been updated to support current technology with Amiga OS 4, emulation layers called Amiga OS XL, and Amithlon was created to run Amiga Figure 14– Amiga OS logo OS on modern PC hardware, Amiga Forever is an emulator for Windows and other operating systems, and a new hardware platform and OS called AmigaOne have been introduced to try to carry on the Amiga legacy. 11. RISC OS RISC OS is the operating system of the former Acorn line of computers (best known in the UK), revived and updated for faster performance, and to meet current OS standards (e.g., long filenames, large hard drives). It doesn't run on standard PCs, but on systems specifically designed for it (such as the RiscPC and A7000), using the high-speed StrongARM processors. The OS itself is stored in electronic ROM rather than loaded into RAM from a hard drive. Figure 15 – RISC OS logo MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING 12. Minix Minix operating system is an open-source Unix- like operating system initially developed for educational purposes. Because of its relative simplicity and ample documentation, its creator says that a few months studying the source code should teach you most of how things work. (It inspired Linus Torvalds to create Linux.) Versions 1 and 2 serve primarily as training examples, but version 3 has also become useful in its own right, intended for highly reliable uses on low-end 386-level hardware. Figure 16– Minix OS logo MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING LESSON 04.18 OVERVIEW ON PROGRAMMING LANGUAGES Nowadays, numerous programming languages are becoming easier to understand and can use in general, but they have their specialties and have their advantages and disadvantages. Programming languages can be classified into a few types, and these languages support multiple programming styles. Every year several programming languages are implemented, but few languages are becoming more popular than the others, which may be used by a professional programmer in their career. Programming languages are used to control the performance of the computer or machine. A computer programmer has many choices to choose from, but there are many differences between programming languages. This module gives brief information regarding the different types of programming languages and the differences between programming languages. Programming Language A programming language is a notation designed to connect instructions to a machine or a computer. Programming languages are mainly used to control the performance of a device or to express algorithms. In today's time, thousands of programming languages have been implemented. Many languages need to be stated in the computer field in an imperative form, while other programming languages utilize a declarative way. The program can be divided into two structures, such as syntax and semantics. Some languages are defined by a SO standard like C language. Figure 17 – Types of Programming Languages Types of Programming Languages The different types of programming languages are shown on the figure, enumerated, and differentiated. 1. Procedural Programming Language MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING The procedural programming language is used to execute a sequence of statements that lead to a result. Typically, this type of programming language uses multiple variables, heavy loops, and other elements, separating them from functional programming languages. Functions of procedural language may control variables other than the function's value returns. Examples include printing out information. 2. Functional Programming Language Functional programming language typically uses stored data, frequently avoiding loops in favor of recursive functions. The functional programing's primary focus is on the return values of functions, and side effects and different suggests that storing state is powerfully discouraged. For example, in an exceedingly pure useful language, if a function is termed, it's expected that the function does not modify or perform any o/p. It may, however, build algorithmic calls and alter the parameters of these calls. Functional languages are usually easier and build it more comfortable to figure on abstract issues. However, they'll even be "further from the machine" therein their programming model makes it difficult to know precisely. Still, the code is decoded into machine language (which is often problematic for system programming). 3. Object-oriented Programming Language This programming language views the world as a group of objects with internal data and external accessing parts of that data. This programming language aims to think about the fault by separating it into a collection of objects that offer services that can be used to solve a specific problem. One of the main principles of an object-oriented programming language is an encapsulation that everything an object needs must be inside the object. This language also emphasizes reusability through inheritance and the capacity to spread current implementations without changing a great deal of code by using polymorphism. 4. Scripting Programming Language These programming languages are often procedural and may comprise object- oriented language elements. Still, they fall into their category as they usually are not full- fledged programming languages with support for large systems development. For example, they may not have compile-time type checking. Usually, these languages require tiny syntax to get started. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING 5. Logic Programming Language These languages let programmers make declarative statements and then allow the machine to reason about the consequences of those statements. This language does not tell the computer how to do something but employing restrictions on what it must consider doing. To call these groups" types of language" is a bit confusing. It is easy to program in an object-oriented style in C language. The truth is most of the languages include ideas and features from various domains, which only help to increase the usefulness of these types of languages. Nevertheless, most of the programming languages do not work best in all styles of programming. The Most Popular Programming Languages 1. JavaScript ▪ JavaScript is one of the most popular programming languages in the world. ▪ Created in 1995 ▪ Being the first - and the only - scripting language that was supported natively by web browsers. Figure 18– JavaScript logo ▪ In today's time, it was mainly used for fancy animations and the marvel known as DHTML. ▪ JavaScript is now widely used also outside of the browser. In the last few years, the rise of Node.js unlocked back-end development, once the domain of Java, Ruby, Python, and PHP, and more traditional server-side languages. ▪ JavaScript is now the language powering databases and many more applications, and it is even possible to develop embedded applications, mobile apps, TV sets apps, and much more. It is now the most popular language in the world. JavaScript is a programming language that is: High Level. It provides abstractions that allow you to ignore the details of the machine where it's running on. It manages memory automatically with a garbage collector, so you can focus on the code instead of managing memory locations. It provides many constructs that allow you to deal with highly powerful variables and objects. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING Dynamic. Opposed to static programming languages, a dynamic language executes at runtime many of the things that a static language does at compile time. A dynamic language has pros and cons, and it gives us powerful features like dynamic typing, late binding, reflection, functional programming, object runtime alteration, closures, and much more. They are dynamically typed. A variable does not enforce a type. You can reassign any kind to a variable, for example assigning an integer to a variable that holds a string. Weakly typed. As opposed to strong typing, weakly (or loosely) typed languages do not enforce the type of an object, allowing more flexibility but denying us type safety and type checking (Typescript and Flow aim to improve) Interpretable. It is commonly known as an interpreted language, which means that it does not need a compilation stage before a program can run instead of C, Java, or Go, for example. In practice, browsers compile JavaScript before executing it, for performance reasons, but this is transparent to you: there is no additional step involved. Multi-paradigm. Unlike Java, the language does not enforce any programming paradigm, for example, which forces object-oriented programming, or C that causes imperative programming. You can write JavaScript using an object- oriented paradigm, using prototypes and the new (as of ES6) classes syntax. You can write JavaScript in a functional programming style, with its first-class functions, or even in an imperative style (C-like). 2. PHP: Hypertext Preprocessor ▪ It has an acronym for "PHP: Hypertext Preprocessor." ▪ It is a widely used, open-source scripting language. ▪ Scripts are executed on the server. ▪ Free to download and use (official PHP Figure 19– PHP logo resource: www.php.net). ▪ Runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.). PHP can do: ▪ It can generate dynamic page content. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING ▪ It can create, open, read, write, delete, and close files on the server. ▪ It can collect form data. ▪ It can send and receive cookies. ▪ It can add, delete, and modify data in your database. ▪ It can be used to control user access. ▪ It can encrypt data. With PHP, it is not limited to output HTML. You can output images, PDF files, and flash movies. You can also output any text, such as XHTML and XML. FUN FACT There are new features and functions in PHP 7. These are enumerated as follows: ▪ It is much faster than the previous popular stable release (PHP 5.6). ▪ It has improved Error Handling. ▪ It supports stricter Type Declarations for function arguments. ▪ It supports new operators (like the spaceship operator: ). 3. Python ▪ A popular programming language. ▪ It was created by Guido van Rossum and released in 1991. ▪ It works on different platforms (Windows, Figure 20 – Python icon Mac, Linux, Raspberry Pi, etc.). ▪ It has a simple syntax like the English language. ▪ Has syntax that allows developers to write programs with fewer lines than some other programming languages. ▪ It runs on an interpreter system, meaning that code can be executed as soon as it is written. ▪ It can be treated in a procedural way, an object-orientated way, or a functional way. Python is used for: ▪ Web development (server-side) ▪ Software development ▪ Mathematics ▪ System scripting MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING Python can do: ▪ It can be used on a server to create web applications. ▪ It can be used alongside software to create workflows. ▪ It can connect to database systems. It can also read and modify files. ▪ It can be used to handle big data and perform complex mathematics. ▪ It can be used for rapid prototyping or production-ready software development. Python Syntax compared to other programming languages ▪ Python was designed for readability and had some similarities to the English language with influence from mathematics. ▪ Python uses new lines to complete a command instead of other programming languages that often use semicolons or parentheses. ▪ Python relies on indentation, using whitespace, to define the scope, such as loops, functions, and classes. Other programming languages often use curly brackets for this purpose. 4. C#: C-Sharp ▪ C# pronounced as "C-Sharp." ▪ It is an object-oriented programming language created by Microsoft that runs on the.NET Framework. ▪ It has roots from the C family, and the language is close to other popular languages like C++ and Java. ▪ The first version was released in the Figure 21– C# year 2002. ▪ The latest version, C# 8, was released in September 2019. C# is used for: ▪ Mobile applications ▪ Desktop applications ▪ Web applications ▪ Web services ▪ Web sites ▪ Games ▪ Virtual Reality ▪ Database applications MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING Why use C#? ▪ It is one of the most popular programming languages in the world. ▪ It is easy to learn and simple to use. ▪ It has vast community support. ▪ C# is an object-oriented language that gives a clear structure to programs and allows code to be reused, lowering development costs. ▪ C# is close to C, C++, and Java, making it easy for programmers to switch to C# or vice versa. FUN FACT ▪ C# and C++ have similar codes. However, C# is much newer to the game. ▪ C# and C++ are object-oriented languages, but C++ is considered a more challenging language to work with. ▪ C# and C++ can be used in web and desktop applications, although C# is much more popular now for both applications. 5. CSS: Cascading Style Sheets ▪ It stands for Cascading Style Sheets ▪ It describes how HTML elements are to be displayed on a screen, paper, or in other media ▪ It saves a lot of work. It can control the layout of multiple web pages all at once ▪ External stylesheets are stored in CSS files, and you can change the look of an entire website by changing just one file. Why use CSS? CSS is used to define your web pages' styles, including design, layout, variations in display for different devices, and screen size. MS. DEO STEPHANIE R. ANGELES MAT 102: FUNDAMENTALS OF COMPUTING

Use Quizgecko on...
Browser
Browser