home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.os.development      Operating system development chatter      4,255 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 3,593 of 4,255   
   Dan Cross to james.harris.1@gmail.com   
   Re: paging makes OS to reboot infinitely   
   07 Jan 23 14:51:36   
   
   From: cross@spitfire.i.gajendra.net   
      
   In article ,   
   James Harris   wrote:   
   >On 15/12/2022 01:12, Dan Cross wrote:   
   >> In article ,   
   >> James Harris   wrote:   
   >   
   >...   
   >   
   >>> The Pentium Architecture and Programming Manual, Order Number 241430 says:   
   >>>   
   >>> "The 32-bit Intel architectures have different requirements for enabling   
   >>> paging and switching to protected mode. The Intel386 processor requires   
   >>> following steps 1 [jump] or 2 [identify mapping] above. The Intel486   
   >>> processor requires following both steps 1 and 2 above. The Pentium   
   >>> processor requires only step 2 but for upwards and downwards code   
   >>> compatibility with the Intel386 and Intel486 processors, it is   
   >>> recommended both steps 1 and 2 be taken."   
   >>   
   >> So now we're down to compatiblity with processors that are a   
   >> quarter century obsolete. :-) Seriously, on a modern x86   
   >> processor, you don't need the jmp after turning on paging.  It   
   >> won't hurt anything should someone try and run this on an   
   >> actual 386 or 486, but it is no longer required.   
   >   
   >I would agree with you that it's been many years since the 386 and 486   
   >were available new from Intel ... but they are far from obsolete. Even   
   >now they are bought and sold second hand. Those who buy them presumably   
   >do so not to have them sit on a shelf but run software on them. YMMV, of   
   >course, but I cannot see an advantage in avoiding compatibility with   
   >such older processors, especially as the JMP instruction is so easy to   
   >include.   
      
   As I've said repeatedly in this thread, I don't care if someone   
   wants to `jump 1f; 1:` in their code after enabling paging if   
   they want to be explicitly compatible with the 386/486, but this   
   justification is a stretch.   
      
   Is there utility in old 386 and 486 hardware?  Perhaps.  But   
   there is a cost, too: compared to modern hardware, those systems   
   are power-hungry, physically large and slow.  Even Linux removed   
   support for the 386 back in 2012.  VAXen are still bought and   
   sold on the secondary market and still used in production, too,   
   but those machines really are obsolete.  As of 2003, Melbourne's   
   commuter train control system ran on PDP-11s, which are beyond   
   obsolete.  Being used and/or sold on the secondary market is   
   orthogonal to whether a machine is obsolete or not.  Should   
   modern software constrain itself to archaic dialects of C, for   
   example, because someone _may_ still be using PDP-11s?  No.   
      
   Furthermore, if you're going to make use of a feature that never   
   existed on one of those older processors, such as an instruction   
   introduced in newer microarchs, or enabling long mode, then   
   going out of one's way for compatibility with behavior of a   
   processor that doesn't support those featuers is strictly   
   unnecessary.   
      
   More importantly, executing a jmp, or not, after setting the PG   
   bit in cr0 had nothing to do with the OP's actual problem.  By   
   fixating on this, most people missed the actual problem.   
      
           - Dan C.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca