[gsoc15][idea-proposal] Port FreeBSD to a smartphone [needs-feedback]

Giovanny Andres Gongora Granada gioyik at gmail.com
Mon Mar 23 02:48:31 UTC 2015


Hello,

My name is Giovanny, I am an student from Universidad Cooperativa de
Colombia planning to participate this year in the gsoc with FreeBSD
organization. I reviewed the project list [1] for this year and I am
interested in propose a project for Port FreeBSD to a smartphone (any maker
and model) [2]. I will share with you my idea, I really appreciate have
some feedback for my final proposal in the gsoc page.

FreeBSD has a good compiling process for ARM [3] architecture and hardware.
Taking advantage of this FreeBSD could run on a smartphone by three ways:

1. Using Android (based device and build process) we can compile FreeBSD
kernel with support to the hardware of the device, then use a SD as system
partition and configure it as a normal FreeBSD system. Flash an image
generated for boot, equal to zImage in the block partition of the device
using fastboot, so at reboot it will be running the FreeBSD system. After
have the device running is more easy work on a display lib for the device.
At the end if it can boot a device using this process and emulator could do
this (changing the boot image for the one with FreeBSD) too, I use AOSP to
define an environment and a set of tools to compile a light emulator with
just the components necessaries to run the FreeBSD system. Mozilla does
this to build Firefox OS with AOSP (devices and emulators) [4]. [This is
not a image to chroot-jail]

2. Porting the idea of Gentoo for Android [5] to FreeBSD, this could be
more difficult than expected due to port the concept of Gentoo RAP to
FreeBSD could take a long time of research. Added to it, Gentoo RAP is made
to work over Linux, so will take more time adapt the concept to FreeBSD and
get something working with the low level layer of Android in the device. If
by X reason the concept of Gentoo for Android it's done for FreeBSD could
be possible think on port and use Webtop [6] as output for X servers how
was done in Ubuntu for Android.

3. Running FreeBSD directly on an Android device using an application that
emulates-wraps a terminal to boot a pre-compiled obb (just a tar package
with a different name) package of a FreeBSD system. It will provide a shell
to access all the programs in FreeBSD system but only text-mode will be
supported. To interact from the smartphone with a graphical environment in
FreeBSD there are to ways, first use other apps like a vnc client or embed
a custom vnc/display client with own libs to display the enviroment. This
method doesn't require root on the phone to run FreeBSD and the final apk
of the application to run FreeBSD could be published in the Play store (if
the idea is to publish it), so everyone could install it and run FreeBSD
instantly after apk installation from Play Store.

Three possible ways but personally I see 1 and 3 are the ones with best
results. Number 1 is the way we more friendly for daily testing and with
more percentage for future development. It will keep compatibility with
latest changes in arm build process and after new CPU and boards support is
added, will be easy build and test on more devices with this method. Number
3 it's more a user side and probably not offers a complete FreeBSD system
experience as expected. I see that part of the gsoc is R&D, so I will be
happy to research and develop until the end with all the ideas to get the
best experience of FreeBSD on a phone.

I know all this needs to be more detailed to get and idea if I am wrong or
not, so feel free to quote where you think needs clarification in the
process. Any feedback or opinions about this is really appreciated to my
final proposal in the gsoc page.

Thanks,
Gio

----------------------------------------------------------------------

* About me:
I am studying at University Cooperativa de Colombia, my future degree will
be Systems Engineer. I had been contributing to open source project since 4
years ago, today I am an active Mozilla contributor [7], I work sending
patches to the Firefox and Firefox OS code base [8]. Also I am part of the
reviewer team at Firefox Marketplace (I review the apps that are sent to
the Marketplace to be published) and I am a Mozilla Reps [9] too.

I contribute to other open source projects too (Tor Project time ago as ES
translator) different to Mozilla, you can see some of my contributions to
other projects in my Github profile [10]. Most of my projects are open
sourced in Github [11] and those projects are coded using different
languages, some of them are C, Go, Python, Javascript, Ruby, Java and some
shell scripts.

* Previous experience with FreeBSD:
I maintain some FreeBSD systems running in my University and a year ago I
helped to run some FreeBSD servers with an IT team for a hosting provider
company.

----------------------------------------------------------------------

[1]: https://wiki.freebsd.org/SummerOfCodeIdeas
[2]:
https://wiki.freebsd.org/SummerOfCodeIdeas#Port_FreeBSD_to_a_smartphone_.28any_maker_and_model.29
[3]: http://www.freebsd.org/platforms/arm.html
[4]: https://github.com/mozilla-b2g/B2G
[5]: https://wiki.gentoo.org/wiki/Project:Android
[6]: http://sourceforge.net/motorola/motorola-webtop/home/Home/
[7]: https://mozillians.org/en-US/u/gioyik/
[8]: http://hg.mozilla.org/mozilla-central/log?rev=gioyik%40gmail.com
[9]: https://reps.mozilla.org/u/gioyik/
[10]: https://github.com/Gioyik/
[11]: https://github.com/Gioyik?tab=repositories


More information about the freebsd-hackers mailing list