Python基础到实战一飞冲天(一)--linux基础(一)
一、Python 基础到实战一飞冲天课程目录
1、课程清单
序号 | 内容 | 目标 |
---|---|---|
01 | Linux 基础 | 让大家对 Ubuntu 的使用从很 陌生 达到 灵活操作 |
02 | Python 基础 | 涵盖 Python 基础知识,让大家掌握基础的编程能力 |
03 | Python 面向对象 | 介绍 Python 的面相对象开发,为开发大型项目做好铺垫和准备 |
04 | 项目实战 | 应用基础班学习过的知识,编程实战,完成第一个 Python 项目 |
2、分享励志公式
二、python初体验
1、python体验1:自己每天进步0.01,计算一年后自己的进步空间。
2、python体验2:自己每天进步0.02,计算一年后自己的进步空间。
3、python体验3:如果自己学习三天打渔两天晒网(五天中有三天每天进步0.01,有两天每天退步0.01),计算自己的进步空间。
三、操作系统(Operation System,OS)
1、 操作系统作为接口的示意图
2、裸机:没有安装操作系统的计算机,通常被称为 裸机。
- 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序
- 如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序。
3、操作系统的作用
1)是现代计算机系统中 最基本和最重要 的系统软件。
2)是 配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展。
3)主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用。
4)而其他的诸如编译程序、数据库管理系统,以及大量的应用软件,都直接依赖于操作系统的支持。
四、不同领域的主流操作系统-01-桌面操作系统
1、不同应用领域的主流操作系统
1)桌面操作系统
2)服务器操作系统
3)嵌入式操作系统
4)移动设备操作系统
2、桌面操作系统
1)微软 Windows 系列
优点:应用软件多,使用方便,用户群体大。
缺点:安全性、稳定性差。
2)苹果 macOS
优点:基于linux系统,安全性、稳定性高于windows,适合于开发人员。
缺点:价格高,游戏娱乐体验差。
3)Linux
优点:安全性、稳定性好,适合于服务器和嵌入式领域。
缺点:应用软件少,用房群体少。
五、不同领域的主流操作系统-02-服务器操作系统
1、服务器操作系统:Linux
安全、稳定、免费
占有率高
2、服务器操作系统:Windows Server
付费
占有率低
六、不同领域的主流操作系统-03-嵌入式操作系统和移动操作系统
1、嵌入式操作系统(Embedded Operating System,简称:EOS)
1)EOS特点:系统内核小、专用性强、高实时性和多任务。
2)EOS通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
3)在嵌入式领域广泛使用的操作系统有:
嵌入式实时操作系统µC/OS-II、嵌入式Linux、Windows Embedded、VxWorks、Intewell操作系统]等。
4)应用在智能手机和平板电脑的Android、iOS、华为鸿蒙等。
2、移动设备操作系统
Google的Android(基于 Linux)
苹果公司的iOS
华为公司的Harmony OS
七、虚拟机简介
1、什么是虚拟机?
虚拟机(Virtual Machine):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
2、虚拟机的作用和优势是什么?
1)虚拟机上可以安装虚拟操作系统。虚拟系统通过生成现有操作系统的全新虚拟镜像,具有真实操作系统完全一样的功能。
2)进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响。
3)虚拟机上能够在现有系统与虚拟镜像之间灵活切换操作系统。
八、操作系统发展简史
1、 Unix
1965 年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑
为了解决数量不够用的问题
1) 1965 年左后由 贝尔实验室 加入了 麻省理工学院 以及 通用电气 合作的计划 ------ 该计划要建立一套 多使用者(multi-user) 、多任务(multi-processor) 、多层次(multi-level) 的 MULTICS 操作系统,想让大型主机支持 300 台终端。
2) 1969 年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究。
3)1969 年从这个项目中退出的 Ken Thompson 当时在实验室无聊时,为了让一台空闲的电脑上能够运行 "星际旅行(Space Travel)" 游戏,在 8 月份左右趁着其妻子探亲的时间,用了 1 个月的时间,使用汇编写出了 Unix 操作系统的原型。
4)1970 年,美国贝尔实验室的 Ken Thompson ,以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言 (取BCPL的首字母),并且他用 B 语言 写了第一个 UNIX 操作系统。
5) 1971 年,同样酷爱 "星际旅行(Space Travel)" 的 Dennis M.Ritchie 为了能早点儿玩上游戏,加入了 Thompson 的开发项目,合作开发 UNIX,他的主要工作是改造 B 语言 ,因为B 语言 的跨平台性较差。
6)1972 年,Dennis M.Ritchie 在 B 语言 的基础上最终设计出了一种新的语言,他取了 BCPL 的第二个字母作为这种语言的名字,这就是 C 语言。
7) 1973 年初,C 语言 的主体完成,Thompson 和 Ritchie 迫不及待地开始用它完全重写了现在大名鼎鼎的 Unix 操作系统。
肯•汤普逊(左)和丹尼斯•里奇(右)
2、 C 语言
1)在把 UNIX 移植到其他类型的计算机上使用时,C 语言强大的移植性(Portability)在此显现。
2)机器语言和汇编语言都不具有移植性,为 x86 开发的程序,不可能在 Alpha,SPARC 和 ARM 等机器上运行。
3)而 C 语言 程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的 C 语言编译器和库,然后将 C 源代码编译、连接成目标二进制文件之后即可运行。
3、 Unix 家谱
4、Minix
1)因为 AT&T(通用电气) 的政策改变,在 Version 7 Unix 推出之后,发布新的使用条款,将 UNIX 源代码私有化,在大学中不再能使用 UNIX 源代码。
2)Andrew S. Tanenbaum(塔能鲍姆) 教授为了能 在课堂上教授学生操作系统运作的细节,决定在不使用任何 AT&T 的源代码前提下,自行开发与 UNIX 兼容的操作系统,以避免版权上的争议。
3)以 **小型 UNIX(mini-UNIX)**之意,将它称为 MINIX。
5、 Linux
1)1991 年 林纳斯(Linus) 就读于赫尔辛基大学期间,对 Unix 产生浓厚兴趣,尝试着在Minix 上做一些开发工作。
2)因为 Minix 只是教学使用,因此功能并不强,林纳斯 经常要用他的终端 仿真器(Terminal Emulator) 去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形,当时,他年仅 21 岁!
3)林纳斯 利用 GNU 的 bash 当做开发环境,gcc 当做编译工具,编写了 Linux 内核,一开始 Linux 并不能兼容 Unix。
4)即 Unix 上跑的应用程序不能在 Linux 上跑,即应用程序与内核之间的接口不一致。
5)一开始 Linux 只适用于 386,后来经过全世界的网友的帮助,最终能够兼容多种硬件。
九、Linux的内核版和发行版
1、Linux 内核版本
1)**内核(kernel)**是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。
2)Linux 内核版本又分为 稳定版 和 开发版,两种版本是相互关联,相互循环。
3)稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些 bug 或加入一些新的驱动程序。
4)开发版:由于要试验各种解决方案,所以变化很快。
5)内核源码网址:http://www.kernel.org
所有来自全世界的对 Linux 源码的修改最终都会汇总到这个网站,由 Linus 领导的开源社区对其进行甄别和修改最终决定是否进入到 Linux 主线内核源码中
2、Linux 发行版本
1)**Linux 发行版(也被叫做 GNU/Linux 发行版)**通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。
2)常见的发行版本如下:
* Ubuntu
* Redhat
* Fedora
* openSUSE
* Linux Mint
* Debian
* Manjaro
* Mageia
* CentOS
* Arch
3)十大 Linux 服务器发行版排行榜:http://os.51cto.com/art/201612/526126.htm
在几乎每一份与 Linux 有关的榜单上,基于 Debian 的 Ubuntu 都占有一席之位。Canonical 的Ubuntu 胜过其他所有的 Linux 服务器发行版 ―― 从简单安装、出色的硬件发现,到世界级的商业支持,Ubuntu确立了难以企及的严格标准。
3、Linux 的应用领域
1)服务器领域
- Linux 在服务器领域的应用是其重要分支。
- Linux 免费、稳定、高效等特点在这里得到了很好的体现。
- 早期因为维护、运行等原因同样受到了很大的限制。
- 近些年来 Linux 服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛。
2)嵌入式领域
- 近些年来 Linux 在嵌入式领域的应用得到了飞速的提高。
- Linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高。
主要应用:机顶盒 、数字电视 、网络电话 、程控交换机 、手机 、PDA、等都是其应用领域,得到了 Google、三星、摩托罗拉、NEC 等公司的大力推广。
3)个人桌面领域
- 此领域是传统 Linux 应用最薄弱的环节。
- 传统 Linux 由于界面简单、操作复杂、应用软件少的缺点,一直被 Windows 所压制。
- 近些年来随着 Ubuntu 、Fedora 等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,Linux 在个人桌面领域的占有率在逐渐的提高。
在 Ubuntu 中玩 QQ
十、Linux系统下的文件目录结构
1、单用户操作系统和多用户操作系统(科普)
1)单用户操作系统:
指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源。
* Windows XP 之前的版本都是单用户操作系统。
2)多用户操作系统:
指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源
* Unix 和 Linux 的设计初衷就是多用户操作系统。
2、 Windows
和 Linux
文件系统区别
1) Windows
下的文件系统
- 在
Windows
下,打开 "计算机",我们看到的是一个个的驱动器盘符:
- 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:
2) Linux
下的文件系统
- 在
Linux
下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):
Ubuntu
没有盘符这个概念,只有一个根目录/
,所有文件都在它下面