Linux学习--第一天--什么是操作系统?

第一章 什么是Linux

1.1 什么是Linux

1.1.1 计算机:计算的辅助工具

计算机必须要有的组件:

输入单元:如鼠标、键盘、卡片阅读器机,等等。

中央处理器(CPU):含有算术逻辑、控制、记忆等单元。

输入单元:如屏幕、打印机等。

“比较完整的操作系统”应该包含两个组件,一个是“核心与其提供的接口工具

”,另一个是“利用核心提供的接口工具所开发的软件

”。

整个硬件是由核心

来管理的,如果核心不能识别硬件,那么将无法使用该硬件设备。

从定义来看,只要能让计算机硬件正确地运行,就算是操作系统了。所以,操作系统其实就是核心与其提供的接口工具。如上所述,因为最基本的核心缺乏与用户沟通的友好界面,所以在目前,一般提到的操作系统,都会包含核心与相关的用户应用软件。

核心就是“Kernel”,它是操作系统最底层的东西,每个操作系统都有自己的核心,由它来掌管整个硬件资源的工作状态。

核心为了实现用户所需要的正确运算结果,必须要管理的事项有以下几项:

系统调用接口(System Call Interface)

:通过这个接口,程序开发人员可以轻松地与核心沟通,进一步利用硬件资源。

进程控制(Process Control)

:在多任务环境中,一台计算机可能同时有很多的作业等待CPU运算处理,核心这时必须能够控制这些作业并有效地分配CPU的资源。

内存控制(Memory Management)

:控制整个系统的内存;如果内存不足,核心还能够提供虚拟内存的功能。

文件系统管理(File System Management)

:文件系统的管理,例如数据的输入/输出(I/O)及不同文件格式的支持等,如果核心不能识别某个文件系统,那么将无法使用该文件格式的文件。

设备驱动程序(Device Drivers)

:如上所述,硬件管理是核心的主要工作之一,当然,设备驱动程序就是核心需要做的事情。”可加载模块“功能可以将驱动程序编辑成模块,而不需要重新编译核心。

Linux由于是开放源代码的操作系统,所以其程序代码可以修改成合适在各种机器上运行,也就是说,Linux具有“可移植性”。

Thompson的这个文件系统有两个重要的概念:

所有程序或系统设备都是文件;

不管是创建编辑器,还是附属文件,所写的程序只有一个目的,而且要有效地完成目标。

计算机仅认识0/1数据,但人类不认识它们。人类对于纯文字的数据(就是所谓的ASCII文件格式)比较有感觉。但偏偏计算机又不认识ASCII格式文字。为此,就会有很多所谓的“编译器”来辅助我们编写程序。我们一般使用文字编辑器以ASCII纯文字格式来编写程序,在通过所谓的“编译器(compiler)”将刚刚完成的文本文件“编译”成为计算机认识的二进制文件(binary file),让计算机认识且可以执行程序。

为什么有时候我同时打开两个文件(如A文件和B文件)所花的时间,要比打开A文件后再打开B文件的时间还要多?因为如果同时打开的话,CPU就必须要在两个作业之间不停地切换,而切换的动作会耗去一些CPU时间。所以,在一个CPU上同时启动两个以上的作业,要比一个一个地执行还要耗时。这这是为什么现在CPU开发商要在一个芯片中整合两个CPU的原因,也是为什么在运行情况比较复杂的服务器上,需要比较多的CPU的原因。

要实现多任务(multitasking)环境,除了硬件(主要是CPU)具有多任务的特性外,操作系统也要支持这项功能。一些不具有多任务特性的操作系统,想要同时执行两个程序时不可能的。除非先执行的程序执行完毕,否则,后面的程序不可能主动执行。在多任务操作的系统中,每个程序执行时,都会有一个最大CPU使用时间;若该作业运行的时间超过这个CPU使用时间,就会取消其运行,而再度进入核心作业的任务分配中,等待下一次的CPU运行。这有点像在开记者会,主持人(CPU)会问“谁要发问?”一群记者(作业)就会举手,一般先举手的自然就先允许发问,之后,主持人又会问一次谁要发问,当然,所有人(包括刚刚那个记者)都可以举手。多任务环境对对于复杂的工作情况帮助很大。

1.2 Linux的特性

类UNIX可以说是目前服务器类型的操作系统的统称。因为不论是FreeBSD、BSSD、Sun UNIX、HP UNIX、Red Hat Linux、Mandrake Linux等,都是由同一祖先Thompson所编写的UNIX而来,因此,这些都是统称为类UNIX的操作系统。

1.2.1 Linux系统有如下特性

自由与开发

:由于Linux基于GPL(General Public License)架构,因此它是自由软件,即任何人都可以自由地使用或修改其中的源码。

配置要求低

:性能高。

功能强大而稳定

:Linux功能不比一些大型的UNIX工作站低。

独立工作

:Linux操作系统使用了很多软件套件,这些套件软件都在Linux操作系统上进行了开发与测试。

1.2.2 Linux的优点

稳定的系统

:Linux是基于UNIX概念而开发出来的操作系统,具有与UNIX系统相似的程序接口和操作方式,继承了UNIX稳定且有效率的特点。

免费或少许费用

:基于GPL基础的产物。

安全性、漏洞的快速修补

:开源。

多任务、多用户

:与Windows系统不同,Linux主机上可以同时允许多人上线工作,并且资源分配较为公平,比起Windows的单人、假多任务系统要稳定得多。这种多用户、多任务是类UNIX系统相当不错的功能。您可以在一个Linux主机上规划出不同等级的用户,而且每个用欧冠胡登录系统时的工作环境都可以不同。您还可以允许不同的用户在同一个时间登录主机,以便同时使用主机的资源。

用户与组的规划

:在Linux机器中,文件的属性可以分为”可读、可写、可执行“来定义一个文件的适用性,这些属性可以分为3个种类,分别是文件拥有者、文件所属用户组、其他非拥有者与用户组。这对于项目计划或则其他计划开发人员具有相当良好的系统保密性。

相对而言资源耗费较少

:性能好。

适合需要小核心程序的嵌入式系统

:Linux用很少的程序代码就可以实现一个完整的操作系统。

1.2.3 Linux还有待改进的地方

没有特定的支持厂商,图形界面还不够友好;

1.2.4 其他相关信息:

遵照标准

POSIX规范。Linux Standard Base(LSB),File system Hierarchy Standard(FHS)。

服务器、工作站、终端

服务器(Server)

:提供Internet一种以上网络服务的主机。

工作站(Workstation)

:工作站可以视为这样的机器,仅提供给一组特定人员进行数值分析、科学研究。当然,更广义的定义是,只要是没有对Internet提供网络服务的,那就是工作站。

终端(Terminal)

:简单而言,就是最终用户(end-user)的那台计算机。不过,更狭义地说,”终端“本身应该不具备任何可以工作的软件,终端一定要连上服务器之后,才能进行各项工作。

linux操作系统学什么,Linux学习-第一天-什么是操作系统相关推荐

  1. linux平台学x86汇编语言学习集合帖

    linux平台学x86汇编语言学习集合帖 linux平台学x86汇编(一):https://blog.csdn.net/shallnet/article/details/45543237 linux平 ...

  2. linux超算搭建教程,超算学习-第一周

    搭建linux环境 准备的软件: 1.虚拟软件:借助虚拟化软件,基于WINDOWS平台虚拟一个Linux的学习环境.采用Vmwre 2.2.Linux系统安装镜像文件:也就是Linux系统安装光盘.采 ...

  3. python适用的操作系统是什么_学习Python一般使用什么操作系统?

    随着编程语言的爆火,越来越多的人都想要转行学Python,而对于初入门Python的人来讲,刚开始学习会产生各种各样的疑问,比如学习Python一般使用什么操作系统?其实初入门Python对于系统的选 ...

  4. atop linux,每天学一个 Linux 命令(117):atop

    命令简介 atop 命令是一款监控 Linux 系统资源与进程的工具,非内部命令,需要安装.[root@centos7 ~]# atop -bash: atop: command not found ...

  5. 跟着学之网络学习第一课(笔记)

    一 WAN:广域网 LAN: 局域网 MAN: 城域网 WLAN:无线局域网 扁平化:小型,不易扩张 层次化:核心层,汇聚层,接入层 二 IP网络三大网:接入网 城域网 广域网 城域网包含核心层 汇聚 ...

  6. 红旗系统是不是linux,红旗linux操作系统是Linux吗?我想学习Linux,已经按完红旗的了、不知道是不是Linux,有没有被红旗改变过。还能按正常的方式学吗?...

    红旗linux操作系统是Linux吗?我想学习Linux,已经按完红旗的了.不知道是不是Linux,有没有被红旗改变过.还能按正常的方式学吗? 更新时间:2019-10-23 17:07 最满意答案 ...

  7. 学习Linux七(Linux必学60个命令之【系统管理】)

    Linux必学的系统管理命令 对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心.熟悉了Linux常用的文件处理命令 ...

  8. 【学点Linux】Linux该如何学习(新手入门必看)

    Linux该如何学习(新手入门必看) 文章目录 Linux该如何学习(新手入门必看) 如何去学习 碰到问题怎么办 英文读不懂怎么办 忘记Windows的思维方式 无意间在一处看到的,分享出来. 如何去 ...

  9. 《鸟哥的Linux私房菜》个人学习笔记-第一篇

    <鸟哥的Linux私房菜>个人学习笔记-基础篇 这是一篇一个linux菜鸡自学的笔记 csdn上的各位大手子们好,本人实习生一枚最近想自己深入学习下linux,所以在社区里发博客,希望能记 ...

最新文章

  1. LeetCode 75. Sort Colors--Python解法
  2. 我所理解的MVCMVPMVVM
  3. matlab腔内光子寿命,mcFORnp matlab环境下,利用蒙特卡洛模拟光子包在生物组织内的光路传输 271万源代码下载- www.pudn.com...
  4. 从oracle里面取直,45个非常有用的 Oracle 查询语句小结
  5. 湖北计算机技能高考专科学校排名,湖北2021年技能高考专科录取分数线
  6. Hadoop HA 深度解剖
  7. 移动前端适配方法总结
  8. 例子---PHP实现网页计数器
  9. 手机海报模板,收藏就对了!
  10. Quartz Job
  11. 7.1 php7.0 微擎_php7.1以上微擎-人人商城小程序授权登录问题
  12. 电脑网络经常断线是怎么回事?从这几个问题去下手
  13. 分治法解决赛程安排问题
  14. 转载 --史上最全数学符号、公式的英文读法,干货满满!
  15. 反恐精英系列《CS 2》将于今夏推出,在起源2的加持下视觉、玩法和环境效果可谓十分震撼
  16. python之字符串及操作相关知识
  17. MIoU(均交并比)的计算
  18. 2017夸专业计算机考研,2017跨专业考研有难度吗?
  19. Homekit智能家居DIY一智能插座
  20. linux检查邮件命令,linux下mail 邮件查看命令

热门文章

  1. 使用NetBeans Lambda支持在Java 8中使用Lambda表达式对列表进行排序
  2. Java – 2012年回顾和未来预测
  3. VisualVM:通过SSH监视远程JVM(是否为JMX)
  4. 与Maven 3,Failsafe和Cargo插件的集成测试
  5. 如果–否则为编码风格最佳实践
  6. html页面中Location对象跳转页面用法
  7. Linux 环境变量启动过程/配置文件的读取过程
  8. python使用elasticsearch_python中使用ElasticSearch(二)
  9. python条形堆积图_python – 使用DataFrame.plot显示堆积条形图中...
  10. java 对线程进行事务控制_Java 多线程事务回滚 ——多线程插入数据库时事务控制...