OS Programmer wanted

94 views
Skip to first unread message

ben gras

unread,
Oct 18, 2011, 9:40:52 AM10/18/11
to min...@googlegroups.com
In case you've missed it from other sources - Minix is hiring a programmer. See www.minix3.org/job if you're interested.

Alexander Gorodnev

unread,
Oct 19, 2011, 4:09:01 AM10/19/11
to min...@googlegroups.com
Hi Ben,

I've read about Minix port for ARM platform by the link. But where can
I get status of this task?

Thanks,
Alexander

Erik van der Kouwe

unread,
Oct 19, 2011, 4:28:55 AM10/19/11
to minix3
Hi,

> I've read about Minix port for ARM platform by the link. But where can
> I get status of this task?

It hasn't started yet, we're still finding someone to do it (hence the
vacancy).

With kind regards,
Erik

Yana

unread,
Oct 20, 2011, 8:00:01 AM10/20/11
to min...@googlegroups.com
Hello,

Formerly I patched minix3_1_3a_ide_r2964.iso.bz2 for ARM, MIPS and GXemul.
http://groups.google.com/group/minix3/browse_thread/thread/fd9766a0fc1e8bc1

Then I used ether of GXemul(testarm,testmips) with urlget.
http://yana.jp/

2011/10/19 Erik van der Kouwe <eri...@gmail.com>:


> It hasn't started yet, we're still finding someone to do it (hence the
> vacancy).

I am interested in "helping enhance MINIX 3 for (ARM-based) embedded
systems" with some files for ARM, MIPS and GXemul at "yana.jp".

About "helping enhance MINIX 3 for (ARM-based) embedded systems", is
it necessary to join the MINIX 3 team?

Thanks,

Yana

Erik van der Kouwe

unread,
Oct 20, 2011, 9:41:41 AM10/20/11
to minix3
Hi,

> Formerly I patched minix3_1_3a_ide_r2964.iso.bz2 for ARM, MIPS and GXemul.http://groups.google.com/group/minix3/browse_thread/thread/fd9766a0fc...

I recall having seen the post but I cannot read Japanese and don't
know what Yanakernel is, or how it is related to MINIX 3. What did you
do?

> I am interested in "helping enhance MINIX 3 for (ARM-based) embedded
> systems" with some files for ARM, MIPS and GXemul at "yana.jp".

Assuming that the code is BSD-licensed, consistent with all design and
style principles and still applies to MINIX 3.2.0 (a lot has changed
since 3.1.3, in particular virtual memory has been added) it could be
usable.

> About "helping enhance MINIX 3 for (ARM-based) embedded systems", is
> it necessary to join the MINIX 3 team?

AFAIK yes. This project will require substantial changes to MINIX so
intensive cooperation will be needed. This is only practical if the
person works in Amsterdam.

With kind regards,
Erik

Yana

unread,
Oct 22, 2011, 11:00:02 PM10/22/11
to min...@googlegroups.com
Hello,

2011/10/20 Erik van der Kouwe <eri...@gmail.com>:


> I recall having seen the post but I cannot read Japanese and don't
> know what Yanakernel is, or how it is related to MINIX 3. What did you
> do?

Thank you for being interested in "yana.jp" and YanaKernel0.

@ "What did you do?"

* first step (:Yana:YanaKernel: YanaKernel0 Prototype)

I implemented YanaKernel0 by software and executed it on
GXemul(testarm,testmips).

I want to implement YanaKernel0 by hardware, but not yet.

* second step (:Yana:YanaKernel: YanaKernel0 Prototype + MINIX)

I added MINIX to first step and executed it on GXemul(testarm,testmips).

I used MINIX with YanaKernel0 on the following computer system.
+ processor (GXemul(testarm,testmips))
+ YanaKernel0
+ MINIX kernel which depended on YanaKernel0
+ MINIX tasks and MINIX processes

* third step (:Yana:Computer: MINIX)

I subtracted YanaKernel0 from second step and executed it on
GXemul(testarm,testmips).

I used MINIX without YanaKernel0 on the following computer system.
+ processor (GXemul(testarm,testmips))
+ MINIX kernel
+ MINIX tasks and MINIX processes

@ "how it is related to MINIX 3"

About second step, YanaKernel0 handles exceptions and interrupts
directly, MINIX kernel is executed as a task of YanaKernel0.

About third step, MINIX kernel handles exceptions and interrupts
directly, YanaKernel0 is not executed.

@ "what Yanakernel is"

I introduce YanaKernel0 Prototype with reference to MINIX 3.1.3a.

Keywords of YanaKernel0 are simple, resource limited, and hardware
implementable.

* resource

About YanaKernel0, inside of kernel uses only the following resources.
+ processor
+ memory
+ interrupt controller (in the case of ARM)

Using disassembler, I checked stack size of kernel.
> | ARM | 48 bytes | CC="arm-elf-gcc -O2" make |
> | MIPS | 8 bytes | CC="mips-elf-gcc -O2" make |

YanaKernel0 may support real-time system, but I do not check
worst-case execution time of kernel.

MINIX kernel and tasks use the following resources, YanaKernel0 does not use it.
+ MMU
+ clock
+ serial (for debug)

* memory

About YanaKernel0, inside of kernel accesses only memories of kernel.
MINIX kernel and tasks access stack of task (or process) for
exception, interrupt, and signal, YanaKernel0 does not access it.
MINIX kernel and tasks access message buffer which uses memories of
task (or process), YanaKernel0 does not access it.

About sample echo2 of YanaKernel0, server(task1) communicates with
client(task2) by message buffer which uses registers of task.

I want to use task which was implemented by hardware.

> Assuming that the code is BSD-licensed, consistent with all design and
> style principles and still applies to MINIX 3.2.0 (a lot has changed
> since 3.1.3, in particular virtual memory has been added) it could be
> usable.

Some files at "yana.jp" need work about license and version.

Is the following license required?
http://www.minix3.org/license.html

Is copyright assignment not required?
http://www.gnu.org/licenses/why-assign.html

> AFAIK yes. This project will require substantial changes to MINIX so
> intensive cooperation will be needed.

About porting MINIX 3, formerly people who do not belong to the MINIX
3 team seemed to be accepted.
http://groups.google.com/group/comp.os.minix/browse_thread/thread/9d0076797e1f0eed
http://web.archive.org/web/20090303101856/http://www.minix3.org/who_doing_what.html

> This is only practical if the
> person works in Amsterdam.

About joining the MINIX 3 team, is it necessary to live in Amsterdam?

Thanks,

Yana

Erik van der Kouwe

unread,
Oct 23, 2011, 3:04:55 AM10/23/11
to minix3
Hi,

Thanks for the explanations! This sounds very good.

> Is the following license required?http://www.minix3.org/license.html

Yes, this is the license that we use for all base-system code. Since
the ARM port would be inseparable from the system, I think it would
have to use the same license.

> Is copyright assignment not required?http://www.gnu.org/licenses/why-assign.html

AFAIK it hasn't been done in the past and should not be required. I
think copyright assignment is more of an issue with the GPL where a
representative may be needed in court cases. As the BSD license allows
people to do almost anything with the code this is much less likely to
happen.

However, you should ask prof. Tanenbaum to be really sure.

> > AFAIK yes. This project will require substantial changes to MINIX so
> > intensive cooperation will be needed.
>
> About porting MINIX 3, formerly people who do not belong to the MINIX
> 3 team seemed to be accepted.http://groups.google.com/group/comp.os.minix/browse_thread/thread/9d0...http://web.archive.org/web/20090303101856/http://www.minix3.org/who_d...

The difference is the impact on the system. Adding drivers or packages
does not interfere with the work others do on MINIX. Adding simple
features might not interfere either. Adding a port however will have a
much larger impact on the system, especially since MINIX doesn't
properly split different architectures yet. Therefore this does
require coordination.

It should be noted that within the GSOC project some students outside
our team, working all over the world, have made invasive changes. In
this case each student had one or two mentors from within our team
assigned so the work could be discussed constantly.

In this case we have an ERC grant (http://erc.europa.eu/proof-concept)
that allows us to hire someone to perform the port as a part of
attempting to commercialize MINIX.

> > This is only practical if the
> > person works in Amsterdam.
>
> About joining the MINIX 3 team, is it necessary to live in Amsterdam?

As far as I know, yes. We have an international team with people from
many places (Germany, Italy, Czech Republic, US, India) who have moved
the Amsterdam to work on MINIX. The main advantage is being able to
meet face-to-face and discuss matters easily. In addition, I don't
know to what extent it is possible for the university to employ
someone who is not registered as a resident of the Netherlands,
especially if it is also outside the EU.

However again if you consider applying for the job it might be good to
contact Prof. Tanenbaum and discuss this. He has the final say on
these matters. His e-mail address is listed on the top of this page:
http://www.cs.vu.nl/~ast/ (I don't repeat it here to avoid spam).

With kind regards,
Erik

Arun Thomas

unread,
Oct 23, 2011, 6:06:48 PM10/23/11
to min...@googlegroups.com
Hi,

To apply for the VU position, you must be willing to move to
Amsterdam. However, you can contribute to MINIX from anywhere. We have
contributors from all over.

Best,
Arun

Yana

unread,
Oct 25, 2011, 5:00:01 AM10/25/11
to min...@googlegroups.com
Hello,

2011/10/24 Arun Thomas <arun....@gmail.com>:


> To apply for the VU position, you must be willing to move to
> Amsterdam. However, you can contribute to MINIX from anywhere. We have
> contributors from all over.

About PowerPC, MINIX 3 WWW site indicate that "Ingmar Alting has
ported MINIX 3 to the PowerPC Platform" and "We are integrating it
into the main system".
http://www.minix3.org/news/

However this integration does not seem to be finished.
http://groups.google.com/group/comp.os.minix/browse_thread/thread/9d0076797e1f0eed
http://groups.google.com/group/minix3/browse_thread/thread/eb999fb5848572b2
http://groups.google.com/group/minix3/browse_thread/thread/6b4b3d53c32fca9

About ARM and MIPS, I patched minix-ppc-port-release-1.tgz and


minix3_1_3a_ide_r2964.iso.bz2 for ARM, MIPS and GXemul.

What kind of case exists for integrating it into the main system?

@ example

* case A (simple)

I do not join the MINIX 3 team.
I change license of some files for ARM, MIPS and GXemul at "yana.jp".
The MINIX 3 team integrate it into the main system.

* case Z (complex)

I join the MINIX 3 team and live in Amsterdam.
I change license of some files for ARM, MIPS and GXemul at "yana.jp".
The MINIX 3 team integrate it into the main system.

Thanks,

Yana

Erik van der Kouwe

unread,
Oct 25, 2011, 11:23:07 AM10/25/11
to minix3
Hi,

> About PowerPC, MINIX 3 WWW site indicate that "Ingmar Alting has
> ported MINIX 3 to the PowerPC Platform" and "We are integrating it
> into the main system".http://www.minix3.org/news/

Unfortunately that never happened. I wasn't involved back then, but
knowing how much effort it takes just to merge in GSOC projects and
smaller student projects, I can imagine there was no time available
back then to perform the merge.

> * case A (simple)
>
> I do not join the MINIX 3 team.
> I change license of some files for ARM, MIPS and GXemul at "yana.jp".
> The MINIX 3 team integrate it into the main system.
>
> * case Z (complex)
>
> I join the MINIX 3 team and live in Amsterdam.
> I change license of some files for ARM, MIPS and GXemul at "yana.jp".
> The MINIX 3 team integrate it into the main system.

I'm afraid this is a bit of an oversimplification. You've ported 3.1.3
while the current version is 3.2.0. MINIX has changed a lot since
then. For example, 3.1.3 had no virtual memory and it had a completely
different libc (although the current one from NetBSD at contains ports
to many architectures). Hence, there will be substantial work involved
in porting the new version even though you've already made a port of
another version.

Also, we don't have the resources to do the integration. All our
programmers are already working hard on other projects. This is why we
want to hire someone to do it.

Please also note that one important difference between A and Z is
missing: if you were to do the port as part of the MINIX 3 team that
is a job and you would get a salary for it.

With kind regards,
Erik

Yana

unread,
Oct 27, 2011, 5:00:03 AM10/27/11
to min...@googlegroups.com
Hello,

2011/10/26 Erik van der Kouwe <eri...@gmail.com>:


> I'm afraid this is a bit of an oversimplification.

Then let's change it.

What kind of case exists for integrating ARM (and MIPS) port into the
main system?

@ example

* case 0 (without "yana.jp")

Someone joins the MINIX 3 team, lives in Amsterdam and gets a salary.
The MINIX 3 team port MINIX 3.2.0 to ARM (and MIPS).


The MINIX 3 team integrate it into the main system.

* case A (with "yana.jp", simple)

I do not join the MINIX 3 team.

Someone joins the MINIX 3 team, lives in Amsterdam and gets a salary.


I change license of some files for ARM, MIPS and GXemul at "yana.jp".

The MINIX 3 team change it for consistency with MINIX 3.2.0.


The MINIX 3 team integrate it into the main system.

* case Z (with "yana.jp", complex)

I join the MINIX 3 team, live in Amsterdam and get a salary.


I change license of some files for ARM, MIPS and GXemul at "yana.jp".

The MINIX 3 team change it for consistency with MINIX 3.2.0.


The MINIX 3 team integrate it into the main system.

> You've ported 3.1.3


> while the current version is 3.2.0.

About some files at "yana.jp", there are many problems like "ToDo".

> MINIX has changed a lot since
> then. For example, 3.1.3 had no virtual memory and it had a completely
> different libc (although the current one from NetBSD at contains ports
> to many architectures).

About MINIX 3.2.0, virual memory seems to mean demand paging.

In the case of ARM, some files at "yana.jp" already used paged MMU,
but process do not continue execution by exception relating to MMU.
In the case of MIPS, some files at "yana.jp" already used paged MMU,
and process may continue execution by exception relating to MMU.

A completely different libc seems to require work about assembly
language and Application Binary Interface (ABI) like calling
convention.

About assembly language, there are some files outside "arch" like
"src/lib/libc/syscall".
About ABI, there are some files outside "src/lib" like server relating
to EXEC and task relating to signal.

> Hence, there will be substantial work involved
> in porting the new version even though you've already made a port of
> another version.

I do not think that it is easy.

Thanks,

Yana

Erik van der Kouwe

unread,
Oct 27, 2011, 5:21:00 AM10/27/11
to minix3
Hi,

Thanks for your comments.

We'll be looking into the implementation details for this project
after we found a programmer, as obviously (s)he will have a major say
in that.

If you are (potentially) interested in applying for the job feel free
to contact prof. Tanenbaum about the details (his e-mail address is on
top of this page: http://www.cs.vu.nl/~ast/).

With kind regards,
Erik
Reply all
Reply to author
Forward
0 new messages