QNX Open Source

I understand that on September 12, 2007, the source code to the Neutrino kernel and base C library was released. I was wondering if the source code to the servers was also released. I am planning to make a small open source QNX distribution and was wondering if it was possible.

Not sure what you mean by servers. Some components are still missing, like photon and some tcpip stuff.

That being said I’m not sure you are legaly allow to redistribute it. Open Source doesn’t mean free ;-)

Hello Xsolarwindx ,
Many of QNX Board Support Packages (BSP’s) contain the source code of resource managers and drivers.
Please check
community.qnx.com/sf/sfmain/do/v … ojects.bsp

Regards,
Yuriy

Hello,
I completely agree with Mario. Please read copyright and license notes at the beginning of each QNX source code module.
Regards,
Yuriy

Open Source means Open Source, which I plan to follow.

Please read: www4.osnews.com/story/18596/QNX_ … w:_QNX_CEO

So I guess I’m good to go.

From wikipedia:

My original question was, does the Open Source QNX come with all those servers and drivers and what not, or are they still closed source? Is it ONLY the neutrino kernel that’s released or is it the whole suite of servers and so on needed to make a more or less complete operating system.

Which part of TCPIP stuff is missing? I thought core_network have them all (ok, it’s next gen, but … it does have them all is it? :slight_smile:

To original question, I believe the “intention” is to open them all. But due to the large amount of source we have to scan, it will take time. As of now, the kernel/libc//next gen tcpip/all bsps are opened I believe.

Thats awesome! So do you think it’s enough to get a simple QNX setup working from scratch just by building sources?

Thats awesome! So do you think it’s enough to get a simple QNX setup working from scratch just by building sources?

Note: the forum quote divs are messed up.

No it doesn’t. rcp isn’t there so is ftpd etc.

I don’t think it’s simple, there is stuff missing all over the place, and there would be no GUI.

I’m curious though, aside the fun factor, what would be the benefit of redistributing what is already available in binary form? Unless you have some secret plan you didn’t mention :wink:

Because it would be source based. I could compile an ftp server myself, couldn’t I?

Also, I don’t need a GUI. If I really wanted one, couldn’t I just compile X and Fluxbox/Openbox or whatever?

I must be missing something?

Yes you could, the QNX stack is based on NetBsd, I guess you could give that a try.

Either you have never done that before or you have lots of expertise in the field. You make it sound a little too simple :wink: No offense intended.

Good luck.

I’m new to QNX. Not computers. I have compiled X on Linux and Minix, made my own Linux distribution and so on. I just have no idea about this whole QNX thing. Am I missing something?

Actually i think you could get your own personal source based distribution but you can not redistribute this without permission.
As soon as you want to use it comercially you need a license. As soon as you want to redistribute it, you need permission and i guess a license (some more may) too ^^

It does sound like you have the expertise. I think the remaining questions you might ask yourself might be, do you have the time, the inclination, and the motivation? Thinking about motivation for a second, do you have some goal in mind that wouldn’t be more directly accomplished by using a Linux system? I’m not just playing devil’s advocate here. On a regular basis I question my own sanity in supporting the Lamp stack on my QNX server.

That said, if you go forward, the QNX community will no doubt be interested in your results, and will do what we can to support you in your endeavor.

QNX is NOT a Linux system. Although it’s constantly improving, not all packages made for Linux can be compile out of the box. Just to give you an idea try Samba 3.0. If you can get that one to build you should be good to go ;-) I don’t think it is a priority for QNX to allow for building of distribution from the source code. In fact QNX has very nice tools to help you build distribution out of binaries. I mean unless you plan on customizing some of the source for some specific need, what would be the point.

Unlike Linux QNX is a micro kernel. Most of the code live outside the kernel. You just “add” all the binaries and shared object that you need to the kernel image and filesystem if need be. Redoing it from source is a total waste of time and not to mention very time consuming since nothing is as simple are running configure or make.

By the way X is not the GUI that QNX uses, it’s called Photon. All the graphics driver are custom to QNX and have nothing to do with Linux. That being said X was ported to QNX a while ago, but I would guestimate that very few people are using it at the moment.

Outside your own need, your distribution could be interesting to some people, but the fact that it would be build out of the source is pointless in my opinion. QNX is already in the process of doing it and they are not even there yet.

However if you go ahead with this, go on community.qnx.com, share your ideas and experiences, QNX might take back some of the stuff you could do, or incorporate some of your ideas in the OS or the way its distributed.

Here is something I used to setup bootable HD. DISK is the name of the device ( hd1 in most cases ). It creates 3 partition. the make copy will copy the required files on the boot partition. Hope this help.

print "creating partition /dev/$(DISK)"
-on /bin/umount /fs/$(DISK)*
-on /bin/umount /dev/$(DISK)t*
## clear the partition table
on dd if=/dev/zero of=/dev/$(DISK) count=10
on /sbin/fdisk /dev/$(DISK) delete -a
on /sbin/fdisk /dev/$(DISK) add -s1 -t79 -p 15 -b
on /sbin/fdisk /dev/$(DISK) add -s2 -t78 -p 20
on /sbin/fdisk /dev/$(DISK) add -s3 -t77 
on /sbin/fdisk /dev/$(DISK) loader
print "mounting partition /dev/$(DISK)t79"
on /bin/mount -e /dev/$(DISK)
print "Initialising filesystem, peut prendre jusqu'a une minute" 
## for QNX6
on -w /dev/$(DISK)t79 -W 30 /sbin/dinit -qh /dev/$(DISK)t79
## for home
on -w /dev/$(DISK)t78 -W 30 /sbin/dinit -qh /dev/$(DISK)t78
## for QNX4
on -w /dev/$(DISK)t77 -W 30 /sbin/dinit -qh /dev/$(DISK)t77
print "mouting /fs/$(DISK)"
on /bin/mount -t qnx4 /dev/$(DISK)t79 /fs/$(DISK)
on -w /fs/$(DISK) -W 30 /bin/mount -t qnx4 /dev/$(DISK)t78 /fs/$(DISK)/home
print "starting copy..."
$(MAKE) copy DEVICE=/fs/$(DISK)
-on find /fs/$(DISK) -name CVS -exec rm -rf {} 2> /dev/null
print "Unmounting disk, if USB can be safely unplug" 
on umount /fs/$(DISK)
print "type mount /dev/$(DISK)t79 /fs/$(DISK), if you need to see the disk"