operating-system相关内容
我正在尝试实现一个最小内核,并且我正在尝试实现克隆系统调用.在手册页中,您可以看到这样定义的克隆系统调用: int clone(int (*fn)(void *), void *stack, int flags, void *arg, .../* pid_t *parent_tid, void *tls, pid_t *child_tid */); 如您所见,它接收一个函数指针.如果您仔细阅读
..
我有一个应用程序,我希望能够在发生错误或崩溃/应用程序关闭时重新启动它.我熟悉如何注册BroadcastReceivers,使用闹钟等 当应用程序关闭时,我是否可以截获应用程序发出的任何信号?或者当任何应用关闭时操作系统会发出? 解决方案 当应用程序关闭时,我是否可以截获应用程序发出的任何信号?或者当任何应用程序关闭时 > 操作系统会发出? 不,不,AFAIK.
..
今天,我观察到一个有趣的行为.我使用的是 windows XP-sp3 操作系统. 当我在 Google Chrome 中打开一个新标签时查看任务管理器,创建了一个新进程. 但是,一段时间后,此过程终止. 为什么会出现这种行为?是因为系统调用vfork()?子进程是否立即调用exec()? 这种情况是否只发生在 Google Chrome 或所有其他浏览器的行为方式类似? 解
..
一般来说,我知道一个进程无法写入具有不允许写入的保护的内存(在其地址空间中).但是什么检查进程是否可以做到这一点?是否有任何汇编指令通过操作系统?它是如何工作的? 解决方案 在大多数现代 CPU(Intel x86,大多数 ARM 版本)中,是 CPU 本身进行检查.CPU在寄存器之一中存储数据结构的地址,该地址指定存储器的布局(“页表")——具体而言,哪些地址是可读的,哪些是可写的,哪些
..
我最近使用 sysinfo 系统调用编写了以下 C 代码来显示系统统计信息,让我感到有趣的是 sysinfo 结构的 freeram 变量不返回可用 RAM 的数量,而是返回当前的 RAM 使用情况.我不得不使用一种变通方法通过从 totalram 中减去 freeram 来显示正确的值.我试过用谷歌搜索这个特定的变量,但无济于事.对这种奇怪行为的任何洞察都会非常有帮助. /** C程序打印系统
..
我正在尝试测试当前 R 版本中的内存限制是什么. runtest 运行测试(大小)错误:无法分配大小为 4.0 Gb 的向量另外:警告信息:1: 在结构(.Call(C_objectSize, x), class = "object_s
..
我正在查看 K&R 2 中的示例(8.6 示例 - 列表目录).它是 Linux 命令 ls 或 Windows 的 dir 的精简版.该示例显示了 opendir、readdir 等函数的实现.我已经尝试逐字输入代码,但它仍然不起作用.它所做的只是打印一个点(针对当前目录)并退出. 我在代码中发现了一件有趣的事情(在 readdir 的实现中),它正在调用像 open 和 read 在目录
..
我使用 C#.我尝试获取当前版本的操作系统: OperatingSystem os = Environment.OSVersion;版本ver = os.Version; 我使用的是 Windows 10:6.2. 但 6.2 是 Windows 8 或 WindowsServer 2012 (在 .net 中检测 Windows 版本) 我找到了以下解决方案(如何检测我的应用程序
..
所以,我正在尝试将 os.path.isfile 或 os.path.exists 合并到我的代码中,并成功找到某些常规文件(pdf,png) 搜索以字母开头的文件名时. 我正在使用的文件命名标准(并且由于用户而无法更改)以数字开头,随后无法使用相同的方法找到.有没有办法让 .isfile 或 .exists 发现这些文件? 我要搜索的文件是 .txt 文件. os.path.is
..
我正在尝试在简单的 16 位实模式操作系统中清除屏幕.下面是代码: clearScreen:普沙移动啊,0x7移动, 0整数 0x10波帕ret 我读到将 al 设置为 0 并调用滚动屏幕中断会清理屏幕,但它似乎只是将第一行的颜色更改为灰色. 感谢任何能解释为什么这不起作用的人. 解决方案 问题是 int 0x10 函数 0x07 接受的参数比你给的多.具体来说, AH =
..
我正在尝试通过修改系统调用表来挂钩 Linux 3.x 内核上的 sys_execve() 函数.问题是 sys_execve() 只有在执行不成功时才应该返回错误代码.使用我正在使用的包装函数(见下文),当 sys_execve() 在有效的可执行文件上被调用时,它执行得很好并且一切正常.但是,当在不存在的文件或其他导致错误情况的文件上调用它时,调用程序将崩溃: 3b ip 000000000
..
这里有一个操作系统/计算机架构问题.我正在阅读有关缓存的内容,关于如何虚拟索引缓存是减少地址转换时间的一种选择.我遇到了以下情况: "虚拟缓存困难包括:别名两个不同的虚拟地址可能具有相同的物理地址." 我想不出什么情况会发生这种情况.自从我的 O/S 天以来已经有一段时间了,我正在画一个空白. 有人可以举个例子吗?谢谢 解决方案 两个进程可能有一个共享的mapping.例如,在
..
考虑以下代码: int main(){国际PID;pid=vfork();如果(PID==0)printf("孩子\n");别的printf("父\n");返回0;} 在vfork()的情况下,父进程和子进程使用的地址空间相同,所以变量pid的单个副本应该在那里.现在我无法理解这个 pid 变量如何具有 vfork() 返回的两个值,即子级为零,父级非零? 在 fork() 的情况下,地
..
嗯...好吧,我已经在网上搜索了 2 天,但没有任何运气.我已经看到很多关于如何格式化 javascript 日期的答案,例如 new Date().toString("yyyy-MM-dd")... 这将返回类似 2013-04-05 的内容. 这绝对不是问题. 我想要的是设置我的操作系统显示日期的格式,然后检索该特定格式并将其显示在浏览器中的可能性. 例如,假设我将操作系统中
..
我的第一个问题,请温柔一点.我搜索但在这里或其他地方找不到答案. 请注意,此问题不适用于 *args 等参数的解包. 在 os.removexattr 声明如下: os.removexattr(路径、属性、*、follow_symlinks=True)从路径中删除扩展文件系统属性属性.属性应该是字节或字符串.如果是字符串,则进行编码使用文件系统编码.该函数可以支持指定文件描述符而不是
..
我正在尝试使用命令启动一个新的jvm:java -version,但是它报告了一个错误: # 内存不足,Java 运行时环境无法继续.# 本机内存分配(malloc)未能为 AllocateHeap 分配 160088 字节# 包含更多信息的错误报告文件保存为:#/users/xxx/xxx/hs_err_pid12365.log 然后我检查了文件 /users/xxx/xxx/hs_err_
..
所以,据我了解,有两种类型的程序,一种是解释型的,一种是编译型的.解释程序由解释器执行,解释器是其所在平台的本机应用程序,编译程序本身就是它们所在平台的本机应用程序(或系统软件). 但我的问题是:除了内核之外,还有其他东西实际上是由 CPU 直接运行的吗?Windows 可执行文件是“Windows 可执行文件",而不是 x86 或 amd64 可执行文件.这是否意味着不是内核的所有其他进程
..
我有一个 Samurize 配置,它显示类似于任务管理器的 CPU 使用率图表. 如何同时显示当前 CPU 使用百分比最高的进程名称? 我希望每秒最多更新一次.Samurize 可以调用命令行工具并将其输出显示在屏幕上,因此这也是一种选择. 进一步说明: 我研究过编写自己的命令行 c# .NET 应用程序来枚举从 System.Diagnostics.Process.Get
..
我正在寻找一种从给定目录中向上移动 n 目录的 Python 方法. 假设我们有示例路径 /data/python_env/lib/python3.6/site-packages/matplotlib/mpl-data.如果我们要向上移动 n=2 目录,我们应该最终到达 /data/python_env/lib/python3.6/site-packages. 以下工作可以向上移动 n
..
我想知道PC有哪个Windows版本.. C# Framework 3.5 我尝试过使用 OperatingSystem os = Environment.OSVersion; 版本ver = os.Version; 但结果是 平台:WIN32NT 版本 6.2.9200 次要版本:2 主要版本:6 问题是我有“Windows 8 Pro"..
..