android - 在不同操作系统之上使用编程语言

标签 android ios linux windows operating-system

<分区>

有人可以帮助我“叠加”我对各种编程语言在不同操作系统上的位置的理解吗?从底层开始——基本的金属计算机只能理解机器码或汇编程序。这意味着操作系统,比方说 Linux,是用 C 语言编写并编译成机器码的,对吧?还是汇编器?

如果你有用 C 编写的 Linux,这是否意味着 C 编译器默认已经存在,我可以用 C 编写任何简单的程序,将它放在任何文件夹中并从命令行运行它? 我看到像 Ubuntu 这样的一些 Linux 发行版带有文件夹/perl 和/python。我假设这些是其他高级语言的编译器或解释器,并且作为这些特定操作系统发行版的附加组件。如果我想运行 Java,我会添加 Java JVM 等等。 但是 C 是 Linux 的默认语言吗?或者 C++ 也可以开箱即用?

然后,如果我查看维基百科,我会看到以下写在中:

  • Windows:C、C++、汇编
  • OS X:C、C++、 objective-c
  • iOS:C、C++、Objective C、Swift
  • 安卓:C、C++、Java

这是否意味着任何用各自语言为每个操作系统编写的“Hello World”程序都可以开箱即用?

理论上,我可以用 Swift for iOS 编写硬件驱动程序吗?或者有些语言用于低级任务,而有些语言用于最终用户应用程序?

我可以用 C 编写程序并在 iOS 和 Android 上运行吗?还是我仅限于 Objective-C/Swift/Java?

要在上面运行任何其他语言,我需要添加相应的附加软件,例如编译器/解释器/VM。正确吗?

最佳答案

所有用 C、C++ 和汇编语言编写的东西首先都会变成机器代码。在硬件上实际执行的所有软件都是机器代码。

您的操作系统由唯一允许执行某些操作(主要与控制硬件相关)的机器代码组成。这允许操作系统充当硬件的某种看门人。常规程序通过调用操作系统公开的函数来访问硬件。

编写操作系统所用的语言对于在该操作系统上运行的程序无关紧要。基本上,任何将您的源代码转换为机器代码的工具(编译器、汇编器等)都关心语言,但之后一直是二进制。

关于android - 在不同操作系统之上使用编程语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30204933/

相关文章:

objective-c - 如何在iOS中从字符串中切出字符串?

iphone - 无法追踪错误

linux - 无法安装 FlatPak(Linux - Monodevelop)

javascript - 需要自动计算的多部分方程 = 失败

Android:如何在可绘制的 xml 中使用当前主题的颜色?

android - 最小宽度限定符不适用于 Android Studio

linux - echo 2 >/proc/sys/net/ipv4/tcp_mtu_probing 能够解决我的问题,但为什么呢?这个命令是做什么的?

android - android开发的基本布局/导航问题

javascript - iPhone 上的某些移动浏览器无法正确执行 Javascript

arrays - 转换数组日期字符串并在 Shell 脚本中减少 3 小时