User:Sortie

From OSDev.wiki
Jump to navigation Jump to search

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.

Edit: A couple years passed, you can now play Quake.

Warranty

Please realize my recommendations aren't applicable in your case this if:

  • You are making a microkernel or any other design where my personal experience isn't relevant.
  • Your design goals are incompatible with my recommendations.
  • You insist on osdeving in ways I cannot approve of.

Let me know if I am wasting my time trying to give inapplicable advise.

Discouragements

  • Don't follow tutorials that aren't community-edited.
  • Don't write a bootloader unless you must and instead use an existing one.
  • Don't write an operating system in assembly.
  • Don't do crazy real-mode stuff.
  • Don't do FAT lest you give your VFS brain damage.
  • Don't make it hard to turn your half-assed work into something proper lest you spend lots of time fixing it.
  • Don't assume your small project never goes anywhere.
  • Don't use \ as a path separator.

Recommendations

  • 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.
  • Use a modern, good Unix for osdev.
  • Use UTF-8 (no BOM, Unix line terminators).
  • Use a cross-compiler.
  • Follow Bare Bones.
  • Follow Meaty Skeleton.
  • Initialize at compile, link or load time, not run-time.
  • Enable paging as soon as possible.
  • Have a pre-emptive kernel early on.
  • Implement Ext2 as your first filesystem.
  • Make a OS Specific Toolchain when you add a user-space.

Wiki Contributions

It would seem customary to have such a list on your user page, so here goes: