Deutsch   English   Français   Italiano  
<vg97fi$pmi$1@reader1.panix.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder2.eternal-september.org!panix!.POSTED.spitfire.i.gajendra.net!not-for-mail
From: cross@spitfire.i.gajendra.net (Dan Cross)
Newsgroups: comp.os.vms
Subject: Re: x86S Specification
Date: Mon, 4 Nov 2024 01:19:46 -0000 (UTC)
Organization: PANIX Public Access Internet and UNIX, NYC
Message-ID: <vg97fi$pmi$1@reader1.panix.com>
References: <ves555$2uh6n$1@dont-email.me> <vg80uo$d0cf$1@dont-email.me> <8e6dec20-d4b8-7301-30f0-8d92eb8e79cc@vmssoftware.com> <vg8dk0$fdee$1@dont-email.me>
Injection-Date: Mon, 4 Nov 2024 01:19:46 -0000 (UTC)
Injection-Info: reader1.panix.com; posting-host="spitfire.i.gajendra.net:166.84.136.80";
	logging-data="26322"; mail-complaints-to="abuse@panix.com"
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: cross@spitfire.i.gajendra.net (Dan Cross)
Bytes: 2829
Lines: 50

In article <vg8dk0$fdee$1@dont-email.me>,
Arne Vajhøj  <arne@vajhoej.dk> wrote:
>On 11/3/2024 11:38 AM, Camiel Vanderhoeven wrote:
>> Arne Vajhøj wrote:
>>> On 11/3/2024 9:06 AM, Camiel Vanderhoeven wrote:
>>>> Arne Vajhøj wrote:
>>>>> x86-64 in long mode only support 2 modes in PTE's, so
>>>>> VMS x86-64 is a hardware 2 mode OS 4 mode OS - U in ring 3,
>>>>> S, E and K in ring 0.
>>>>
>>>> Not exactly.
>>>>
>>>> Ring 3 is used for Exec, Super, and User
>>>>
>>>> Ring 0 is used for kernel and for transitions between modes (SWIS)
>>>>
>>>> Running Exec and Super in ring 0 would blow away the separation 
>>>> (which, I might add, is there more for stability than for security, 
>>>> before I unintentionally re-start that debate)
>>>
>>> You are more afraid that DCL or RMS would step on VMS than
>>> applications would step on DCL or RMS?
>> 
>> No, certainly not. That is why we have a separate set of page tables for 
>> each mode. For instance, a page that has kernel write / exec read 
>> protections is represented by the following PTEs in these 4 sets of page 
>> tables:
>> 
>> kernel mode: S(upervisor) W(riteable)
>> exec mode: U(ser) R(eadable)
>> super mode: not present
>> user mode: not present
>
>So if U code tries to access some data structures requiring
>S or E to access, then at the low level it does not
>fail for lack of access but it fails for not existing for that mode
>(at the higher level it may be translated to a more traditional access
>violation)?

In the specific example given by Camiel, yes, this would cause a
fault, which would load the faulting address into %cr2 and force
a trap into the kernel, which could inspect the faulting address
and handle accordingly.

More generally, it depends on the type of access; some data may
be writable writeable in one mode, but only readable in another;
a read access would succeed, a write would fault.

	- Dan C.