Linux内核将您的部分代码从Assembler更改为C

编程语言c

众所周知 汇编语言是最快的 由于某些原因,由于这个原因,它在不同操作系统的内核中使用最多,对于使用高级电子设备的实时项目也是如此。 问题稍后出现,需要维护而不是维护该代码,因此 在Linux内核的情况下,开发人员已选择将该汇编程序代码转换为C.

C是最有代表性的Linux编程语言(实际上,在所有* nix平台中),它是由 丹尼斯里奇 和1972年的Ken Thompson,它是在Unix PDP-11系统上制作的,并且是Unix版本2的一部分。由于其高性能和可移植性,它开始在操作系统的实现中越来越多地被使用,因此 Linus Torvalds的 当他在1990年左右寻找Minix的免费开放替代方案时,他将其用于他的项目。

当然,尽管有很多优点,但正如我们一开始所提到的,Assembler相对于C具有一些优势,因此此决定令人惊讶,但根据 评论安迪·卢托米尔斯基 在内核邮件列表上,您的工作进展顺利,并且 Linux内核4.1 将是第一个将此汇编程序源代码重写为C的程序。 具体来说,与退出到用户模式有关的所有内容目前都由这两种编程语言的代码混合而成,但由于维护成本较低,因此更新时变得越来越复杂。

那是 汇编器中的代码 它已经很长时间没有更新了,这意味着新开发人员不能完全了解它的操作,更糟糕的是,更新它并不容易。 因此,他们没有尝试进行部分更改,而是选择开始将所有这些Assembler例程更改为C,而且我个人认为,尽管可能会失去某些执行速度(如果代码C new有效,则这可能会很小)。 新的和清晰的代码总是比过时的代码更可取,并且更新的可能性几乎为零 因为尚未很好地了解它是如何实现的。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   米格尔·梅奥尔·图尔

    首先是西班牙语的ENSAMBLADOR。

    其次,所有语言都必须经过编译(或解释),因此结果的优劣取决于编译器(或解释器)

    由于C编译器已经有了很大的改进,而汇编程序却有了很大的改进(因为它已经非常好了),如今,用C编写的编译程序与用汇编程序编写的同一个程序相比,差异是可以忽略的或不存在的(在此之前)不是)。
    甚至已编译(C和其他程序)与解释(Java和其他程序)程序之间的差异也已大大缩小。

    因此,与维护汇编程序相比,维护C语言要容易得多,因此,在进行成本效益分析,弱点,威胁,优势和机会或任何其他有效的工作时,在内核中进行这些更改是一个非常明智的决定。
    用于决策。

    1.    ChigüireBipolar

      对Miguel Mayol Tur:首先,每个自称是程序员的程序员都会说ASSEMBLER并懂英语。 其他人使用Visual Basic并自称程序员。 多可惜。 其次,汇编器不编译。 处理它的程序所做的是将助记符直接转换为字节。 在Assembler中编程是使用相同的语言与机器对话,但是为了使操作更简单,使用了助记符,而不是直接写入相应的字节。 一组字节与汇编器中的指令之间存在一对一的对应关系。 但是,当然,只有真正的程序员知道这一点,而其中的一个是说ASSEMBLER的人。 因此,从汇编程序到操作码的“转换器”没有任何改进,因为程序员负责进行这种改进。 C编译器(和其他语言)将指令转换为预先建立的汇编器(或机器代码)的宏表示,并且通过这些转换的方式来给出改进。
      为什么要使用C? 因为它更易于检查和维护更具可读性的内容。 大多数人不直接理解汇编程序操作码或助记符。 就那么简单。
      我什至不用理会Java,尽管Java是很久以前才强加于标准的,但现在它被那些了解代码的人所憎恶。
      但不要相信我,请问Google我在这里所说的话是否虚假。
      问候

      1.    留念

        您好Chigüire,我的目光落在我的脸上,以为您不使用盎格鲁-撒克逊血统的话就不能用西班牙语写作:被称为“汇编程序”。
        当然,我同意你的一件事,最好不要谈论Java,因为说废话最好离开它。 我有一个和你一样的朋友,但是像个木匠(不是专业的程序员),他说最好的东西是锯和其他工具,更不用说了,他甚至用螺丝拧紧了。 可以效法的例子!

  2.   路易斯·盖拉多·马林(Luis Gerardo Marin)

    英语始终是所有计算术语的基础。 就是这样,即使我们西班牙语使用者不想要它也是如此。 除此之外,有些术语不能翻译为“位”,“字节”,“ unix”,“ linux”,“ DOS”等。 有些可以翻译,但没有“ CMOS”,“ CSS”,“ RAM”之类的东西,因为有些缩写与技术无关,最重要的是,它们甚至在技术中都不存在。谷歌。 当产生的消息不可读时,没有必要进行翻译。 结论:对于技术或计算问题,最好使用英语的技术术语。 出于同样的原因:我更喜欢写“ Windows”来表示我使用操作系统“ Windows”。 而且我更喜欢谈论CSS,并且我使用type =»text / css,而不是试图说我使用类型等于对角线文本样式表的样式表。 健康。

  3.   罗伯托·戈麦斯(Roberto Gomez)

    用汇编语言编写的程序始终被编译,而不被解释。 但是,使用西班牙语而不是Spanglish并没有错。 专有名称永远不会翻译,但是专业术语是不常用的缩写。 无论如何,每个人都可以随心所欲地说话,而我们仍然可以理解。