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

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

实际上什么是操作系统?

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

您的操作系统实际上编排了软件,要求访问不同数量的内存、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

posted @ 2022-09-01 09:51  哈哈哈来了啊啊啊  阅读(107)  评论(0编辑  收藏  举报