Page 1 of 1

You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Mon Mar 31, 2014 7:59 pm
by sortie
You Won't Believe These 6 Nasty Side Effects of Osdev!

While operating system's development is regarded as a fun past-time, it comes as a nasty surprise to many how osdev can destroy your life in unexpected manners. You may already be infected! Here is a list of 6 ways operating system's development may already have destroyed your life.

1. Osdev is addictive.

The truth is that operating system's development is considered highly addictive. A 2012 study shows how operating system's development tend to steal more and more of your precious free time, and sometimes even considerable chunks of your professional time. Developers usually fall victim to the addictive effect of the simple satisfaction they get from fixing an impossibly hard bug, porting a difficult program or implementing a powerful feature from the first time. This powerful temporary high combined with expert knowledge gives you a perfect sense of temporary wonderful clarify, not entirely unlike narcotics.

However, as the addiction and technical skill progresses, so does the reward for technical work diminish. Suddenly the same amount of operating system's development just doesn't give the same high, which leads to withdrawal. Many tend to up the challenge by making their operating system's development even harder, leading to an ever increasing armsrace against their limitations. Many people in this situation even come from much simpler projects that somehow turned into fully-fledged operating systems and they won't rest until they have made their own hardware and remade the entire universe to their liking. Even people that manage to cold turkey operating system's development end up returning years later. Some people have successfully managed to turn operating system's development abuse into their actual profession and make a living selling operating systems to users.

The hello world tutorial is free, but you have to write the rest of the operating system yourself.

2. Sleep disorder.

Operating system's developers tend to sleep badly and practically live in completely different time zones when left to their own devices. The fact is that when the hobby operating system starts developing nasty bugs, novice developers attempt to work around the bug, but never quite managing to solve the real issue. Experienced developers know this and when bugs are not fully explained to their insatiable satisfaction, they develop paranoia that lead to sleep trouble. You lay in your bed with anxiety that the bug wasn't actually solved and you get a moment of clarity and realize you forgot to pass important compiler options. Your addition kicks in and you get up at 3 AM and fire up your development environment. Of course, that wasn't actually the full solution and there goes a few more hours of sleep.

This can be especially bad in more skilled developers that haven't yet realized their addiction in the making. As their free time start running out and their professional life continues to be demanding, they start cutting corners when it comes to proper sleep. Soon they are making excuses why they don't have to actually attend university tomorrow. Before you know it, you are up late competing with a bunch of other operating system's developers via IRC at who can port an OpenGL implementation to their operating system the fastest and post a glxgears to the forum screenshot thread.

3. Not-Invented-Here.

Not-Invented-Here is why we osdev. We all suffer from a deep craving to reinvent the wheel and never being satisfied with existing technology. As the symptoms progress, the C++ library that reinvents the wheel and will never see any actual usage becomes a fully-fledged operating system. In particularly nasty cases, the developer even beings developing his own compiler toolchain. Some even view modern operating systems as so fundamentally flawed that they set up to write a much faster operating system written entirely in assembly, which they surely will get around to actually optimizing one of these days.

You can usually identify the worst cases of Not-Invented-Here as the projects without any actual documentation, as the developer evens to automatically even his own code as soon as a fixed interval of time has passed, leading to a constant cycle of rewrites. The Not-Invented-Here accelerates the addiction, as the scope of the project explodes in size. Normal programmers fail when the project scope increases at such rate, but operating system's developers have the technical skill to actually pull off such massive undertakings. The result is that developers suffering from these particularly bad cases actually wish to complete all the work, which leads to the desire of having infinite time available. This leads them to destroy their free time and even start making free time for osdev when none should have been available.

4. Fundamentalist compiler usage opinions.

Experienced operating system's developers have made all the mistakes. They followed all the easy tutorials and experienced the fallout when their tutorial-based operating systems fell apart. They did all the hard work fixing the design mistakes and put in the hard time building countless cross-compilers by reading the GCC documentations. They never asked for help, just pointers on where they can learn everything. Operating system's development is hard and they know it.

Naturally, they are friendly people and desire everyone to osdev as well, so they painstakingly take their time to help newcomers to operating system's development. Unfortunately for the newcomers, help means that the experienced developers want them to avoid making any mistake the experienced developer has ever made. This sets insanely high expectations for newcomers. The experienced developers know by heart how not using a cross-compiler can lead to trouble for newcomers, and osdev is damn hard and they know it, and the newbies should damn well know this as well. If any part of the way newcomers develop their operating systems is less than absolutely perfect, the experienced developers let them know damn well There Is No Other Way to much confusion and controversy.

5. Smug superiority.

Indeed, the hardship that the advanced operating system's developers have been through leads them to conclude they are extraordinary. The confused newcomers are regarded as stupid and incompetent for not immediately comprehending all the compiler details, toolchain details, hardware details, ABI details and so on. The experienced developers know their work is hard (even though they see it as easy through the addicting clarity) and hate how regular people don't appreciate the unusual magnitude of difficult the work is. Most operating system's developers spend a lot of time around uninitiated people and never will be able to do even the tiniest part of the work the developer considers easy.

The situation is so bad in many developers that any newcomer that fails to use supernatural information seeking skills are regarded as incompetent and preconceived as an ultimate failure. Perhaps this is because of the high mortality rate in new operating system developers (before they get really going and addicted) due to not having the required skills, or perhaps they are repelled by the culture of smug superiority. Not that the developers aren't trying to be helpful. They love nothing more than publicly displaying their expertise and superiority when someone asks for help, especially if the asker is known as skilled. Indeed, the smugly superior developer views any question as weakness and can't wait to helpfully answer if he has any advise, even irrelevant advise.

6. Irrelevant Expert knowledge.

As the years progress and the hobby operating system goes from hello world to self-hosting, the developer keeps enjoying the wonderful clarity of understanding everything that is happening inside his own operating system at any level of detail. The developer knows hardware internals, driver specifics, the standard API for his operating system just by memory. The developer is an expert in everything regarding his operating system and recognizes himself as very bright.

Of course, this is worthless knowledge. He is an irrelevant expert. The knowledge doesn't translate to the real world where all this work has already been done in the actually used operating systems, where operating system's research is irrelevant as everyone uses Unix or whatever came with their computer. If the developer is really lucky, he cloned Unix when making his operating system, so his knowledge is only mostly useless instead of entirely. Yet, he takes great pride in nothing all the details that are irrelevant simply because it was hard, not because it was of any actual value.

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Mon Mar 31, 2014 8:58 pm
by bluemoon
Where is the like button?

By the way

7. Abuse of what you learnt on osdev

Osdev is lost art, showing the wonderful skills to a normal person is strictly forbidden. But you had spent thousands of hour to gain this knowledge and you have great desire to abuse some of those techniques to your real life projects. But most of the time you are just over-engineering those projects, unnecessarily increase project complexity and make your teammate cry out loud.

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Mon Mar 31, 2014 10:00 pm
by Bender
2. Sleep disorder.

Operating system's developers tend to sleep badly and practically live in completely different time zones when left to their own devices. The fact is that when the hobby operating system starts developing nasty bugs, novice developers attempt to work around the bug, but never quite managing to solve the real issue. Experienced developers know this and when bugs are not fully explained to their insatiable satisfaction, they develop paranoia that lead to sleep trouble. You lay in your bed with anxiety that the bug wasn't actually solved and you get a moment of clarity and realize you forgot to pass important compiler options. Your addition kicks in and you get up at 3 AM and fire up your development environment. Of course, that wasn't actually the full solution and there goes a few more hours of sleep.
Sleep Disorder? I do have that. I could pretend to take a nap for a while and then go on sleeping for hours.... As for the bugs part I do agree, when you see a nasty bug in your kernel you're like *(Put FUUUU rage face over here)*. But most of the time my sleeping personality takes over my programming one, so yeah my system just performs a System Shutdown when it can't solve a bug.
IMO any hobby is a waste of time, listening to music for example is a waste of time, one could even say reading novels *cough* is a waste of time, what do you gain from even watching television or even playing games is a waste of time or using Facebook also causes a complete waste of time. Normal people waste there time by doing recreational work, and we.....
The beginner's mistakes section tells people not to think big, but remember that one thing can't last forever, there has be an end to the rule of Windows/Linux/BSD, Every thing starts small, maybe one day, a hobby OS created by a simple user on this board may turn into a mainstream OS, who knows? After all,
Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

PS. Yes – it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
And now. .....
Linux was originally developed as a free operating system for Intel x86-based personal computers. It has since been ported to more computer hardware platforms than any other operating system. It is a leading operating system on servers and other big iron systems such as mainframe computers and supercomputers:[14][15][16] as of June 2013, more than 95% of the world's 500 fastest supercomputers run some variant of Linux,[17] including all the 44 fastest.[18] Linux also runs on embedded systems (devices where the operating system is typically built into the firmware and highly tailored to the system) such as mobile phones,[19] tablet computers, network routers, building automation controls, televisions[20][21] and video game consoles; the Android system in wide use on mobile devices is built on the Linux kernel.
Am I left to say anything?
Btw,
support anything other than AT-harddisks, as that's all I have
Seriously Linus?
And yeah forgot to mention that at that time I don't think it was as easy to gain knowledge about processors/hardware than it is now

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Mon Mar 31, 2014 11:32 pm
by alexfru
Trying to debug people around you. :)

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Tue Apr 01, 2014 4:07 am
by Jezze
Nice article or whatever you want to call it. I agree a lot with it. Yes I have a pretty severe sleeping disorder to begin with but I'm tired (hehe) of talking about that so I'd like to talk about the other points you made.

Yes it is addictive and that is no understatement. During the worst periods I could spend time thinking about my os from the day I woke up, traveled to work, during work, all the way until I got to sleep just to repeat the exact same pattern the next day continuing exactly where I left of, almost like I hadn't slept at all. I say during the worst periods because it goes in a periodic cycle. Sometimes it occupies you mind fully and sometimes, however rarely, you just dont think about your os at all. This I guess is something to be careful, or at least aware, about. You really often neglect other things which you shouldn't.

Besides addictive, hobby os development is fun but I dont think it plays as an important role as the addiction because a lot of the time it is not really fun at all. What it is is rewarding. When you solve something very difficult you feel like you accomplished something, I guess it feels a lot like finally killing that dreadful boss in Dark Souls. It does not mean the path up to that was fun, it was tedious and frustrating, but the reward was worth it in the end.

Personally, the original reason for why I wanted to take up os development was to learn the stuff I had neglected to understand for far too long. As I started to realize that a lot of operating systems had less than perfect design I wanted to make my own, trying to convince others and myself my solution to a problem was better than anything out there. I would say in 99% this reasoning is flawed. It is often a failure on my part, not grasping the reasoning and complexity behind why they work and operate in that way. I know most of you think you know something we others dont and that somehow makes you special you are most likely just kidding yourself. If you ask yourself, do you think you have a better design than most people on this forum you would probably say yes. If all people think that... You see the problem here?

I think the escalation of problem scope you talked about was interesting. How you go from starting with a design of an application, to an os, to compiler, to hardware and so on. I guess the reasoning behind that behaviour is that you basically have something you think works really perfectly besides this little detail you can't change because it is part of another component you have no control over. You immidietly believe that component is flawed so now you need to rewrite that component as well and soon it has all spun out of control. Soon you will be working in particle physics trying to change the laws of the universe... just to get that iPhone application not to lag when you try to scroll a bit of text. It is a weird obsession we have I guess.

Speaking of neglect previously, I need to get my laundry that has been sitting in the dryer for 15 minutes. Sorry for the rushed ending.

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Tue Apr 01, 2014 9:29 am
by hometue
@sortie: Just curious, at the first point you mentioned of a study. I am not going Phoenix Wright and shouting: "Hold It!!!", but mind if you give us the link? Might be interesting if we can read it. :D

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Tue Apr 01, 2014 10:28 am
by sortie
hometue wrote:@sortie: Just curious, at the first point you mentioned of a study. I am not going Phoenix Wright and shouting: "Hold It!!!", but mind if you give us the link? Might be interesting if we can read it. :D
Are you actually attempting to verify the accuracy of online sensationalist stories with click-grabbing headlines,which somehow manage to always cough up unlinked studies allegedly proving whatever preconceived opinion the author has? Check the date.

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Tue Apr 01, 2014 3:44 pm
by Combuster
Wow, someone actually fell for it :D

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Tue Apr 01, 2014 5:44 pm
by Bender
Wait. What was the date yesterday?
:?

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Wed Apr 02, 2014 2:02 am
by hometue
@sortie: Fine, you got me :P , I wasn't fooled so I totally forgot it was April Fools. Well, you broke that record. Gratz.

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Tue Apr 22, 2014 2:01 pm
by onlyonemac
But it's not April fools!!!

I'm already finding, after only a month or so of osdevving, that I'm spending far too much time on my OS and not enough on my other programming projects. And I often lie awake all night trying to fix the bug I couldn't fix before going to bed (recently I've bribed Mom into letting me stay up late to fix the bug rather than the bug keeping me awake all night, and I usually do manage to fix it). At other times, I'll think of some radical redesign (or just devise the pointer-increment-and-extend-file-without-adding-redundant-sectors algorithm) and spend the whole day impatiently waiting for a chance to get to the computer. What annoys me the most is when I shut everything down and then fix the bug!

Nevertheless, I did wonder why some of the sections of your post had rather strange headings!

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Tue Apr 22, 2014 3:44 pm
by VolTeK
onlyonemac wrote: that I'm spending far too much time on my OS and not enough on my other programming projects
Maybe you aren't interested in them like you were when you had started them.

Or you need a time management lesson.

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Tue Apr 22, 2014 11:40 pm
by hometue
@onlyonemac: My experience tells me you just have poor time management.

Re: You Won't Believe These 6 Nasty Side Effects of Osdev!

Posted: Wed Jun 11, 2014 11:06 am
by d2alphame
sortie wrote: Not-Invented-Here is why we osdev. We all suffer from a deep craving to reinvent the wheel...
That's a veeery deep one, and most (if not all) osdever is guilty!

Some even osdev to prove to other people that they are intelligent and creative. Well, some of those people already know/believe you are intelligent even without proof and the rest don't even care!