What would you do differently?
What would you do differently?
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?
Re: What would you do differently?
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
-
- 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?
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.
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.
- piranha
- 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?
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
-JL
Redesign
- Memory Management
- Multitasking
- Signals
- Device management
- Driver interface
- Native API
- UI
- Virtual Terminals
- System Calls
- Kernel threads
- Critical Sections
- Descriptor Tables
- ELF loading
- 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
-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
- Colonel Kernel
- Member
- Posts: 1437
- Joined: Tue Oct 17, 2006 6:06 pm
- Location: Vancouver, BC, Canada
- Contact:
Re: What would you do differently?
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:
- Too much overtime at work
- Got married
- My brain got stuck in an infinite loop while trying to design the memory manager
Re: What would you do differently?
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 anywayspcmattman wrote:Design. Design more, design better.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
Re: What would you do differently?
First thing i would do differently, would be i would not have started to code a OS
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.
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.
Re: What would you do differently?
They have that. It's called Apache HTTPD.Dex wrote:First thing i would do differently, would be i would not have started to code a OS
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.
Re: What would you do differently?
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.
Re: What would you do differently?
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.-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.
Re: What would you do differently?
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.-m32 wrote:They have that. It's called Apache HTTPD.Dex wrote:First thing i would do differently, would be i would not have started to code a OS
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.
Plus i may want the whole project to be less than 100k including user programs.
Re: What would you do differently?
Dex wrote: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.-m32 wrote:They have that. It's called Apache HTTPD.Dex wrote:First thing i would do differently, would be i would not have started to code a OS
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.
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..