不同应用领域的主流操作系统

l  桌面操作系统

l  服务器操作系统

l  嵌入式操作系统

l  移动设备操作系统

桌面操作系统

Windows系列

用户群体很大

MacOS

适合于开发人员

Linux

应用软件比较少

服务器操作系统

所谓的服务器就是一台电脑。

Linux

安全、稳定、免费

占有率高

windows Server

付费

占有率低

嵌入式操作系统EOS

嵌入式实时操作系统µC/OS-II、嵌入式Linux、Windows Embedded、VxWorks等。以及应用在智能手机和平板电脑的Android、iOS等。

系统内核小

专用性强

高实时性

系统精简

移动设备操作系统

IOS、Android(基于Linux)

操作系统(Operation System,OS)?

操作系统作为接口的示意图:

没有安装操作系统的计算机,叫做裸机。

如果想要在计算机上裸机上运行自己所编写的程序,就必须使用机器语言书写程序。

如果计算机上已经安装了操作系统,就可以再操作系统上安装支持的高级语言环境,用高级语言开发程序。

操作系统发展史

Unix

1965年之前的时候波,电脑并不是像现在普遍,不是常人能够用得起的。只有军用或者是学院的研究机构才有。而且大型机的主机至多能够提供0太终端连接一台电脑。

为了解决输了不够用的问题

1965年后由贝尔实验室加入了麻省理工学院以及通用电气合作的计划————该计划要建立一套多食用者(Multi-user)、多任务(multi-processor)、多层次(multi-level)的MULTICS操作系统,想让大型主机支持300台终端。

1969年前后项目进度缓慢,资金短缺,贝尔实验室退出了研究。

1969从这个项目中退出的Ken Thompson当时再实验室无聊时,为了让一台空闲的电脑上运行星际旅行游行,在8月份左右趁着妻子探亲期间,用了一个月的时间,使用汇编语言写出了Unix操作系统的原型。

1970年,美国贝尔实验室的Ken Thompson,一BCPL语言为基础,设计出了简单而且很接近硬件的B语言(取BCPL的首字母),并且使用B语言写了第一个Unix操作系统。

1971年,同样酷爱星际旅行的Dennis M·Ritchie为了能够早点玩上游戏,加入了Thompson的开发项目中,合作开发UNIX,由于B语言的跨平台性较差,主要工作就是改造B语言。

1972年,Dennis M·Retchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为语言名字,就是所谓的C语言。

1973年初,C语言的主体完成,Thompson和Ritchie迫不及待地开始用它完全重写了UNIX操作系统。

C语言

在把Unix移植到其他类型的计算机上使用时,C语言强大的移植性(Portability)由此得到显现。

机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha、SPARC和ARM等机器上运行。

而C语言程序时可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码、连接成目标二进制文件之后即可运行。

Unix家谱

1.MInix

因为AT&T(通用电气)的政策改变,在version 7 Unix推出之后,发布的使用条款,将UNIX源代码私有化,在大学中不再使用UNIX源代码。

Andrew S·Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运行的细节,决定在不使用任何AT&T的源代码的前提下,自行开发了与UNIX兼容的操作系统,以避免版权上的争议。

以小型UNIX(mini-UNIX),将它称为MINIX。

2.Linux

1991年林纳斯(Linus)就读于赫尔辛基大学期间,对UNIX产生浓厚的兴趣,尝试着在Minix上做一些工作。

因为在Minix只是教学使用,因此功能并不强,Linus经常要他的终端仿真器(Terminal Emulator)取访问大学上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些候来成为了Linux第一个内核的雏形,当时,年仅21岁。

Linus利用了GNU的bash当作开发环境,gcc当作编译工具,编写了Linux内核,一开始Linux并不能兼容Unix。

即Unix上运行的应用程序并不能在Linux上运行,即应用程序与内核之间的接口不一致。

一开始Linux只适用于386,候来经过世界开发者的帮助,最终能够兼容多种硬件。

Linux内核及发行版

Linux内核版本

内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。

linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环。

稳定版:具有工业级强度,可以广泛地应用和部署,新的稳定版相对于较旧地只是修正一些bug或者加入了一些新的驱动程序。

开发版:由于要适应各种解决方案,所以变化很快。

Linux发行版

Linux发行版(也被叫做GNU/Linux发行版),通常包含了桌面环境、办公套件、媒体播放器、数据库等应用软件。

常见地发行版有:

Ubuntu

Redhat

Fedora

OpenSUSE

Linux Mint

Debian

Manjaro

Mageia

Cantos

Arch

在几乎每一份与Linux有关地榜单上,基于Debian地Ubuntu都占有一席之地。

python基础——操作系统简介的更多相关文章

  1. Python基础一. 简介、变量、对象及引用

    一.Python简介 Python是一门计算机编程语言,它是由荷兰人Guido van Rossum在1989年圣诞节期间为了打发无聊的圣诞节而编写的,作为ABC语言的继承 特性: 面向对象.解释型. ...

  2. Python基础之简介

    参考原文 廖雪峰Python教程 什么是Python? Python是一种计算机程序设计语言,又被称为胶水语言,它是高级的编程语言. Python能干什么? 网站后端程序员.自动化运维.数据分析师.游 ...

  3. python基础班-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python基础班-淘宝-目录.txt│ ├─1-1 Linux基础│ ├─01-课程简介│ │ 01-课程 ...

  4. Python基础之路

    一.Python基础之简介 二.Python基础之数据类型 三.Python之运算符 三.Python变量 四.Python之流程控制 三.Python基础之函数 四.Python基础之面向对象

  5. python基础认识

    Python基础 一.    简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.豆瓣,Google.Yahoo等,甚至 ...

  6. 第一、二章——Python简介与Python基础

    前言:<Data Wrangling with Python>这本书主要是讲使用Pyhon来处理各种类型保存的数据的. 第一章:Python简介 1.版本选择 本书选择的Python版本是 ...

  7. python基础1 ---python简介

    python基础 一.python前言 1.什么是编程语言 编程语言是程序员与计算机之间沟通的介质. 2.编程语言的分类 机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集 ...

  8. Python运维开发基础-概述-简介

    Python基础知识分为以下几块 1.Python概述 2.基础语法 3.数据结构 4.Python进阶 5.实训案例 一.Python概述 1.Python简介 2.Hello World 3.搭建 ...

  9. Linux从入门到放弃、零基础入门Linux(第一篇):计算机操作系统简介、linux介绍

    一.计算机操作系统简介 操作系统的定义: 操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. 操作系统的内核的定义: 操作系统的内核是一个管理和控制程序,负责 ...

随机推荐

  1. 【Ubuntu】执行定时任务(cron)

    1.打开定时任务配置文件 crontab -e 2.编写定时任务时间 命令和脚本例如: /3 * * * * /soft/config/test.sh 前5个字段为时间,后面的一个为命令 前5个含义为 ...

  2. ECharts概念学习系列之ECharts官网教程之自定义构建 ECharts(图文详解)

    不多说,直接上干货! 官网 http://echarts.baidu.com/tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%2 ...

  3. Hadoop Hive概念学习系列之hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建(五)

     说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. 以 ...

  4. 多线程编程(二)-Exchanger的使用

    Exchanger的介绍 类Exchanger的功能可以使两个线程之间传输数据. 方法exchange()的使用 package com.wjg.unit; import java.util.conc ...

  5. FocusBI: 《DW/BI项目管理》之数据库表结构 (原创)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...

  6. SQL语句的增删改查(详细)

    摘录自:http://blog.csdn.net/a88055517/article/details/6736284 一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [in ...

  7. i.mx6 Android5.1.1 系统属性

    属性变更的请求时init事件循环处理的另一个事件,在Android平台中,为了让运行中的所有进程共享系统运行时所需要的各种设置值,系统开辟了属性存储区域,并提供了访问该区域的API.属性由键(key) ...

  8. c#删除list中的元素

    public static void TestRemove() { string[] str = { "1", "2", "d", &quo ...

  9. 【angular5 项目积累总结】项目公共样式

    main.css @font-face { font-family: 'wf_segoe-ui_normal'; src: local('Segoe UI'),url('../fonts/segoe- ...

  10. [译]用R语言做挖掘数据《五》

    介绍 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: 1. ...