minix

有哪些资源可用于开始操作系统开发? [关闭]

╄→гoц情女王★ 提交于 2020-01-07 02:49:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我一直想做的一件事是开发我自己的操作系统(不一定像Linux或Windows那样花哨,但比我已经完成的简单的引导加载程序更好)。 我很难找到资源/指南,让你过去编写一个简单的“Hello World”操作系统。 我知道很多人可能会建议我看看Linux或BSD; 但是像这样的系统的代码库(大概)是如此之大,以至于我不知道从哪里开始。 有什么建议? 更新:为了让通过Google登陆此帖子的人们更容易,这里有一些操作系统开发资源: 编写自己的操作系统 (感谢Adam) Linux From Scratch (感谢John) SharpOS(C#操作系统) (谢谢lomaxx) Minix3 和 Minix2 ( 谢谢迈克 ) OS Dev Wiki 和 论坛 (感谢Steve) BonaFide (谢谢史蒂夫) 布兰 (谢谢史蒂夫) 滚动你自己的玩具UNIX克隆操作系统 (谢谢史蒂夫) Broken Thorn OS开发系列 其他资源: 我找到了一个名为 MikeOS 的好资源,“MikeOS是一个学习工具,用于演示操作系统的简单操作。它使用16位实模式进行BIOS访问,因此不需要复杂的驱动程序” 版权所有11/14/08 我在 Freebyte的指南中 找到了一些资源 ...免费和非免费的操作系统

Creating Makefile that compiles multiple C files for use in Minix

爷,独闯天下 提交于 2020-01-06 12:50:31
问题 I am trying to create a Makefile that compiles multiple C files for use in Minix. How would I change the Makefile so that it compiles multiple files at the same time? Below is the current state of my Makefile. CFLAGS = -D_POSIX_SOURCE LDFLAGS = CC = cc LD = cc PROG = test OBJS = test.o $(PROG): $(OBJS) $(LD) $(LDFLAGS) $(OBJS) -o $(PROG) clean: rm -rf $(PROG) $(OBJS) I thought I could just list the other programs after PROG and OBJS such as PROG = test test2 OBJS = test.o test2.o but that

Installing VIM in Minix 3.1.8

末鹿安然 提交于 2019-12-23 04:25:08
问题 I've Googled this a thousand times and I cannot, for the life of me, get VIM to work on my Minix 3. For the record, I am running on a Windows machine with Minix 3 working on Oracle's VM VirtualBox. I've tried typing, # pkgin up && pkgin in vim but I get the error: pkgin: Can't open database /usr/var/db/pkgin/pkgin.db: unable to open database file: No such file or directory I then try to do pkgin search git to search for a package, but I get the same error. Could this be some kind of Internet

Adding new System Call in Minix

有些话、适合烂在心里 提交于 2019-12-23 01:46:28
问题 I am trying to create a new system call in Minix 3.3. At first i just want to create simple printmsg() call that will write "Hello World" on screen. I looked various tutorials on internet and still couldn't find out solution. I defined my sys call number in callnr.h like this #define PM_PRINTMSG (PM BASE + 48) and i increased number of sys calls #define NR_PM_CALLS 49 . In table.c I added CALL(PM_PRINTMSG) = doprintmsg . In proto.h I described function prototype `int do_printmsg(void);

Printing child processes given a pid (MINIX)

◇◆丶佛笑我妖孽 提交于 2019-12-20 04:15:06
问题 I'm working on a project at the moment and as part of it I need to implement system calls/library functions in MINIX. As part of this I need to be able to print a list of child processes of a given process, using its pid. I think I've found part of what I need, but I'm stuck with making it work with a given pid. struct task_struct *task; struct list_head *list; list_for_each(list, &current->children) { task = list_entry(list, struct task_struct, children); } Does this seem like something

Number of Running Processes on a Minix system from C code

你说的曾经没有我的故事 提交于 2019-12-18 17:32:42
问题 So, this seemed simple at first, but after crawling Google and here, the answer doesn't seem as simple as I first thought. Basically, I'm editing a MINIX kernel as part of a practical for my Operating Systems course, and I have to add a little function that spits out the number of running processes when you hit a function key in the Information Server. I've figured out how to integrate the functionality so all the other stuff works, but for the life of me, I can not figure out how to get the

MINIX: sys_call: ipc mask denied SENDREC from 1 to 1

孤人 提交于 2019-12-12 19:40:21
问题 In MINIX 3.2.1 , I want to create a new system call in VFS server which will be given a filename as a parameter and will print this certain file's inode number. So in order to retrieve the inode of the file by its name I want to use the default system call: int stat(char *name,struct stat *buffer) http://minix1.woodhull.com/manpages/man2/stat.2.html in the body of my new system call handler which is int mycall_1(void); inside `/usr/src/servers/vfs/misc.c But when I test the new system call,

Linking error in minix system call that changes sched process' state

喜夏-厌秋 提交于 2019-12-12 05:48:27
问题 I need to change a sched process' state by creating and calling a system call. And that's my code for do_settickets system call. #include <stdio.h> #include "pm.h" #include "../sched/sched.h" #include "../sched/schedproc.h" #include <assert.h> #include <minix/com.h> #include <machine/archtypes.h> #include <stdlib.h> #define LOW_THRESHOLD 1 #define HIGH_THRESHOLD 30 int do_settickets(void){ struct schedproc *rpm; int set_ticket = m_in.m1_i2; // get wanted set ticket value from message int

Unable to update pkgin database in minix

大城市里の小女人 提交于 2019-12-12 05:25:19
问题 I'm trying to update pkgin database with pkgin update command but i'm getting following error. Unable to fetch pkg_summary.gz 回答1: That is a network problem. You need to check the network configuration. For example, some virtual boxes have problems with the DHCP (if it isn't setup correctly). One solution may be to set the address manually. To do so, execute netconf and select the manual option. Set the IP address (it should be in the same range of your other network devices), submask, and

Minix print from kernel to console

我的梦境 提交于 2019-12-11 12:59:04
问题 I am trying to change the scheduling in Minix and want to print from /kernel/proc.c to standard output. Printf cannot be used inside kernel. I am using Minix 3.1.2. I want to add code to sched() function in order to print messages to console. How can I do that? 回答1: Call printk(const char *fmt, ...) . 来源: https://stackoverflow.com/questions/10847666/minix-print-from-kernel-to-console