When describing the macOS interface you tell her that she can use the

operating system (OS), program that manages a computer’s resources, especially the allocation of those resources among other programs. Typical resources include the central processing unit (CPU), computer memory, file storage, input/output (I/O) devices, and network connections. Management tasks include scheduling resource use to avoid conflicts and interference between programs. Unlike most programs, which complete a task and terminate, an operating system runs indefinitely and terminates only when the computer is turned off.

Modern multiprocessing operating systems allow many processes to be active, where each process is a “thread” of computation being used to execute a program. One form of multiprocessing is called time-sharing, which lets many users share computer access by rapidly switching between them. Time-sharing must guard against interference between users’ programs, and most systems use virtual memory, in which the memory, or “address space,” used by a program may reside in secondary memory (such as on a magnetic hard disk drive) when not in immediate use, to be swapped back to occupy the faster main computer memory on demand. This virtual memory both increases the address space available to a program and helps to prevent programs from interfering with each other, but it requires careful control by the operating system and a set of allocation tables to keep track of memory use. Perhaps the most delicate and critical task for a modern operating system is allocation of the CPU; each process is allowed to use the CPU for a limited time, which may be a fraction of a second, and then must give up control and become suspended until its next turn. Switching between processes must itself use the CPU while protecting all data of the processes.

When describing the macOS interface you tell her that she can use the

Computers and Operating Systems

How does the Internet move information between computers? What is the operating system made by Microsoft? Log into this quiz and test your knowledge of computers and operating systems.

The first digital computers had no operating systems. They ran one program at a time, which had command of all system resources, and a human operator would provide any special resources needed. The first operating systems were developed in the mid-1950s. These were small “supervisor programs” that provided basic I/O operations (such as controlling punch card readers and printers) and kept accounts of CPU usage for billing. Supervisor programs also provided multiprogramming capabilities to enable several programs to run at once. This was particularly important so that these early multimillion-dollar machines would not be idle during slow I/O operations.

Computers acquired more powerful operating systems in the 1960s with the emergence of time-sharing, which required a system to manage multiple users sharing CPU time and terminals. Two early time-sharing systems were CTSS (Compatible Time Sharing System), developed at the Massachusetts Institute of Technology, and the Dartmouth College Basic System, developed at Dartmouth College. Other multiprogrammed systems included Atlas, at the University of Manchester, England, and IBM’s OS/360, probably the most complex software package of the 1960s. After 1972 the Multics system for General Electric Co.’s GE 645 computer (and later for Honeywell Inc.’s computers) became the most sophisticated system, with most of the multiprogramming and time-sharing capabilities that later became standard.

The minicomputers of the 1970s had limited memory and required smaller operating systems. The most important operating system of that period was UNIX, developed by AT&T for large minicomputers as a simpler alternative to Multics. It became widely used in the 1980s, in part because it was free to universities and in part because it was designed with a set of tools that were powerful in the hands of skilled programmers. More recently, Linux, an open-source version of UNIX developed in part by a group led by Finnish computer science student Linus Torvalds and in part by a group led by American computer programmer Richard Stallman, has become popular on personal computers as well as on larger computers.

In addition to such general-purpose systems, special-purpose operating systems run on small computers that control assembly lines, aircraft, and even home appliances. They are real-time systems, designed to provide rapid response to sensors and to use their inputs to control machinery. Operating systems have also been developed for mobile devices such as smartphones and tablets. Apple Inc.’s iOS, which runs on iPhones and iPads, and Google Inc.’s Android are two prominent mobile operating systems.

Get a Britannica Premium subscription and gain access to exclusive content. Subscribe Now

From the standpoint of a user or an application program, an operating system provides services. Some of these are simple user commands like “dir”—show the files on a disk—while others are low-level “system calls” that a graphics program might use to display an image. In either case the operating system provides appropriate access to its objects, the tables of disk locations in one case and the routines to transfer data to the screen in the other. Some of its routines, those that manage the CPU and memory, are generally accessible only to other portions of the operating system.

Contemporary operating systems for personal computers commonly provide a graphical user interface (GUI). The GUI may be an intrinsic part of the system, as in the older versions of Apple’s Mac OS and Microsoft Corporation’s Windows OS; in others it is a set of programs that depend on an underlying system, as in the X Window system for UNIX and Apple’s Mac OS X.

Operating systems also provide network services and file-sharing capabilities—even the ability to share resources between systems of different types, such as Windows and UNIX. Such sharing has become feasible through the introduction of network protocols (communication rules) such as the Internet’s TCP/IP.

The AWS Command Line Interface (AWS CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts.

The AWS CLI v2 offers several new features including improved installers, new configuration options such as AWS IAM Identity Center (successor to AWS SSO), and various interactive features. 

When describing the macOS interface you tell her that she can use the

Getting Started »

When describing the macOS interface you tell her that she can use the

AWS CLI Reference »

When describing the macOS interface you tell her that she can use the

GitHub Project »

When describing the macOS interface you tell her that she can use the

Community
Forum »

Windows
Download and run the 64-bit Windows installer.

MacOS
Download and run the MacOS PKG installer.

Linux
Download, unzip, and then run the Linux installer

Amazon Linux
The AWS CLI comes pre-installed on Amazon Linux AMI.

Release Notes
Check out the Release Notes for more information on the latest version.

aws-shell is a command-line shell program that provides convenience and productivity features to help both new and advanced users of the AWS Command Line Interface. Key features include the following.

  • Fuzzy auto-completion for
    • Commands (e.g. ec2, describe-instances, sqs, create-queue)
    • Options (e.g. --instance-ids, --queue-url)
    • Resource identifiers (e.g. Amazon EC2 instance IDs, Amazon SQS queue URLs, Amazon SNS topic names)
  • Dynamic in-line documentation
    • Documentation for commands and options are displayed as you type
  • Execution of OS shell commands
    • Use common OS commands such as cat, ls, and cp and pipe inputs and outputs without leaving the shell
  • Export executed commands to a text editor

To find out more, check out the related blog post on the AWS Command Line Interface blog.

$ aws ec2 describe-instances

$ aws ec2 start-instances --instance-ids i-1348636c

$ aws sns publish --topic-arn arn:aws:sns:us-east-1:546419318123:OperationsError --message "Script Failure"

$ aws sqs receive-message --queue-url https://queue.amazonaws.com/546419318123/Test

You can get help on the command line to see the supported services,

the operations for a service,

and the parameters for a service operation.

$ aws autoscaling create-auto-scaling-group help

New file commands make it easy to manage your Amazon S3 objects. Using familiar syntax, you can view the contents of your S3 buckets in a directory-based listing.

$ aws s3 ls s3://mybucket

        LastWriteTime            Length Name

        ------------             ------ ----

                                PRE myfolder/

2013-09-03 10:00:00           1234 myfile.txt

You can perform recursive uploads and downloads of multiple files in a single folder-level command. The AWS CLI will run these transfers in parallel for increased performance.

$ aws s3 cp myfolder s3://mybucket/myfolder --recursive

upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt

upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt

A sync command makes it easy to synchronize the contents of a local folder with a copy in an S3 bucket.

$ aws s3 sync myfolder s3://mybucket/myfolder --exclude *.tmp

upload: myfolder/newfile.txt to s3://mybucket/myfolder/newfile.txt

See the AWS CLI command reference for the full list of supported services.