Re: unite to make an OS
Posted: Wed Nov 09, 2022 10:14 am
You watch that "Stokfish" channel on yt ?
That's where you got this quote I guess
That's where you got this quote I guess
The Place to Start for Operating System Developers
https://f.osdev.org/
I can't tell if you are joking or not... In any case: https://tolkiengateway.net/wiki/Ring_Ve ... dows%20lie.devc1 wrote:You watch that "Stokfish" channel on yt ?
That's where you got this quote I guess
Three Rings for the Elven-kings under the sky,
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all, and in the darkness bind them,
In the Land of Mordor where the Shadows lie.
Sorry for seeing this late. But I'm curious why you don't think Linux already qualifies as an "exceptional OS". It has millions of lines of code worth billions of dollars if you had to actually code it. And it's available for free, and comes with source code if you want to change anything.devc1 wrote:So, in this OSDEV Community. We've got some very experienced users in os developement. Why don't we unite and make an Exceptionnal OS, with a new design ?
Mostly from scratch (the boot manager, the kernel, the library, most of the drivers, services and the apps)
Stockfish is the best because it has a large community behind it.
The above is copyrighted, so I personally won't be linking in copyrighted material into anything of mine, regardless of how many people try to convince me that the license is absolutely fantastic.arseniuss wrote:If we are anarchists why don't we do anarchy?
We could not work on "one ultimate OS" but write libraries, functionality etc. keeping in mind that it could be reused by others.
The libutf clones by Plan 9 is a good example [url=https://github.com/cls/libutf]liburf@github[\url].
We could expand those principles to other stuff.
I agree there's little sense in putting effort moving functions to a separate library, but I do find it helpful to create new libraries preemptively since it makes it easier to reuse functionality later on. IME it also helps with separating functionality and preventing "leaky abstractions" as each library has a much more limited scope than an entire project.kerravon wrote: If that is the case, if you tell me the library function you expect to exist for an MSDOS system, let me know and I'll see if I can rip it out from wherever it currently exists in PDOS and put it into a library (you'll need to tell me the library name too).
Before I do that work it would probably be best to find out if someone actually has a use for said library function in an OS that they are about to write, or an existing one that they also intend to transform to use the new osdev-standard library.
Actually, I thought of something else. Maybe you can get the ball rolling.arseniuss wrote: We could not work on "one ultimate OS" but write libraries, functionality etc. keeping in mind that it could be reused by others.
We could expand those principles to other stuff.
Division is simple to support in any assembler language, including FPGAs using Verilog. You just rotate the quotient and compare it with the dividend and subtract from it when lower and set the appropriate bit.kerravon wrote: 32-bit division etc routines generated by GCC 3.2.3.
Code: Select all
always @ ( posedge clk )
begin
if (start)
begin
mask[17] <= 1;
mask[16:0] <= 0;
curr[29:17] <= count;
curr[16:0] <= 0;
quot[16:0] <= 0;
if (sum[42])
begin
sign <= 1;
divend <= ~sum[41:12];
end
else
begin
sign <= 0;
divend <= sum[41:12];
end
running <= 1;
end
else
begin
if (running)
begin
if (mask == 0)
begin
res[15] <= sign;
if (sign)
begin
if (quot[0])
res[14:0] <= ~quot[15:1];
else
res[14:0] <= (~quot[15:1]) + 1;
end
else
begin
if (quot[0])
res[14:0] <= quot[15:1] + 1;
else
res[14:0] <= quot[15:1];
end
running <= 0;
end
else
begin
if (divend >= curr)
begin
divend <= divend - curr;
quot <= quot | mask;
end
mask <= mask >> 1;
curr <= curr >> 1;
end
end
end
end
Hopefully someone who agrees that that is simple will provide the necessary code to replace all or part of lines 21 to 40 here:rdos wrote:Division is simple to support in any assembler language,kerravon wrote: 32-bit division etc routines generated by GCC 3.2.3.
Code: Select all
Inputs: Divisor > 0, Dividend >= 0
Outputs: Quotient, Remainder
Temporary: Shift Count
Procedure:
Shift Count := ilogb(Dividend) - ilogb(Divisor) #ilogb(x) = index of highest set bit, ilogb(0) = -100 or so
Remainder := Dividend
Quotient := 0
if Shift Count >= 0:
Divisor := Divisor shl Shift Count
while Shift Count > 0 do:
if Remainder >= Divisor:
Remainder := Remainder - Divisor
Quotient := Quotient or 1
Divisor := Divisor shr 1
Quotient := Quotient shl 1
dec(Shift Count)
if Remainder >= Divisor:
Remainder := Remainder - Divisor
Quotient := Quotient or 1
Nor do I, other than what I can copy from what I already have. Yes, I could volunteer to learn it, then volunteer to write it. It's on the list of things I am willing to do, but likely many years away.nullplan wrote:I don't know any m68k assembler, so I can't help you there.
GCC still supports 68000.kerravon wrote:I think GCC is 68020-only, not 68000.
Thanks for that.Octocontrabass wrote:GCC still supports 68000.kerravon wrote:I think GCC is 68020-only, not 68000.