【问题标题】:Can you code a shell for Linux using Windows OS and Dev-C++ IDE? Do shells work the same way for both operating systems?您可以使用 Windows 操作系统和 Dev-C++ IDE 为 Linux 编写 shell 吗? shell 对两种操作系统的工作方式是否相同?
【发布时间】:2018-04-16 14:13:50
【问题描述】:

我正在学习计算机工程,我们有一门叫做操作系统的课程,他们会向我们讲授操作系统如何处理事物等。本周我们得到了一项作业,要求我们编写一个可在 Linux 上运行的 shell。问题是,他们几乎没有教我们如何编写 shell,所以我们应该做一些研究并弄清楚。

我在网上找到了这份指南,我觉得它很完美:link 代码,有解释,我还能要求什么。

现在,我使用的是 Windows PC,并使用带有 GCC 编译器的 Dev-C++ IDE。我可以使用当前设置编写在 Linux 上运行的 shell,还是必须安装 Linux? shell 在这些操作系统上的运行方式有什么重大区别吗?

【问题讨论】:

  • Linux 和 Windows 完全不同。您需要使用您的开发工具以 Linux 为目标。我不知道 Dev-C++ IDE 是否提供该选项(我不熟悉它)。我认为最新的 Visual Studio 确实提供了 Linux 作为目标。构建程序后,您需要一个 Linux shell 来运行它。如果您使用的是 Windows 10,那么实际上有一个真正的 Ubuntu Bash shell 可供您使用,您可以在其上运行它。您只需要最新的 Windows 10 版本。
  • 有关更多详细信息,您可以查看Silberschatz 操作系统概念第 9 版一书(第 3 章)。它包含你想知道和做的事情,它会在课堂上帮助你很多。

标签: c linux windows shell unix


【解决方案1】:

如果你想为 Linux 编写一个 shell,你想以 GNU/Linux 为目标,它基本上是带有一些扩展的 POSIX。

Dev-C++ 默认使用 MinGW GCC 作为编译器,提供 Win32 API。

Win32 和 POSIX 完全不同。为一个编写的 shell 甚至不会与另一个略有相似。

相反,您有多种选择:

  • Dev-C++ 可以选择使用 Cygwin GCC,在 Windows 上提供更类似于 GNU/Linux 的体验。您需要非常小心,不要依赖任何 Cygwin 特定的功能,例如它如何自动翻译路径名和行终止符。您仍需要访问 Linux 安装以验证其是否正常工作。

  • Windows 10 可让您安装 WSL,这是一种适用于 Windows 的更现代的 Linux 兼容层。 Dev-C++ 没有明确声明它支持它,因此您可能需要单独编辑和编译,并且可能会失去调试功能。您仍需要访问 Linux 安装以验证其是否正常工作。

  • 只需在 VM 中运行 Linux。唯一需要关心的是让你的 shell 正常工作。

我建议现在为自己省去很多麻烦,只需在 VirtualBox 中下载/安装一个 Ubuntu 映像。

【讨论】:

  • 您错过了一个重要选项。 Visual Studio 2017 允许您以 Linux 为目标。您可以直接在 WSL 中编写、编译和调试代码。
猜你喜欢
  • 1970-01-01
  • 2020-02-10
  • 2020-09-12
  • 2011-06-07
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 2014-05-27
  • 2011-06-29
相关资源
最近更新 更多