What would you do differently?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
cxzuk
Member
Member
Posts: 164
Joined: Mon Dec 21, 2009 6:03 pm

What would you do differently?

Post by cxzuk »

For those of you who have tried to create a kernel, or even a full blown operating system. With the knowledge you now have, what would you have done differently? And, what would you NOT do differently?
User avatar
VolTeK
Member
Member
Posts: 815
Joined: Sat Nov 15, 2008 2:37 pm
Location: The Fire Nation

Re: What would you do differently?

Post by VolTeK »

not waste my time trying to get into protected mode, and continue on into real mode making something bigger and better with the knowledge i have now
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Re: What would you do differently?

Post by pcmattman »

Do differently?

Design. Design more, design better.

Not do differently?

Design. I'm still happy with the design of many integral components in our project, and many of them have survived with minimal changes for many, many months of development - they're just flexible like that.

:)
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: What would you do differently?

Post by piranha »

I am actually currently writing my kernel version 0.1, which is essentially a rewrite. What I'm doing is rewriting the parts that I need to, and keeping the parts that don't need it.
Redesign
  • Memory Management
  • Multitasking
  • Signals
  • Device management
  • Driver interface
  • Native API
  • UI
Rewrite
  • Virtual Terminals
  • System Calls
  • Kernel threads
  • Critical Sections
  • Descriptor Tables
  • ELF loading
Keep the same
  • A lot of basic kernel stuff (configuration, etc)
  • Drivers
  • Module loader
  • ISRs, PIT...
  • The way that the kernel mounts the root device and filesystem and starts the init process
  • Internal command line
  • VFS
  • Files
Yeah. It's gonna take me a while, but once I do it it will be soooo worth it. It'll hopefully be faster and more stable.

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re: What would you do differently?

Post by Colonel Kernel »

I'd stop designing for SMP in the traditional way and just get a decent UP kernel working, then extend it to SMP in a manner similar to Barrelfish.
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: What would you do differently?

Post by neon »

pcmattman wrote:Design. Design more, design better.
Thats about all I can say. I continually design and rewrite parts during the development process to improve interfaces and overall stability and maintainability. Er, rather, try too anyways ;)
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Re: What would you do differently?

Post by Dex »

First thing i would do differently, would be i would not have started to code a OS :shock:
As the OS is getting more and more of less value.

If you must code a OS, then you should make your OS headless ( over than a basic text setup ), this way you can still run your own programs on your own OS, but pop the output or get input from any device with a web browser ( with html 5 this will become easier ).

This means you will not have to deal with graphic cards and sound etc, but you will be able use the new devices that are going to replace most PC's and code in the environment you chose.
User avatar
-m32
Member
Member
Posts: 120
Joined: Thu Feb 21, 2008 5:59 am
Location: Ottawa, Canada

Re: What would you do differently?

Post by -m32 »

Dex wrote:First thing i would do differently, would be i would not have started to code a OS :shock:
As the OS is getting more and more of less value.

If you must code a OS, then you should make your OS headless ( over than a basic text setup ), this way you can still run your own programs on your own OS, but pop the output or get input from any device with a web browser ( with html 5 this will become easier ).

This means you will not have to deal with graphic cards and sound etc, but you will be able use the new devices that are going to replace most PC's and code in the environment you chose.
They have that. It's called Apache HTTPD.
User avatar
-m32
Member
Member
Posts: 120
Joined: Thu Feb 21, 2008 5:59 am
Location: Ottawa, Canada

Re: What would you do differently?

Post by -m32 »

I wouldn't waste time trying to do a boot loader. My interest is in creating an OS, in getting something that works. Writing a (good) boot loader is an awful lot of work to have to do before you can finally get to the work you wanted to do in the first place. There's no shame in using Grub.
niteice
Member
Member
Posts: 59
Joined: Tue Oct 03, 2006 3:49 pm

Re: What would you do differently?

Post by niteice »

-m32 wrote:I wouldn't waste time trying to do a boot loader. My interest is in creating an OS, in getting something that works. Writing a (good) boot loader is an awful lot of work to have to do before you can finally get to the work you wanted to do in the first place. There's no shame in using Grub.
or one of the Open Firmware implementations. If I ever get a kernel off the ground I'd love to be able to interface with OF. Makes life so much easier.
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Re: What would you do differently?

Post by Dex »

-m32 wrote:
Dex wrote:First thing i would do differently, would be i would not have started to code a OS :shock:
As the OS is getting more and more of less value.

If you must code a OS, then you should make your OS headless ( over than a basic text setup ), this way you can still run your own programs on your own OS, but pop the output or get input from any device with a web browser ( with html 5 this will become easier ).

This means you will not have to deal with graphic cards and sound etc, but you will be able use the new devices that are going to replace most PC's and code in the environment you chose.
They have that. It's called Apache HTTPD.
Thats not true, if i want direct access to hardware and to code in ASM this would be imposable in one case and hard in the other.
Plus i may want the whole project to be less than 100k including user programs.
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

Re: What would you do differently?

Post by earlz »

Dex wrote:
-m32 wrote:
Dex wrote:First thing i would do differently, would be i would not have started to code a OS :shock:
As the OS is getting more and more of less value.

If you must code a OS, then you should make your OS headless ( over than a basic text setup ), this way you can still run your own programs on your own OS, but pop the output or get input from any device with a web browser ( with html 5 this will become easier ).

This means you will not have to deal with graphic cards and sound etc, but you will be able use the new devices that are going to replace most PC's and code in the environment you chose.
They have that. It's called Apache HTTPD.
Thats not true, if i want direct access to hardware and to code in ASM this would be imposable in one case and hard in the other.
Plus i may want the whole project to be less than 100k including user programs.

There is a thing for that. Called getting an X server working on your OS(though not necessarily grpahics cards) and then forwarding X over SSH... or porting a VNC server..
Post Reply