问题标签 [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.
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 QEMU
operating-system - Pintos 中的系统调用实现
我想在 Pintos 中实现已经定义的系统调用(在 pintos/src/lib/user/syscall.c 中定义的 halt()、create()...etc )。pintos/src/userprog/syscall.c 中的当前系统调用处理程序不执行任何操作。如何创建进行系统调用的进程。此外,我需要自己添加一些系统调用。我该如何继续。但首先我需要实现现有的系统调用。
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”不可用
linux - 平托斯示例
我是 Linux 的新用户,正在尝试尝试 Pintos Project #02 - 用户程序。我只安装了 Pintos,我试图通过“make”来构建示例,我得到了这个错误:
谁能解释发生了什么?
这是 Makefile.userprog 供参考:
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 的定义任何地方。有人可以帮我吗?
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 运行同样的测试似乎没有这个问题。
operating-system - 安装 Pint-OS 并尝试运行多个警报后,我收到以下错误。我正在使用 bochs 作为模拟器。任何可能的解决方法?
有什么解决方法吗?我已经安装了 build-essentials 和 bochs 模拟器。
kernel - 在 pintos 安装期间未定义对 `__stack_chk_fail' 的引用
我正在尝试在 Ubuntu 13.10 中安装 pintos,但是在线程文件夹中执行“make”命令时,出现错误
“对 `__stack_chk_fail' 的更多未定义引用遵循 make[1]:* [kernel.o] 错误 1”
由于我是第一次遇到此错误,我无法弄清楚这一点。
64-bit - 设置 IA32 EFER.LME 时出现三重故障
我们正在开发一个名为 Pintos 的教育操作系统,试图将其设置为支持虚拟化。我们从运行 32 位的版本开始,第一步是切换到 64 位模式并从那里继续。我们通过 Bochs 运行 Pintos。
我们在英特尔程序员手册(第 9.8.5 章,第 3 卷)中查找了执行此操作的步骤,当我们要将 IA32 EFER.LME 位设置为 1 以启用 IA32e 模式时,系统会生成三重故障并再次从头开始工作。
这是我们一直在处理的代码。
我们已尝试设置自己的 TSS,因为在英特尔建议的所有可能产生三重故障的情况中,这似乎是唯一合理的原因。
任何想法为什么会产生三重故障?一切似乎都很清楚,并且遵循了步骤,但内核恐慌攻击仍然发生。
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 文档仍在继续:
您必须以某种方式管理这些别名。例如,您的代码可以检查和更新两个地址的访问位和脏位。或者,内核可以通过仅通过用户虚拟地址访问用户数据来避免该问题。
这意味着内核可以通过单独的内核虚拟地址访问用户数据。我不确定为什么这两个地址会不同。
感谢您的任何澄清。