Home   News   Concept   AMIGA-Compatible   Hardware   Forum   Questions+Answers   Pictures   Contact & Team

Welcome to the Natami / Amiga Forum

This forum is for AMIGA fans interested in the new NATAMI platform.
Please read the forum usage manual.



All TopicsNewsQAFeaturesTalkTEAMLogin to post    Create account
Welcome to the Natami lounge.
Meet new AMIGA friends here and enjoy having a friendly chit chat.

Even Without Optic Computing... 1 Second NatAmi?page  1 2 3 4 
Joe M
Norway

Posts 500
09 May 2012 03:56


Pawel K. wrote:

CPU need as fast cores as possible because you can't make programmers write good code. Processor need to take badly written code and execute it very fast hence CPU makers "waste" millions of transistors for what would be considered minimal IPC increase instead of throwing it to add dozens of cores.

Natami programmers must learn how to write clean, fast and stable code, otherwise the whole point of the machine is gone. To bring bad programming practices from PC to Natami is not an option. The Natami will not be fast enough to tolerate slow and badly written code IMHO.

Joe M
Norway

Posts 500
09 May 2012 04:16


comp arch wrote:

I personally always got annoyed by the tons of Amiga viruses. Thus, I would gladly give away control to stop them from ruining my system.

Even if Amiga viruses were a problem in the past, I'm glad we didn't have bloated anti virus software like many of the anti-virus packages available today. I dislike to have such software running in the background, checking all processes, memory, files and slowing everything down to a crawl. It doesn't matter how fast processor you have, how many cores etc. when the system is overloaded with crap like that. :(

The virus threat as Windows OS is exposed to nowadays, especially when connected to the Internet, is in itself a reason not to use it.

Thierry Atheist
Canada

Posts 1828
09 May 2012 07:45


Joe M wrote:

Natami programmers must learn how to write clean, fast and stable code, otherwise the whole point of the machine is gone. To bring bad programming practices from PC to Natami is not an option. The Natami will not be fast enough to tolerate slow and badly written code IMHO.

Hi Joe M,

You completely understand my views in all those posts of your's above, and I especially like this line:

"To bring bad programming practices from PC to Natami is not an option."

Porting massive spaghetti open source software from linux (and windows) is mostly a waste of time, and that is astonishing to say, considering how much work was put into that software!!!!!

But really, having programs with dependencies on other programs that have dependencies on YET OTHERS (and others still), that may, or MAY NOT be "up-to-date" enough to WORK even!!!!!

If working on "new" software for the NatAmi is "reinventing the wheel".... I know that it IS worthwhile, as do most, heck, 99% of the people here do too.

Just today on my widows 7, I ran a program I seldom use that needed an update. I know what I did, but really, undoing it will be a monstrous ordeal, IF POSSIBLE! I accepted one of those optional choices when using shareware, similar to a toolbar add on and now Chrome is not working too good.... and where precisely do I email my complaint???

Thomas Richter
Germany
(MX-Board Owner)
Posts 1425
09 May 2012 18:55


Megol . wrote:

  In general I'd agree however most causes of slow booting are due to bad design decisions. Why should scripts be parsed for every boot instead of be pre-processed?

I'm certainly not a defender of Linux nor windows, but let's play that game for a minute. If scripts are pre-processed, then the user will be confused when replacing a script, so there's loss of control by a non-obvious indirection layer. KISS = keep it simple, stupid! is a good design principle.

Ok, what can be done: Os notification, the os becomes aware of whenever a user modifies a script and then compiles or pre-processes it on demand. A solution? Maybe, the user can change the script, the os boots fast nevertheless. But it needs a daemon process or some other checking process to be running. Which might break, or which is something the user is not aware of. Or which might him give the feeling of losing control.

So we're back to where we started. Ok, make it configurable? Then you run into trouble of users not understanding the configuration, or not willing or not able to read the documentation that came with that, so again more complexity.

You see, there are *many* decisions you have to make as an Os designer, and many compromises you have to find, and no matter what you do, you do it wrong.

In case of doubt, pick the easiest alternative. Which is: Let the system run the scripts all over. Simple, understandable, reproducable, every dummy knowns how to edit and modify them, least surprises. Probably five seconds more boot time in worst case. Who cares?

Did I say that my Laptop boots in 10 seconds (of which 7 are spend in the bios?) from an SSD? So it's really not a problem.

Megol . wrote:

  Why load stuff (that will be swapped out later) at boot time that isn't needed?

What makes you so sure that it isn't needed? Probably it is loaded exactly for the reason you gave above? Probably because the Os can concieve that this *might* be needed later, and it will save time later? So exactly for the reasons you gave?

Megol . wrote:

  Even BIOS could be mostly bypassed reusing hibernation mechanisms for standard boot.

So it does. But it requires an Os organization that supports that. AmigaOs doesn't.

Again, I'm playing a bit the devil's advocate (a role I seem to appreciate). It is absolutely non-trivial to come up with a reasonable design - and many decisions have lead to the systems we find today. I do not know how stupid Windows is, but I believe that the small decisions that made the system to look like it looks today may have been, individually, all be very reasonable. That the end looks so unreasonable is just because some people are more used to it than others.



Thomas Richter
Germany
(MX-Board Owner)
Posts 1425
09 May 2012 19:01


Wojtek P wrote:

  AmigaOS is not designed for MMU machine.
 
  And ANY OS that would require doing everything by taking slow syscalls, process isolation etc. will not be able to go so fast and efficient with graphics, sound and realtime behaviour as Amiga with it's software and HAVE TO make abstraction layers.
 
  That's simple.
 

  That's simply wrong, you want to say. Look, it's ok to have no clue, acceptable. But I neither consider my Laptop here slow nor "non-realtime". It is quite a bit faster and quite as reactive as the Amiga, so you don't even have a point.
 
  If you have no clue - why not research more before talking?
 
 
Wojtek P wrote:

  To make life easier. Nobody require you to use all of them, and rarely all are used.
 
  All make sense. And if you with OS with task separation, memory management and lots of well done modern features then just use FreeBSD on modern PC etc..
 

 
  There is a difference between "making sense", and being "well designed". They "make sense" from a historic perspective of a system that got extended time after time. From a full design perspective, they do not make sense.
 
  Again, I'm really not a defender of Windows, but the win API has *one* system call for that that allows you to wait on generic objects (windows handles), including threads and processes to my knowledge (but I might be wrong), and semaphores, and mutexes, and.... Yes, it all does make sense.
 

Thomas Richter
Germany
(MX-Board Owner)
Posts 1425
09 May 2012 19:05


Joe M wrote:

  Natami programmers must learn how to write clean, fast and stable code, otherwise the whole point of the machine is gone. To bring bad programming practices from PC to Natami is not an option. The Natami will not be fast enough to tolerate slow and badly written code IMHO.

Where do you find such programmers? And more so, where do you find users that appreciate that? (-;


SID Hervé
France

Posts 663
09 May 2012 20:17


About the job of the kernel, my impression is that the answers are somewhat evasive.

I think that the kernel manages the hardware and the OS manages the user. This is both basic and simplistic so subject to controversy.

Second point of disagreement: Zero risk does not exist. Boot speed should not be opposed to the safety or solidity. If the last two are defeated, a very short startup time is required for some uses.

About the Amiga and its propensity to self reset, I think its boot speed is not a luxury. This is a very nice perfomance for an old hardware.

NB: currently, I use DEBIAN.

Thomas Richter wrote:

And more so, where do you find users that appreciate that? (-;

Here! I appreciate it. I always appreciate your work on the MMU, and your tool COP. Excellent contribution!

Matt Hey
USA

Posts 734
10 May 2012 07:58


Thomas Richter wrote:

 
Wojtek P wrote:

    AmigaOS is not designed for MMU machine.
   
    And ANY OS that would require doing everything by taking slow syscalls, process isolation etc. will not be able to go so fast and efficient with graphics, sound and realtime behaviour as Amiga with it's software and HAVE TO make abstraction layers.
   
    That's simple.
   

    That's simply wrong, you want to say. Look, it's ok to have no clue, acceptable. But I neither consider my Laptop here slow nor "non-realtime". It is quite a bit faster and quite as reactive as the Amiga, so you don't even have a point.
   
    If you have no clue - why not research more before talking?
 

 
  Fast and slow is relative. My Pentium M Laptop with XP is very slow (unresponsive) at times. I was unable to use the menus for over 30 seconds in OpenOffice today because the HD was being used (likely an OS update despite me turning auto updates off). It should never be slow and unresponsive with a web browser or a word processor! I think Wojtek's point is that all the modern OS features and abstraction layers take their tole on speed and responsiveness regardless of brute force CPU used. I would like the Amiga to have some of the modern features but I think it would be best to make some compromises too.
 
  A) Instead of virtual address spaces have 1 logical address space. Protect Supervisor code and memory with MMU/MPU. This saves cache flushing and complexity. The cost is decreased security/protection and virtualization? The ColdFire MMU has only 1 logical address space but still allows for virtual addresses. What do you think of the CF MMU? Possible similar MMU for Apollo? The MOVES instruction is done away with completely in the CF. Do you see any drawbacks to this? Perhaps the Apollo could reuse the encoding space eventually. Your 68060.library uses MOVES a lot. Does it actually use separate address spaces or did you use MOVES for later "enhancements"?
 
  B) Allow programs to optionally MMU write protect read only code/data with flags in the hunk structure or by (Supervisor) system call. Passing memory structures would still be shared instead of copied. This saves memory copying and excessive system calls (Supervisor mode) where speed is needed at the cost of decreased security/protection again.
 
  C) Allow the user to disable the Supervisor() exec.library function. Any OS function that needs Supervisor mode would have to trap to the OS Supervisor mode (hopefully eventually using a shadow register file and without flushing the pipeline). The existing "fast" user mode library function calls would be used most of the time and device drivers would operate in user mode (but with their code MMU protected from user mode changes). The advantage is much faster but not as secure/protected again.
 
  The AmigaOS, without a sandbox approach having it's additional overhead, will never be as secure/protected as a more modern OS. These modern features do come at a cost in the speed and responsiveness that we have come to love about the Amiga. I know I haven't addressed many of the problems or modern features (like SMP) but is there a workable compromise? I think speed and responsiveness are a major selling point for the Natami and if we can't find a compromise then we shouldn't change the way the AmigaOS works. I know compatibility would be affected but everything could be a user controlled compatibility setting. Responsiveness and user controlled fine tuning must stay, IMHO.
 

Marcel Verdaasdonk
Netherlands

Posts 3976
10 May 2012 11:28


My opinion on this matter is quite clear if it slows the system down i am not gonna support it.
However as long there is no talk about any form of TLB's i suppose i can condone it.(Translation Lookaside Buffers are evil performance killers from hell)

a MPU(Memory Protection Unit) What would be the minimum requirements?

Thomas Richter
Germany
(MX-Board Owner)
Posts 1425
10 May 2012 13:52


Matt Hey wrote:

  Fast and slow is relative. My Pentium M Laptop with XP is very slow (unresponsive) at times. I was unable to use the menus for over 30 seconds in OpenOffice today because the HD was being used (likely an OS update despite me turning auto updates off). It should never be slow and unresponsive with a web browser or a word processor! I think Wojtek's point is that all the modern OS features and abstraction layers take their tole on speed and responsiveness regardless of brute force CPU used.

What has the unresponsiveness of windows to do with the MMU and a proper Os securing its resources?

Right, exactly nothing. One thing is a low-level abstraction mechanism, the other a matter of complex software and wrapping abstraction layers around abstraction layers.

The additional cycles for any type of address lookup are nothing but a little noise in the overall timing. However, if you look a bit into *why* windows or browsers are slow on low-RAM machines, you would notice that there are many software services involved in just making a browser work. Not only a simple network stack, and the http stack. Freely scalable fonts, that will be offloaded from disk and then processed, CSS script processing, html decoding, dynamic page layout, java-script interpretation just to name a few. In other words, the amount of software you need just for plane simple browsing is quite large. *That* makes things slow, not the couple of cycles in between.

And, you may ask, do you need all the services? Yes, you do. How many webpages render correctly without CSS? How many function without javascript? How many look acceptable without scalable fonts?

The point is, we're no longer in the 1980's, and yes, this stuff costs power, but yes, you need it for a productive system. Of course you can blame the designers of html, CSS, javascript why they created such a messy spec in first place. But no matter what you complain, you won't change it. Face it, a system has to deal with that. And a 10 year old Pentium III with 128MB RAM, even fast at its time - won't.

It's not window's fault. It's not the fault of the MMU. It is simply because this is no longer the 80's, but we have 2012.

Again, if you believe that you can cure the problem by discussing the low-level functional design, you're wrong. The problem *is not* at that end. Not even a little bit.


Marcel Verdaasdonk
Netherlands

Posts 3976
10 May 2012 14:11


Thomas Richter wrote:

Matt Hey wrote:

    Fast and slow is relative. My Pentium M Laptop with XP is very slow (unresponsive) at times. I was unable to use the menus for over 30 seconds in OpenOffice today because the HD was being used (likely an OS update despite me turning auto updates off). It should never be slow and unresponsive with a web browser or a word processor! I think Wojtek's point is that all the modern OS features and abstraction layers take their tole on speed and responsiveness regardless of brute force CPU used.
 

  What has the unresponsiveness of windows to do with the MMU and a proper Os securing its resources?
 
  Right, exactly nothing. One thing is a low-level abstraction mechanism, the other a matter of complex software and wrapping abstraction layers around abstraction layers.
 
  The additional cycles for any type of address lookup are nothing but a little noise in the overall timing. However, if you look a bit into *why* windows or browsers are slow on low-RAM machines, you would notice that there are many software services involved in just making a browser work. Not only a simple network stack, and the http stack. Freely scalable fonts, that will be offloaded from disk and then processed, CSS script processing, html decoding, dynamic page layout, java-script interpretation just to name a few. In other words, the amount of software you need just for plane simple browsing is quite large. *That* makes things slow, not the couple of cycles in between.
 
  And, you may ask, do you need all the services? Yes, you do. How many webpages render correctly without CSS? How many function without javascript? How many look acceptable without scalable fonts?
 
  The point is, we're no longer in the 1980's, and yes, this stuff costs power, but yes, you need it for a productive system. Of course you can blame the designers of html, CSS, javascript why they created such a messy spec in first place. But no matter what you complain, you won't change it. Face it, a system has to deal with that. And a 10 year old Pentium III with 128MB RAM, even fast at its time - won't.
 
  It's not window's fault. It's not the fault of the MMU. It is simply because this is no longer the 80's, but we have 2012.
 
  Again, if you believe that you can cure the problem by discussing the low-level functional design, you're wrong. The problem *is not* at that end. Not even a little bit.
 

ThoR you do know that the MMU is one of the harder parts to scale just like the decoder.

I am against the TLB not because it is a bad thing I am against one because it's redundant as a system since Programers should use Relative addressing in their programs anyhow!(P.I.C. F.T.W.!!!)

Remember a Engineer is someone who is done when there is nothing else to remove from a design.(Most forget this, hence featuritis)

Thomas Richter
Germany
(MX-Board Owner)
Posts 1425
10 May 2012 15:43


Marcel Verdaasdonk wrote:

  ThoR you do know that the MMU is one of the harder parts to scale just like the decoder.

Again, I don't see your point. You argue with one thing to get something different. A responsive system is completely independent from the low-level MMU design. It doesn't matter, this is completely orthogonal. Don't use the "responsiveness" to argue for or against a specific system design because the two things are unrelated.

I care about what *should* be done, and this is a "stable system". Yes, you need some kind of memory management for that. Some kind. But don't use any high-level user experience as an argument here - it really doesn't matter.


Nixus Minimax
Germany

Posts 272
10 May 2012 15:57


Marcel Verdaasdonk wrote:
I am against [a TLB] because it's redundant as a system since Programers should use Relative addressing in their programs anyhow!

What does a TLB have to do with relative addressing?


Marcel Verdaasdonk
Netherlands

Posts 3976
10 May 2012 17:39


Nixus Minimax wrote:

Marcel Verdaasdonk wrote:
I am against [a TLB] because it's redundant as a system since Programers should use Relative addressing in their programs anyhow!

 
  What does a TLB have to do with relative addressing?
 

Relative addressing can be seen as a method of getting code to work no matter where it's placed a TLB offers virtual addresses, and thus looking at a program in memory during run time there are a few minor differences.
PIC doesn't care where it runs.
Something using the TLB could, but still shouldn't.
further passing a pointer for what the Amiga used it is VERY HARD if not impossible when a MMU is required!


Marcel Verdaasdonk
Netherlands

Posts 3976
10 May 2012 17:43


Thomas Richter wrote:

Marcel Verdaasdonk wrote:

  ThoR you do know that the MMU is one of the harder parts to scale just like the decoder.
 

  Again, I don't see your point. You argue with one thing to get something different. A responsive system is completely independent from the low-level MMU design. It doesn't matter, this is completely orthogonal. Don't use the "responsiveness" to argue for or against a specific system design because the two things are unrelated.
 
  I care about what *should* be done, and this is a "stable system". Yes, you need some kind of memory management for that. Some kind. But don't use any high-level user experience as an argument here - it really doesn't matter.

Responsive system is not my main concern about the MMU and FPU for that matter, it's more about compatibility where i stub my toes.
adding something that is compatible cost space.
adding something that isn't still cost space.
So i rather would advertise the use of EC style CPU's.
And have a stronger chipset, if you catch my drift.

Nixus Minimax
Germany

Posts 272
11 May 2012 10:18


Marcel Verdaasdonk wrote:
Relative addressing can be seen as a method of getting code to work no matter where it's placed

Yes. And? This has exactly nothing to do with what an MMU and a TLB do. Relocation is done by the dispatcher that loads code from the harddisk to RAM before execution. It doesn't matter whether your code uses relative addressing or not, the dispatcher will fix all of the fixed addressing. If you consistently use relative addressing, the dispatcher may take a millionth of a second less for doing its job. That's all.

a TLB offers virtual addresses, and thus looking at a program in memory during run time there are a few minor differences.

A TLB is for translating virtual addresses to physical addresses. Each program can use all of the addressing space in virtual addresses, it can use addresses that other programs are using, too, without any conflict because the same virtual addresses map to different physical ones. If a process needs more RAM at some point in time, additional address ranges can be assigned to it that seem to be contiguous with the address ranges already assigned to the program. Nonetheless, this additional RAM can be at any physical address. You can also manage more virtual RAM than is physically available and use a swap file. You can detect and prohibit accesses outside the scope of a program.

This is what MMUs and TLBs are for.

further passing a pointer for what the Amiga used it is VERY HARD if not impossible when a MMU is required!

Bullshit. Why should it be so difficult to set up an OS function that translates a pointer from the address space of one program to that of another? After all, the OS does such translations all of the time. You want to pass a pointer to a different task? Well, you need the task handle of that task anyway. Just call something like "mapvirtual2virtual()" with your pointer and the task handle of the task you want to send the pointer to. And don't tell me the 100 processor cycles involved to do this will cause the OS to come to a grinding halt...


Børge Nøst
Norway

Posts 53
11 May 2012 14:56


Marcel Verdaasdonk wrote:

  further passing a pointer for what the Amiga used it is VERY HARD if not impossible when a MMU is required!

I'm not sure what you mean by "required", but have you taken a look at SASOS (Single Address Space Operating System)? EXTERNAL LINK 
There was a bit of academic interest in these in the 90s when 64bit address spaces became available and some started thinking what to do with all that space. Not having overlapping virtual addresses was one of those. Which again leads to thinking of sharing buffers, pointers etc.
Sounds familiar?

What I don't like about many of the SASOSes is that they rely on software constructs to secure behaviour and operation. Hence my interest in mmu internals that do not require flushing of every mapping when switching processes or modes.


Megol .

Posts 677
11 May 2012 17:15


Børge Nøst wrote:

Marcel Verdaasdonk wrote:

  further passing a pointer for what the Amiga used it is VERY HARD if not impossible when a MMU is required!

  I'm not sure what you mean by "required", but have you taken a look at SASOS (Single Address Space Operating System)? EXTERNAL LINK 
  There was a bit of academic interest in these in the 90s when 64bit address spaces became available and some started thinking what to do with all that space. Not having overlapping virtual addresses was one of those. Which again leads to thinking of sharing buffers, pointers etc.
  Sounds familiar?
 
  What I don't like about many of the SASOSes is that they rely on software constructs to secure behaviour and operation. Hence my interest in mmu internals that do not require flushing of every mapping when switching processes or modes.

Well Intel provides what you want already: address space identifiers per TLB entry. Something MIPS and others have had for ages...

Pawel K.
Poland

Posts 53
11 May 2012 17:27


@Thierry Atheist
if there were absolutely no progress in computer hardware then probably software would be more optimized. At the same time it would still be slower than 3-300MB bloated programs that are used today on todays hardware!

BTW. most programs don't even need any form of installation so you could just grab folder with application and run it directly. If you have problems with it then you are probably doing it wrong...



Marcel Verdaasdonk
Netherlands

Posts 3976
11 May 2012 17:59


Nixus Minimax wrote:

Marcel Verdaasdonk wrote:
a TLB offers virtual addresses, and thus looking at a program in memory during run time there are a few minor differences.

 
  A TLB is for translating virtual addresses to physical addresses. Each program can use all of the addressing space in virtual addresses, it can use addresses that other programs are using, too, without any conflict because the same virtual addresses map to different physical ones. If a process needs more RAM at some point in time, additional address ranges can be assigned to it that seem to be contiguous with the address ranges already assigned to the program. Nonetheless, this additional RAM can be at any physical address. You can also manage more virtual RAM than is physically available and use a swap file. You can detect and prohibit accesses outside the scope of a program.
 
  This is what MMUs and TLBs are for.

Odd can you tell that to the Microsoft programmers since they use the TLB to trick a program to think it has a continues 2GB of RAM space to use (32bit programs PAE disabled).
Of course this only gets funny when your system runs out of physical Memory. ;)

posts 70page  1 2 3 4