每个程序员都需要知道的操作系统基础知识
每个程序员都需要知道的操作系统基础知识
实际上什么是操作系统?
操作系统或操作系统可以理解为您可以在设备上获得的最低控制层。操作系统管理您计算机的内存、进程、软件和硬件。这是您能够与您的设备进行交互的方法。没有它,你的设备就只是一堆微芯片和外壳。
您的操作系统实际上编排了软件,要求访问不同数量的内存、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 版权协议,转载请附上原文出处链接和本声明