operating-system相关内容

使用Python访问已在运行的进程

问题:有没有办法使用Python访问正在运行的进程的stdout?此进程不是已由Python启动。 上下文:有一个名为mayabatch的程序,可以从3D Maya场景文件中渲染图像。如果我从命令行运行该程序,我将看到来自mayabatch的进度消息。有时,艺术家会关闭这些窗口,直到程序结束才能跟踪进度。这让我走上了这条路,试图在它被外部进程产生后读取它的stdout。 背景: ..
发布时间:2022-09-05 11:05:46 Python

异步实际上是如何在幕后工作的?

我一直在研究多线程、回调、调度队列,以同步和异步的方式... 我研究得越多,我就越困惑和沮丧到了我似乎永远无法理解的地步。请有人能把我引向正确的方向开始吧。到目前为止,我发现的大多数信息都是关于IS的功能和优势。我真正想知道的是,当使用回调和单线程进行异步操作时,函数如何立即返回。 [这里]的(http://nathansjslessons.appspot.com/lesson?id=1085)我 ..

32位IR如何保持加载指令?(RISC风格32位体系结构)

我对指令大小和可寻址空间感到有点困惑(我假设指令大小应该与地址位的大小相同。我没有在我的书中找到足够的解释)如果我是正确的,那么在理论上,如果我们在32位体系结构(RISC风格)中有2^32个可寻址单元(字节)的内存,那么4字节大小的加载指令如何保存操作码和地址? 推荐答案 您假设一条指令可以对来自任意绝对地址的加载进行编码。在x86上也是如此,即使在64位模式下也是如此(但有一个特殊 ..

在中断处理程序中如何处理被零除?

操作系统中断处理程序应如何处理与编码错误相关的中断? 例如,我试图除以0来测试我的中断,但我的中断处理程序被调用了。但是,由于div指令没有成功执行,EIP不会更新到它之后的下一条指令,并且在使用iret从中断处理程序返回后,它会再次返回到错误的div指令。 mov ax, 3 mov dl, 0 div dl ; go back here again and aga ..
发布时间:2022-08-10 16:12:51 其他开发

每个程序分配一个固定的堆栈大小?谁为每个运行的应用程序定义堆栈内存量?

当我们运行代码时,编译后的编译器会检测所需的堆栈内存量吗?因此,每个程序都有自己的堆栈内存。 还是每个程序的堆栈内存由操作系统定义? 谁为每个运行的应用程序定义堆栈内存量? 或者我们没有此功能,并且每个程序都可以根据需要使用所有堆栈内存? 推荐答案 在x86-64Linux上,堆栈默认分配8MB。点击此处浏览Ciro Santilli对x86 Linux内存布局的回答 ..
发布时间:2022-07-24 19:04:11 其他开发

在AOSP源代码中添加系统应用(通过App源代码/作为项目工作)

我正在尝试通过应用程序源代码在AOSP源代码中添加应用程序,而不是通过apk。我的应用程序是我在Android Studio中开发的简单的Hello World应用程序。我把它的Android.mk写好了,放在packages/app/myapplication/Android.mk里了。aosp_source_code/build/target/product/handheld_system.m ..
发布时间:2022-06-10 16:31:54 移动开发

如何更改程序集中变量的值

我正在为我的MikeOS端口编写一些代码。它是用NASM x86 16位汇编编写的。我正在尝试将我设置的变量更改为不同的值。它编译时没有错误,但当我调用os_print_string时,它会打印一些奇怪的ASCII字符。代码如下: BITS 16 ORG 32768 %INCLUDE "mikedev.inc" start: mov si, test2 ..
发布时间:2022-05-25 13:30:49 其他开发

内核高内存

在操作系统设计中,内核通常映射到较高的虚拟内存地址,从而获得对较高内存部分的控制。下面的空间是给在用户空间运行的应用程序的,Linux 3/1 virtual address split中很好地描述了这一点。 我想知道的是,为什么做出这个设计决定,或者为什么内核不使用内存的较低部分?这对我来说不是很清楚,或者可能是我监督了什么。 编辑:此问题涉及虚拟地址,而不是物理地址。 推荐答 ..
发布时间:2022-02-26 10:55:21 其他开发

线性内存地址、物理内存地址、逻辑内存地址和虚拟内存地址有什么不同?

我正在尝试阅读英特尔软件开发人员手册,以了解操作系统是如何工作的,这四个称谓词让我感到困惑。以下是我的理解,如果我错了,请纠正我。 线性地址:对隔离程序而言,它是以地址0开始长字符串内存。该程序的所有段都将从其线性地址寻址。它可能在RAM或磁盘中。 物理地址:出现在RAM或主内存管脚中的地址。 逻辑地址:磁盘和RAM中交换内存的组合。所有程序的所有线性内存都将留在逻辑地址空间中, ..
发布时间:2022-02-23 19:52:32 其他开发

使用GCC编译时,函数和变量前面是否会有&;_&;?

我正在学习使用GCC在linux环境下开发操作系统。我从Bran的内核开发中了解到,在编译C中的所有函数和变量名时,其相应的汇编源文件中的前面都有一个“_”(下划线)。 但是当我翻阅编译后的C程序的汇编源程序时,我甚至找不到“_main”函数。 我执行了以下操作。 cpp sample.c sample.i GCC-S样本I. 推荐答案 早期确实如此。给定的C函数foo将在 ..
发布时间:2022-02-23 19:50:46 其他开发

多线程中堆栈和调用堆栈之间的区别?

在阅读有关线程共享的所有内容的答案时,我偶然发现了“调用堆栈"一词.虽然我知道线程有自己的堆栈,它们不与其他线程共享,但我不明白什么调用堆栈将意味着相对于线程.我看过一些答案,但不是很清楚.请澄清调用堆栈的含义以及它与多任务上下文中的堆栈有何不同.问候 解决方案 请说明调用堆栈的含义以及它与堆栈的区别在多任务处理的情况下. 区别很微妙,但这是我理解它的方式.人们经常在某种程度上互 ..
发布时间:2022-01-25 12:59:44 其他开发

ISR 和函数调用的区别?

我想了解 ISR(中断服务程序)和函数调用之间的区别. 我觉得从硬件的角度来看,函数调用和 ISR 是一样的.如果我错了,请纠正我.我能找到的关于 ISR 和函数调用的所有信息如下: ISR: 在执行过程中随时可能发生的异步事件程序 将 PC、标志和寄存器保存在堆栈中,并禁用所有中断并加载 ISR 的地址 ISR 不能有可传递给它的参数 无法返回值 启用中断 ..

内核栈和用户栈有什么区别?

在同一个程序中使用两个不同的堆栈有什么需要?Trap 如何将当前程序栈从用户栈变为内核栈?完成系统调用后如何返回用户栈? 每个进程都有内核和用户栈吗? 解决方案 (基本上)有一个“内核栈".每个 CPU.存在一个“用户堆栈".对于每个进程,尽管每个线程都有自己的堆栈,包括用户线程和内核线程. “陷阱如何改变堆栈"其实很简单. CPU 因中断而改变进程或“模式".中断的发生 ..
发布时间:2022-01-22 12:47:01 其他开发

Python:如何在 Windows 资源管理器中打开文件夹(Python 3.6.2、Windows 10)

如果我将要打开的路径存储在一个名为 finalpath 的字符串中,它看起来像这样:“./2.8 电影/英语/虎胆龙威系列" 那么如何在 Windows 资源管理器中打开它?(Windows 10)(Python 3.6.2) P.S 我知道很多人都问过这个问题,但我没有发现他们很清楚.请尽快回答. 解决方案 我找到了一个简单的方法. 导入操作系统路径=“C:/用户"路径 = ..

操作系统内部究竟发生了什么导致分段错误

我已经阅读了很多关于虚拟地址和分页的信息.让我先告诉大家我的理解.当一个进程想要执行某事时,它会尝试将数据从硬盘加载到内存中.为此,它使用虚拟地址.所以我们的 MMU 验证虚拟地址查找 TLB 以找到相应的物理页面,如果它没有找到它会查找 Inverted Page Table,如果它没有找到那里的条目,最后它会查找页表它会产生页面错误,并且所有页面交换都已完成,并且所有表都将被更新.当我阅读时, ..
发布时间:2022-01-12 16:17:52 其他开发

SPL(二级程序加载器)有什么用

我对这三个问题的概念感到困惑 为什么我们需要辅助程序加载器? 它在哪个内存中被加载和重定位? 系统内存和RAM有什么区别? 据我通过阅读链接了解是.. 当系统内部存储器无法完全容纳 uboot 时需要 SPL,因此我们需要使用称为 SPL 的最小代码片段来初始化内存.SPL 是真的重定位还是只有 uboot 自己重定位? 解决方案 让我解释一下 OMAP 平台为例( ..
发布时间:2022-01-11 23:45:27 其他开发

内存映射 IO - 它是如何完成的?

我已经了解了端口映射 IO 和内存映射 IO 之间的区别,但我无法弄清楚在现代操作系统(windows 或 linux)中如何实现内存映射 Io 我所知道的是,物理内存的一部分被保留用于与硬件通信,并且有一个 MMIO 单元参与处理总线通信和其他与内存相关的事情 驱动程序如何与底层硬件通信?驱动程序会使用哪些功能?与视频卡通信的地址是固定的,还是在使用它们之前有某种“协议"? 我 ..
发布时间:2022-01-11 23:45:17 其他开发