General TC > General TC Talk

tiny core apps and assembly language

(1/2) > >>

dakoder:
I was just wondering if anyone else thinks that tiny core could be co-developed using assembly language which I think would be perfect for keeping the footprint size to a minimum and this could work if enough assembler programmers get on board.
what does everyone else think ?

Graham

gerald_clark:
Step back 40 years.
Real operating systems are too complex to write and maintain in assembly.
This is especially true where multi-platform support is desired.

You might do this in a micro kernel for an embedded system, but TC is built
on a stock Linux kernel.

dakoder:

--- Quote from: gerald_clark on June 08, 2010, 12:25:57 PM ---Step back 40 years.
Real operating systems are too complex to write and maintain in assembly.

--- End quote ---

Not if lots and lots and lots of assembler programmers got together, tiny core is perfect for embedded systems such as gumstix, the race is on to get linux on pic micro's, these engineers who use embedded systems would be more than happy to program in a low level language to update the core system, but use high level for the apps.


--- Quote from: gerald_clark on June 08, 2010, 12:25:57 PM ---You might do this in a micro kernel for an embedded system, but TC is built
on a stock Linux kernel.

--- End quote ---


mmmm two of the bigest problems with embedded systems is the amount of power needed to drive the clock on the cpu so it can munch through the code in a reasonable amount of time, also the limiting factor of memory size all of which drives the current consumption and physical costs of and embedded system, if tiny core was to produce a full linux system compiled in the normal way but with the core utils written in assembly this would be the ultimate operating system, nothing could be faster, smaller or cheaper to beat it. I would like to see tinycore as the defacto embedded linux system for the world.
I would also like to see tinycore combined with the BIOS on the motherboard with instant switch on and go !

by the way there was a project called a-linux which attempted to do this but seems to have died, it would be cool if it could be included in tinycore, but this would be a massive project anyway there I go again....


Graham

destroyedlolo:

--- Quote from: dakoder on June 08, 2010, 01:52:31 PM --- ... ultimate operating system, nothing could be faster, smaller or cheaper to beat it.
--- End quote ---
Not so sure : I remember such discussions during the golden age of Amiga computer. The conclusion was "decent C compiler can generate code as optimized as good assembly programmer most of the time but providing a high level programming capability". More, again if you take the example of AmigaOS (perhaps the best operating system in term of resources efficiency I ever used), only very low level and critical functions are implemented in assembly (as example, the multi tasking scheduler) but most of the OS is in stock C. And the result is pretty good ;D


--- Quote from: dakoder on June 08, 2010, 01:52:31 PM ---I would also like to see tinycore combined with the BIOS on the motherboard with instant switch on and go !
--- End quote ---
IMO, what is killing bootup performances in PC, is the large kind of different hardware you have to support ... so implying long tests and probing at bootup.
You can save lot of time having a kernel only containing and optimized for the hardware you have, and removing most of hardware probing : I know which processor I have, no floppy, 4 USB port, the video card and so on. Only "dynamic" data have to be probed as amount of RAM and HD size.

The drawback is obviously you can't spread your customized kernel ; obviously, you have to build a new kernel if you're changing anything in your system configuration.

I did this exercise on SUN workstation under NetBSD to save some memory space but never under Linux ...

danielibarnes:

--- Quote ---I would also like to see tinycore combined with the BIOS on the motherboard with instant switch on and go !
--- End quote ---

Are you familiar with Coreboot? Linux replaces the BIOS firmware. Also, there is also Splashtop.

As for the whole "writing in assembly" debate, the answer comes from realizing that a compiler/language is a tool. Part of being successful is choosing the right tool for the job. You can write everything in assembly, but when it is not the right tool you will encounter difficulties. The Linux kernel uses a mix of assembly and C (often called a "portable assembly language."), and uses each where it is appropriate.

Tiny Core is comprised of two basic parts: The Linux kernel and a root filesystem. A custom kernel means you cannot leverage the existing framework (root filesystem and compiled extensions), at least not without a linux-compatibility layer, so there isn't anything left.

Navigation

[0] Message Index

[#] Next page

Go to full version