I will only post announcements here from now on

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: I will only post announcements here from now on

Post by Solar »

rdos wrote:I'm equally sick and tired of the arrogant attitude...
rdos wrote:IMHO, people that haven't built a OS ground-up have no business insulting newcomers and telling them how to do things, and alike.
rdos wrote:I certainly have no interest in participating on a forum for OS development where the main theme is ego-boosting and forming mob-constellations...
rdos wrote:(most know which one I mean)
rdos wrote:I want to see some change in this area, otherwise I will not post much more here.
rdos wrote:After all, if flat memory model and C were superior, we would not have segmentation and assembly. Nobody would have invented it.
rdos wrote:I would find it more acceptable to insult those "I know what's best, but I haven't done anything significant" people than newcomers that don't know C or assembler. The latter group is likely to improve, while the first is not.
For someone who started this thread with the claim of, quote: I'm sick and tired of being attacked by the same people over and over again so I will not engage in any discussions here anymore, you are certainly posting lots of controversial statements.

Are you really expecting the people you are harping about to stay out of this? Do you really think this is the way to get the situation calmed down?

Or is this just another re-starting of the same old arguments by you now that the last thread was locked?
Every good solution is obvious once you've found it.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: I will only post announcements here from now on

Post by JamesM »

Solar wrote:Blah blah blah counter-rant
The bigger man would just leave it. He mentioned me too (well, my tutorials) in his rants, do you see me harping? No. Just leave the ad-hominem, it's only descending into a flamefest because you're letting it.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: I will only post announcements here from now on

Post by Brendan »

Hi,
JamesM wrote:
turdus wrote:Couldn't agree more. When I came up with a new idea about how physical memory should be maintained, I got only insults from people who could not even understand it. It was despite of the fact I included comprehensive analysis and the fact that I have a working reference implementation in my OS.
I'm interested. Can you point me at the topic you posted it in please?
I'm guessing he's probably talking about this topic about physical memory management.

If I ever create an "I've got a new idea" topic; then I want people to identify flaws/disadvantages in my new idea that I may not have noticed, so that I can work around them, accept them (in an "advantages are still worth it despite disadvantages" way) or ignore them (in a "that is a problem, but it won't effect my system because..." way). The worst thing people could do in this case is say "That's wonderful" and leave me to find out about the flaws/disadvantages the hard way (e.g. after months of work finding out that I need to completely redesign something because nobody noticed/mentioned the problems sooner).

Did we hate turdus enough to say nothing about his idea (or "that's wonderful") in the hope that he won't find out about any flaws/disadvantages until it's too late? I don't think so. I think we liked turdus enough to try to find flaws in his idea.
JamesM wrote:
Dear moderators, mark his words.
Introducing junior and senior levels would be great imho.
This idea has been floated much in the past, and the general consensus is that the people with knowledge will immediately aim for and reach the level required for a "senior" member and then no longer help junior members.

Climbing the ladder then kicking it away, if you will.
I'd expect experience people wouldn't read the newbie subforum much and wouldn't help newbies much, that newbies would accidentally post in the wrong place (because they're new), and that newbies would deliberately post in the wrong place (after they've realised it's the best way to get comments from the more experienced people). I'd also expect that moderators would spend ages moving topics to compensate, and that people will get upset at moderators when topics are moved ("You think I'm a newbie??" and "Why was this topic moved to experienced??") and also get upset when topics aren't moved ("Why wasn't this topic moved to newbies??").


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: I will only post announcements here from now on

Post by gravaera »

I never read that topic when it just came out, since the first post was very long, and I wasn't ever in the mood to read it, but I read it up just now, and as I write, I'm on the 3rd page.

I agree with turdus. AFAICT, the people who argued against the PMM model were considering only the worst case, or just putting up academic arguments for the sake of argument. The thing was mostly solid. Naturally every algorithm has a worst-case scenario. And apart from Combuster, there was nobody whom I would consider a "veteran" or "knowledgeable" member who dissented. Owen came in and said something cautionary, but didn't wreck it -- it made sense. Gerryg400 engaged in some light discussion with Combuster, and didn't really even touch the OP's idea -- it made sense.

The thing was almost rock solid. Only flaw was fragmentation, and where fragmentation became an issue it would at most grow in memory usage to the normal size of a stack implementation. Absolutely solid. If you have physical memory fragmentation to the extent that there are no large stretches of physical memory for use for large frame allocation for large page sizes, then it means that applications are using the machine's memory in overdrive -- no other algorithm would have been able to magically supply contiguous ranges either because there are none to give out. Applications are using lots of memory at the moment and have soiled the memory space with sparse footprinting.

If you're that concerned about giving out large frame stretches for large page sizes, then sort the data structure on free()s (as turdus suggested in his first post) and use it as a LIFO so that the entries toward the bottom don't get touched easily, and therefore will be more readily compacted and easier to use for large allocations. There was no sane argument against his algorithm on the merit of it being superlatively inferior to any other standard PMM algorithm. At most it was a little better with disadvantages, or a little worse with targeted advantages. A very tame, satisfying discussion about how you would manage the dynamic nature of the algorithm was what I was expecting to see when I read the first post.

Why doesn't Flashburn go and write an actual kernel? He had lots of big, fancy things to say, and then he goes and says on page 3 that he doesn't even know the difference between pages and frames. If I had bothered to comment in that thread, the only thing I would have done is ask turdus why he preferred to use the data structure as FIFO instead of LIFO.
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: I will only post announcements here from now on

Post by JamesM »

gravaera wrote:
I never read that topic when it just came out, since the first post was very long, and I wasn't ever in the mood to read it, but I read it up just now, and as I write, I'm on the 3rd page.

I agree with turdus. AFAICT, the people who argued against the PMM model were considering only the worst case, or just putting up academic arguments for the sake of argument. The thing was mostly solid. Naturally every algorithm has a worst-case scenario. And apart from Combuster, there was nobody whom I would consider a "veteran" or "knowledgeable" member who dissented. Owen came in and said something cautionary, but didn't wreck it -- it made sense. Gerryg400 engaged in some light discussion with Combuster, and didn't really even touch the OP's idea -- it made sense.

The thing was almost rock solid. Only flaw was fragmentation, and where fragmentation became an issue it would at most grow in memory usage to the normal size of a stack implementation. Absolutely solid. If you have physical memory fragmentation to the extent that there are no large stretches of physical memory for use for large frame allocation for large page sizes, then it means that applications are using the machine's memory in overdrive -- no other algorithm would have been able to magically supply contiguous ranges either because there are none to give out. Applications are using lots of memory at the moment and have soiled the memory space with sparse footprinting.

If you're that concerned about giving out large frame stretches for large page sizes, then sort the data structure on free()s (as turdus suggested in his first post) and use it as a LIFO so that the entries toward the bottom don't get touched easily, and therefore will be more readily compacted and easier to use for large allocations. There was no sane argument against his algorithm on the merit of it being superlatively inferior to any other standard PMM algorithm. At most it was a little better with disadvantages, or a little worse with targeted advantages. A very tame, satisfying discussion about how you would manage the dynamic nature of the algorithm was what I was expecting to see when I read the first post.

Why doesn't Flashburn go and write an actual kernel? He had lots of big, fancy things to say, and then he goes and says on page 3 that he doesn't even know the difference between pages and frames. If I had bothered to comment in that thread, the only thing I would have done is ask turdus why he preferred to use the data structure as FIFO instead of LIFO.
Yeah, I just read that and got to page 3 before I was simultaneously bored stiff from academic arguments and twitching at this gem of a quote:
My deallocation algorithm is actually faster than O(1)
Anyway, I didn't see much exceptionable in the arguments. They were dull because they were rehashing the same points over and over, but here's my analysis if Turdus cares:

I think the idea is sound. The aim of the allocator is really to reduce memory usage, and it appears to do a good job of that, so could be used in embedded systems. However:

* The fragmentation is a real issue. You initially stated that fragmentation wouldn't occur, then abated on that argument and stated that it still in worst case doesn't use as much as a stack. OK, that's true, but I think you missed the point in that a stack is not O(n) on deallocation - yours is. So fragmentation matters for your allocator.
* The idea of amortizing this by having a background task is good, however you're going to end up in a situation where you have to move physical pages around the place in order to defragment your allocator, which is not a situation you want to be in (note: I make this assumption because without mutation of the physical layout, you quickly get into a scenario where your datastructure is fragmented and can't be fixed further, when there are many holes of used frames).
* Notwithstanding the amount of copying that has to go on, this will involve a lot of locking. You'll have to stop mutation of a frame while you're copying it, which will mean your defragmentation thread will need to interact with the scheduler and even without being slow, it's a massive layering violation.

Now, my understanding of your algorithm may have got muddled with all the replies I read, but those are my major observations. In embedded systems where memory footprint is paramount, perhaps your system could have real benefit.

You say you have it working in situ in your kernel. I therefore wonder how you got around the "shunting memory around to defragment your allocator" problem I mentioned above in practice. I'd be interested to know.

As an aside...

For those who had difficulty with the concept, A page fits into a frame. Think about mounting a certificate on your wall - the certificate (page) goes into the frame. Physical memory is an array of frames. Virtual -> Physical mapping is arranging pages into frames. Ta daaaa (the 'frame' term was used at my university too)
Cognition
Member
Member
Posts: 191
Joined: Tue Apr 15, 2008 6:37 pm
Location: Gotham, Batmanistan

Re: I will only post announcements here from now on

Post by Cognition »

Combuster wrote:Apparently, rdos lied in his topic title and Cognition missed last thread's killer
Didn't miss it, saw it coming, ignored it. What I do have a pet peeve with is when people dig themselves into a hole socially here and then denounce the community as a whole as being unfairly aggressive or judgmental. Somehow it always comes right back to newbies being bashed on even though that issue is rarely at the core of the dispute which caused it.
rdos wrote:..
Look I don't think your video system thread should have been pounced on, which is why I said it was petty on both sides. It was the wrong place at the wrong time and at it's core about an issue that wasn't related to the thread topic. Still as I said before, I do feel this is largely the result of how you've dealt with what constructive criticism was laid upon your design in the past. The last post you wrote was a hell of a lot more upfront about the tradeoffs that actually occur with a design than in most of your previous posts. For what it's worth I don't think you're a bad guy, but perhaps you've been a bit too emotionally invested in your OS to keep technical and personal critique separate. If you build up yourself or your OS to be unassailable and without flaw you're going to have an army of people waiting pounce on you the second you trip up for any reason, if for no other reason then to point out that you are in fact a fallible human being like the rest of us.

@turdus: That discussion, while passionate, was mostly civil. Overall I felt it was a really good thread on the topic, yes people were there pointing out every potential flaw of your allocation system, comparing it to other allocation schemes and contrasting the differences. Yes, people focus on the few areas of aspect where your allocator was weakest, that's the point though. Was it perfect? No, but aside from a few "LOL. ROTFL" bursts on your part and Combuster getting a shot in about you kind of grasping at straws at one point it was a pretty well rounded discussion.

Overall I do think this is the root of what's getting on people's nerves here. Not how newbie queries are treated, but how what people feel are well researched ideas or mature implementations are criticized and how that criticism is taken. Brendan had a pretty good summary of why things get criticized pretty heavily, and generally it's for the best. You talked about research, well generally whenever a large research paper or theory is floated at some point its published, vetted and criticized as part of the process. That's pretty much what goes on here.
Reserved for OEM use.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: I will only post announcements here from now on

Post by Solar »

I'd like to state, at this point, that I usually don't comment on stuff like page directory design, because I know I lack the hands-on experience. But I do think I can contribute with some confidence on general C/C++, library, toolchain, debugging, and project management issues, and I do think that demanding contributors show their self-written OS at the entrance for authentication to be somewhat far-fetched.

+1 for Brendan's remarks regarding the futility of splitting this in a "beginner" and an "advanced" section. The subject of OSDev implies an advanced skillset, which is why beginners are redirected to Google, Stackoverflow et al.
Every good solution is obvious once you've found it.
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: I will only post announcements here from now on

Post by Kevin »

gravaera wrote:Why doesn't Flashburn go and write an actual kernel? He had lots of big, fancy things to say, and then he goes and says on page 3 that he doesn't even know the difference between pages and frames. If I had bothered to comment in that thread, the only thing I would have done is ask turdus why he preferred to use the data structure as FIFO instead of LIFO.
It's not terminology that makes a kernel work, and I know that Flashburn does have a kernel of his own. I don't feel like reading this specific thread, but I respect him for his contribution to long and interesting threads on Lowlevel. While not all of the threads came to a conclusion (probably most didn't) and while he tends to focus on perceived problems that may not matter much in practice, it was usually a constructive discussion from which you could learn some things.

What it requires in order to work well is that people accept their approaches to be criticised, and that they try to improve it through the discussion instead of defending their initial draft.
Developer of tyndur - community OS of Lowlevel (German)
CrypticalCode0
Member
Member
Posts: 81
Joined: Wed Nov 09, 2011 2:21 am
Location: Behind a keyboard located in The Netherlands

Re: I will only post announcements here from now on

Post by CrypticalCode0 »

Lurking has it's advantages
User avatar
turdus
Member
Member
Posts: 496
Joined: Tue Feb 08, 2011 1:58 pm

Re: I will only post announcements here from now on

Post by turdus »

@JamesM, Breandan on junior/senior topics: your argument are valid, I changed my mind, you're right. Seniors won't read junior's topics, that's a really good point.
JamesM wrote:but here's my analysis if Turdus cares
I do care about intelligent arguing, indeed.
JamesM wrote: I think the idea is sound. The aim of the allocator is really to reduce memory usage, and it appears to do a good job of that, so could be used in embedded systems. However:

* The fragmentation is a real issue. You initially stated that fragmentation wouldn't occur, then abated on that argument and stated that it still in worst case doesn't use as much as a stack. OK, that's true, but I think you missed the point in that a stack is not O(n) on deallocation - yours is. So fragmentation matters for your allocator.
With respect, you missed the key part of my allocator. I do know stack is not O(n), but neither is mine. O(n) would mean it scales according to the number of frames, but my allocator scales according to the number of fragments, m. O(m) is considerably less than O(n). n is in range of millions, m is around 1000 in the worst case (but let's assume a system with really lot of small randomly exiting tasks, let's say 100000). I also included a guarantee in my freeing code that there'll be space for new fragment at all times allocator is being called:

Code: Select all

if top().base!=address then
    //instead of reporting the error you can call defragmenter here
    //to make you some space in FIFO by merging blocks
    return ERROR
return OK
So fragmentation is not an issue.
JamesM wrote: * The idea of amortizing this by having a background task is good, however you're going to end up in a situation where you have to move physical pages around the place in order to defragment your allocator, which is not a situation you want to be in (note: I make this assumption because without mutation of the physical layout, you quickly get into a scenario where your datastructure is fragmented and can't be fixed further, when there are many holes of used frames).
As I said, missed the key part. To defragment my allocator you move around only pointer+size pairs in the first place, then you can expand fragments area, and finally, when even that's not possible, you move a few physical pages. In that worst case, you're right, that could be time consuming, that's why I have a background task to do it when computer otherwise idle. Still the worst case is several times faster than waiting for disk for swapping for example. You don't move the full memory around, only a few frames that the smaller of two pointer+size pair describes.
Examples to make this clear (let's say you have space for 3 fragments):
(0,2), (3,1),(2,1) -> (0,2),(2,1),(3,1) -> (0,4) no need for moving frames
(0,2),(3,5),(10,3) -> (1,7),(10,3) you have to move 2 frames only
JamesM wrote: * Notwithstanding the amount of copying that has to go on, this will involve a lot of locking. You'll have to stop mutation of a frame while you're copying it, which will mean your defragmentation thread will need to interact with the scheduler and even without being slow, it's a massive layering violation.
That's true, you'll need lock, but not a lot, only one to protect the fragments area. Since physical memory allocators usually has at least one lock, I don't see it's bad. Allocating a frame requires only a few cpu cycles more than stack allocator, freeing too. If there's no more space for fragments then yes, locking could block some threads long, but isn't that the case with swapping? While you're waiting for the disk to write out a frame and make space, further threads trying to allocate physical memory will be blocked.
As for the defragmenter and scheduler interaction, I could avoid that completely. I have several priority queues, and the lowest priority queue has only one thread, the idle. The priority level before that, is called "system housekeeping", and it's threads never scheduled if there's any thread in higher queues waiting. Furthermore, this queue uses cooperative multitasking, if a thread is chosen from that queue, preemption won't happen until it blocks. So scheduler can handle it of it's own, no need to interact with defragmenter. You may say it's a possibility that there'll be always threads waiting in higher queues, but it's not a problem because:
1. most systems running idle in the 90% of their time (or even more. On desktops 99% is not rare).
2. if it happens that defragmenter is not scheduled, the free function will force defragmentation before it releases the lock, so any time allocator called it can be sure that there's space for one more fragment (but most likely it will use an existing pointer+size pair, and won't need new anyway).
Now, my understanding of your algorithm may have got muddled with all the replies I read, but those are my major observations. In embedded systems where memory footprint is paramount, perhaps your system could have real benefit.

You say you have it working in situ in your kernel. I therefore wonder how you got around the "shunting memory around to defragment your allocator" problem I mentioned above in practice. I'd be interested to know.
I hope I've answered your question.
Your arguments were interesting, but with a little misinterpretation. I already think of everything you wrote (if I understand it well, tell me if not), but they were clever. Made me headache to solve them :-)
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: I will only post announcements here from now on

Post by gravaera »

Eh, let's not turn this into verson 2.0 of that thread >.>
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
fronty
Member
Member
Posts: 188
Joined: Mon Jan 14, 2008 5:53 am
Location: Helsinki

Re: I will only post announcements here from now on

Post by fronty »

gravaera wrote:Eh, let's not turn this into verson 2.0 of that thread >.>
Yes, you should instead turn this thread into version 2.0 of every single thread which has hurt someone's feelings. You have already a strong start.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: I will only post announcements here from now on

Post by JamesM »

I'm going to continue with the analysis part because even though it's technically off topic I feel it's more constructive than ****-slinging.


turdus wrote:...So fragmentation is not an issue.
Not quite, I think you're misunderstood my objection (which may still be caused by a misunderstanding on my part).

Granted, your allocator is not O(n) where n is the number of frames of memory available. However, it is O(m) where m is the number of fragments. That is, your allocator's free method has linear performance with respect to the number of fragments. Therefore, memory fragmentation is an issue for your allocator.

Let's not forget that physical memory allocation/deallocation is done very often in an operating system. allocation is paired with deallocation mostly - if you do more on average of one than the other your system is not stable. So, if deallocation is slow, it doesn't matter how fast allocation is - physical memory management performance is still dominated by the slower-performing free() method.

So it is important to keep the number of fragments down to some trivially small number, else your system may in the worst case descend into linear performance. And that worst case is actually quite easily brought about - if you take Combuster's example of two web servers. A web server is data-heavy, so it'll stress the physical memory allocator. If both are run in parallel, it stands to reason that their allocations will be interleaved. That is, process A gets addresses 0, 2, 4, 6, 8, and B gets 1, 3, 5, 9 and so on. If A then terminates, it releases 0, 2, 4, 6, 8 but B is still going, so nothing can be coalesced and your physical manager ends up with at least 4 fragments.

With a data-heavy application, this could cause your physical memory allocator to behave poorly. In essence, my main point is that I don't think the worst case is as academic as you think it is :)
JamesM wrote: * Notwithstanding the amount of copying that has to go on, this will involve a lot of locking. You'll have to stop mutation of a frame while you're copying it, which will mean your defragmentation thread will need to interact with the scheduler and even without being slow, it's a massive layering violation.
That's true, you'll need lock, but not a lot, only one to protect the fragments area. Since physical memory allocators usually has at least one lock, I don't see it's bad. Allocating a frame requires only a few cpu cycles more than stack allocator, freeing too. If there's no more space for fragments then yes, locking could block some threads long, but isn't that the case with swapping? While you're waiting for the disk to write out a frame and make space, further threads trying to allocate physical memory will be blocked.
As for the defragmenter and scheduler interaction, I could avoid that completely. I have several priority queues, and the lowest priority queue has only one thread, the idle. The priority level before that, is called "system housekeeping", and it's threads never scheduled if there's any thread in higher queues waiting. Furthermore, this queue uses cooperative multitasking, if a thread is chosen from that queue, preemption won't happen until it blocks. So scheduler can handle it of it's own, no need to interact with defragmenter. You may say it's a possibility that there'll be always threads waiting in higher queues, but it's not a problem because:
1. most systems running idle in the 90% of their time (or even more. On desktops 99% is not rare).
2. if it happens that defragmenter is not scheduled, the free function will force defragmentation before it releases the lock, so any time allocator called it can be sure that there's space for one more fragment (but most likely it will use an existing pointer+size pair, and won't need new anyway).
My point was not that the amortizing thread will need to run - that's fine and can be dealt with. It's more that, while page copying/swapping is going on, those pages must not be able to be modified.

That means any processes using those pages must be stopped.

That's easy on a uniprocessor system - the amortizing thread is running, so no other process can be running, so there's no problem. But in a multiprocessor setup, you'll have to stop all processes that have that page mapped while you copy. Which will be rather damaging in terms of performance and *that* is the layering violation I was speaking of.

Again, I may have got the wrong end of the stick, in which case I'd appreciate you indulge me and explain how :)

Cheers,

James
rdos
Member
Member
Posts: 3286
Joined: Wed Oct 01, 2008 1:55 pm

Re: I will only post announcements here from now on

Post by rdos »

OK, so the thread boils down to that I should denounce my design decisions because they are inferior, and publicly appologize for having such bad ideas, and trying to get others to copy them.

Sorry, but it will never happen, so I will go with the thread title instead. In fact, I have every right to defend my design decisions when they are attacked. If people find that an arrogant attitude, I'll just let them. I don't care.
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: I will only post announcements here from now on

Post by piranha »

rdos, Turdus, I think the problem is that you guys took criticisms to your designs and ideas personally...

Turdus, in your article on PMM you quite often told people that they weren't able to read, laughed at them, etc. The thread seemed quite academic for awhile until...
Turdus wrote:Sorry, but are you dumb? Prove that you push 2/4mb pages to your 4k stack?!?
So I suppose that you're one of the people who needs to be nicer to others. Oh, wait-
Turdus wrote:Couldn't agree more. When I came up with a new idea about how physical memory should be maintained, I got only insults from people who could not even understand it. It was despite of the fact I included comprehensive analysis and the fact that I have a working reference implementation in my OS.
#-o

From the video redesign thread:
rdos wrote:(and C is not adequate for graphics)
You were the person to bring up C yet again, as I seem to recall that you do fairly often. Granted, berkus responded accordingly, but have you not yet learned that that will be the outcome every time that you start in with "C is not good enough for me, even though I have yet to post proof that I can write faster ASM code than C, and C is the cause of my problems in some very large and complex application". How about you try to respond to threads without ever mentioning C and how much you tend to dislike it? We know that you like ASM better, and frankly, I couldn't care less. Actually, at this point, you've spent so much time bringing up C vs ASM that people actually act shocked when you post C code (http://forum.osdev.org/viewtopic.php?f= ... ic#p200643).

Maybe you should stop blaming others for jumping all over you when you post things like that. Instead, you could simply stop posting about how much you think C is worse than ASM because 1) We all know you think so, 2) You know what will happen when you do, 3) You act offended when people reciprocate

I mean, honestly? You can either whine about how mean people are, OR purposely post things to cause it. Not both. Oh, and people aren't mean to you. They may laugh at your poor arguments, they may disagree with you (in fact, this is the case most of the time - people disagreeing. Nothing to get upset about: "It's spelled colour!" "No, it's spelled color!" So what? differing opinions).
rdos wrote:I'm equally sick and tired of the arrogant attitude towards many newcomers that come here to discuss OS development. Apparantely, if they haven't done extensive searches on Google, the Wiki, and the forum, they have no business asking questions, and are put-down with insults
Yes. Your problem here? If someone is incapable of figuring out something simple that has been asked many times / is on the wiki / is on google / etc, and they haven't showed that they have done the adequate research, they will run into trouble. Why waste time helping someone that you know will fail eventually? Okay, insults are too much. But if a newbie posts a question that shows that they've actually put effort into the problem and attempted to figure it out, people will be much nicer to them.

Many of your arguments for C vs Assembly make little sense eg, "We want our CPUs to do stuff other than graphics" you respond "We have multicore for that". Ok. Thats the worst counter argument I've ever heard. I have yet to see you present an argument that is logically thought out, completely factual, presenting proof, and makes me dislike C enough to waste my time writing assembly for hours.
rdos wrote:I didn't start to argue about C vs asm or flat vs segmented.
rdos wrote:It was not necesary to add the segmentation issue into the discussion
You brought up both. A simple search of the thread with the word "segmentation" shows that you were the first person to say anything about it in the thread. Same with you being the first person to post something about C being worse than assembly. If you're going to post claims about how your thread was hijacked, get the basics clear first. You knew damn well when you posted about that you were going to get responses to it. And if you didn't know that posting "C is inadequate" or anything about segmentation would result in responses to that, seriously, you've got a mental block somewhere.

If you feel like you've been ganged up on, and that you are completely innocent, and that everyone else is an ******* and you're perfect, go ahead and leave. Delusions does not a good forum member make.

As to the beginner forums, I like the idea. But how would it be implemented in such a way that responses would be balanced, newbie questions would get responses...how would the mods determine if people "level up"? Its a good idea, and could solve a lot, but it would need to be worked out first...

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Post Reply