【问题标题】:What is the lowest programming language to access hardware without using OS在不使用操作系统的情况下访问硬件的最低编程语言是什么
【发布时间】:2018-08-10 17:35:43
【问题描述】:

我做了一些 wiki 和 SO 研究,但我无法得到我要寻找的确切答案。这就是我问这个问题的原因。

(我做了研究,但没有找到答案,所以不要因此而贬低我)

首先,标题看起来有点奇怪。我会直接说出我的目的。我在想现实生活中的病毒。并且告诉自己打过的电脑病毒是最接近真实的。我和一个生物学学生谈过,他说真正的病毒进入细胞,将它们拥有的唯一 DNA/RNA 发送到核心并禁用细胞的防御系统。然后让细胞为它服务并复制它自己。

(这更像是一个生物简报,但我需要告诉这个以最好地表达自己)

如果我们设置真实病毒和计算机病毒之间的关系: 细胞-计算机 病毒-病毒 RNA/DNA-病毒代码 核心-操作系统 细胞防病毒或防火墙的Deff系统 病毒克隆 - 病毒传播到另一台计算机

(我再次声明,我写了所有这些都是为了表达我的观点。否则我会因为提出不明确的问题而被降级)

正如你所理解的那样,该病毒应该完全禁用操作系统并通过其自己的超简单操作系统向硬件本身发出命令

我发现的语言是

1-0 我猜这叫做二进制 HE5J8EO 猜这是生的什么的 而且我不记得语法,但我认为它是汇编,它类似于编程语言但非常低级

虽然我无法编写二进制代码,但我想剩下的两种或另一种语言可以满足我的需求。如果你知道的话,能告诉我它叫什么名字吗?

注意:我不是不懂英语语法的孩子。不要为此批评我或提出修改建议。英语不是我的母语

注意:病毒开发不是我的目的,我试图找到我想要的语言。病毒案例只是我正在寻找的一个示例状态。

所有这些注释和解释的原因:我在之前的问题中得到 -9 评分,当我想讨论规则时,我在 meta 得到了另一个 -9,因为人们不理解我。

【问题讨论】:

    标签: programming-languages


    【解决方案1】:

    如果您希望在没有操作系统或其他任何裸机编程的情况下进行一些工作,那么汇编(有时是汇编程序)是最底层的。汇编在许多方面比 C 等高级语言更难学习,因为 ASM 语言的功能不是很丰富(在大多数情况下没有一行循环、对象、函数)。如果您只熟悉高级语言,您可能会遇到的另一个挑战是有许多不同的汇编语言,实际上每个 CPU 架构都有一个。除非您打算制作恶意软件或操作系统本身(在许多方面,使用 C 之类的东西会更好),否则您必须有一个非常明确的意图和目的才能使用汇编语言。

    【讨论】:

    • 由于我在理论上做这项研究并且受到细胞和病毒的启发,我实际上并不介意编码和难度。不过谢谢提醒。我的最后一个问题,我想我用汇编编写了一个应用程序。它向处理器发出命令“将所有屏幕打印为蓝色”。我将如何运行这个程序?如果我用windows双击一个文件,会有人要求访问屏幕的权限吗?如果它完全独立于操作系统,它应该绕过计算机的所有安全性并为计算机做它的事情吗?
    • 在操作系统中运行(或试图运行)的任何操作都将由操作系统自行决定。我知道在 Windows 中运行汇编应用程序是可能的,但我不完全确定它是否可以使用完全原生的 x86 ASM 来完成,或者程序是否需要为使用 Windows 进行调整。这就是更多研究会有所帮助的地方,我不从事装配工作,所以我很想知道你是否发现。
    【解决方案2】:

    您可以在“计算机”上做的最基本的事情就是将代码直接发送到处理器。在现代家用计算机上做到这一点即使不是不可能也非常困难,因为有多层硬件和软件来管理它。我强烈建议您研究 8 位计算机的工作原理,以及现代计算机的工作原理。在现代计算机上,可以以合理的难度进行编程的最低级别是内核。编写自己的内核本质上就是编写自己的操作系统。如果您选择编写自己的内核,您将不得不管理计算机的所有组件,这非常困难。

    用外行的话来说,处理器就是通过机械方式处理软件逻辑的点。

    【讨论】:

    • 我以前知道,8 位构成一个字节。这与它有关吗?还是32位64位操作系统?
    • 还有,你提到的软件是汇编程序和虚拟机(就像jvm)
    • "处理器中的位数是指它处理的数据类型的大小和它的注册表的大小。一个 64 位处理器能够存储 264 个计算值,包括内存地址,这意味着它能够访问超过 32 位处理器的 40 亿倍的物理内存!”引自 quora.com/What-is-the-meaning-of-64-bit-and-32-bit
    • 我看了一眼 8 位计算机,我有点明白你的意思。有管理 32 位或 64 位计算机的语言吗?
    • @Asaf31214 机器码或编译成机器码的语言。
    【解决方案3】:

    回答你的问题:

    如果你知道的话,能告诉我它叫什么名字吗?

    VHDL 是您在编程语言方面可以获得的最低层(因为我正在寻找类似的主题)并且 这可能是一个起点: https://www.nandland.com/vhdl/tutorials/tutorial-introduction-to-vhdl-for-beginners.html

    我实际上正在研究“计算机组织和设计:硬件/软件接口 5ed”,它有望很好地介绍计算机科学,并且理解硬件和硬件编码/编程的好处之一是获得约 200% 或更多 -只需在 c 程序中添加大约 22 行代码,即可实现更快、更高效的程序,以便在每次编译器优化之外使用并行计算和矩阵使用。

    因此,真正值得通过它并深入学习。 我会撤销你的 -1 因为你的问题是有道理的——也许是一个更好的例子 当您发现自己时,比“破解操作系统”可能会给出更好的响应 - 我只是还没有足够的分数来做到这一点。

    【讨论】:

      【解决方案4】:

      您需要了解病毒是一种无需创建者干预即可从一台计算机传播到另一台计算机的东西。

      没有操作系统,您就没有传播媒介。

      如果您想直接向带有操作系统的 CPU 发出命令,那么您做不到!

      因为大多数流行的操作系统都会限制这种行为。除非操作系统中存在错误/漏洞并且它是零日漏洞,否则您将不会拥有影响许多计算机的病毒的特权。

      【讨论】:

        猜你喜欢
        • 2010-11-08
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 1970-01-01
        • 2021-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多