Tablet OS

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
MichaelFarthing
Member
Member
Posts: 167
Joined: Thu Mar 10, 2016 7:35 am
Location: Lancaster, England, Disunited Kingdom

Tablet OS

Post by MichaelFarthing »

Has anyone got experience of developing their own OS for a tablet?

I see that there are dual booting tablets that seem to work by kicking up alternative ROMs and I assume to get ones own OS up and running (evading the garden fence) you might have to burn and install your own ROM. Is this a practical proposition? (I have actually done such a thing in the past with a Commodore Pet around 1980 using a fairly cheap but effective ROM burner - do such still exist?)

Or am I making things too hard? Is there a means of installing a traditional boot loader to divert execution to the RAM?

This is my first post here, but I have got my own (very primitive) OS running on an Intel laptop so am not a total newby.
User avatar
jojo
Member
Member
Posts: 138
Joined: Mon Apr 18, 2016 9:50 am
Libera.chat IRC: jojo
Location: New York New York

Re: Tablet OS

Post by jojo »

That's going to be an interesting one because it depends on the make and model of device you're talking about. But either way, you're looking at a fair bit of legwork in comparatively uncharted waters.

For older iDevices, you might want to check out the work being done by Open iBoot. IT's a piece of software that focuses on being able to override the device's normal boot behavior in order to load unsigned third party code, and they've used it to successfully boot android, but you'd have to talk to the people involved to get an idea of exactly what their latest work will boot on and how you might be able to use it to launch your own code instead of a linux kernel.

For Android devices, it's also going to be a mixed bag depending on how well the manufacturer locked down rooting for that particular device. If there's no known way to root, you're SOL. Otherwise, if you have a device you can root it should be as easy as flashing your custom-made ROM to your device in the same way as you would flash a new stock android image or something like cyanogen. Apparently, it's possible to get ubuntu flashed and running on some devices, so you might want to look into their tablet distro code to see if you cant find arch code for your intended platform that could give you a blueprint on how to make your ROM start up properly.

Either way, though, the bottom line is that once you can figure out how to execute your own code at boot time, your big challenge is going to really lie in the fact that these aren't exactly open platforms with great hardware documentation to go off of. It's probably a bit easier for iDevices since they're very standardized and there are clearly people working on reverse engineering them that might have valuable info and/or there might even be some small amount of iDevice related code to go off of in Darwin, if they're even still distributing that code (afaik you can still get the latest Darwin in source form).

For Android devices, though, it's going to be a completely mixed bag depending on what you have. For the most part, there's really no hardware standard besides the list of supported processors/SoCs and then the vendor writes the needed device drivers themselves for whatever they've built, so you have to deal with finding out whatever it is that the manufacturer built into the one random device you're working with, and god help you on finding out those specifics for that specific tablet.

If, on the other hand, you literally just want to play with writing for a tablet and you don't have a particular device that you already own that you want to hack on, I think your best-bet route would be getting one of these Ubuntu tablets and having a crack at that. Since it's a directly supported target of this major linux distro, you should be able to pull down Ubuntu's code to see exactly how they drive the device and use that to inform your own work.

That last one actually strikes me as a surprisingly not-unrealistic direction, and I hope you try it out, make some progress, and have a lot of fun with it. But that said, be forewarned that even then you're talking about digging through millions of lines of poorly documented C to glean your information, so it's not like it's going to be easy and it's not like there's going to be a series of tutorials or a book to hold your hand. But if you get something decent going, it'll be pretty impressive!
User avatar
MichaelFarthing
Member
Member
Posts: 167
Joined: Thu Mar 10, 2016 7:35 am
Location: Lancaster, England, Disunited Kingdom

Re: Tablet OS

Post by MichaelFarthing »

Thanks very much for the care and attention given in that reply which is very much appreciated. I was thinking of a parallel development on tablet alongside my laptop development so really want the same architecture. The Ubuntu machine is ARM based so I've ruled that out. I'm still considering other possibilities but your post has stressed the difficulty and the lack of fellow travellers on the way! I'm now inclined to think I've bitten off quite enough with just one environment so I suspect I shall stick with that - but o.t.o.h I know myself and suspect the idea might well resurface ere too long. :(
User avatar
jojo
Member
Member
Posts: 138
Joined: Mon Apr 18, 2016 9:50 am
Libera.chat IRC: jojo
Location: New York New York

Re: Tablet OS

Post by jojo »

I was thinking of a parallel development on tablet alongside my laptop development so really want the same architecture
Unless by laptop you mean a chromebook or by tablet you mean a MS Surface, you're not going to be able to have a shared architecture between a tablet and a laptop.

Almost universally, laptops are in the IBM PC-Compatible family, meaning an x86 processor controlling a PCI-type bus

Almost universally, tablets are in the... uh... tablet family[?], meaning an ARM SoC with most peripherals integrated on-chip and peripherals communicating over stuff like I2C

They don't really overlap too much
User avatar
SpyderTL
Member
Member
Posts: 1074
Joined: Sun Sep 19, 2010 10:05 pm

Re: Tablet OS

Post by SpyderTL »

In other words, tables are large cell phones, not small laptops... in most cases.
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
User avatar
MichaelFarthing
Member
Member
Posts: 167
Joined: Thu Mar 10, 2016 7:35 am
Location: Lancaster, England, Disunited Kingdom

Re: Tablet OS

Post by MichaelFarthing »

Thanks both. I've thought better of my impulsiveness and will try to do well something I know a bit about.
User avatar
matt11235
Member
Member
Posts: 286
Joined: Tue Aug 02, 2016 1:52 pm
Location: East Riding of Yorkshire, UK

Re: Tablet OS

Post by matt11235 »

jojo wrote:
I was thinking of a parallel development on tablet alongside my laptop development so really want the same architecture
Unless by laptop you mean a chromebook or by tablet you mean a MS Surface, you're not going to be able to have a shared architecture between a tablet and a laptop.

Almost universally, laptops are in the IBM PC-Compatible family, meaning an x86 processor controlling a PCI-type bus

Almost universally, tablets are in the... uh... tablet family[?], meaning an ARM SoC with most peripherals integrated on-chip and peripherals communicating over stuff like I2C

They don't really overlap too much
I think even though that the Surface Pro is x86, it still uses I2C for the peripherals. Most of the features are supported in Linux 4.8 so you might want to read through some of the code in there.
com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
Compiler Development Forum
User avatar
jojo
Member
Member
Posts: 138
Joined: Mon Apr 18, 2016 9:50 am
Libera.chat IRC: jojo
Location: New York New York

Re: Tablet OS

Post by jojo »

I think even though that the Surface Pro is x86, it still uses I2C for the peripherals.
I highly doubt that. Though, fun fact, SMBus is just I2C.
User avatar
Schol-R-LEA
Member
Member
Posts: 1925
Joined: Fri Oct 27, 2006 9:42 am
Location: Athens, GA, USA

Re: Tablet OS

Post by Schol-R-LEA »

MichaelFarthing wrote:I'm now inclined to think I've bitten off quite enough with just one environment so I suspect I shall stick with that - but o.t.o.h I know myself and suspect the idea might well resurface ere too long. :(
It's come up here a number of times already - I have mentioned Coronet, a mobile version of my own probably-never-written Kether OS which I have given a bit of thought to - and the general conclusion is that without a lot more technical data on the tablets in question, the reverse engineering is too big a project for a single dev, and that would need to be done on every single tablet and phone you want to put it on. While almost all of them use low-power ARM CPUs, those chips are not entirely compatible with each other, and the rest of the hardware is a wide-open field with nothing resembling a stock model even for systems running versions of the same OS.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
Post Reply