您可以使用 Windows 操作系统和 Dev-C++ IDE 为 Linux 编写 shell 吗? shell 在两种操作系统上的工作方式是否相同?

标签 c linux windows shell unix

我正在学习计算机工程,我们有一门叫做操作系统的类(class),他们向我们讲授操作系统如何处理东西等。这周我们收到了一份作业,要求我们编写一个在 Linux 上运行的 shell。问题是,他们实际上没有告诉我们如何编写 shell,所以我们应该做一些研究并找出答案。

我在网上找到了这个指南,它对我来说似乎很完美:link 代码,有解释,我还能要求什么。

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

最佳答案

如果您想为 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 安装来验证它是否正常工作。

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

我建议您现在就省去很多麻烦,只需在 VirtualBox 中下载/安装 Ubuntu 镜像即可。

关于您可以使用 Windows 操作系统和 Dev-C++ IDE 为 Linux 编写 shell 吗? shell 在两种操作系统上的工作方式是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102671/

相关文章:

c - 在ubuntu中使用sigaction()实现Signal()

c - 长度已知的数组术语 C/C++

python - 如何注释掉 Linux 配置文件中的多行?

c++ - 如何处理非客户区的按钮事件

c - 在c中打印链表值时出现奇怪的值

c++ - 该表达式是否会调用未定义的行为?

linux - shell 脚本如何判断它是否在支持 256 色的 xterm 窗口中运行?

linux - 使用 echo 命令格式化

c - 格式错误?

windows - 在后台线程中运行 Firebird 查询并保存结果集