MINIX 3 and Google Summer of Code 2017

522 views
Skip to first unread message

David van Moolenbroek

unread,
Mar 14, 2017, 1:14:03 PM3/14/17
to minix3
All,

As you may have gathered from other posts already, MINIX 3 is participating in Google Summer of Code (GSoC) 2017, as part of the Microkernel Devroom umbrella project [1]. The umbrella project's GSoC application has been accepted by Google, and that also means that MINIX 3 stands a chance of getting a slot assigned to a project proposal.

While we have no shortage of possible projects, we are currently looking for both mentors and students. In terms of mentors, we are looking for people who have both experience with MINIX 3 development and a willingness to invest time in guiding a student through the process of contributing to MINIX 3. As a mentor, you get a large degree of freedom with respect to deciding on a project that you would like a student to work on. In the short term, you will be expected to come up with a description for any project you are interested in mentoring, and evaluate any potential students, in particular by making them perform a representative "sheep/goat" task to assess their ability to complete the actual project. Unfortunately, we are a bit late already (which is mainly my fault), and so that part will have to happen on a rather short notice: the deadline for student applications is April 3. If you are potentially interested in being a mentor and/or have questions, please get in touch with me (david at minix3 dot org) or simply reply to this post.

Of course I'd also like to invite any potential GSoC students to look for, ask about, and even suggest projects. More information about the whole concept, including requirements, guidelines, and the application form, can be found on the Microkernel Devroom GSoC website [1]. Our project ideas page can be found on our wiki [2], and while it is currently a bit short, we hope to extend it with more project/mentor combos quickly. The official GSoC page [3] has additional information, including the timeline.

Regardless of the outcome for MINIX 3 this year, I'd also like to thank the people behind the Microkernel Devroom project - Jakub Jermar in particular - for organizing the joint application and everything around it. I hope that this will be a recurring thing. Next year we should be organized a little better.. :)

Regards,
David

[1] http://gsoc.microkernel.info/
[2] http://wiki.minix3.org/doku.php?id=soc:2017:start
[3] https://summerofcode.withgoogle.com/

Jean-Baptiste Boric

unread,
Mar 14, 2017, 5:29:33 PM3/14/17
to minix3
Since I already welcome and help newcomers here on short notice, I guess I could become a mentor if needed.

I have in particular two projects to propose, which are currently my two open pull requests from Hell:
  • Raspberry Pi port : I've done a rough and bare-bones proof-of-concept, but there's plenty of work to be done before it'll reach feature-parity with the Beagles or even mergeable status
  • Rump : I proved that the rump kernel base, factions and drivers will compile and link inside the source tree, but we lack a suitable hypercall implementation, service layer glue and whatnot to make use of it
The reason I propose them is that these subjects are already mostly proven to be workable and that I know them inside out. Also, since I am an intern until August I'm not going anywhere for the summer, but that also means I don't have enough free time to make significant progress on my own on these in the foreseeable future.

I'm open for other projects too, but the core developers are more likely to be helpful than me on arcane MINIX stuff.

Denis Obrezkov

unread,
Apr 1, 2017, 2:36:38 PM4/1/17
to minix3
Hello, do you provide any gsoc application template?

вторник, 14 марта 2017 г., 23:29:33 UTC+2 пользователь Jean-Baptiste Boric написал:

Jean-Baptiste Boric

unread,
Apr 1, 2017, 4:15:20 PM4/1/17
to minix3

JayaPrakashNarayana Naguboina

unread,
Apr 4, 2017, 9:31:21 AM4/4/17
to minix3
Hello Jean,

Nice to meet you. I am jay very new to development. I read you want to be a mentor. So asking you can help me in guiding me right direction, so that i will make sure we are travelling in same boat. I have learned "C" programming and installed MINIX3 in my virtual box. What all steps do remaining to start developing MINIX3. If possible please elobrate. Let me know what all skills I need to learn before helping the community.

thank you 
Jay

Jean-Baptiste Boric

unread,
Apr 5, 2017, 6:25:09 AM4/5/17
to minix3
Hi,

Note that the GSoC 2017 student proposal applications deadline is over. If you didn't submit a proposal with the microkernel devroom organization then it's too late for GSoC 2017 and you should create a new dedicated thread on this Google groups instead of hijacking this subject.

To start developing, you need to pick a subject you want to work on. I started by making a read-only file system server (ISO 9660), but you can also write a driver for some piece of hardware you have, port pkgsrc packages, implement missing POSIX/NetBSD features or just tinker with the code to get a better understanding of MINIX's architecture. Find something you're interested in, study what exists in the source tree and the rest should come naturally. There's no hard requirements in skills, but proficiency in C, GDB and other UNIX tools/concepts helps.

There are also areas where help is welcome and development skills are not required, from improving documentation to reporting bugs or testing new functionalities.

Sergio Inacio

unread,
Jul 11, 2017, 2:40:18 AM7/11/17
to minix3


terça-feira, 14 de Março de 2017 às 21:29:33 UTC, Jean-Baptiste Boric escreveu:
  • Raspberry Pi port : I've done a rough and bare-bones proof-of-concept, but there's plenty of work to be done before it'll reach feature-parity with the Beagles or even mergeable status

Hello. Im an hobbist and im trying to boot minix4 on a banana pi (allwinner A20 - Cortex-A7 armv7)

As far as i understand, as A20 cores share the same instruction set, and most of the SOC configuration is done in u-boot. Most of the code maybe drivers for specific hardware.
As im right?

Can you share info about what you have done to your bare-bones proof-of-concept?

thanks 

Sergio

Jean-Baptiste Boric

unread,
Jul 11, 2017, 5:06:59 AM7/11/17
to minix3
Hi,

Indeed, it's a board port. As long as the processor is compatible with a ARMv7-class processor, the ARM arch code is reusable almost as-is (but the drivers aren't).

Can you share info about what you have done to your bare-bones proof-of-concept?

It is quite challenging, especially since MINIX right now doesn't have good multi-vendor board support, doesn't have device tree support and the ARM port has lots of hardcoded stuff everywhere.

I would not recommend attempting this before getting familiar with MINIX and its internals first.

Here's the rough outline:
  1. Get all the documentation on ARM, the SoC and the board you can find
  2. Have a means to connect to the board's UART
  3. Get U-Boot to work
  4. Modify the kernel (linking address, BSP files) and try to get output on the UART very early on
  5. Resole all issues as they come until the init process is launched
  6. Modify tty to get a console on the board's UART (otherwise init will panic early trying to open the console)
  7. Write drivers
Finding a QEMU branch that supports your board (or at least one board in the same board family) is highly recommended. The GDB stub will save your sanity.

The development diary is available at https://groups.google.com/forum/#!topic/minix3/OLCpnlxVbs4/discussion. Take a look at this to check out the details and a "clean" development history: https://github.com/boricj/minix/compare/ad60a88...boricj:rpi_clean. The branch is far from being a clean job for lots of reasons though, one of them being that QEMU's rpi machine was a barely functional mess where U-Boot wouldn't run back then.

Sergio Inacio

unread,
Jul 12, 2017, 11:15:57 AM7/12/17
to minix3

Thank you for your reply. I will look with greater detail to the dev history on github.
Sergio


Sergio Inacio

unread,
Jul 12, 2017, 10:37:04 PM7/12/17
to minix3
Hi 

If you could help me understand this.

I get the source code using: git clone git://git.minix3.org/minixCompiling master and got minix 3.4.0

Your github is forked from https://github.com/Stichting-MINIX-Research-Foundation/minix, that is automatically replicated from gerrit.minix3.org.

Does gerrit.minix3.org have the same code as git://git.minix3.org/minix src ?

Jean-Baptiste Boric

unread,
Jul 13, 2017, 4:37:36 AM7/13/17
to minix3
http://git.minix3.org/index.cgi?p=minix.git;a=summary is the official Git repository. https://github.com/Stichting-MINIX-Research-Foundation/minix is the official GitHub mirror of the former repository. They should have the same contents at all times.

Gerrit is a continuous integration tool for code reviewing and such. Once reviewed and approved, commits are pushed to the Git repositories.

Sergio Inacio

unread,
Jul 13, 2017, 7:16:48 AM7/13/17
to minix3
to report issues found using the code i get on git.minix3.org

Because I got and issue in debian9 when cross compile for arm build.

In file included from /root/minix/my/minix/tools/gcc/../../external/gpl3/gcc/dist/gcc/cp/except.c:1008:0:
cfns.gperf: In function 'const char* libc_name_p(const char*, unsigned int)':
cfns.gperf:101:1: error: 'const char* libc_name_p(const char*, unsigned int)' redeclared inline with 'gnu_inline' attribute
cfns.gperf:26:14: note: 'const char* libc_name_p(const char*, unsigned int)' previously declared here

David van Moolenbroek

unread,
Jul 13, 2017, 7:50:48 AM7/13/17
to minix3
Hello,


On Thursday, July 13, 2017 at 1:16:48 PM UTC+2, Sergio Inacio wrote:
to report issues found using the code i get on git.minix3.org

Because I got and issue in debian9 when cross compile for arm build.

That issue has already been reported: https://github.com/Stichting-MINIX-Research-Foundation/minix/issues/187

(Also, please note that you are effectively hijacking a thread about GSoC2017 with unrelated questions. Please create a new thread for a new topic in the future.)

Regards,
David

Greg Reagle

unread,
Jul 13, 2017, 8:18:43 AM7/13/17
to min...@googlegroups.com
On Thu, Jul 13, 2017, at 07:50, David van Moolenbroek wrote:
> (Also, please note that you are effectively hijacking a thread about GSoC2017
> with unrelated questions. Please create a new thread for a new topic in the future.)

What specifically do you mean by "create a new thread"? Is updating the
subject to be accurate (like I did in this message) sufficient?

I remember using Usenet, have used a real mail program like mutt, and am
familiar with the concept of threads, but I find that there are a LOT of
people who aren't familiar. Young people, people who have only used
webmail which uses the term "conversations".

Thanks.

David van Moolenbroek

unread,
Jul 13, 2017, 8:26:29 AM7/13/17
to minix3
Hello,


On Thursday, July 13, 2017 at 2:18:43 PM UTC+2, Greg Reagle wrote:
What specifically do you mean by "create a new thread"?  Is updating the
subject to be accurate (like I did in this message) sufficient?

That would be second best. The proper way to create a new thread is to not reply to another message. The Google Groups web interface [1] also clearly shows the hierarchy of threads and posts, and lets you create a new thread with the "new topic" button (as opposed to the "post reply" button).

Regards,
David

[1] https://groups.google.com/forum/#!forum/minix3
Reply all
Reply to author
Forward
0 new messages