Linux教程

每个程序员都需要知道的操作系统基础知识

本文主要是介绍每个程序员都需要知道的操作系统基础知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

每个程序员都需要知道的操作系统基础知识

实际上什么是操作系统?

操作系统或操作系统可以理解为您可以在设备上获得的最低控制层。操作系统管理您计算机的内存、进程、软件和硬件。这是您能够与您的设备进行交互的方法。没有它,你的设备就只是一堆微芯片和外壳。

您的操作系统实际上编排了软件,要求访问不同数量的内存、CPU 和存储。大多数设备主要有 3 种操作系统:Windows、MacOS 或 Linux。

视窗

它是几乎所有计算机都加载的最常见的操作系统。它是由微软构建的。它为日常任务(如写作、内容消费等)提供了一个非常简单的界面。

苹果系统

MacOS 是预装在 Macintosh(Apple) 计算机上的操作系统。这些设备相对昂贵,因此只占整个操作系统的一小部分。不过,大多数人更喜欢 MacOS 的外观和感觉而不是 Windows。

Linux

Linux 这个词基本上只是意味着“像 Unix”。 Unix 是基于命令行的操作系统,而 Linux 是 GUI(稍后会详细介绍 GUI)。 Linux 占操作系统总数的最小部分,但大多数服务器都使用 Linux,因为它具有高度可定制性且非常强大。如果您在开发领域,Linux 是您的最佳选择。你可以找到一个你想要的 Linux 发行版。

  • GUI — GUI 或图形用户界面通过使用图形(图标)和文本帮助您导航和使用操作系统。这使得每个人都非常容易使用。
  • CLI — 顾名思义,CLI 或命令行界面意味着您通过使用命令来控制您的计算机。这为您提供了更多的控制权,但起初这可能会令人生畏。

命令行 101

如果您从事任何技术领域,无论是软件开发、DevOps 还是其他任何领域,您都必须知道命令行工具的重要性。这些工具使您可以更好地控制您的机器,并且您可以在更短的时间内完成一系列任务,例如导航、环境设置等。不同操作系统的命令可能不同,但这些是在任何地方都可以使用的基本命令需要知道。

  • mkdir — 创建一个目录(文件夹)
  • cd(change directory) — 将目录从此处更改为描述的路径
  • ls — 显示目录中存在的所有文件和目录
  • touch - 创建文件(不是目录)
  • mv — 移动这个文件
  • cp — 复制此文件
  • rm — 删除此文件(删除)
  • curl — 下载在特定 url 找到的文件

如果你想要详细的解释和命令,你可以去 https://rb.gy/lnce7a

线程、进程和程序

您一定在某处或其他地方听说过这些术语,但从未完全理解这些术语的含义。让我为您简化它们:

程式

这很容易。可用于完成某种任务的代码集合称为程序。你通过编码制作的是一个程序。它们可以作为核心程序与操作系统捆绑在一起,也可以只完成某项任务,则称为“应用程序”。

流程

当程序运行时,无论是编译还是解释,它都以二进制形式加载到计算机的内存中,因为 CPU 只理解二进制。一个程序连同它运行所需的所有资源一起被加载到内存中,称为“进程”。您的操作系统处理分配资源以将程序转换为进程的任务。

线程

线程基本上是进程中的执行单元。一个进程可以有一个或多个线程。当一个进程发生时,CPU会为该进程分配一些资源,这些资源然后由线程共享,以便完成任务中的多个子任务,从而以更快的速度完成它。

并发和并行

现在你可能会问 CPU 是一个接一个地运行进程和线程,还是同时运行所有的?这取决于我们正在使用的处理器类型。

当您拥有多核处理器(大多数现代处理器)时,您可以真正并行运行进程和线程并完成不同的任务。这就是“并行”。

但是如果你有一个单核处理器,你的进程需要共享 CPU 才能更有效地完成工作。使用进程调度算法对不同进程的运行进行时间切片,这给人一种并行处理的错觉,但它并不是真正的并行。

每个程序员,每个人,都需要知道操作系统的基础知识。

感谢您的入住!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/7766/49440109

这篇关于每个程序员都需要知道的操作系统基础知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!