【Linux学习笔记】Day1

Part 1 Linux介绍

Df:Linux是一种广泛使用的操作系统。

人们说他们的计算机运行Linux通常指的是内核、工具和应用程序套件,它们捆绑在一起,被称为分布.

通常操作系统提供GUI和CLI界面。然而,大多数消费者操作系统(Windows、macOS)的设计都是为了保护用户免受复杂的CLI的影响。Linux社区是不同的,因为它积极地赞美CLI的力量、速度和用一条命令行指令完成大量任务的能力。

Part 2 操作系统

一个操作系统是在计算设备上运行的软件,它管理构成功能计算系统的硬件和软件组件。

现代操作系统不仅管理硬件和软件资源,还调度程序以多任务方式运行(共享处理器,以便多个任务可以明显同时发生),提供标准服务,允许用户和程序向操作系统请求发生的事情(例如打印作业),如果请求正确,操作系统将接受请求并执行所需的功能。

生命周期:

操作系统和软件定期升级,称为发布周期。在不提供任何更新之前,供应商只在一定时期内支持旧版本的软件;这被称为维护周期或者生命周期.

单个软件版本可以描述为贝塔或者稳定的这取决于它们在发布周期中的位置。当一个软件版本有许多未经测试的新特性时,它通常被称为贝塔。经过现场测试后,其名称变为稳定的.

目前有多个操作系统,包括Windows、Mac OS、Linux。

Linux:

Linux发行版是一个软件包,通常包含Linux内核、实用程序、管理工具,甚至是软件包中的一些应用软件,其中还包含更新核心软件和安装附加应用程序的方法。

发行版负责设置存储、构建内核和安装硬件驱动程序,以及安装应用程序和实用程序,以构建一个功能齐全的计算机系统。创建发行版的组织还包括管理系统的工具、添加和删除软件的软件包管理器,以及提供安全和功能补丁的更新程序。

Linux发行版可以大致分为两大类:爱好者版和企业版。像openSUSE的Tumbleweed这样的发烧友发行版具有快速的更新周期,不支持企业版,并且在下一版本中可能不包含(或删除)当前版本中的功能或软件。Red Hat的Fedora项目使用了类似的开发和发布周期方法,Ubuntu Desktop也是如此。

企业发行版几乎是完全相反的,因为它们注意保持稳定和一致,并提供长期的企业级支持,对于SUSE来说是5-13年。到目前为止,企业发行版较少,主要由Red Hat、Canonical和SUSE提供。

像大多数操作系统一样,Linux有两种使用方式:图形化(GUI)和非图形化(CLI)。

在图形模式下,用户可以有几个不同的窗口,终端应用程序(外壳)打开,这在多台远程计算机上执行任务时非常有用。管理员和用户可以通过图形界面使用他们的用户名和密码登录。

第二种类型的界面是CLI,它是一种基于文本的计算机界面,用户键入命令,然后计算机执行该命令。CLI环境由计算机上的应用程序提供,称为末端的。‌⁠ ⁠终端接受用户输入的内容并传递给。外壳解释用户输入到操作系统可以执行的指令中的内容。如果命令产生了输出,则该文本将显示在终端中。如果命令出现问题,则会显示一条错误消息。

在CLI模式下,没有可以移动的窗口。文本编辑器、web浏览器和电子邮件客户端都仅以文本格式呈现。在图形环境成为标准之前,UNIX就是这样运行的。大多数服务器也在这种模式下运行

嵌入式系统:

Linux最初只能在像Linus Torvald这样的计算机上运行:一台带有特定硬盘控制器的Intel 386 PC,但由于任何人都可以添加或更改Linux,人们开始建立对其他硬件的支持。最终,Linux开始支持强调小尺寸和低功耗的其他芯片。

由于这种灵活性,相当多的设备制造商已经使用Linux作为他们硬件产品的操作系统。今天我们称之为嵌入式系统因为它们被设计成在专门为此目的而优化的硬件上执行特定的任务。这些系统包含当今使用的各种设备,从手机到智能电视和家电,再到管道和工厂的远程监控系统。

Part 3 在Linux中工作

命令行界面(CLI)是一个简单的文本输入系统,可以输入从单词命令到复杂脚本的任何内容。

大多数操作系统都有一个CLI,它提供了一种直接访问和控制计算机的方式。

systems boot to GUI:

两种访问命令行的方式:GUI终端和虚拟终端

GUI终端是GUI环境中模拟终端窗口的程序。GUI终端可以通过菜单系统访问。

普通的命令行任务是启动程序、解析脚本和编辑用于系统或应用程序配置的文本文件。大多数服务器直接引导到终端,因为GUI可能是资源密集型的,并且通常不需要执行基于服务器的操作。‌⁠

如上图,虚拟终端可以与GUI同时运行,但是需要用户在执行命令之前通过虚拟终端登录(就像在访问GUI界面之前一样)。

Kernal:

应用程序向内核发出请求,并接收资源,如内存、CPU和磁盘空间。如果两个应用程序请求相同的资源,内核决定哪一个得到它,并且在某些情况下,杀死另一个应用程序以保存系统的其余部分并防止崩溃。

内核还从应用程序中抽象出一些复杂的细节。例如,应用程序不知道磁盘存储块是在固态驱动器上,还是在旋转的金属硬盘上,甚至是在网络文件共享上。应用程序只需要遵循内核的应用编程接口(API ),因此不必担心实现细节。每个应用程序都表现得好像它在系统上有一大块内存;内核通过重新映射更小的内存块、与其他应用程序共享内存块,甚至将未触及的内存块换出到磁盘来保持这种错觉

内核还处理应用程序的切换,这个过程称为多任务处理。计算机系统有少量的中央处理器和有限的内存。如果需求大于可用资源,内核负责卸载一个任务并加载一个新任务。当一个任务运行了指定的时间后,CPU会暂停它,以便另一个任务可以运行。如果计算机同时执行几个任务,内核就决定何时在任务间切换焦点。随着任务的快速切换,计算机似乎同时在做许多事情。

Linux可以模拟生产环境的几乎所有方面,从开发到测试,再到在缩小规模的硬件上进行验证,从而节省了成本和时间

Linux软件通常分为三类:

  • 服务器应用程序

与运行它的机器的显示器和键盘没有直接交互的软件。它的目的是为其他计算机提供信息,称为客户。有时,服务器应用程序可能不会与其他计算机对话,而只是坐在那里处理数据。

  • 桌面应用程序

Web浏览器、文本编辑器、音乐播放器或其他用户直接与之交互的应用程序。在许多情况下,例如web浏览器,应用程序与另一端的服务器通信并解释数据。这是客户机/服务器应用程序的“客户机”端。

  • 工具

一种松散的软件类别,旨在简化计算机系统的管理。工具可以帮助配置显示器,提供用户输入命令的Linux外壳,或者更复杂的工具,称为编译器,将源代码转换为计算机可以执行的应用程序。

服务器:

分为网络服务器、私有云服务器、数据库服务器、电子邮件服务器

Linux的早期用途之一是用于web服务器。web服务器承载网页的内容,网页由web浏览器使用超文本传输协议(HTTP)或者它加密的品种,HTTPS。网页本身可以是静态的,也可以是动态的。当web浏览器请求一个静态页面时,web服务器会发送出现在磁盘上的文件。在动态站点的情况下,请求由web服务器发送到生成内容的应用程序。

数据库服务器应用程序构成了大多数在线服务的主干。动态web应用程序从这些应用程序中提取数据,并将数据写入这些应用程序。例如,用于跟踪在线学生的web程序可能由一个呈现web表单的前端服务器组成。当数据输入到表单中时,它会被写入数据库应用程序,如MariaDB。当教师需要访问学生信息时,web应用程序查询数据库并通过web应用程序返回结果。

文件共享:

UNIX/Linux的本地文件共享协议称为网络文件系统(NFS)。NFS通常是内核的一部分,这意味着远程文件系统可以像普通磁盘一样挂载(可访问),使文件访问对其他应用程序透明。

随着计算机网络变得越来越庞大,对目录的需求也在增加。最古老的网络目录系统之一是域名系统(DNS)。它用于将https://www.icann.org/这样的名字转换为192.0.43.7这样的IP地址,这是互联网上计算机的唯一标识符。DNS还保存全球信息,如给定域名的MTA地址。一个组织可能希望运行自己的DNS服务器来托管面向公众的名称,并充当内部服务目录。

这里要讨论的最后一个网络基础设施叫做动态主机配置协议(DHCP)。当计算机启动时,它需要一个本地网络的IP地址,这样它才能被唯一地识别。DHCP的工作是监听请求,并从DHCP地址池中分配一个空闲地址。互联网系统联盟(2004年1月之前称为互联网软件联盟)也维护着ISC DHCPserver,这是最常见的开源DHCP服务器。

控制台工具:

外壳(Shells):

外壳的工作是接受命令,如文件操作和启动应用程序,并将这些命令传递给Linux内核执行。‌⁠·⁠Linux shell提供了一种丰富的语言来迭代文件和定制环境,所有这些都不能离开shell。

Linux提供了多种shells可供选择,主要区别在于如何定制和定制什么,以及内置脚本语言的语法。

文本编辑器:

Both Vi and Emacs are complex and have a steep learning curve, which is not helpful for simple editing of a small text file. Therefore, Pico and Nano are available on most systems and provide very basic text editing.

包装管理:

每个Linux系统都需要添加、删除和更新软件。在过去,这意味着下载源代码,设置它,编译它,并将文件复制到每个需要更新的系统上。幸运的是,现代发行版使用包装,它们是打包应用程序及其dependencies(或所需的文件),通过创建正确的目录、将适当的文件复制到目录中,并创建符号链接等所需的项目,极大地简化了安装。

A 包管理器负责跟踪哪些文件属于哪个包,甚至从存储库中下载更新,通常是远程服务器共享适当的更新进行分发。在Linux中,有许多不同的软件包管理系统,但最流行的是Debian和Red Hat的软件包管理系统。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值