最近刚开始入门Linux,碰巧有小姐姐提供入门学习的资源,听了听,发现这个老师讲得确实很细致,适合我这种入门小白,所以这次整理一下听课笔记,也希望为想要入门Linux的小伙伴儿提供一点帮助!
操作系统
操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
上面给出的是操作系统的官方定义,简单来说,操作系统就是为用户提供了一个利用计算机硬件为自己工作的一个工具。
没有安装操作系统的计算机,叫做裸机。
操作提供为计算机硬件和用户之间建立了沟通的桥梁。
如果想在裸机上运行自己编写的程序,就必须用机器语言(即,0和1)书写程序,控制计算机硬件的运行。
下面是操作系统作为接口的一个示意图:
操作系统负责把对硬件的控制封装成了一个个的系统调用(所谓系统调用,即控制硬件的方法)
操作系统的两个作用:
- 对不同的硬件进行控制
- 将硬件的操作方法封装成一个个的系统调用,供程序员进行开发使用
举例:用户利用电脑播放音乐
在有操作系统的情况下,用户可以:
- 下载音乐播放软件
- 打开软件,点击播放
在没有操作系统的情况下:
- 先把存放在硬盘上歌曲文件从硬盘加载到内存
- 使用声卡对音频文件数据进行解码
- 让声卡将解码后的数据发送给音响进行播放
这是用户通过应用程序来进行系统调用,进而通过操作系统来控制计算机硬件来为自己服务。另外,从图中我们还可以看出,用户可以直接通过终端命令来利用系统调用,进而控制计算机为自己服务。
不同应用领域的主流操作系统
桌面操作系统
- windows系列
优点:用户群体大,应用软件多
缺点:安全性和稳定性较差 - MacOS
优点:适合于开发人员 - Linux
优点:安全性和稳定性较高,常用于服务器操作系统和嵌入式操作系统
缺点:应用软件少
服务器操作系统
服务器就是一台性能更强的电脑
- Linux
优点:安全、稳定、免费、占有率高、提供的相关配套服务器软件非常多
利用python开发web服务器,大多选择Linux服务器 - windows server
缺点:占有率低
日常维护服务器,是通过远程操作进行的
嵌入式操作系统
- Linux
移动设备操作系统
- iOS
- Android(基于Linux)
虚拟机
- 虚拟机是指通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统
- 虚拟系统通过生成现有操作系统的全新虚拟镜像,具有真实操作系统完全一样的功能
- 进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面运行,可以独立安装运行软件,保存数量,拥有自己的独立桌面,不会对真正的系统产生任何影响
- 而且能够在现有操作系统与虚拟镜像之间灵活切换的一类操作系统
操作系统的发展史
1.1、Unix
- 1965年时,贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT)合作的计划;该计划要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS操作系统。
- 直到1969年,因MULTICS计划的工作进度太慢,该计划被停了下来。
- 1969年,从这个操作系统开发项目中退出到的贝尔实验室的Ken Thompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行星际旅行这个游戏,在八月份左右趁着妻子和孩子探亲的时间,用了一个月的时间,使用汇编语言写出了Unix操作系统的原型。
- 1970年,美国贝尔实验室的Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言,并且用B语言写了第一个Unix操作系统。
- 1971年,同样酷爱星际旅行游戏的Dennis Ritchie为了能更快的玩上游戏,加入了Unix系统的开发项目,为了解决B语言的跨平台性差的缺陷,他对B语言开始改造
- 1972年,Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,就是现在的C语言。
- 1973年,C语言的主体完成,Ken Thompson和Dennis Ritchie迫不及待地开始用它完全重新写了现在大名鼎鼎的Unix操作系统。
1.2 Minix
- 因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将Unix源代码私有化,在大学中不再能使用Unix源代码。
- Andrew S.Tanenbaum教授为了能在课堂上教授学生操作系统运行的细节,决定再不使用任何AT&T的源代码前提下,自行开发与Unix兼容的操作系统,以避免版权上的争议。
- 以小型Unix之意,将它称为Minix。
1.3 Linux
- 1991年,林纳斯(Linus)就读于赫尔辛基大学期间,对Unix产生浓厚兴趣,尝试着在minix上做一些开发工作。
- 因为minix只是教学使用,因此功能并不强,林纳斯经常要用他的终端仿真器去访问大嘴主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了Linux第一个内核的雏形,当时,他年仅21岁!
- 林纳斯利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核,一开始Linux并不能兼容Unix。
- 即,Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致。
- 一开始Linux只适用386,后来经过全世界的网友的帮助,最终能够兼容多种硬件。
Linux的内核版和发行版
- Linux内核版本:用于管理计算机的硬件
- Linux内核包括系统调用和终端命令,通过终端命令来对系统调用进行操作,进而控制计算机硬件。
- Linux发行版是在Linux内核的基础上,开发一系列的应用程序,图形界面等程序。
- 内核是系统的心脏,是运行程序和管理像磁盘和打印机及等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层
- Linux内核版又分为稳定版和开发版,两种版本相互关联,相互循环。
- 稳定版:具有工业级强度,可以广泛地应用和部署,新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。
- 开发版:由于要实验各种解决方案,所以变化很快。
Linux发行版本
- Linux发行版(也被叫做GNU/Linux发行版)通常包括了桌面环境,办公软件,媒体播放器,数据库等应用软件。
- 常见的发行版本有:Ubuntu,Redhat,CentOS,Debian等
Linux的发行版有很多,Linux的内核只有一个,所有的发行版都是基于Linux的内核的基础上开发出来的一套应用程序。
Linux系统下的文件目录结构
- 单用户操作系统和多用户操作系统
- 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源。
- windows XP之前的版本都是单用户操作系统
- 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用系统的全部硬件和软件资源。
- Unix和Linux的设计初衷就是多用户操作系统
windows和Linux文件系统区别
- windows下的文件系统
- 在windows下,打开“计算机”,我们看到的是一个个的驱动桥器盘符:
每个驱动器都有自己的根目录结构,这样就形成了多个树并列的情形,如图所示:
- 在windows下,打开“计算机”,我们看到的是一个个的驱动桥器盘符:
- Linux下的文件系统:
Ubuntu没有盘符的概念,只有一个根目录 /,所有的文件都在它下面:
Ubuntu的“计算机”界面:
这应该是我关于Linux的第一篇博客,接下来应该还会有很多关于Linux的博客,一边记录一边学习!
附上我个人的微信公众号二维码,里面会写一些我个人额感兴趣的非技术的内容,有兴趣的来关注一下一块玩耍呀!
更多推荐
操作系统入门详解以及Linux介绍
发布评论