问题标签 [minix]

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 投票
0 回答
727 浏览

operating-system - 在 Minix 中调整进程的优先级和时间片,在哪里以及如何调整?

我正在尝试更改 Minix 中进程的优先级。现在我正在考虑改变schedule_process下的方法minix/servers/sched/schedule.c

原始代码如下所示:

我正在考虑干预它分配的位置new_prionew_quantumnew_cpu。这是个好主意吗?我的意思是只添加一行,new_prio=4;就足够了吗?另外,有没有办法查看一个进程是否是内核进程?我知道 0 优先级类似于内核进程,但是所有内核进程的优先级值都为 0 吗?如果我只在一个进程的优先级值大于 0 时才赋予它新的优先级,那是否意味着我不会干预任何内核进程?

对不起,问题太多了,我有太多了。提前致谢。

0 投票
1 回答
184 浏览

posix - amiga minix , minix st , macminix 和其他 minix1.5 版本 posix 兼容性

我知道 minix 2.0 及更高版本具有 posix 兼容性。我想在 Commodore Amiga、Atari ST 和 i386 cpu 等历史计算机上测试类 unix 操作系统,并运行 pkgsrc、x 窗口系统和 blackbox wm(对于 40Mhz 更高版本)等 posix 兼容应用程序 minix 1.5 是这些系统的最佳操作系统(更好比netbsd),但它不兼容posix。

如何将 posix 移植到非 posix *nix 操作系统?

肿瘤坏死因子

0 投票
2 回答
2125 浏览

minix - 在 Minix 3.1.8 中安装 VIM

我已经用谷歌搜索了一千次,但我一辈子都无法让 VIM 在我的 Minix 3 上运行。为了记录,我在 Windows 机器上运行 Minix 3 在 Oracle 的 VM VirtualBox 上运行。

我试过打字,

但我得到了错误:

然后我尝试做 pkgin search git 来搜索一个包,但我得到了同样的错误。这可能是某种互联网连接问题吗?我非常困惑。

0 投票
2 回答
7094 浏览

makefile - 如何编译 Minix 源代码?

我打算对 Minix 内核进行修改。但在开始之前,我想编译它,以便我知道任何进一步的编译问题都是由我所做的事情引起的。

从 github 获得了 Minix 3 源代码,它在其中被镜像:

现在,我希望在对代码进行任何修改之前对其进行编译。当我make进入时src,我会收到消息

我尝试通过makein只编译内核src/minix/kernel。在这种情况下,我收到消息

我该如何规避这个问题?如何编译 Minix 源代码?

0 投票
3 回答
926 浏览

c - C中的“非法使用选择器”

作为一个更大项目的一部分,我正在尝试编写一个 C 函数,该函数在已实现的排序链表中搜索 struct 中的值olnode。但是,我收到了一些错误。我是 C 新手,我正在为指针和双指针以及何时使用什么而苦苦挣扎,所以我认为这是问题的一部分,但我不确定如何解决这个问题。包括所有必要的标题。这是在使用 cc 作为编译器的 Minix 2.0.4 上。

我可以提供任何额外的必要代码;因为我不熟悉 C,所以我不确定我需要展示多少,所以我提供了我认为需要的东西,仅此而已。

全局代码(标题除外):

返回错误的函数(搜索传递的 int,完成后*current应该是olnode保存当前值的函数):

srchfreq()(在不同的函数中)的函数调用:

错误(行号被编辑为相对于srchfreq()上面给出的行):

0 投票
2 回答
714 浏览

c - C中的“预期无效”

我在一个更大的 C 程序中有以下代码。直到刚才我尝试编译它时,我都没有遇到任何问题;它在 Minix 2.0.4 中运行并使用cc. 编译错误如下:

第 26 行只是里面的一个函数声明main()

initpool()其本身稍后在程序中使用此标头定义:

根据我的研究,一切都应该是正确的,并且gcc不会引发编译错误。所有前面的行都应该以 s 结尾;,所以这不是问题。为什么cc编译有问题?

编辑:根据要求,直到第 26 行的行如下(从开头开始main(),第 25 行为空白):

0 投票
1 回答
704 浏览

server - Minix 3.2.1 中对新服务器的系统调用

我在 minix 中实现了一个新服务器。它似乎工作正常,在“服务启动......”之后它启动并等待消息。在客户端文件中:

1)我用 minix_rs_lookup("serverName",*pt) 获得端点

2)调用_syscall(pt,...)

之后我得到:

sys_call:ipc 掩码拒绝从 number1 到 number2 的 SENDREC

我搜索了 minix 代码,似乎我的进程“可能不会”调用此服务。

谁能解释我为什么会这样?

0 投票
1 回答
86 浏览

c - 为什么超级用户可以比非特权用户同时运行更多的进程?

(注意:提到的程序是为课堂作业编写的,但这个问题不是作业的一部分;这是出于我自己的好奇心,我在其他地方找不到答案。)

对于课堂作业,我需要编写一个程序来确定用户一次可以运行的同时进程数。我的程序在返回 -1 之前创建了一定数量的进程,fork()因为已达到限制,然后它终止这些进程并结束。

当我运行 asroot时,它会在终止它们之前计算 16 个创建的进程,这是有道理的。Minix 2手册页fork()指定限制由NR_PROCSin 中的变量设置/usr/include/minix/config.h,并且设置为 32。root除了程序创建的 14 个进程(shell 和程序本身为 +2)之外,它还运行 16 个进程,因此总共有32个进程。

但是,当我以非特权用户身份运行ast时,该程序仅返回 13(因此它仅生成 11 个进程以及两个用于 shell 和程序的进程)。我习惯以用户su ast身份运行ast,但我不知道是否考虑了该过程。更新:登录 asast会导致程序产生 12 个进程,因此为 shell 添加两个进程和程序本身意味着ast只能同时运行 14 个进程(用户没有运行任何其他进程)。

为什么超级用户和非特权用户可以运行的进程数量存在差异,尤其是当只有一个变量控制系统限制时?

0 投票
1 回答
246 浏览

process - 在 Minix 中调用 syscall 时是否会创建一个新进程?

例如,当我们在 minix 的程序中调用 write(...) 时。是否创建了新进程(如使用 fork())还是在当前进程中完成?进行大量系统调用是否有效?

0 投票
2 回答
787 浏览

c - 系统调用 execve 不使用 ls 函数返回

我被要求为操作系统类实现我自己的 shell。

我的 shell 可以正常运行所有命令,除了ls不会在execve上返回,这很奇怪,因为 cd、cp、mv 和所有其他主要命令都可以正常返回。

ls仍在显示正确的输出(文件夹中的文件列表),但只是继续运行(execve 挂起并需要回车完成)。

-l、-a 等所有选项也都可以正常工作,但存在同样的问题。

编辑:我修改了我的代码以完全避免任何内存泄漏(我使用 valgrind 来跟踪它们),添加了一些注释,以便您可以看到发生了什么,但 ls 仍然没有返回。这是更新的版本:

编辑 2:这似乎与 STDIN(或 STDOUT)有关:与ls类似,cat在执行后使 execve 挂起,我需要回车以使我的 shell 行[MY_SHELL]current_working_directory$:回行。关于为什么会这样的任何想法?