trillek / entropy

Entropy kernel for DCPU-16
8 stars 6 forks source link

Some observations about your project #21

Closed ddevault closed 12 years ago

ddevault commented 12 years ago

Moderation SirCmpwn has repeatedly linked to his dead Kernel project and attempted to derail the discussion and attract members by openly stating his kernel was better, and that we should work for him.

Liraal commented 12 years ago

I quite agree with most of your points, but I can't see why :label is so bad a choice. After all, compilers support both without any difficulties and :label is by far more widely used.

M52 commented 12 years ago

I know you have the know-how SirCmpwn. And I would agree on most points. I think the core issue really boils down to the lack of leadership, hence: https://github.com/trillek/entropy/issues/20

I know you from your work on KnightOS; so your claim to know something, well actually alot, about kernels is valid.

In the link given above the idea to build off an existing system is proposed, I very much support that, in spite of the possible overhead it might introduce.

There is only one thing I disagree with, I do not think Notch would select Entropy as the default kernel/OS at this stage, even if he would then I am just sorry but that is just too bad for you. I can see that you are confident in your own superiority and I think righteously so, hence you shouldn't be too scared that Notch is going to pick us over you, unless we really do better...

In short - I wouldn't worry about the competition side of this.

Thanks for your feedback though!

HerobrinesArmy commented 12 years ago

Considering most of your criticisms were about source code style, which has 0 effect on execution, I tend to think you're an idiot. "Good programming" practices are for pussies who can't keep their shit straight. Real programmers don't whine about things like whitespace and indentation.

Get your head out of the textbook for a while. Welcome to real programming.

HerobrinesArmy commented 12 years ago

This is assembly language. An empty comment at the end of a line, using a tab vs a space, or two #defines not lining up with two other #defines isn't going to have any effect on maintainability.

Callum6677 commented 12 years ago

[cough cough]

M35FD: http://dcpu.com/floppy-drive/

dilbertfan commented 12 years ago

@6677 was about to post that D:

Liraal commented 12 years ago

I have to post this: in my honest opinion, a code has to work first and be understandable second. Thus comments, indentation, whitespaces and the like are important, but they aren't what we should focus on.

I don't think you are going to listen to me but I couldn't care less...

viccuad commented 12 years ago

I was going to dissapear silently from this proyect (possibly to collaborate on 0x42c), but i felt the urge to say some things to the Herobrine's Army's people. Please don't be like Herobrine:

dilbertfan commented 12 years ago

ikr, :label is going to make it IMPOSSIBLE to read our code!!!111!!!!

dilbertfan commented 12 years ago

"bad code." Care to give examples?

dilbertfan commented 12 years ago

inb4 people taking herobrine's Unix on the DCPU comment out of context

The Brine Of Heros: I'll take this opportunity to warn against trying to copy every aspect of a particular operating system. I realize the Unix/Linux family is "cool" and "hip" and "with it", but it's also important to--oh, and "neat"--but it's also important to recognize that Unix has a hideous, monolithic kernel and is horribly inappropriate for a 16-bit machine with 128 kilobytes of RAM and a 100 KHz CPU without privilege levels, whose primary function is to control the systems of a spaceship.

One critically important difference between DCPU and any system you've seen running DOS or a Unix-like is that DCPU has no concept of CPU privilege levels. The browser in which you're viewing this forum is running with the CPU set to a mode that limits the instructions it can perform, forcing it to use system calls to perform many actions. Your operating system was designed on the assumption that this is possible. In the interest of keeping the system running smoothly, only vetted kernel code is allowed to run with the CPU in an unrestricted mode. The design of kernels you've used on Unix/Dos/most any machine was heavily influenced by the fact that the rest of the operating system and the programs running on it would not be able to do certain things directly and would have to use system calls instead, so they contain libraries upon libraries upon libraries, abstracting low-level tasks into massive high-level calls.

The DCPU does not have the concept of different modes, so all of that abstraction simply isn't necessary, nor would it do anything to prevent programs from simply performing the instructions themselves rather than using system calls, unless you intend to only allow interpreted program execution (which would be hilarious for an already emulated system). Some of those system calls, however, are actually quite useful. If you want to load a file into memory, it's nice to be able to just ask the operating system to do it for you rather than screw around with talking to the disk drive yourself.

Also, realize that when designing a kernel for DCPU, file system selection is largely independent from the design of the rest of the kernel. You can make your OS Unix-like and still use FAT16. If you're going to use an existing file system, FAT's not a bad route to go. Honestly, there isn't a lot of variety at the lower levels of file system sophistication. Just pick one and go with it, or make one yourself; it's going to end up looking like the ones that already exist. I do, however, think it would be hilarious to see someone implement a file system for DCPU that had permissions. Yes, watch how effective that chmod command is when you can't prevent me from directly reading and writing disk contents.

The tl;dr of all this is: Don't make a shitty DCPU kernel just because you really want it to look like Linux or something. You're in an entirely different world on DCPU. Quite simply, putting some form of Linux on DCPU would be one of the dumbest things you could possibly do. The only benefit you would get out of it is a brief high-fiving moment with your programmer buddy when you say "Look, I'm running Linux on my DCPU gigglesnort". Abandon any operating systems you've used or loved in the past. They won't help you here. (If you're desperate, consider something like ExOS.) Design the kernel with the machine and its purpose in mind, not your love for past idols. Otherwise, you might as well give your kernel an iPod and a fedora because all it's going to do is stand there, trying to be "hip".

dilbertfan commented 12 years ago

and what is bad about it? Also, stop pimping for your project!

trillek commented 12 years ago

Yes. I'd ask that the people who have nothing to do with Entropy refrain from spamming our issues threads. I've deleted all off-topic conversation from people who I have no reason to believe even know what 0x10c is. I will continue to do this to maintain productive discussion.

trillek commented 12 years ago

Also, I'd remind people that DCPU doesn't have CPU modes/privilege levels. Consequently, traditional kernel design may as well be thrown out the window. This is a brave new world. Linux won't help you here.

dilbertfan commented 12 years ago

@SirCmpwn It's a fucking bootloader. The only thing that matters is speed

trillek commented 12 years ago

SirCmpwin. You will not be warned again about spamming your dead project.

dilbertfan commented 12 years ago

"Bet you a dollar I can make the same thing faster."

You're on! The 0x10c forum couldn't, so I'd love to see you try!

trillek commented 12 years ago

I've removed all the places you beg the members of this team to leave to help you with your dead, bloated kernel.

dilbertfan commented 12 years ago

"Lack of privilege levels and isolation is not justification for throwing out the lessons learned by others." They are. The fact is that THERE IS NO WAY TO MAKE COMPILED CODE SAFE ON THE DCPU, making ALL security measures useless /rant

trillek commented 12 years ago

And yes, we get that you love your graphing calculator. Get over the fact that this isn't a TI-83 and quit trying to derail us with your bizarre obsession for colon placement in labels.

dilbertfan commented 12 years ago

Respond to my bootloader comment soon, I WANT to pay you a dollar!

Lucus16 commented 12 years ago

Since this place has gone horribly far from discussion anyway: Colons are best put in front of labels because otherwise local labels would conflict with your own Organic preprocessor It doesn't take all that long really to figure out that the appended semicolons were there to easily see there were a total of 16 copies of that statement. The improperly indented tabs are github's fault really...

dilbertfan commented 12 years ago

"The improperly indented tabs are github's fault really..." Shut up facts boy! :P

trillek commented 12 years ago

Sircmpwn, if you try one more time to subvert my attempts to keep this discussion productive. I will start removing all of your existing and future comments without reading them, effectively banning you. I will not have you, a bitter outsider, try to derail this project and harass its community. You've been warned many times. You will not be warned again. Grow up.

trillek commented 12 years ago

You're out.

trillek commented 12 years ago

MadMockers is out too.

trillek commented 12 years ago

I can keep this up all day. Who else wants to be blocked?

trillek commented 12 years ago

One thing you'll learn very quickly about me is that I don't tolerate people fucking with the members any community to which I have responsibilities.

Find somewhere else to troll.