@
~: At this point you are probably thinking, "they just don't get it", correct? Well, that's the point:
we don't understand what you are trying to say. We can't even judge the merit of the ideas themselves at this point, because all we've gotten from you so far is a frenetic, haphazard and disjointed set of links, exclamations, and declarations of intent, in a manner typical of a crackpot. Until you provide us with a coherent explanation of what you are trying to say, then we have to assume that you
are a crackpot, or worse, a troll.
Before going any further, I recommend that you take some time out from this to get your ideas down on paper (actual hand-written paper would work best for most people, though that's your call) in detail, not just as posts here in OS-Dev but in some sort of design document
cum mission statement. Sit down,
slow down,
calm down, and piece your ideas together in detail, going from the most general (which probably needs to be considerably more general than you expect) to the specific (though not too specific, as that would just confuse people again.
I've been where you are, and I know how hard it is when you are excited about some idea, something that seems dead obvious to you, something that no one else seems to see and which looks like a genuine New Idea to you. It is at these times that you
most need to be careful about how you explain yourself, and most need to listen to the objections and examples of prior art that skeptics will give back to you. Most good ideas aren't new, and most new ideas aren't good; that's why apply skeptical reasoning to anything that gets proposed.
Remember, communication is both a bigger part, and a harder part, of software development than all the other parts combined. Explaining a program is often much more work than writing it.
Now, to get on with my reply:
~ wrote:I'm talking about compiling under DOS or a custom OS, to build binaries for any OS. We need text-mode, source-only executable/library/driver skeletons. It can be done with pure assembly programs with a skeleton targeting other platform. It could be done with pure C code and probably simple linker scripts instead of a cross compiler, and then target any OS.
I'm not clear on how you expect that a program written in the assembly language for, say, an x86-64 PC desktop (with the stock memory and peripheral buses, standardized chipset for such things as the keyboard controller and the Programmable Interrupt Timer, and other hardware typical of the type) and using a specific operating system's syscalls, would run on an ARM-based tablet with a unique memory subsystem, a radically different peripheral bus, a different way of handling ROM and boot-up (the 'BIOS' in most Android phones is a modified Linux kernel burned to flash memory, for example, with the startup routine being mostly just copying the volatile data constructions to RAM), a different system call model, and possibly a different standard library as well. The program would have to be translated in some way, either through some kind of compiler, or by way of a CPU simulator - the opcode sets are not even remotely similar, nor are the assembly language instruction sets that parallel them.
Mind you, I
can see a way to build up a common set of macros that could be used to write the non-hardware-specific parts of an 'assembly program' as a common source text, provided that you have a single retargetable assembler with a sufficiently complex macro language that the assembly instructions can be buried completely within it; the pseudo-code (bytecode, in modern terminology) interpreter targeted by the SNOBOL4 compiler was written in this way back in the day, and I have considered implementing Thelema as a set of Assiah macros in a similar fashion (though I have pretty much ruled it out for a number of reasons). However, at that point you aren't writing assembly code any more, you are writing in a new language that is translated into different assembly languages as needed - in other words, it's become an interpreter or compiler of a sort. So what you seem to be really heading towards is more language design than anything.
~ wrote:As for applications, if they use advanced algorithms they would need to link to those functions statically as a minimum, just like old games which sometimes didn't even need an OS or as much from the BIOS to boot and run. But being able to compile a raw binary from an executable's skeleton and produce the headers makes it easier to understand what to implement, what is actually contained in the executable, and how to load them in other OSes by writing a loading layer and library function implementations.
Again, this idea of having a cloud or swarm of small, semi-independent executables makes me think of how most Forth systems work, with the lines between 'interpreter', 'compiler', and 'assembler' blurred beyond recognition. You might want to look at how a direct-threading interpreter works (not threading in the multitasking sense, it has to do with how Forth words are invoked) and see how it compares to you plans.
~ wrote:Why are we using binary-mode libraries and references instead of optimizing by using text-mode libraries/applications and produce binary-mode files? Why are we using binary-mode-only executable header generation intermixed (inefficiently at least at system-level programming) with text-mode-only sources, when their format looks trivial and very cheap (just like casual hand-made databases written before Fox Pro for DOS) when converted to C or assembly code, but becomes very confusing if only the tool-chain ever produces them for making for a more ignorant programmer?
I can't see what you are asking here, or rather, I can see several different (possibly intertwingled) questions at once and I am not sure which of those you mean, if any. I'll post one of the possible/partial answers to the wiki RSN, as I have something I already wrote about it and just need to find it again.
~ wrote:Programs are much easier to debug then when finally compiled.
WUT.
I feel like I'm talking to Swampy and his
'gotos are easier to write and understand than the EVIIIL nested junk pushed by the perfect-perfects', and I despair of understanding either of you when I hear things like this.