17 April 2020, 21:14 | #81 | |||||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
Quote:
(actually two main developers have also worked on BeOS and Nukernel-Haiku) So if you want to go the classical route that is probably the way to go. If you want to go microkernel and security and separated address spaces "L4" and https://genode.org/indexGenode ist the way. If you want to go exokernel and single address space: my OS. Quote:
And my OS would send even more messages than a typical microkernel OS.. If it is not at least equally fast than a monolithic kernel, it makes probably no sense - even if todays hardware is much more forgiving. My ideas should lead to many simplifications all over the OS and make it smaller and more elegant ... sure one could argue that this would be worth some sacrifices is speed ... but historically this was never true. but with the right support for the CPU and within a (protected!) single address space, I am confident, my approach is at least as fast an a monolithic one, probably even faster, because less complex. Quote:
Quote:
but maybe someone has a clever idea ... could we support different address-length in the instruction set ... like you support bytes, word, long ... for data? actually in many cases of small programs or services even a 16bit address space would be enough. Is there an elegant way to support different lengths dynamically? Quote:
Quote:
here a blog about some x86 emulator in wasm ... not my kind of fun: https://brionv.com/log/2017/06/06/br...n-webassembly/ Last edited by Gorf; 17 April 2020 at 21:22. |
|||||||
17 April 2020, 22:02 | #82 |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
An other video some might not like....
But this one is really funny and covers a lot of the ideas in this thread: https://www.destroyallsoftware.com/t...-of-javascript |
18 April 2020, 09:50 | #83 | ||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,322
|
How can you possibly send a message to another process, if the target can't read from the pointers you give it ?
You *have* to tell the OS that these areas must be available to the other process. And then said OS has all the required information to remap them into the target's process space. Quote:
Quote:
We may wonder why in spite of this, Windows is so bloat, Linux is less bloat but still is, and actually, nearly everything is. Hint : the kernel isn't at fault. Actually, NT kernel is in fact quite good. It's not the video i don't like, it's just that i can't the heck understand spoken english. And anyway, if you constantly redirect to videos, it's maybe because you can't explain it yourself. Quote:
Our fine 68k can already use direct 16-bit addresses with its addressing modes ; we also have things such as MOVEA.W. I don't think it is a big deal JSR/RTS will always push/pop a long. So i think that for 16-bit we're already covered (at least I am). That's because only relatively minor changes are required to get it ported to another platform. It didn't have to be 100% rewriten (not even 50%). That goes without saying. Quote:
|
||||
18 April 2020, 15:23 | #84 | |||||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
if the receiver has the rights to do so (MPU), it will read from (or write to) the given location Quote:
you do NOT do that every time you send a message. Quote:
The MPU blocks reads, if the task is not allowed to read, blokes writes, if the task is not allowed to write, and stopes jumps if that region is not for execution. This is a much more static approach than remapping memory via MMU. It needs far less modifications and allows for faster context switches. Quote:
Quote:
but still MS considers the performance penalty of this MMU based process isolation and memory mapping etc. to 25-33%. Quote:
here are the slides of that talk: http://millcomputing.com/blog/wp-con...curity.04.pptx at least have a look at them - and ask me for the parts that are unclear and I will explain these parts instead of writing a whole book here... Quote:
that should avoid the drawbacks of long pointers, as you would not use them most of the time, but 32bit or even 16bit instead. |
|||||||
18 April 2020, 16:57 | #85 | |||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,322
|
Quote:
Quote:
Quote:
Nope But let's face it : i have nothing against you writing your OS for my CPU if you want to. Quote:
Quote:
It seems you want to both keep your cake and eat it My plan to handle this is to give the choice. Same OS could work with full security, or limited, or even no memory protection at all (like AOS 3.x). Oh, while i'm at it. What's described here is very implementation oriented. It needs special hardware. In short, it does not mix well with a software VM... Removing single bucket of water will not empty the pond. 64bit has more important drawbacks than just the pointer overhead. |
|||||
18 April 2020, 17:42 | #86 | ||||||||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
Quote:
Think of "groups" like permissions on a filesystem. Quote:
Quote:
Quote:
Quote:
If you would explain it from the scratch it takes also a very long time. the MPU/security concept in this linked talk, rethinks the whole concept ... Quote:
Quote:
A system should not take the (power)users control away... Quote:
Since for the host CPU the VM looks like any other program running in its own address space, it is entirely up to the VM how it implements process isolation.. Quote:
|
||||||||||
18 April 2020, 18:16 | #87 | |||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,322
|
Quote:
One mapping per process, kept permanently. Ouch. Quote:
And big trouble handling 32 vs 64 bits Quote:
Quote:
https://en.wikipedia.org/wiki/Singul...rating_system) Working state : Discontinued. Oops. Quote:
Well, said otherwise, you want both the butter and the money for the butter. Quote:
Quote:
Try to design it and you will see. |
|||||||
18 April 2020, 18:53 | #88 | ||||||||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
Quote:
Only it it is is allowed to access it. Quote:
the only problem we are talking here arises from insisting on a hybrid CPU-design. If our address space is 64bit, the CPU has to cope with it and provide a mechanism to handle 64bit pointers for IPC. It may also use shorter pointers for references within the own heap. Quote:
Quote:
Quote:
(and one could strip it further down, as probably not all features mentioned in that talk are necessary) Quote:
Quote:
In my approach the complexity also stays constant, and the speed penalty is close to zero, as the checks are done in parallel. Quote:
Here again some of the techniques used in Singularity (and probably in many other places as well) can help to provide such a MPU-like system in a VM. It does not need to replicate a hardware MPU but just deliver the same effects.. Quote:
What are the other important drawbacks a 64bit CPU imposes besides the pointer overhead? Last edited by Gorf; 18 April 2020 at 19:03. |
||||||||||
18 April 2020, 20:23 | #89 | |||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,322
|
Quote:
Sorry, but you can not have a table for n tasks smaller than a table for 1 task. If there are many tasks in the system, your table will explode - unless you have 1 table for 1 task and in that case, you're doing the same as everyone else (i.e. invalidating the table upon task switches). Quote:
Quote:
When you want. I'm ready Quote:
Quote:
You can't have it. You have the choice between security and performance. You can't have both together at a given time. Quote:
Quote:
Now can you check the whole mem lists of 100+ tasks in parallel ? Quote:
Quote:
But hey, let's have a go, hoping it will not result in endless arguing. Do you want to reduce the feature level of your cpu, or use an ugly encoding ? As with up to 25% space used for 64-bit features, you'll be forced to do major changes. Have you considered what would be the maximum size of a single instruction ? This becomes interesting if you can have full sized immediates and linear addresses in your addressing modes. Ah, and don't forget to allocate more space in structures, stacks, whatever, as your registers are now twice as big (and more space in your MPU lists, as your address space is now squared). |
|||||||||
18 April 2020, 22:52 | #90 | |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
Of course you don't check hundreds (or more) of "mem lists" - that would be utterly stupid. How do you come up with such an idea? ok ... you don't want to watch the video and you don't want to read the slides i linked ... but still you keep making totally wrong assumptions. To me it seems you don't really want to talk about it in a productive way. So we better stopp here. |
|
19 April 2020, 08:42 | #91 | |||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,322
|
Quote:
Who wrote "the MPU approach does allow to keep the same tables" ? It strongly suggests the table is the same for the whole system. Otherwise, it contradicts the previous "mapping is different for every process and has to change at every context switch in the classical approach" which suggests that you don't go to another table upon context switch. Either the mapping changes, or it does not. (Of course, in the Mill stuff you linked, the table actually changes, it's just able to reuse blocks of others - which does not look like if it'll have a positive impact on speed, and certainly not on simplicity.) Quote:
And of course you're not saying what assuptions might be wrong and why. I take notice of that. However is it me, or you ? I just wanted to push you to make your thought clear, point your contradictions, sometimes reasoning by the absurd. But here is one fact : my VM actually works. It runs on 68k only, it's slow, it's not available to the public, but it works. Yours looks like it's just a vague theory. Quote:
How odd people just stop talking when they are proven wrong. Now you wanna stop ? That's fine. Build a working VM, then we'll talk again. |
|||
19 April 2020, 09:00 | #92 |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
It is not about agreeing or disagreeing, but about twisting words or saying things like just now: "you indirectly suggested it"
No I did nowhere suggest to search hundreds of "memory lists" per task and it is kind of insulting to claim I would suggest such nonsense. A tables containing less information must be smaller than ones containing more information! Since you do not need to store the physical address in a SASOS MPU table, less memory is needed in total compared to classical MMU tables. For a 64Bit CPU the entry can shrink down from 64 bits (like on x64) to 32 bits per entry and still providing a more sophisticated permission model. Of course they are not static (and I never claimed that either) but they only need to change if memory gets allocated, freed or permissions get granted and not every context switch, since all tasks live in the same "memory context" aka the same address space. Or now claiming you had "proven me wrong" ... there was nothing to be proven wrong or right, except you make up nonsensical things I never claimed in the first place. THAT ist what I call a non-productive way to discuss a matter. So sorry @all for the derailing and back to the topic: your dream amiga Last edited by Gorf; 19 April 2020 at 09:20. |
19 April 2020, 10:12 | #93 | |||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,322
|
Quote:
Quote:
What conclusion to take from this ? If we switch to another table, then we don't keep the same table - doing exactly like the others. And if we don't switch anything at all, then there must be a single, global table. This global table must then handle hundreds of lists because there are hundreds of tasks (and not hundreds of lists per task !). Yes this is absurd. But it is the logical conclusion. Quote:
Quote:
Anyway, does your MPU table use variable sized blocks ? In that case, ok you don't have the physical address, but you have the size. Quote:
Oh, wait. Maybe entries describe areas that vary in size ? In that case, either they're small enough and lead to horrors in case of fragmentation, or they're big and they lead to memory waste exactly like in the classical way (but not in my "no protection at all" idea). Quote:
Don't tell me you think the tables are fully rebuilt upon every context switch for the classical way ?! Furthermore, in the classical way as done nowadays we're multicore. This means, greatly reduced number of context switches so they don't count that much anymore in performance. Quote:
Check post #91 : no reply to all my points, and count the number of "you" in it... For me a clear indication i have touched something sensitive. 'xcept you are not really discussing. You're just sending me to videos or whatever. If you need someone else to explain things in your place, it's because you can't explain it yourself. And if you can't explain it yourself, it's probably because you haven't really understood it. You don't need me to do it, do you ? So why are you not just working on it ? We've got enough time these days ! Yeah, sure. |
|||||||
19 April 2020, 11:35 | #94 | ||||||||||||||||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
Quote:
Quote:
Quote:
Quote:
You need just one list. On a file server with hundreds of users and millions of files, you do not need hundreds of lists with millions of entries to organize permissions. You only have a few per file, that your filesystem manages. Same goes here for tasks and memory regions. Quote:
Quote:
Quote:
Quote:
About 4M lines for 64GB of ram and 16KB regions. If you want a more fine grained structure, you can accompany this with tagged memory, down to the byte level. (See lowRISC cpu) Quote:
Quote:
They don’t need to change if you change them? That makes no sense... Quote:
See the paper from Microsoft I linked earlier.. Quote:
And since tasks now spawn multiple thread ... well I somehow doubt, that the number of switches got actually significantly reduced. Are there studies? Quote:
Quote:
Did you never read books in school/university, but demanded, that your teachers explains everything for you? How did they react? Quote:
Quote:
Quote:
I actually don’t... Last edited by Gorf; 19 April 2020 at 12:47. |
||||||||||||||||||
19 April 2020, 11:56 | #95 |
Oh noes!
Join Date: Mar 2003
Location: Neverland
Posts: 766
|
Gorf, do you use Vim or Emacs?
|
19 April 2020, 12:01 | #96 |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
|
19 April 2020, 12:26 | #97 |
Total Chaos forever!
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,186
|
If Gorf's idea is to make a variable-sized table of resources without need for relationships then it's going to be faster than a relational SQL database and smaller than a linked structure. The real question is this: How are reallocations handled in the global table?
|
19 April 2020, 12:41 | #98 |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
You can make the table fixed size, since your actual physical RAM is not going to change ... but it will contain many identical entries, so there is room for compression ... If you have a fast enough way to access the data in a compressed table ...
The easy way: just a fixed size table with a known number of entries. The MemAllocator service will simply overwrite the table at specific location in case of a reallocation. That location can simply be calculated. |
19 April 2020, 12:52 | #99 |
Total Chaos forever!
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,186
|
@Gorf
What will the page size be for the MPU? |
19 April 2020, 13:01 | #100 |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
I called it "regions" in the last message ... and there I took 16KB as region-size for a computer with 64GB installed...
(This is obviously for a 64bit cpu) If you have less RAM you can make the regions smaller or work with a smaller table ... I would recommend the second option |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Another chance to buy the RG Amiga Book | LuMan | News | 10 | 03 March 2016 18:21 |
Chance to pick up a REAL amiga - worth it? | Critic | Amiga scene | 47 | 16 November 2013 14:46 |
Which FPGA Implementation of Amiga do you think has the best chance? | digiflip | Amiga scene | 4 | 29 May 2011 08:31 |
Any chance of an iPhone Amiga emulator? | RabidRabbit | support.OtherUAE | 10 | 03 July 2010 11:15 |
I want to give Amiga Emulation one last chance, please help (WoT) | GurrenLagann | New to Emulation or Amiga scene | 15 | 27 April 2008 12:14 |
|
|