6.20.2011

Offline repost #5: getting tired of this shit

Indepent from what I'm doing - without internet, Linux is totally garbage. Distros suck at their default installations, it's barely possible to download complete including all their depencies in one piece and you can so fucking easily screw up the entire system you by doing your normal package work... AAHHHHHHHHHHHHHHH
I'm so fucking tired of those damn computer systems right now. And it's not the hardware, it's simply the software. Hardware isn't a problem unless you something that you build on your own. Now, it's ALWAYS the software! In the past it was hardware AND software, and now the most important thing to me these days does work less than before... Damnit, I hate this so much. If I'll ever going to live long enough to manage it... I'll code my own operating system. On a fixed platform (even if it's a fake OS inside a virtual machine) and with ALL my software experiences and solutions for existing problems I have with all these systems. Something completely, entirely custom. I give a fuck on compatibility, I'll simply strife for a completely custom OS only with some necessary drivers or so. And ya know what? I'll start coding it on the NXT! Yes, for fucks sake! This will be the first test: A minimal OS on an extremely simple machine with only a few driver functionalities. I have my ideas for filesystems, I have my ideas for multitasking, complete control by user etc... I don't want all this atomic candy you get everywhere, I want a 100% working and stable systems that's in every case 100% error-safe and can cope with all the shit that's possibly gonna happen to it. I have MANY ideas about how to archieve this and the good thing is that most of it can be done dry inside another system cause it will, in the end, always be memory to modify and operate on. Even if it's not, I can still get over it. I can't say how much utter anger is bubbling inside my head. Either you take all that's given to you or you do not. Everything inbetween doesn't you anything but shit.

Sometimes I think we need the times back where everything went inside a single machine and we didn't need to bother about it. Like with most old Apple computers (not counting the modular ones). Maybe I can find someone to help me building a own computer. That means own CPU, own harddrive, own RAM, etc. Doesn't have to be so tiny like nowadays, but simple a few kbyte is enough. I want to have the feel that there is sometimes that doesn't depend on old computer designs, systems and software. I want something completely knew, something that works on it's own and with ultra-high stability in mind. A conceptually pure computer system with no flaws for a programming and playing user like me.

And even if I can't put this into a real, pysical machine, I'll make a virtual machine out of it. Few hardware sketches, simple I/O system, one allocated block of memory and done is it. But that's the sub-optimal variant and I'd rather prefer executing it a real machine. And I don't think the Pandora will deliver a good platform for that, except there are people helping to get rewrite the drivers.

Meanwhile I'll need to think about whether I really wanna carry on Linux. And when, how I want to carry on. I surely don't want to have any Desktop environment shit anymore. I had so many problems with their installation and removal... It's simply not worth doing it I think. I only want to browse, watch videos and develop on it. And sometimes a bit Inkscaping, but that's all I need or want. So it's probably the best to think about only have this stuff in mind and let everything else run in a virtual box or so. I can't stand messing it up again... I stopped counting how many times I messed up a system because those annoying package manager did everything wrong. I simply want to let my laptop only do those few things - I know how to mount stuff and manage files via commandline, I also know how to configure and run my uni network... That's enough for basic stuff and if I want to use a GUI, I can start windows or my old Linux Mint edition on the desktop PC. Though I'd love to NOT have a Linux on it. I got so sick of all this stuff. But what are the alternatives? I can remember of FreeBSD, but I don't think there are necessary drivers available for my ThinkPad. And I also don't know ANYTHING about it except that it's not a Linux but rather Unix (as right as I can remember). Is there anything out that's possible see as a suitable alternative? With hardware support? And no so annoying things? I guess not... But before I try to tinker with this, I'll stick with windows and my desktop at first. My current situation is a bit like noticing that there was virus on your installation CD after already having it installing on a dozen of computers. You'll have to redo it, but they are all not connected to any network. So it becomes a matter of act, not of time.

Anyway, I have time to think about every aspect of what I want. The great thing about C is that you don't need ANY of it's libraries except stuff like stddef.h or so. You don't need to use mallocor stdio.h, you can write everything on your own - memory management, IO, string and character management, memory models for file systems, thread synchronization, etc... can completely be done without the need of actual binary code. Only thing that sucks is that you can't work with size_t and void* without the previously mentioned stddef.h. I guess they were added later, but I don't understand why they fuck they put it into a seperate file... Geez, sometimes I really don't know understand earlier decisions in this language. Hm, that makes me think... I still haven't begun to continue my programming language work (the one with the bytecode). The syntax is done, yes, but the commands arent't. And as it syntax and commands melt there, I find it hard to find the actual feature set cause I got completely in uni work and other programming stuff lately. Though I know how it should look and work in the end, it's difficult to simply start with it. And I'm also not sure whether it's actually useful to not include special syntax' to ease the amount of code to write you'd need with the syntax I've chosen. Reading about Ruby's smart handling of sequences and C's ?: operator are just some examples for cool things I'd love to see consequently in a real language. Hm, maybe I should include a pre-processed command to translate special notations into bytecode. Hey, this could be done as bytecode-insertion, too! Yes, I think it's time to finish some things in my toolkit and start working on it again. Simple steps, heavy harddrive use several layers of functionality and code execution. I need a primitive, standard function base to execute the first code generation step which will then make up higher level functions to possibly generate even more things. I don't think I need sooo many functions in my toolkit to do this. Just a few, very effective ones. That's the reason why swords are better than chainsaw: simple and effective vs. hard-to-make, bulky and ressource-demanding. Plus you don't need a whole industry behind.

Anyway, I've already done most necessary memory models in an imho very efficient design done. I'm a bit curious: what if I can completely build my own operating system using this bytecode? I mean the problem with operating systems is that you'll need to write many, many machine-depending and error-prone things if you insist on hard-coded C. I won't use this bytecode on the NXT for sure, but I'll probably need to write a completely virtual computer for this, so there WILL be a bytecode I need to execute - no matter what will happen. But if I completely rely on seeing everything as a soup of connected components with a simple but universal communication... Yeah, that should work nicely. Hm, this makes me think about combining my dec-jump instruction set with this language... Not with only those two instructions, but the basic assembler design I had for this. Then I could first write the assembler in basic bytecode and then write a compiler outputting real bytecode for the virtual machine. Yeah, that it's an interesting idea. So the assembler should be close to the final, desired byte code I had in mind. But since I designed my language in a very uniform way, it's pretty much the same format as I would design an assembler language. Though complete NOT placed in reality and reallife computer design, it's still something that works the same, just that I make it more visible using my languages syntax.
And about the more symbolic, command-less syntax: That will be a special notation with a fixed set of input and output variables. I already have ideas for that and I won't limit it too much to premade things. Hm, I still have the whole world of bytecode generation open... Guess I will be able to think of something that generates code and not just function pointers! Oh, this could also make it possible to write the thread manager itself generating or executing stuff until address x... Wow. That's almost assembler code generating assembler code - a system based on self-change and mutation. Heyheyheyheyhey, isn't that the most awesome thing ever?

So it came once again close, didn't it? My anger about operating system, about Linux, and bad software and user interface design in general - things have to change and I want to do my part. If I have enough time to keep this line... it will be FUCKING AWESOME. Simply think about it: a self-extending computer system able to create, alter, manage and optimize itself from a minimum of base code. Gaaahhh, what a mindfuck.

No comments: