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.