English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 28 December 2020, 22:37   #161
malko
Ex nihilo nihil
 
malko's Avatar
 
Join Date: Oct 2017
Location: CH
Posts: 4,856
Quote:
Originally Posted by Thomas Richter View Post
[...] How do you know? As in "a virus scanner is unuseful"? [...]
So for you, such app as a virus scanner has to be part of the OS ?
Damn. A speech worthy of Bill G.

Quote:
Originally Posted by Thomas Richter View Post
[...] With more power comes more responsibility.[...]
It's a nice line
[ Show youtube player ]

Quote:
Originally Posted by Thomas Richter View Post
[...] The complexity came not by itself. [...]
That's right, it came from OS companies. But in no way from the users as you pretend.
malko is offline  
Old 28 December 2020, 22:59   #162
bloodline
Registered User
 
bloodline's Avatar
 
Join Date: Jan 2017
Location: London, UK
Posts: 433
Quote:
Originally Posted by meynaf View Post
Audio on the pc isn't real time at all.
It's about preparing huge buffers (or using external hardware, but that's not the point here).
As they always have one second or more in advance, the system can steal cpu out of them without too much trouble.
I have written such code myself and it never misses. It is also not as complicated as i expected it to be.
But it's not useful for what i really need.
Winuae, on the other hand, MUST do low latency audio. It can't prepare more than 20ms in advance and that's already big.
This is the reason why it may get in trouble where native players don't.

For video - same thing. Always do computations in advance.
This means stuttering can only happen at startup - but it still happens.
Ok, two very clear errors here.

Firstly, “real time” doesn’t mean instantly, it means that whatever operation you want is guaranteed to occur within an agreed timeframe. Most of my coding experience is with embedded systems, where very low power microcontrollers have to perform their operation in real time.

Secondly all audio system work by building buffers ahead of time. With audio anything under 10ms will sound reasonably instant. For the last Synthesizer I built, I was happy with 5ms latency. With interfaces and video systems 16ms latency is fine.
bloodline is offline  
Old 28 December 2020, 23:23   #163
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Quote:
Originally Posted by Thorham View Post
The answer is 2002, and you talk about outdated toy systems while your laptop isn't much better
No, that machine isn't novel, but unlike other people claim, it still works, and it runs a sane operating system that comes with a working stable Os that is able to protect itself.


Quote:
Originally Posted by Thorham View Post

If Amigas are toy systems, then so is literally every obsolete computer, and that's just nonsense.
No, the X30 is not a toy machine. It still serves its purpose despite its age, and it is still able to run an operating system that hosts a modern browser, an email reader, a network stack, plus all protection layers an operating system is supposed to provide.


Not that I'm always working on this machine, but for browsing, it's ok.
Thomas Richter is offline  
Old 28 December 2020, 23:24   #164
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Quote:
Originally Posted by malko View Post
That's right, it came from OS companies. But in no way from the users as you pretend.
So do you seriously believe that you could satisfy an average user with an Amiga nowadays?
Thomas Richter is offline  
Old 28 December 2020, 23:33   #165
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by Thomas Richter View Post
for browsing, it's ok.
An Amiga with a 68030, like mine, may not be the best platform to browse on, but it most certainly can do it unlike what you claim (which is blatantly false).
Thorham is offline  
Old 28 December 2020, 23:39   #166
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Quote:
Originally Posted by meynaf View Post
Perhaps you create a problem where there is none.
Hardly, but I don't need you to understand the requirements of our clients.


Quote:
Originally Posted by meynaf View Post
Bloat with a VM ? Meh. It's not worse than using 64-bit pointers in programs that will never need more than a few Mb of ram. Or than requiring a whole gibabyte just for booting.
It is the kind of thing that has been done to go from Win16 to Win32, then to Win64. Why not doing it too. Apple does that to move to aarch64 as well, and you're not grumbling about it.
I don't. You complain about "bloat". Now you create one - or at least propose one. See - this is exactly how "bloat" is created. Wrapping layers of layers around software.


Quote:
Originally Posted by meynaf View Post

Yep. And that there is no real security.
There is much more than just "ignore the problem".


Quote:
Originally Posted by meynaf View Post



There are lots of "services" the average user doesn't disable. And a web browser, an email client, a video player, are all applications and irrelevant to OS discussion.
They are very relevant because all of them require specific services from the Os, and for that also require particular protection of the Os as all these programs get data from outside.


Quote:
Originally Posted by meynaf View Post



Low memory situations are quite rare nowadays. Besides, it can be reserved upon program loading. For cpu, well, setting process affinity doesn't seem to help much.
How do you know? It doesn't sound you have tried that. Besides, on this particular machine where I used it, the CPU was reserved "upon program loading" (actually upon booting).




Quote:
Originally Posted by meynaf View Post



Audio on the pc isn't real time at all.
It's about preparing huge buffers (or using external hardware, but that's not the point here).
Huh? That's typically in the msecs range, and I wouldn't call that "huge buffers".


Quote:
Originally Posted by meynaf View Post




As they always have one second or more in advance, the system can steal cpu out of them without too much trouble.
My audio buffers do not buffer 1sec of audio data for sure. If you need to, you must be doing something wrong.


Quote:
Originally Posted by meynaf View Post






For video - same thing. Always do computations in advance.
This means stuttering can only happen at startup - but it still happens.
You must be doing something wrong. The largest source of latency on my video coding is the video grabber card.


Quote:
Originally Posted by meynaf View Post



Oops, it does work on the Amiga. I've done lots of Google searching with IBrowse. Searching this made things clearer too. And you've used THAT as example how your laptop didn't have any of the "modern" troubles i mentioned... Indeed in early 2000's the situation wasn't as horrible as it is today.
Except that this is an operating system from 2020. Strange, still works. Doesn't fall apart.


Quote:
Originally Posted by meynaf View Post




Of course i can. Look at interrupt priority list. Nothing can steal time.
Of course you can't. Disable() exists, and is used by the Os frequently. You don't get a stable 1ms clock on an Amiga.


Quote:
Originally Posted by meynaf View Post





You pretend modern machines are better but there you're forced to use extra hardware.
The "force" is the need to synchronize to external video systems by an equipment-wide clock - camera, sender, receiver, playout. Oops, cannot do that with Amiga.


Quote:
Originally Posted by meynaf View Post







Yes, so we clearly see the result : more protection equals more sophisticated attacks - but not more security.
Hardly. It just means that nobody cared about Amiga users in the criminal camp, but that doesn't make it a secure system.



Quote:
Originally Posted by meynaf View Post






No, the users don't demand bloat.
Users demand features. Features require software.


Quote:
Originally Posted by meynaf View Post






But again, there are good ideas coming off it that could come back.
Certainly not the lack of any security layer or idiocracies like the lack of memory or resource isolation. Back then, at times the Amiga was created, there wasn't really much of a choice. But now we do have the choice as hardware became more powerful, and there is no longer any excuse to avoid such features.
Thomas Richter is offline  
Old 29 December 2020, 11:09   #167
bloodline
Registered User
 
bloodline's Avatar
 
Join Date: Jan 2017
Location: London, UK
Posts: 433
Quote:
Originally Posted by meynaf View Post
Bloat with a VM ? Meh. It's not worse than using 64-bit pointers in programs that will never need more than a few Mb of ram. Or than requiring a whole gibabyte just for booting.
I ask myself, why you don’t complain about Amiga programs which use 32bit pointers when all they need is a few kilobytes of RAM?
Quote:

Yes, so we clearly see the result : more protection equals more sophisticated attacks - but not more security.
You have taken great pains in this thread to explain how much you dislike hardware based security features like memory protection, but not once have you complained about CPU privilege levels.

These are an early example of a hardware based security feature, but if I am to follow your logic, the CPU should operate just fine with only a single privilege level?
bloodline is offline  
Old 29 December 2020, 13:21   #168
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by Thorham View Post
It seems to work fine with native video games, though.
Not said it wasn't possible, but when you're playing a game the machine does not do that much in the background. Besides, a few frames latency are probably acceptable.


Quote:
Originally Posted by bloodline View Post
Ok, two very clear errors here.

Firstly, “real time” doesn’t mean instantly, it means that whatever operation you want is guaranteed to occur within an agreed timeframe. Most of my coding experience is with embedded systems, where very low power microcontrollers have to perform their operation in real time.
Maybe the choice of "real time" wording was too broad.
Then let's be more specific. What about something like "low latency" ?


Quote:
Originally Posted by bloodline View Post
Secondly all audio system work by building buffers ahead of time. With audio anything under 10ms will sound reasonably instant. For the last Synthesizer I built, I was happy with 5ms latency. With interfaces and video systems 16ms latency is fine.
Simple Amiga audio doesn't work this way. There is absolutely no reason all audio should work this way. It's just PC way.



Quote:
Originally Posted by Thomas Richter View Post
Hardly, but I don't need you to understand the requirements of our clients.
Then find another example you can explain.


Quote:
Originally Posted by Thomas Richter View Post
I don't. You complain about "bloat". Now you create one - or at least propose one. See - this is exactly how "bloat" is created. Wrapping layers of layers around software.
This is not "bloat". This added layer is actually useful, unlike many others. What makes bloat is unneeded complexity.


Quote:
Originally Posted by Thomas Richter View Post
There is much more than just "ignore the problem".
That does not mean actual solutions are good and really better than doing nothing.


Quote:
Originally Posted by Thomas Richter View Post
They are very relevant because all of them require specific services from the Os, and for that also require particular protection of the Os as all these programs get data from outside.
There is nothing specific to these apps that the OS must provide - and that AOS does not.
And protection mustn't be made this way. It's the job of the program to not accept incorrect data, not the job of the OS.


Quote:
Originally Posted by Thomas Richter View Post
How do you know? It doesn't sound you have tried that. Besides, on this particular machine where I used it, the CPU was reserved "upon program loading" (actually upon booting).
Upon booting ??? Customized OS then ?


Quote:
Originally Posted by Thomas Richter View Post
Huh? That's typically in the msecs range, and I wouldn't call that "huge buffers".
But where to draw the line ? Smaller buffers equal more risk of missing one. Bigger buffers equal more latency.


Quote:
Originally Posted by Thomas Richter View Post
My audio buffers do not buffer 1sec of audio data for sure. If you need to, you must be doing something wrong.
I haven't tested the limits. How the heck can i be sure it will never miss, even with 1s i can't guarantee anything.


Quote:
Originally Posted by Thomas Richter View Post
You must be doing something wrong. The largest source of latency on my video coding is the video grabber card.
Right, i'm certainly doing something wrong - it's attempting to play a video on a pc with normal software.


Quote:
Originally Posted by Thomas Richter View Post
Except that this is an operating system from 2020. Strange, still works. Doesn't fall apart.
OS from 2020 running on a 2002 machine, yeah, we're gonna swallow that.


Quote:
Originally Posted by Thomas Richter View Post
Of course you can't. Disable() exists, and is used by the Os frequently. You don't get a stable 1ms clock on an Amiga.
The Os does not stay in Disable state long enough to miss 1ms.


Quote:
Originally Posted by Thomas Richter View Post
The "force" is the need to synchronize to external video systems by an equipment-wide clock - camera, sender, receiver, playout. Oops, cannot do that with Amiga.
Of course yes it's doable with Amiga. The Amiga was doing video with external sync before peecees were even able to show it. Just give it a cpu fast enough.


Quote:
Originally Posted by Thomas Richter View Post
Hardly. It just means that nobody cared about Amiga users in the criminal camp, but that doesn't make it a secure system.
Amiga had viruses too, so this point is moot.
You want to know what makes it a secure system ?
As an example, the OS code can't be altered. It is by construction immune to rootkits, unlike the "modern" machines.


Quote:
Originally Posted by Thomas Richter View Post
Users demand features. Features require software.
But software does not need to be THAT heavy to achieve what it needs to do.


Quote:
Originally Posted by Thomas Richter View Post
Certainly not the lack of any security layer or idiocracies like the lack of memory or resource isolation. Back then, at times the Amiga was created, there wasn't really much of a choice. But now we do have the choice as hardware became more powerful, and there is no longer any excuse to avoid such features.
No, but they could be designed and implemented in different ways than what's done currently. And, made optional.



Quote:
Originally Posted by bloodline View Post
I ask myself, why you don’t complain about Amiga programs which use 32bit pointers when all they need is a few kilobytes of RAM?
Because 32bit pointers are needed often enough to justify this.


Quote:
Originally Posted by bloodline View Post
You have taken great pains in this thread to explain how much you dislike hardware based security features like memory protection, but not once have you complained about CPU privilege levels.

These are an early example of a hardware based security feature, but if I am to follow your logic, the CPU should operate just fine with only a single privilege level?
You are not following my logic here. Not at all. Grossly exagerating, rather. Why do you attempt to distort what i write ?
I am not against these features on the principle, it's their current implementation that i regard as bad.
And CPU privilege levels are perfectly fine (at least in the 68k way).
meynaf is offline  
Old 29 December 2020, 13:47   #169
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Quote:
Originally Posted by meynaf View Post
Not said it wasn't possible, but when you're playing a game the machine does not do that much in the background. Besides, a few frames latency are probably acceptable.
That depends on the applications.


Quote:
Originally Posted by meynaf View Post

Maybe the choice of "real time" wording was too broad.
Then let's be more specific. What about something like "low latency" ?
Low latency is a much better term, yes. This is a low-latency video codec I'm talking about, and its latency (not that of the grabber card) is below a frame.


Quote:
Originally Posted by meynaf View Post

Simple Amiga audio doesn't work this way. There is absolutely no reason all audio should work this way. It's just PC way.
Amiga audio and PC audio work exactly the same way. You fill a buffer, you fire off the audio.



Quote:
Originally Posted by meynaf View Post



This is not "bloat". This added layer is actually useful, unlike many others. What makes bloat is unneeded complexity.
Hence, "layers you like" are useful, and "everything else" is not useful? Which kind of definition is that? Do you really believe anyone added stuff to Windows or Linux they considered "unuseful"?


Quote:
Originally Posted by meynaf View Post


That does not mean actual solutions are good and really better than doing nothing.
It means that they are certainly better than "doing nothing". That's exactly the reason why all this protection/security was added to Windows XP - even Microsoft learned that they couldn't go on by "doing nothing about it".


Quote:
Originally Posted by meynaf View Post



There is nothing specific to these apps that the OS must provide - and that AOS does not.
A lot - as already explained. There is a security layer missing, and that is essential.


Quote:
Originally Posted by meynaf View Post




And protection mustn't be made this way. It's the job of the program to not accept incorrect data, not the job of the OS.
It's the Os that processes this data, or parts of the Os layer, namely the network stack. With limited priviledges, this layer couldn't do much harm, but there are no priviledge levels on AmigaOs. Every program can poke into memory of every other program.


Quote:
Originally Posted by meynaf View Post





Upon booting ??? Customized OS then ?
Just a standard vanilla Debian kernel.


Quote:
Originally Posted by meynaf View Post






But where to draw the line ? Smaller buffers equal more risk of missing one. Bigger buffers equal more latency.
That's the art, indeed. Keeping the latency low and the buffers sized just "large enough".


Quote:
Originally Posted by meynaf View Post







I haven't tested the limits. How the heck can i be sure it will never miss, even with 1s i can't guarantee anything.
Same as on the Amiga. You cannot make strong guarantees on a multitasking system. Everyone can steal the CPU for long periods of time, and worst, AmigaOs allows that. Disable() for more than 1 second, you broke. Nothing prevents that. Actually, Disable() and Forbid() should have never become user-callable functions in first place, that's just another design bug.


Quote:
Originally Posted by meynaf View Post








Right, i'm certainly doing something wrong - it's attempting to play a video on a pc with normal software.
How come that then I don't have the issue.


Quote:
Originally Posted by meynaf View Post









OS from 2020 running on a 2002 machine, yeah, we're gonna swallow that.
That's how it works. That's a Debian 9 with XFCE as desktop. No issues. Of course, the browser is on the slow side, but the thing is working.


Quote:
Originally Posted by meynaf View Post










The Os does not stay in Disable state long enough to miss 1ms.
How do you know? You cannot guarantee that, that's exactly the point.


Quote:
Originally Posted by meynaf View Post











Of course yes it's doable with Amiga. The Amiga was doing video with external sync before peecees were even able to show it. Just give it a cpu fast enough.
Nope. I was not talking about "genlocking to an external video". I'm talking about "locking to an external PTP source". Which is a network protocol.


Quote:
Originally Posted by meynaf View Post












Amiga had viruses too, so this point is moot.
You want to know what makes it a secure system ?
As an example, the OS code can't be altered. It is by construction immune to rootkits, unlike the "modern" machines.
That's a very bad idea. If you cannot alter the Os, you cannot fix bugs. The Os needs to be altered, but only with sufficient priviledges.


Quote:
Originally Posted by meynaf View Post













No, but they could be designed and implemented in different ways than what's done currently. And, made optional.
An *optional* security layer is a none-existing security layer. Certainly, things will be made differently, but my best bet is that the differences will mostly manifest on the top layers of the Os and not so much on the bottom layers. Thus, additional services on the Os, but not in the Os.



But, anyhow, we will see.

Quote:
Originally Posted by meynaf View Post














You are not following my logic here. Not at all. Grossly exagerating, rather. Why do you attempt to distort what i write ?
I am not against these features on the principle, it's their current implementation that i regard as bad.
And CPU privilege levels are perfectly fine (at least in the 68k way).
And why is memory protection bad? And priviledge level checking? And access checking? You get all of that pretty much for free on modern hardware, so use it.



Frankly, in AmigaOs, everybody can do everything - that's a pretty bad idea. Function calls like Supervisor(), Forbid(), Disable(), AddIntServer(), RemTask()... all these are pretty bad ideas. The whole graphics.library "abstraction" is broken. A proper way of doing this would be to define the Os interface by "CPU traps", e.g. the lineA-traps MacOs used, or TOS used, and keep the stuff that needs all these priviledges minimal. Then isolate tasks from each other, separate memory domains, and separate from the Os, too.


Of couse, back then, with only a 68000 available, and very limited time for development, and a target audience that were mostly hobbyists, there wasn't much an option. But that's the difference between a serious operating system, and a toy system.


Apple, Microsoft... had sufficient resources to throw their junk overboard, and redesign the Os from scratch. Apple threw MacOs 7 overboard, and essentially replaced it with NeXT and a Mach kernel. Microsoft threw the DOS layer overboard and replayed that by the NT kernel.


At this time, "abstraction software layers" were wrapped around to keep old applications working, same as your "VM", and yes, that's of course "bloat", but "needed bloat" in all cases, unike what you claim.
Thomas Richter is offline  
Old 29 December 2020, 14:17   #170
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by Thomas Richter View Post
But that's the difference between a serious operating system, and a toy system.
I suppose you think that MSDos is a toy OS too
Thorham is offline  
Old 29 December 2020, 14:34   #171
bloodline
Registered User
 
bloodline's Avatar
 
Join Date: Jan 2017
Location: London, UK
Posts: 433
Quote:
Originally Posted by meynaf View Post
Maybe the choice of "real time" wording was too broad.
Then let's be more specific. What about something like "low latency" ?
Low latency is a much better term to describe what you are talking about. But the Amiga is pretty crappy for low latency. I forget what the scheduler quantum default is for exec, but I think it was 4 vertical blanks... which is something like 80ms... And I think the timer device just busy waits for low wait values (Thomas will be able to correct me here).

Quote:
Simple Amiga audio doesn't work this way. There is absolutely no reason all audio should work this way. It's just PC way.
No, all audio systems work the same here. For sample playback on the Amiga or PC you have a buffer with the audio data, and the set the DMA to read the buffer to the DAC, an interrupt happens when the end of the buffer is reached so the CPU can reset the DMA (either to swap the buffer, or more often in the Amiga’s case, just restart it).

I agree that the Win32 audio subsystem was a mess, often requiring huge buffers of up to 50ms to give the CPU time to service it... But that was a design flaw in Windows.

Have a look at Apple’s CoreAudio and you will see a beautifully design Ultra low latency audio subsystem! Where it can take a 32bit float audio input at 96Khz, apply a chain of DSP processes, and then output that at the same fidelity within ~3ms! Stunning!

Quote:
Because 32bit pointers are needed often enough to justify this.
Because the AmigaOS is 32bit, so for a program to work it needs to be able to interact with system components anywhere in the 32bit address space, regardless of how much RAM is actually needs to address. Your little program may only need 16k, but that 16k might be allocated right at the top of a 4gig RAM pool!

The same is true of a 64bit operating system.
Quote:
You are not following my logic here. Not at all. Grossly exagerating, rather. Why do you attempt to distort what i write ?
I am not against these features on the principle, it's their current implementation that i regard as bad.
And CPU privilege levels are perfectly fine (at least in the 68k way).
I don’t disagree that the way modern operating systems implement security features such a memory protection isn’t perhaps too heavyweight. But approaches are used to mitigate performance penalties, and from the perspective of the modern user the price is definitely worth paying to ensure security and stability of mission critical applications.

There are other approaches, look at Microsoft’s research into managed code operating systems. But these have different and often less pleasant limitations. Like all engineering the current approach is the best compromise.
bloodline is offline  
Old 29 December 2020, 14:35   #172
bloodline
Registered User
 
bloodline's Avatar
 
Join Date: Jan 2017
Location: London, UK
Posts: 433
Quote:
Originally Posted by Thorham View Post
I suppose you think that MSDos is a toy OS too
Only if you are a masochist... Toys are supposed to be fun.
bloodline is offline  
Old 29 December 2020, 15:03   #173
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by Thomas Richter View Post
That depends on the applications.
The point was about games.


Quote:
Originally Posted by Thomas Richter View Post
Low latency is a much better term, yes. This is a low-latency video codec I'm talking about, and its latency (not that of the grabber card) is below a frame.
How much is "below a frame" ? Half a frame ? Still big, especially considering the theoretical power of the machine.


Quote:
Originally Posted by Thomas Richter View Post
Amiga audio and PC audio work exactly the same way. You fill a buffer, you fire off the audio.
No. The Amiga audio does not require to fill a buffer.


Quote:
Originally Posted by Thomas Richter View Post
Hence, "layers you like" are useful, and "everything else" is not useful? Which kind of definition is that? Do you really believe anyone added stuff to Windows or Linux they considered "unuseful"?
The reasons things get added are not always the usefulness for the end user.


Quote:
Originally Posted by Thomas Richter View Post
It means that they are certainly better than "doing nothing". That's exactly the reason why all this protection/security was added to Windows XP - even Microsoft learned that they couldn't go on by "doing nothing about it".
The real reason is that Win9x was so crashy they had to do something about it. It has nothing to do with security.


Quote:
Originally Posted by Thomas Richter View Post
A lot - as already explained. There is a security layer missing, and that is essential.
No it's not essential. Its absence does not prevent programs from working.


Quote:
Originally Posted by Thomas Richter View Post
It's the Os that processes this data, or parts of the Os layer, namely the network stack. With limited priviledges, this layer couldn't do much harm, but there are no priviledge levels on AmigaOs. Every program can poke into memory of every other program.
The network stack does not process program data. Neither does the OS.


Quote:
Originally Posted by Thomas Richter View Post
Just a standard vanilla Debian kernel.
Expurged of most "features".


Quote:
Originally Posted by Thomas Richter View Post
That's the art, indeed. Keeping the latency low and the buffers sized just "large enough".
But this is not art, this is unneeded risk taking.


Quote:
Originally Posted by Thomas Richter View Post
Same as on the Amiga. You cannot make strong guarantees on a multitasking system. Everyone can steal the CPU for long periods of time, and worst, AmigaOs allows that. Disable() for more than 1 second, you broke. Nothing prevents that. Actually, Disable() and Forbid() should have never become user-callable functions in first place, that's just another design bug.
Not really the same, no. For bad things to happen on the Amiga, other apps must be stealing cpu. On a pc, it's the OS itself which steals cpu.
Hopefully the Amiga allows removing the OS out of the equation if it goes in the way.


Quote:
Originally Posted by Thomas Richter View Post
How come that then I don't have the issue.
How could i know that. You're not watching videos, maybe. Or it's because you're using a lighter OS version on an old machine.


Quote:
Originally Posted by Thomas Richter View Post
That's how it works. That's a Debian 9 with XFCE as desktop. No issues. Of course, the browser is on the slow side, but the thing is working.
If this XFCE project exists, the reason is normal desktops used too much resources, kinda proving my point in fact.


Quote:
Originally Posted by Thomas Richter View Post
How do you know? You cannot guarantee that, that's exactly the point.
I know how the OS behaves - i've been using it for long enough - and it does not do that, period.


Quote:
Originally Posted by Thomas Richter View Post
Nope. I was not talking about "genlocking to an external video". I'm talking about "locking to an external PTP source". Which is a network protocol.
Even worse. There is no reason a network protocol can't work on the Amiga.


Quote:
Originally Posted by Thomas Richter View Post
That's a very bad idea. If you cannot alter the Os, you cannot fix bugs. The Os needs to be altered, but only with sufficient priviledges.
Learn how to use SetPatch.


Quote:
Originally Posted by Thomas Richter View Post
An *optional* security layer is a none-existing security layer. Certainly, things will be made differently, but my best bet is that the differences will mostly manifest on the top layers of the Os and not so much on the bottom layers. Thus, additional services on the Os, but not in the Os.

But, anyhow, we will see.
Optional security layer allows everyone to do what they want with their machine. It is there by default for non power users.


Quote:
Originally Posted by Thomas Richter View Post
And why is memory protection bad? And priviledge level checking? And access checking? You get all of that pretty much for free on modern hardware, so use it.
This is where the problem lies. It does *not* come for free.


Quote:
Originally Posted by Thomas Richter View Post
Frankly, in AmigaOs, everybody can do everything - that's a pretty bad idea.
No, this is exactly what makes it so good.
But, of course, "with more power comes more responsibility".


Quote:
Originally Posted by Thomas Richter View Post
Function calls like Supervisor(), Forbid(), Disable(), AddIntServer(), RemTask()... all these are pretty bad ideas. The whole graphics.library "abstraction" is broken. A proper way of doing this would be to define the Os interface by "CPU traps", e.g. the lineA-traps MacOs used, or TOS used, and keep the stuff that needs all these priviledges minimal. Then isolate tasks from each other, separate memory domains, and separate from the Os, too.
And lose all the benefit of a lightweight OS. No thanks.


Quote:
Originally Posted by Thomas Richter View Post
Of couse, back then, with only a 68000 available, and very limited time for development, and a target audience that were mostly hobbyists, there wasn't much an option. But that's the difference between a serious operating system, and a toy system.
It's not a toy system, it's just old. Not that this hasn't been said already.


Quote:
Originally Posted by Thomas Richter View Post
Apple, Microsoft... had sufficient resources to throw their junk overboard, and redesign the Os from scratch. Apple threw MacOs 7 overboard, and essentially replaced it with NeXT and a Mach kernel. Microsoft threw the DOS layer overboard and replayed that by the NT kernel.

At this time, "abstraction software layers" were wrapped around to keep old applications working, same as your "VM", and yes, that's of course "bloat", but "needed bloat" in all cases, unike what you claim.
So when others do it it's "needed bloat" but when i want to do the same it's not good anymore ? Nonsense - but typical.
meynaf is offline  
Old 29 December 2020, 15:24   #174
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by bloodline View Post
Low latency is a much better term to describe what you are talking about. But the Amiga is pretty crappy for low latency. I forget what the scheduler quantum default is for exec, but I think it was 4 vertical blanks... which is something like 80ms... And I think the timer device just busy waits for low wait values (Thomas will be able to correct me here).
The quantum value has little to do with overall system responsiveness. It just says how much time the scheduler waits for interrupting a program.
And yes the timer device busy waits for very low wait values - but i tried it down to 1ms and it still didn't busy wait.


Quote:
Originally Posted by bloodline View Post
No, all audio systems work the same here. For sample playback on the Amiga or PC you have a buffer with the audio data, and the set the DMA to read the buffer to the DAC, an interrupt happens when the end of the buffer is reached so the CPU can reset the DMA (either to swap the buffer, or more often in the Amiga’s case, just restart it).
Yes but Amiga has 4 independent channels so you can just load samples in memory at startup and then you don't need to fill any buffer anymore. The PC still can't do that.


Quote:
Originally Posted by bloodline View Post
I agree that the Win32 audio subsystem was a mess, often requiring huge buffers of up to 50ms to give the CPU time to service it... But that was a design flaw in Windows.
Unfortunately, Windows is still used and this design flaw is still here.


Quote:
Originally Posted by bloodline View Post
Have a look at Apple’s CoreAudio and you will see a beautifully design Ultra low latency audio subsystem! Where it can take a 32bit float audio input at 96Khz, apply a chain of DSP processes, and then output that at the same fidelity within ~3ms! Stunning!
Looks good. This is what all so-called modern OSes should have, but guess what...


Quote:
Originally Posted by bloodline View Post
Because the AmigaOS is 32bit, so for a program to work it needs to be able to interact with system components anywhere in the 32bit address space, regardless of how much RAM is actually needs to address. Your little program may only need 16k, but that 16k might be allocated right at the top of a 4gig RAM pool!

The same is true of a 64bit operating system.
Not exactly. The Amiga has flat address space, 64bit machines use paged address space.


Quote:
Originally Posted by bloodline View Post
I don’t disagree that the way modern operating systems implement security features such a memory protection isn’t perhaps too heavyweight. But approaches are used to mitigate performance penalties, and from the perspective of the modern user the price is definitely worth paying to ensure security and stability of mission critical applications.
Yes but this does not make older systems, that don't have it, totally useless. This is the point.


Quote:
Originally Posted by bloodline View Post
There are other approaches, look at Microsoft’s research into managed code operating systems. But these have different and often less pleasant limitations. Like all engineering the current approach is the best compromise.
This means there is at least researching in the field.
meynaf is offline  
Old 29 December 2020, 16:18   #175
bloodline
Registered User
 
bloodline's Avatar
 
Join Date: Jan 2017
Location: London, UK
Posts: 433
Quote:
Originally Posted by meynaf View Post
The quantum value has little to do with overall system responsiveness. It just says how much time the scheduler waits for interrupting a program.
And yes the timer device busy waits for very low wait values - but i tried it down to 1ms and it still didn't busy wait.
I would guess that it is using the CIA then, and that is on a pretty low priority IRQ... Which will have a fair bit of jitter in its timing.

Also it’s relatively easy to to get low latency response in a system which isn’t doing very much... As has already been discussed, on the Amiga, pretty much anything can steal all the CPU time, there are plenty of different way to do it too!

Quote:
Yes but Amiga has 4 independent channels so you can just load samples in memory at startup and then you don't need to fill any buffer anymore. The PC still can't do that.
Your average, built into the motherboard audio codec has far more than 4 channels of audio output (and usually at least one audio input), and most include hardware mixing/DSP... even the cheapest modern audio chip is light years ahead of the Amiga. If you are looking for an area where the Amiga is still relevant, audio isn’t it (that said I keep an A500 in my studio for certain tasks).
Quote:
Unfortunately, Windows is still used and this design flaw is still here.

Looks good. This is what all so-called modern OSes should have, but guess what...
If you were to do professional audio on Windows, you wouldn’t be using the Win32 audio system, and if you are playing games you would be using DirectX.

There are low latency audio systems available for Linux too, though I confess to not having had much experience with them.

Quote:
Not exactly. The Amiga has flat address space, 64bit machines use paged address space.
I thought you were against virtual memory, and the security/stability advantages it offers?

That said, a program in a 64bit environment will need to be able to access anywhere in the address space. This is why both Apple and Microsoft run their 32bit and 64bit applications in separate environments!



Quote:
Yes but this does not make older systems, that don't have it, totally useless. This is the point.
That depends how you define useless. Steam Trains are useless for the task they were designed, but enthusiasts keep some examples running and they are toys... big boys toys, but still toys!

The Amiga is now useless for the application it was designed, but that doesn’t stop you or me having a great deal of fun playing with one!

I really enjoy using my Amigas, and trying out things, but I can’t do my job on one, I can’t manage my personal life on one, and I can’t even do most of my hobbies on one any more!
bloodline is offline  
Old 29 December 2020, 16:44   #176
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by bloodline View Post
I would guess that it is using the CIA then, and that is on a pretty low priority IRQ... Which will have a fair bit of jitter in its timing.

Also it’s relatively easy to to get low latency response in a system which isn’t doing very much... As has already been discussed, on the Amiga, pretty much anything can steal all the CPU time, there are plenty of different way to do it too!
Of course timer.device does not guarantee it will be exact - nothing will, regardless of the platform.
At least for good timing we have CIA-B interrupts, and these ones aren't interrupted so easily. We also have audio interrupts.


Quote:
Originally Posted by bloodline View Post
Your average, built into the motherboard audio codec has far more than 4 channels of audio output (and usually at least one audio input), and most include hardware mixing/DSP... even the cheapest modern audio chip is light years ahead of the Amiga. If you are looking for an area where the Amiga is still relevant, audio isn’t it (that said I keep an A500 in my studio for certain tasks).
No, you didn't get it. Even if it has 7 channels, they are not independent. It has very small set of choices of frequency. From programmer's point of view, it's light years behind, actually. Or at least, the APIs available to use it are.


Quote:
Originally Posted by bloodline View Post
If you were to do professional audio on Windows, you wouldn’t be using the Win32 audio system, and if you are playing games you would be using DirectX.

There are low latency audio systems available for Linux too, though I confess to not having had much experience with them.
With all this redundancy of APIs, i don't know what to use.


Quote:
Originally Posted by bloodline View Post
I thought you were against virtual memory, and the security/stability advantages it offers?
Virtual memory is just one application of memory paging, anyway, i'm not against it. It's just that i don't want it to be mandatory.


Quote:
Originally Posted by bloodline View Post
That said, a program in a 64bit environment will need to be able to access anywhere in the address space. This is why both Apple and Microsoft run their 32bit and 64bit applications in separate environments!
But the question to ask is that if there are so many apps that really need all that space. For 99% apps 4G space is enough.


Quote:
Originally Posted by bloodline View Post
That depends how you define useless. Steam Trains are useless for the task they were designed, but enthusiasts keep some examples running and they are toys... big boys toys, but still toys!
Call them collector machines if you want, however steam trains are not toys, they're just old.


Quote:
Originally Posted by bloodline View Post
The Amiga is now useless for the application it was designed, but that doesn’t stop you or me having a great deal of fun playing with one!

I really enjoy using my Amigas, and trying out things, but I can’t do my job on one, I can’t manage my personal life on one, and I can’t even do most of my hobbies on one any more!
Yes but this is just because the hardware is underpowered.
meynaf is offline  
Old 29 December 2020, 17:31   #177
bloodline
Registered User
 
bloodline's Avatar
 
Join Date: Jan 2017
Location: London, UK
Posts: 433
Quote:
Originally Posted by meynaf View Post
Of course timer.device does not guarantee it will be exact - nothing will, regardless of the platform.
At least for good timing we have CIA-B interrupts, and these ones aren't interrupted so easily. We also have audio interrupts.
I’m not sure CIA-B’s Interrupt is exposed via the OS... well, actually given how AmigaOS allows a task to do pretty much anything, you can use it... but this is just an example of how insecure the OS is!

Almost all hardware uses Interrupts! Have you done any PCI or USB dev work!? The audio devices on a modern PC will use Interrupts... and to really blow your mind, read about message signalled interrupts...

Quote:
No, you didn't get it. Even if it has 7 channels, they are not independent. It has very small set of choices of frequency. From programmer's point of view, it's light years behind, actually. Or at least, the APIs available to use it are.
The Amiga only has 4 channels of DMA for its audio, in reality it has two physical channels. The audio is 8bit, the DACs aren’t linear, the DMA feeds the DACs using a period derived from the 3Mhz DMA clock meaning the frequencies are all slightly off, music played on a real Amiga is always slightly out of tune... the Amiga audio output is really quite low fidelity (but we like that sound, so I chose to emulate these imperfections when I wrote a MOD player for the Godot Game Engine). The Amiga audio has character, and we like that, but it isn’t usable any more for even consumer level audio playback, let alone audio production.


Quote:
With all this redundancy of APIs, i don't know what to use.
I won’t deny that, hence how the Apple Mac managed to become the de facto professional music production platform. By putting the effort in to get Audio done right, at the beginning of OSX.
Quote:
Virtual memory is just one application of memory paging, anyway, i'm not against it. It's just that i don't want it to be mandatory.
By virtual memory I’m not talking about using hard disk to buffer lack of RAM, I mean how programs live in their own virtual address space. And it isn’t mandatory, my own toy operating system just uses a single address space across all tasks.

But virtual memory has so many advantages, for a general purpose operating system, there simply isn’t any reason not to use it!

Quote:
But the question to ask is that if there are so many apps that really need all that space. For 99% apps 4G space is enough.
“640k should be enough for anyone”... I’m an Analyst in my current job, and I regularly use datasets that a multiple gigabytes in size, I also have to run a lot of statical modelling software and databases, video, chat, mail, all at the same time... As more and more of us work remotely, the demands on our machines will only increase.

Quote:
Call them collector machines if you want, however steam trains are not toys, they're just old.
But they are useless for the application they were designed. We only keep them around to play with them.

Quote:

Yes but this is just because the hardware is underpowered.
No... The hardware lacks features.

Last edited by bloodline; 29 December 2020 at 17:48.
bloodline is offline  
Old 29 December 2020, 18:08   #178
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by bloodline View Post
The Amiga audio has character, and we like that, but it isn’t any more for even consumer level audio playback, let alone audio production.
Try calibrated 14bit playback of 16bit 28khz (or 44khz with double scan modes) on an A1200 with the filter off (use Hippolayer or something and DO NOT use Ahi). Sounds utterly characterless and completely generic. For many kinds of music still very suitable. The real problem is audio decoding. I use WAV files, because they support raw data and SOX on the peecee can generate those easily. It's not very practical, of course.

Quote:
Originally Posted by bloodline View Post
But they are useless for the application they were designed. We only keep them around to play with them.
They weren't designed as toys. Something doesn't become a toy because it's old. It's just old. In the case of steam trains, those have been used in some countries until quite recently.

Generally speaking, of course, most obsolete things aren't very practical anymore, but the point is that something doesn't become a toy just because it's used as one. A 5000$ peecee doesn't become a toy just because it's owner only plays games on it. It's just a use case.

And then it goes farther. A latest gen XBox or Playstation is designed as a toy, but could with a new OS be used to do real work.
Thorham is offline  
Old 29 December 2020, 18:12   #179
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by bloodline View Post
I’m not sure CIA-B’s Interrupt is exposed via the OS... well, actually given how AmigaOS allows a task to do pretty much anything, you can use it... but this is just an example of how insecure the OS is!
There exists ciab.resource. Nothing insecure in here, you just have to ask for the resource before using it.


Quote:
Originally Posted by bloodline View Post
Almost all hardware uses Interrupts! Have you done any PCI or USB dev work!? The audio devices on a modern PC will use Interrupts... and to really blow your mind, read about message signalled interrupts...
Not the same, these interrupts are not exposed to the programming model.


Quote:
Originally Posted by bloodline View Post
The Amiga only has 4 channels of DMA for its audio, in reality it has two physical channels. The audio is 8bit, the DACs aren’t linear, the DMA feeds the DACs using a period derived from the 3Mhz DMA clock meaning the frequencies are all slightly off, music played on a real Amiga is always slightly out of tune... the Amiga audio output is really quite low fidelity (but we like that sound, so I chose to emulate these imperfections when I wrote a MOD player for the Godot Game Engine). The Amiga audio has character, and we like that, but it isn’t usable any more for even consumer level audio playback, let alone audio production.
But it's easy to code for and you can do it without the OS interfering.


Quote:
Originally Posted by bloodline View Post
By virtual memory I’m not talking about using hard disk to buffer lack of RAM, I mean how programs live in their own virtual address space. And it isn’t mandatory, my own toy operating system just uses a single address space across all tasks.

But virtual memory has so many advantages, for a general purpose operating system, there simply isn’t any reason not to use it!
It is not virtual memory but logical memory (as opposed to physical). Nothing against it, again, it's about giving the choice.


Quote:
Originally Posted by bloodline View Post
“640k should be enough for anyone”... I’m an Analyst in my current job, and I regularly use datasets that a multiple gigabytes in size, I also have to run a lot of statical modelling software and databases, video, chat, mail, all at the same time... As more and more of us work remotely, the demands on our machines will only increase.
That's not a big problem. The gigabyte datasets don't have to fit in memory, all the other software does not need more than 4G per process...
And yes 640k is actually enough for many programs.


Quote:
Originally Posted by bloodline View Post
But they are useless for the application they were designed. We only keep them around to play with them.
Same has been said about horses, but there are still horse races nowadays.


Quote:
Originally Posted by bloodline View Post
No... The hardware lacks features.
Get an expansion board.
meynaf is offline  
Old 29 December 2020, 18:21   #180
Ernst Blofeld
<optimized out>
 
Ernst Blofeld's Avatar
 
Join Date: Sep 2020
Location: <optimized out>
Posts: 321
Quote:
Originally Posted by phx View Post
Anybody else here who thinks that this forum is in serious need for moderation?
At least some moderator should move this crap into some OT-section.
I think the moderators need to explain why they haven't. I suspect some serious sock puppetry going on, probably includes the moderators.

Last edited by Ernst Blofeld; 29 December 2020 at 19:41.
Ernst Blofeld is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
68k & PPC CPU Usage monitor for OS3 ancalimon support.Apps 1 29 June 2020 23:42
68k CPU pause (bubble) kamelito Coders. Asm / Hardware 9 27 January 2020 15:09
Bad weather for the 68K socket cpu cards Solderbro support.Hardware 0 14 July 2018 10:19
Looking to get max CPU performance in WinUAE 68k OS GunnzAkimbo support.WinUAE 1 12 May 2016 11:18
Apollo / Phoenix CISC CPUs m68k compatible Snake79 News 3 05 March 2015 20:20

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 16:48.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.12694 seconds with 16 queries