Do modern OSs cause too much overhead for certain operations?
BareMetal OS: A 64-bit Operating System in only 16KiB
11–20 of 40 posts
Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#12Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#13Keep it up, I love new OSes. My dream is to write a cloud programming language that compiles high level code to a low-level kernel and deploys. I abhor waste, so efforts like this are a great start. I look forward to more!
It was kind of a fun experiment, but in the end didn't save us enough time to maintain it for very long - the real time sink was getting the hardware bootable and into the datacenter to begin with. (This was pre-"cloud" days, I guess if we were doing it again now we might have used it for a little longer.)
Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#14Other than the academic nerdiness of minimal OSs, what is this good for? Do modern OSs cause too much overhead for certain operations?
Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#15If you want a simple OS that fits a lot into a small space, why not get a copy of the Lions' Commentary and translate the edition 6 kernel into asm. If you wanted to go gung ho you could add a simple BKL, demand paging and a network stack to complete the job. You could probably do all the above and keep it somewhere close to 20,000 lines of assembly (excluding drivers).
If you are looking for an education doing the above will probably do you just as good a job as trying from scratch.
Lions' Commentary on UNIX 6th Edition, with Source Code http://en.wikipedia.org/wiki/Lions%27_Commentary_on_UNIX_6th...
The Art of Computer Programming http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming
Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#16So is this like the demoscene stuff or is there a practical use for it?
* High Performance Computing - Act as the base OS for a HPC cluster node. Running advanced computation workloads is ideal for a mono-tasking Operating System.
* Embedded Applications - Provide a platform for embedded applications running on commodity x86-64 hardware.
* Education - Provide an environment for learning and experimenting with programming in x86-64 Assembly as well as Operating System fundamentals.
Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#17Other than the academic nerdiness of minimal OSs, what is this good for? Do modern OSs cause too much overhead for certain operations?
* High Performance Computing - Act as the base OS for a HPC cluster node. Running advanced computation workloads is ideal for a mono-tasking Operating System.
* Embedded Applications - Provide a platform for embedded applications running on commodity x86-64 hardware.
* Education - Provide an environment for learning and experimenting with programming in x86-64 Assembly as well as Operating System fundamentals.
Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#18Other than the academic nerdiness of minimal OSs, what is this good for? Do modern OSs cause too much overhead for certain operations?
Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#19Keep it up, I love new OSes. My dream is to write a cloud programming language that compiles high level code to a low-level kernel and deploys. I abhor waste, so efforts like this are a great start. I look forward to more!
> My dream is to write a cloud programming language that compiles high level code to a low-level kernel and deploys. I'm curious as to what you want to gain from that compared to running a custom compiled Linux kernel with your program as init or as the only running process.
Re: BareMetal OS: A 64-bit Operating System in only 16KiB
#20Keep it up, I love new OSes. My dream is to write a cloud programming language that compiles high level code to a low-level kernel and deploys. I abhor waste, so efforts like this are a great start. I look forward to more!
Your dream idea will work for cpu-bound programs but it seems the majority of applications are bound by factors other than the cpu. The waste frequently comes from waiting for I/O to complete.