User:Sortie: Difference between revisions

Introduce myself
(Introduce myself)
 
(19 intermediate revisions by 2 users not shown)
Line 1:
Hi, I'm [http://maxsi.org sortie].
 
I'm an admin here on the osdev wiki. I'm a moderator on the [https://forums.osdev.org osdev forums]. I'm an operator on the #osdev IRC chat on freenode.org.
 
I develop the [https://sortix.org Sortix operating system].
<!--
 
Hi, I'm Sortie. Guess what, I made an operating system! I'd list all the nice features it supports, but somehow the only interesting part for normal people is that you can play Pong.
 
Line 4 ⟶ 11:
 
Edit: Another year. I am now self-hosting. I demand I'm eligible to never hear of Windows again!
 
Edit: Another two years. My OS is installable and self-hosting and the latest release was built under itself. I may have heard of Windows again.
 
-->
 
== Warranty ==
Line 12 ⟶ 23:
* Your design goals are incompatible with my recommendations.
* You insist on osdeving in ways I cannot approve of.
* You are not trying to make a good operating system.
 
Let me know if I am wasting my time trying to give inapplicable advise.
Line 18 ⟶ 30:
 
* Don't ask questions on #osdev, wait 30 seconds, and then ragequit. I'm upstairs getting my coffee and I can't prepare it that fast.
* Don't follow tutorials that arencan't community-be edited by the community.
* Don't follow tutorials that haven't been peer reviewed. The scientific method is important at the University of Osdev.
* Don't follow tutorials made by the inexperienced.
* Don't follow tutorials without obviously consulting #osdev whether the tutorials are bad and whether there are errata.
* Don't blindly follow tutorials: Some tutorials give very bad advise. Some are buggy. The best ones have bugs only experts notice and you won't until things explode.
* Don't write a bootloader unless you must. and instead useUse an existing one.
* Don't write an operating system in assembly.
* Don't do crazy real-mode stuff.
Line 31 ⟶ 45:
* Don't listen to your own advise. He is a newbie and might not know it. You'll hate his code deeply a few years down the road.
* Don't try to replace C or Unix without truly knowing what's wrong with it and what's good about it.
* Don't use newlib. Use musl.
* Don't do black magic. You're trying to be cool and failing at it. If this is the proper way to do it, declare this the normal approach and think nothing special of it; otherwise do it the proper way instead.
* Don't use code you developed while sleeping. You were unconscious. Do you code well when you are really tired?
* Don't leave proving the code is correct as an exercise for the reader.
* Don't follow operating systems development tutorials on Youtube: They are not community edited and tends to be made by the inexperienced.
* Don't proclaim me a master of osdev and quote my holy words in #osdev.
* Don't write tutorials if you're inexperienced.
 
== Recommendations ==
 
* Understand what your goals truly are and what you want from osdev.
* Take osdev seriously and do things well.
* Don't play the role of an operating systems developer, ''be'' one.
* With every incompatibility come a price that must be paid. Corollary: Pick your battles.
* Corollary: Pick your battles.
* Read instructions carefully.
* Take correctness seriously.
* Correct code is secure.
* Know your programming language well.
* Know your ABI well.
* Know your toolchain well.
* Be truly afraid of undefined behavior.
* Use a modern, good Unix for osdev.
* Use UTF-8 (no BOM, Unix line terminators).
Line 51 ⟶ 79:
* Implement [[Ext2]] as your first filesystem.
* Make a [[OS Specific Toolchain]] when you add a user-space.
* Quote me in your forum signature.
* Be an expert.
 
== Naively Closed Source ==
{{Main|User:Sortie/Naively Closed Source}}
Just release your hobbyist OS source code already.
 
== Wiki Contributions ==
Line 68 ⟶ 102:
* [[Cross-Porting Software]]
* [[System V ABI]]
* [[James Molloy%27s Tutorial Known Bugs]]
* [[James_Molloy%27s_Tutorial_Known_Bugs]]
* [[Host Triplet]]
* [[libgcc]]
* [[Stack Smashing Protector]] (Rewrite)
* [[C Library]] (Rewrite)
* [[Thread Local Storage]]
* [[Hard Build System]]
* (and various other stuff)
Anonymous user