a cool OS coming to the beagleboard?



what OS are working on the board so far?










What about riscos it been written for the ARM chip. and with only minor changes it would work on the beagleboard. one thing it’s not opensource so we would need to pay riscos ltd for a license. But its a great operating system with lots of free software. I would buy it, I have used it before it’s very effective.









may be if they knew that there where people intrested in it they would make a version for the beagle board. also a free version so people could try it out.









If your intested why not email them and let them know there is a intrest in it and we could have a new partner onboard :slight_smile:









sales@riscos.com




http://www.riscos.com/






|

Working or available?

Linux distros
Angstrom: http://www.flickr.com/photos/jadon/2535894759/
Maemo: http://www.flickr.com/photos/jadon/2295700120/
Mamona: http://franciscoalecrim.com/blog/2008/07/29/mamona-working-with-beagleboard/
Ubuntu: http://youtube.com/watch?v=FuVwh_VrIxk

WinCE bootloader is running, but I think there isn’t a complete set of drivers yet.

In general, getting an OS up-and-running is an exercise for the community as a whole. Everyone is welcome to run whatever OS or version that they’d like! RiscOS, OKL4, FreeBSD, Nucleus, etc. All are welcome. Ones open for more developers will get more developers.

As I see it there are 3 type of OS

Open platform OS (Desktop)

ones made for other hardware and moved over to the ARM platform

Mobile phone/pda OS (mobile)
ones made for the mobile market at can take advatage

ARM Native platforms
ones made for the ARM ground up taking advantage processor architecture

I am not a OS expert so please correct me if I am wrong but there are some grate advantages in building OS around the Arm architecture.

Beagle OS (open source)
A Small ARM optimised kernel

Possibly - A nice new filing system

Open GL 3D user interface

Built in applications

  • Word processor

  • Web browser / code editor

  • Spreadsheet

  • Vector editor

  • Bitmap editor

ease to use programming language something like PHP with Arm assembler

So what do people think?

  • if there is enough interest I am willing to set up a website

FYI. I'm planning to port a small kernel called Roadrunner/pk to the board
as soon as I get my hardware. The kernel is multithreaded and has POSIX
threads based API but it doesn't use virtual memory. Its really small (~40
Kbytes) and is targeted at embedded applications that require very high
performance compared to a full UNIX-like design. I'll keep the group posted
on my progress with the port. I can provide anyone who is interested with
documentation on the kernel design.

Thanks,

FM

FYI. I’m planning to port a small kernel called Roadrunner/pk to the board as soon as I get my hardware. The kernel is multithreaded and has POSIX threads based API but it doesn’t use virtual memory. Its really small (~40 Kbytes) and is targeted at embedded applications that require very high performance compared to a full UNIX-like design. I’ll keep the group posted on my progress with the port. I can provide anyone who is interested with documentation on the kernel design.

BeagleBoard.org is definitely not strictly associated to only Linux, but we appreciate and promote shared development interms of software / hardware or a concept or an innovative thought etc.

Feel free to give your links for any such developments.

Regards,
Khasim

Sounds great :slight_smile:

Thanks Khasim

I was just thinking about that.today

virtual memory Not support is not a problem

with Hard drives on the way out, and with a replacement to flash that works like RAM already be produced soon there will be no need for virtual memory anyway.

Look forward to hearing more. what is the chance of some Arm optimising two. Could there be more speed to be squeeze out. I know that ARM has different modes for interrupts? Would they be supported. They offer the interrupt code a fresh set of registers saving clock cycles more registers to and from main memory. Great for a top speed kernel. Well I think so but I don’t really know that much about kernels or possessor architecture.

What do people think? Would some ARM optimised kernel make a big difference or not?

I was thinking about some basic ARM optimising of the new kernel. As I understand it smaller kernel equals faster speed. What will make the roadrunner kernel so fast on the OMAP chip is the fact that it fit’s inside the level 1 Cache with space for other code to. As I understand it the level 1 code cache is 32k and the roadrunner kernel is 40k. So the whole of the kernel would not fit on arm chip it’s self at one time.

If we can get all the most used functions of the new OS to fit on the ARM chip’s 1 cache then things will really more fast. One of the the great features of the ARM Cortex-A8 is the Thumb-2 instruction set. It mixes 16/32bit instructions to compact code with only minimal speed loss.

So a 40k kernel would become 28k leaving room for other code in the I level cache. If we can keep it small then we will have an operating system that will make others look like dinosaurs. What do people think? Good idea? Or have I got my thinking wrong?

is the roadrunner kernel compiled in Thum2 or in ARM?

O I see 32k but 16K-Byte Instruction Cache and 16K-Byte Data Cache
Still think using Thumb 2 is the way to go. the 2 level cache is 256k so thats not to bad there.

I think size is the key with an optimal operating system.

Could some of the kernel work on the DSP as it has it’s own 1 level cache too? it’s along shot but is that a possibility, just trying to think out of the box. Two heads are better than one.

thought?

Well, this is an OS kernel that was developed about 10 years ago but has
been languishing on my hard drive for some time cuz I've been off doing
other things. It's BSD licensed and should be very simple to understand.
I've only ever booted it on x86 machines but it should not be a big deal to
get it to run on an ARM. I did start messing with it again recently
thinking about adding support for x86 multicore. You'll see some initial
code for that in there. I also started writing a UHCI driver (very
incomplete) in hopes of adding a USB stack to it. My goal was to get it
booting self hosted off a USB stick. Definitely a long way to go towards
that goal although I do have some FAT filesystem code sitting around
somewhere if I ever got the USB stack in place. Anyway, link to the source
code is at:

http://www.sipuseragent.net/download/pk.tgz

I am more than happy to take patches and fold them in and maintain a central
source tree if that becomes something that is useful. I've not started
working on this project because I'm still waiting on hardware but I'll be
getting going on it when I do.

Thanks,

FM

What about uC-OS-II ?
It’s already been ported to ARM, although not specifically for the OMAP35x on the beagle board.
It probably wouldn’t require a lot of porting-working, and would be a very fast & memory-efficient kernel.

Just thinkin out loud…
_Bernardo

lets not knock 10 year old code as ten years ago there was less memory and processor power so code had to be small and faster. Sound’s like a great start to me. Just remember the first ARM was designed by four people who as I understand it had never designed a processor before. Now look at it. There could be a day when people are buying a beagle board just because it comes with beagle OS. A very fast ease to use operating system. That’s a joy to use.

So what is the core values of the beagle OS.

Here are some I have thought of

  • Compact code (reusable module based.)

  • Fast ARM/ DSP/ GPU Optimized

  • Good looking Open GL type user interface

  • Basic applications built in (word, excel, ect)

  • Simple ease to use programming language for beginners(for apps and games)

  • Fits on 256 built in flash.

  • Open source

was thinking that we could have some tests on the available kernel for speed ect
maybe even mix them to get a new kernel what what ever works out best.
test and see. some how my moneys on a kernel thats ten years old being very good. think that might will be hard to beat when it’s been updated.
we are your only going to learn by trying. we may find that there is only one thing thats better with one kernel than another. but in my eyes thats one more way to improve an already good kernel that we would not know about.

Thanks for your input Bernardo and look forward to hearing about roadrunner Frank :slight_smile:

Who knows where a beagle OS project will go. but the more people join in the biger chance it will get off the ground. it’s got to be good experience whatever happens

I definitely won't knock it since I wrote all of it. :wink: And as I
mentioned, I've been running it recently while I tried to add multicore
support. Its still working well on x86.

Remember, its just a kernel, it has a memory manager, interrupt service
routine (ISR) management, Pthreads, mutual exclusion (i.e. mutexes), console
and keyboard drivers with a simple monitor/shell. I neglected to post the
documentation on the design of the kernel, I've added that at:

http://www.sipuseragent.net/download/pk.pdf

Pretty much all the stuff you list below would have to be built on top of
the kernel.

Enjoy!

FM

how big is uC-OS-II ? and what type of kernel is it?

what sort or kernal should we be using.

microkernels or monolithic kernels or may be hybrid kernels

whats the best for the job?

was thinking of a hybrid kernel. like Mac OS X ,could roadrunner become a hybrid kernel? I think the same kernel as mac OS X works on iphone and that uses a ARM11 chip. what would be the size diffrence?

I see thanks. Had a look. looks like there is a far bit of work to do moving it from X86 to ARM. but once the basics are done it would be easer to code on an arm? Yes there will be alot of work for people to get there teath into once we have a kernal to run things on.

Roadrunner/pk and ucos are very similar in their feature set (at least the
basic ucos kernel, it also has lots of addon modules for networking and
such) and what they target for application development, i.e. deeply embedded
systems. A big difference of course is Roadrunner/pk is open-source and
ucos is not.

If you are looking to put together some sort of desktop environment, Linux
will be your best bet. It has way more software that's already integrated
with it to do what you are looking for. If you want to build an embedded
device application, something like Roadrunner/pk or ucos might be better.

Micro vs. monolithic vs. hybrid is really only relevant if you are using
virtual addressing. Then its really just preference based on your
requirements. Micro kernels are better for some things and monolithic are
better for other things.

Thanks,

FM

Actually, the port should be straightforward. The hardware specific stuff
is well separated. It will need to 1) boot with interrupts disabled, 2)
configure the memory map, 3) setup interrupt hardware and enable interrupts,
4) set up a software tasking structure that is hardware dependent, 5) do a
new driver for the console. Can a keyboard be plugged in directly or will
it have to be a USB keyboard? If USB, is there a PS/2 keyboard port
emulation that can be set in the USB controller? That should be about it to
get it where it is now on x86.

Thanks,

FM

How about Plan9 or MINIX-3?

Hi all.

Are there any suggested approaches to put Linux on a B-Beagleboard?

Perhaps Slackware and one of the lightweight window manager?

Looking for a carputer role, or similar

If by ucos, you are referring to uC/OS-II, then it is open source as in the source is readily available as indicated at http://www.micrium.com/products/rtos/kernel/licensing.html. As with many open sourced software these days, it is the licensing model that varies enormously. Your BSD license for Roadrunner/pk is certainly a lot more commercial friendly than uC/OS-II license, but uC/OS-II’s source code is definitely and easily available.