问题标签 [pintos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1659 浏览

operating-system - Qemu hanging in main system call

I was working on the Pintos project . And while I was implementing a priority donation mechanism for the proper priority scheduling , QEMU emulator just hung up (I have attached an image and the dump of the pintos is as below ) . I tried debugging and inserting printf statements , but during debugging qemu via a remote host , it again hung up as soon as it entered main . Can anybody tell me how do I troubleshoot all this . Otherwise I will have to reinstall the entire code and qemu and everything in between .

The dump from pintos:

Pintos emulated on QEMUPintos emulated on QEMU

0 投票
1 回答
14208 浏览

operating-system - Pintos 中的系统调用实现

我想在 Pintos 中实现已经定义的系统调用(在 pintos/src/lib/user/syscall.c 中定义的 halt()、create()...etc )。pintos/src/userprog/syscall.c 中的当前系统调用处理程序不执行任何操作。如何创建进行系统调用的进程。此外,我需要自己添加一些系统调用。我该如何继续。但首先我需要实现现有的系统调用。

0 投票
3 回答
6499 浏览

operating-system - PintOS,ubuntu 上带有 -v 选项 bochs 的内核恐慌

当我在 .../build/ 中执行“pintos -- run alarm-multiple”时,一切似乎都很好。

但是当我在 .../build/ 中进行“检查”时,所有 7 个测试都以相同的“运行未正确启动:没有“pintos 启动”消息失败

pintos -v -k -T 60 --bochs -- -q run alarm-single < /dev/null 2> tests/threads/alarm-single.errors > tests/threads/alarm-single.output perl -I../.. ../../tests/threads/alarm-single.ck tests/threads/alarm-single tests/threads/alarm-single.result FAIL tests/threads/alarm-single Run didn't start up properly: no "Pintos booting" message

然后我在 .../build 中发现了“pintos -v -k -T 60 --bochs -- -q run alarm-single”它给出了一个

Bochs 退出并显示以下消息:[ ] bochsrc.txt:12: display library 'nogui' not available

如果我去掉“-v”就可以了。

如何修复此显示库“nogui”不可用

0 投票
1 回答
1387 浏览

linux - 平托斯示例

我是 Linux 的新用户,正在尝试尝试 Pintos Project #02 - 用户程序。我只安装了 Pintos,我试图通过“make”来构建示例,我得到了这个错误:

谁能解释发生了什么?

这是 Makefile.userprog 供参考:

0 投票
2 回答
3882 浏览

linux - Pintos 编程项目 2

对于第二个项目(用户程序),是否必须以不同的方式安装 Pintos?每当我尝试pintos -f -q在我的安装上运行时,我都会收到 Pintos 无法识别参数“-f”的错误。

这是 Pintos 处理所有参数的地方: http ://www.cse.iitd.ernet.in/~sbansal/csl373/pintos/doc/pintos_html/init_8c-source.html 我找不到 FILESYS 的定义任何地方。有人可以帮我吗?

0 投票
0 回答
1367 浏览

linux - 使用 bochs 调用 printf() 时 Pintos 内核出现三重错误

我刚刚开始使用 Pintos 项目,在运行 Ubuntu 的家用计算机上工作。

我能够从src/threads/目录编译项目,并且初始测试pintos run alarm-multiple似乎工作正常(注意它默认运行 qemu):

然而,当我用 bochs 模拟器运行这个测试时,我一点击就感到恐慌printf(),这似乎是首先从read_command_line().

品脱:

pintos-gdb:

正如你所看到的,只要我c在 gdb 中运行(继续)命令,pintos 就会在调用read_command_line()时崩溃printf()

我认为我没有对基线 Pintos 代码进行任何重大更改。什么可能让 bochs 在这个函数调用中感到恐慌?用 qemu 运行同样的测试似乎没有这个问题。

0 投票
1 回答
2145 浏览

operating-system - 安装 Pint-OS 并尝试运行多个警报后,我收到以下错误。我正在使用 bochs 作为模拟器。任何可能的解决方法?

有什么解决方法吗?我已经安装了 build-essentials 和 bochs 模拟器。

0 投票
1 回答
3201 浏览

kernel - 在 pintos 安装期间未定义对 `__stack_chk_fail' 的引用

我正在尝试在 Ubuntu 13.10 中安装 pintos,但是在线程文件夹中执行“make”命令时,出现错误

“对 `__stack_chk_fail' 的更多未定义引用遵循 make[1]:* [kernel.o] 错误 1”

由于我是第一次遇到此错误,我无法弄清楚这一点。

0 投票
1 回答
510 浏览

64-bit - 设置 IA32 EFER.LME 时出现三重故障

我们正在开发一个名为 Pintos 的教育操作系统,试图将其设置为支持虚拟化。我们从运行 32 位的版本开始,第一步是切换到 64 位模式并从那里继续。我们通过 Bochs 运行 Pintos。

我们在英特尔程序员手册(第 9.8.5 章,第 3 卷)中查找了执行此操作的步骤,当我们要将 IA32 EFER.LME 位设置为 1 以启用 IA32e 模式时,系统会生成三重故障并再次从头开始工作。

这是我们一直在处理的代码。

我们已尝试设置自己的 TSS,因为在英特尔建议的所有可能产生三重故障的情况中,这似乎是唯一合理的原因。

任何想法为什么会产生三重故障?一切似乎都很清楚,并且遵循了步骤,但内核恐慌攻击仍然发生。

0 投票
1 回答
1488 浏览

memory-management - 为什么内核对用户页面有一个单独的虚拟地址?

我对这个说法感到困惑:

来自http://web.stanford.edu/class/cs140/projects/pintos/pintos_4.html#SEC63

在 Pintos 中,每个用户虚拟页面都为其内核虚拟页面提供别名。

我认为内核只能使用用户虚拟地址来引用用户页面,内核虚拟地址在它上面。比如下图中,整个 VAS 不就是从 0 到 4GB,用户虚拟地址空间会被限制在 PHYS_BASE 之下的地址,而内核也可以访问它之上的地址吗?

虚拟内存映射
(来自http://web.stanford.edu/class/cs140/cgi-bin/section/10sp-proj3.pdf

但这似乎不是它的工作方式,因为 PintOS 文档仍在继续:

您必须以某种方式管理这些别名。例如,您的代码可以检查和更新两个地址的访问位和脏位。或者,内核可以通过仅通过用户虚拟地址访问用户数据来避免该问题。

这意味着内核可以通过单独的内核虚拟地址访问用户数据。我不确定为什么这两个地址会不同。

感谢您的任何澄清。