Difference between revisions of "DistOS 2014W Lecture 1"

From Soma-notes
Jump to navigation Jump to search
(Rough Draft of notes. Will clean up)
 
(cleanup)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
What is an OS?
== What is an Operating System? ==
* Hardware abstraction
* Consistent execution environment (think portable code)
* manages I/O
* Resource management/Multiplexion


Really, the answer is resource management and abstractions. Turns hardware into
In general, an OS allows you to run the same applications on (slightly) different hardware. Here are a few thoughts on what the responsibilities and functionality are of modern operating systems, and what we expect from something calling itself an OS:
the computer/api you WANT to program. It is more about the role it plays in the
* A hardware abstraction layer such that diverse hardware resources can be accessed uniformly by software
programming of systems.
* A consistent execution environment, which hardware doesn't provide (ie. code written to interface &emdash; think portable code)
* Management of I/O (such as user I/O, machine I/O i.e. network I/O, sensors, videos, etc.)
* Resource management through multiplexing and policy use
** Multiplexing (sharing): one resource wanted by multiple users
* Communication infrastructure (for example inter-process communication) between the users (process, applications) of the operating system.
* Management of synchronization and concurrency issues
 
We could also say that an OS turns the computer you have into the computer you want. An OS can be defined by the role it plays in the programming of systems. It takes care of resource management and creates abstraction. An OS turns hardware into the computer/API/interface we '''want''' to program.


This is similar to how the browser is becoming the OS of the web. The browser is
This is similar to how the browser is becoming the OS of the web. The browser is
the key abstraction needed to run web apps. It is the interface we target.
the key abstraction needed to run web apps. It is the interface web developers target.
 
It doesn't matter what you consume a given website on (eg. a phone, tablet,
 
etc.), the browser abstracts the device's hardware and OS away.
Distributed OS?
Anil prefers to think of this 'logically' than functionally/physically cause
systems today have multiple cores, distributed multiplet resources. "What's
running on your phone follows the D.O.S. model of the 80s".
 
But the tradition definition is .... Tradition TCP/IP definition ... LOOK UP
 
A lot of these definitions are hard to define because simplicity always gets in
the way of truth. These concepts to do fit into well defined classes.
 
Anil's defitinion: taking the distributed pieces of a system you have and
turning it into the system you WANT.


== What is a distributed OS? ==


Anil prefers to think of this 'logically' rather than functionally/physically.  This is
because the old distributed operating system (DOS) model applies to systems today which we
don't consider distributed (ie. managing multiple cores, etc). The traditional definition is systems that
manage their resources over a Network.


A lot of these definitions are hard to peg down because simplicity always gets in
the way of truth. These concepts to do not fit into well defined classes.


The traditional kernel-process model is a dictatorship. Authoritarian model of control. The kernel controls what lives or dies.
To draw parallels to our previous definition of operating systems, a distributed OS takes the distributed pieces of a system, and turn it into the system you want.
The internet, by contrast, is decentralised (eg. DNS)
Distributed systems may have distributed policies.


KEEP IN MIND THROUGOUT SEMESTER: Who's in control?
It is good to think about about DOSes within the context of who/what is in
control, in terms of who makes and enforces decisions in DOSes. In essence, who is in charge? The traditional kernel-process model is a dictatorship, an authoritarian
model of control. The kernel controls what lives or dies.  The internet, in contrast, is decentralised (eg. DNS&emdash;to some extent, ignoring centralized roots). Distributed systems may have distributed
policies where there is not one source of power. Even in DOS we see instances of authoritarian/centralized approaches one example being the walled garden model employed by Apple's iOS. Anil's observation is that centralized systems has an inherent fragility built into and these kind of systems come into existence and disappear after a while. Examples being AOL, Myspace. Even Facebook also looks to be a possible candidate for a similar fate. Also, concentrations on policy will tend to fall apart in the future.

Latest revision as of 13:59, 20 April 2014

What is an Operating System?

In general, an OS allows you to run the same applications on (slightly) different hardware. Here are a few thoughts on what the responsibilities and functionality are of modern operating systems, and what we expect from something calling itself an OS:

  • A hardware abstraction layer such that diverse hardware resources can be accessed uniformly by software
  • A consistent execution environment, which hardware doesn't provide (ie. code written to interface &emdash; think portable code)
  • Management of I/O (such as user I/O, machine I/O i.e. network I/O, sensors, videos, etc.)
  • Resource management through multiplexing and policy use
    • Multiplexing (sharing): one resource wanted by multiple users
  • Communication infrastructure (for example inter-process communication) between the users (process, applications) of the operating system.
  • Management of synchronization and concurrency issues

We could also say that an OS turns the computer you have into the computer you want. An OS can be defined by the role it plays in the programming of systems. It takes care of resource management and creates abstraction. An OS turns hardware into the computer/API/interface we want to program.

This is similar to how the browser is becoming the OS of the web. The browser is the key abstraction needed to run web apps. It is the interface web developers target. It doesn't matter what you consume a given website on (eg. a phone, tablet, etc.), the browser abstracts the device's hardware and OS away.

What is a distributed OS?

Anil prefers to think of this 'logically' rather than functionally/physically. This is because the old distributed operating system (DOS) model applies to systems today which we don't consider distributed (ie. managing multiple cores, etc). The traditional definition is systems that manage their resources over a Network.

A lot of these definitions are hard to peg down because simplicity always gets in the way of truth. These concepts to do not fit into well defined classes.

To draw parallels to our previous definition of operating systems, a distributed OS takes the distributed pieces of a system, and turn it into the system you want.

It is good to think about about DOSes within the context of who/what is in control, in terms of who makes and enforces decisions in DOSes. In essence, who is in charge? The traditional kernel-process model is a dictatorship, an authoritarian model of control. The kernel controls what lives or dies. The internet, in contrast, is decentralised (eg. DNS&emdash;to some extent, ignoring centralized roots). Distributed systems may have distributed policies where there is not one source of power. Even in DOS we see instances of authoritarian/centralized approaches one example being the walled garden model employed by Apple's iOS. Anil's observation is that centralized systems has an inherent fragility built into and these kind of systems come into existence and disappear after a while. Examples being AOL, Myspace. Even Facebook also looks to be a possible candidate for a similar fate. Also, concentrations on policy will tend to fall apart in the future.