Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

There are two kinds of egotists: 1) Those who admit it 2) The rest of us


devel / comp.arch / Re: Execute and IBM history, not Sequencer vs microcode

SubjectAuthor
* Sequencer vs microcodeMarcus
+* Re: Sequencer vs microcodewinden
|`* Re: Sequencer vs microcodeMitchAlsup
| `- Re: Sequencer vs microcodeMitchAlsup
`* Re: Sequencer vs microcodeMitchAlsup
 `* Re: Sequencer vs microcodeMarcus
  `* Re: Sequencer vs microcodeBGB
   `* Re: Sequencer vs microcodeMitchAlsup
    +* Re: Sequencer vs microcoderobf...@gmail.com
    |+* Re: Sequencer vs microcodeMarcus
    ||`* Re: Sequencer vs microcoderobf...@gmail.com
    || `* Re: Sequencer vs microcodeMitchAlsup
    ||  `* Re: Sequencer vs microcodeEricP
    ||   +- Re: Sequencer vs microcodeAnton Ertl
    ||   `* Re: Sequencer vs microcodeMitchAlsup
    ||    +* Re: Sequencer vs microcoderobf...@gmail.com
    ||    |+- Re: Sequencer vs microcodeStephen Fuld
    ||    |`* Re: Sequencer vs microcodeMitchAlsup
    ||    | `* Re: Sequencer vs microcoderobf...@gmail.com
    ||    |  `* Re: Sequencer vs microcodeStefan Monnier
    ||    |   +* Re: Sequencer vs microcodeThomas Koenig
    ||    |   |`* Re: Sequencer vs microcoderobf...@gmail.com
    ||    |   | `- Re: Sequencer vs microcodeAnton Ertl
    ||    |   +* Re: Sequencer vs microcodeIvan Godard
    ||    |   |`* Re: Sequencer vs microcodeStefan Monnier
    ||    |   | `* Re: Sequencer vs microcodeStephen Fuld
    ||    |   |  `* Re: Sequencer vs microcodeStefan Monnier
    ||    |   |   +* Re: Sequencer vs microcodeMitchAlsup
    ||    |   |   |+* Re: Sequencer vs microcoderobf...@gmail.com
    ||    |   |   ||+- Re: Sequencer vs microcoderobf...@gmail.com
    ||    |   |   ||+* Re: Sequencer vs microcodeStefan Monnier
    ||    |   |   |||`- Re: Sequencer vs microcodeEricP
    ||    |   |   ||+* Re: Sequencer vs microcodeEricP
    ||    |   |   |||`* Re: Sequencer vs microcodeStefan Monnier
    ||    |   |   ||| `* Re: Sequencer vs microcodeEricP
    ||    |   |   |||  `* Re: Sequencer vs microcodeStefan Monnier
    ||    |   |   |||   `- Re: Sequencer vs microcodeEricP
    ||    |   |   ||+- Exec (was: Sequencer vs microcode)Anton Ertl
    ||    |   |   ||`- Re: Sequencer vs microcodeMitchAlsup
    ||    |   |   |`* Re: Sequencer vs microcodeAnton Ertl
    ||    |   |   | `* Re: Sequencer vs microcoderobf...@gmail.com
    ||    |   |   |  `- Re: Sequencer vs microcodeMitchAlsup
    ||    |   |   +- Re: Sequencer vs microcodeThomas Koenig
    ||    |   |   `* Re: Sequencer vs microcodeMarcus
    ||    |   |    `* Re: Sequencer vs microcoderobf...@gmail.com
    ||    |   |     +* Exec (was: Sequencer vs microcode)Anton Ertl
    ||    |   |     |`* Re: ExecStefan Monnier
    ||    |   |     | `* Re: ExecAnton Ertl
    ||    |   |     |  `* Re: Execrobf...@gmail.com
    ||    |   |     |   `* Re: ExecMitchAlsup
    ||    |   |     |    `* Re: ExecStefan Monnier
    ||    |   |     |     +* Re: ExecMitchAlsup
    ||    |   |     |     |+* Re: Execrobf...@gmail.com
    ||    |   |     |     ||`- Re: ExecMitchAlsup
    ||    |   |     |     |`- Re: ExecStefan Monnier
    ||    |   |     |     `* Re: ExecAnton Ertl
    ||    |   |     |      `- Re: ExecStefan Monnier
    ||    |   |     `- Re: Sequencer vs microcodeStefan Monnier
    ||    |   `* Re: Sequencer vs microcodeQuadibloc
    ||    |    +* Re: Sequencer vs microcodeQuadibloc
    ||    |    |+- Re: Sequencer vs microcodeQuadibloc
    ||    |    |+* Re: Sequencer vs microcodeMitchAlsup
    ||    |    ||`- Re: EX instructon, Sequencer vs microcodeJohn Levine
    ||    |    |+* Re: Sequencer vs microcodeStephen Fuld
    ||    |    ||+- Re: Sequencer vs microcodeQuadibloc
    ||    |    ||`* Re: Execute, not Sequencer vs microcodeJohn Levine
    ||    |    || `* Re: Execute, not Sequencer vs microcodeMitchAlsup
    ||    |    ||  `* Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||   `* Re: Execute, not Sequencer vs microcodeJohn Levine
    ||    |    ||    `* Re: Execute, not Sequencer vs microcodeMitchAlsup
    ||    |    ||     +* Re: Execute, not Sequencer vs microcodeStephen Fuld
    ||    |    ||     |`* Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||     | `* Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||     |  `* Re: Execute, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |   +* Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||     |   |`- Re: transistors, was Execute, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |   +* Re: Execute, not Sequencer vs microcodeMitchAlsup
    ||    |    ||     |   |`* Re: Execute, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |   | +* Re: Execute, not Sequencer vs microcodeThomas Koenig
    ||    |    ||     |   | |+* Re: Execute, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |   | ||`- Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||     |   | |`* Re: Execute, not Sequencer vs microcodeIvan Godard
    ||    |    ||     |   | | +* Re: Execute, not Sequencer vs microcodeStephen Fuld
    ||    |    ||     |   | | |`* Re: Execute, not Sequencer vs microcodeIvan Godard
    ||    |    ||     |   | | | `* Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||     |   | | |  `- Re: Execute, not Sequencer vs microcodeThomas Koenig
    ||    |    ||     |   | | `* Re: 7094, was Execute, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |   | |  `- Re: 7094, was Execute, not Sequencer vs microcodeBrian G. Lucas
    ||    |    ||     |   | `- Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||     |   `* Re: Execute, not Sequencer vs microcodeStephen Fuld
    ||    |    ||     |    `* Re: Execute, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |     +* Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||     |     |+* Re: Execute, not Sequencer vs microcodeThomas Koenig
    ||    |    ||     |     ||+- Re: Execute, not Sequencer vs microcodeMitchAlsup
    ||    |    ||     |     ||`* Re: Execute, not Sequencer vs microcodeQuadibloc
    ||    |    ||     |     || `- Re: Execute, not Sequencer vs microcodeIvan Godard
    ||    |    ||     |     |`* Re: Execute and IBM history, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |     | `* Re: Execute and IBM history, not Sequencer vs microcodeStephen Fuld
    ||    |    ||     |     |  +* Re: Execute and IBM history, not Sequencer vs microcodeAnne & Lynn Wheeler
    ||    |    ||     |     |  |+* Re: Execute and IBM history, not Sequencer vs microcodeStephen Fuld
    ||    |    ||     |     |  ||`- Re: Execute and IBM history, not Sequencer vs microcodeAnne & Lynn Wheeler
    ||    |    ||     |     |  |`* Re: Execute and IBM history, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |     |  `* Re: Execute and IBM history, not Sequencer vs microcodeJohn Levine
    ||    |    ||     |     `* Re: Execute, not Sequencer vs microcodeStephen Fuld
    ||    |    ||     `- Re: Execute, not Sequencer vs microcodeIvan Godard
    ||    |    |`- Re: Sequencer vs microcodeantispam
    ||    |    `* Re: Sequencer vs microcodeStefan Monnier
    ||    `* Re: Sequencer vs microcodeKent Dickey
    |`- Re: Sequencer vs microcodeMitchAlsup
    `- Re: Sequencer vs microcodeBGB

Pages:1234567
Re: Execute and IBM history, not Sequencer vs microcode

<sc8hgb$ptg$1@gal.iecc.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18540&group=comp.arch#18540

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.cmpublishers.com!adore2!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: joh...@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: Execute and IBM history, not Sequencer vs microcode
Date: Fri, 9 Jul 2021 03:58:03 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <sc8hgb$ptg$1@gal.iecc.com>
References: <sb1abl$ps8$1@dont-email.me> <sc4uj6$2t6l$1@gal.iecc.com> <sc5acm$ub4$1@dont-email.me> <87tul4y8nd.fsf@localhost>
Injection-Date: Fri, 9 Jul 2021 03:58:03 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="26544"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <sb1abl$ps8$1@dont-email.me> <sc4uj6$2t6l$1@gal.iecc.com> <sc5acm$ub4$1@dont-email.me> <87tul4y8nd.fsf@localhost>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Fri, 9 Jul 2021 03:58 UTC

According to Anne & Lynn Wheeler <lynn@garlic.com>:
>TSS/360 (official virtual memory operating system for 360/67) had solved
>that problem by moving the RLD equivalents to a separate system table
>... and program invokation just required prebuilding that table ... and
>then mapping virtual memory to program image on disk (w/o preloading)
>and invoking the program. This also had the advantage in that several
>application address spaces could have concurrent shared image of the
>same program ... concurrently (even located at different virtual
>addresses, in different address spaces).

Sort of. On TSS there were CSECTs which were position-independent read
only reentrant code and PSECTs (prototype sections) which were
writable everything else. Each routine had one of each, the assembler
and loader and I guess linker had V type address constants for the
CSECT and R type adcons for the PSECT, and the calling sequence was
more complicated than the OS one, with the caller storing the callee's
R pointer in the save area for the callee to retrieve so it could find
its data.

It worked but it wasn't fast and I expect it made the paging problems even worse.

These days Unix and linux systems do more or less the same thing but they limit
the overhead by combining all of the writable data for an entire library into
one place and loading it immediately after the code so intructions can use
relative offsets to get to the data.

--
Regards,
John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
Please consider the environment before reading this e-mail. https://jl.ly

Re: Execute and IBM history, not Sequencer vs microcode

<87o8bbdu41.fsf@localhost>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18563&group=comp.arch#18563

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: lyn...@garlic.com (Anne & Lynn Wheeler)
Newsgroups: comp.arch
Subject: Re: Execute and IBM history, not Sequencer vs microcode
Date: Fri, 09 Jul 2021 12:01:50 -1000
Organization: Wheeler&Wheeler
Lines: 34
Message-ID: <87o8bbdu41.fsf@localhost>
References: <sb1abl$ps8$1@dont-email.me>
<a25e1dc8-29c1-46c8-aa7e-ee1f9661864fn@googlegroups.com>
<sc4uj6$2t6l$1@gal.iecc.com> <sc5acm$ub4$1@dont-email.me>
<sc8for$ll5$1@gal.iecc.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="ceacb98e7b2b193830316d45284a78f1";
logging-data="28156"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+SReIfsrPL4qUkBPMGqFkW6J/j9mZhoTs="
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:GLBZZr+qcAw+CeH4LXb4vTCOm/4=
sha1:AgFIGntKOVyNO/ibrGluum6PR+I=
 by: Anne & Lynn Whee - Fri, 9 Jul 2021 22:01 UTC

John Levine <johnl@taugh.com> writes:
> The IBMSJ article on the 360 architecture says that the point of base+displacement
> addressing was to made the addresses in the instructions small enough to let code
> fit on small systems (remember that DOS originally ran in 16K) while enabling linear
> addressing in large systems. I think they also wrongly believed that forcing all
> addresses to use base registers would make hardware relocation unnecessary, which was
> of course completely wrong.
>
> I gather that the code in APL\360 was sufficiently disciplined that it
> could swap out a user's data block and swap it back in somewhere else
> and fix up the data base register and it would work, but that was
> quite unusual.

APL\360 was all interpreted ... so didn't actually execute ... it was
code in the fixed supervisor that executed. Typical APL/360 had two
16kbyte swap regions and could swap out and swap back into either swap
regions ... and then apl\360 just had register(s) that pointed to the
specific workspace region.

Note APL\360 did no storage allocation on every assignment ... and when
it exhaused available storage (in 16kbyte workspace region), it would
garbage collection and condense all used space to contiguous area. When
science center ported it to CP67/CMS for CMS\APL wih larrge virtual
memory (demand paged) workspaces ... it would cause enormous amount of
page thrashing ... guarenteed to repeatedly & quickly touch every
available virtual memory page ... and then garbage collect and start
again ... even relatively small program with lots of assignments would
repeatedly traverse all available pages in the virtual address space.
This had to be completely reworked for demand page large virtual memory
workspaces.

--
virtualization experience starting Jan1968, online at home since Mar1970

Re: Execute and IBM history, not Sequencer vs microcode

<87k0lzdsvf.fsf@localhost>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18565&group=comp.arch#18565

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: lyn...@garlic.com (Anne & Lynn Wheeler)
Newsgroups: comp.arch
Subject: Re: Execute and IBM history, not Sequencer vs microcode
Date: Fri, 09 Jul 2021 12:28:36 -1000
Organization: Wheeler&Wheeler
Lines: 13
Message-ID: <87k0lzdsvf.fsf@localhost>
References: <sb1abl$ps8$1@dont-email.me> <sc2l6p$qet$1@dont-email.me>
<sc32r4$mtp$1@gal.iecc.com>
<a25e1dc8-29c1-46c8-aa7e-ee1f9661864fn@googlegroups.com>
<sc4uj6$2t6l$1@gal.iecc.com> <sc5acm$ub4$1@dont-email.me>
<87tul4y8nd.fsf@localhost> <sc845q$2pd$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="ceacb98e7b2b193830316d45284a78f1";
logging-data="16046"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+/VkpLP8nQErxFv2BDi3U9eDV+NuE06nE="
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:rR7vdfWBjpiUvdE4uaCuDmIM/RM=
sha1:dSNOWnR7+e1p+D6q4+vdARBjFpw=
 by: Anne & Lynn Whee - Fri, 9 Jul 2021 22:28 UTC

this has discussion of assembler generating RLD (ESD, TXT, etc) cards
http://www.bitsavers.org/pdf/ibm/370/asm/SC26-3759-1_OS_Assembler_H_Programmers_Guide_Jun72.pdf

this has discussion of linkedit processing RLD (ESD, TXT, etc) card
http://www.bitsavers.org/pdf/ibm/360/os/R21.0_Mar72/GC28-6538-9_OS_Linkage_Editor_and_Loader_Release_21_Jan72.pdf

i.e. before starting execution, link editor fiddles all the information
to force address constants to their "real" (and then later virtual)
address corresponding to the location that it has been loaded

--
virtualization experience starting Jan1968, online at home since Mar1970

Re: Execute and IBM history, not Sequencer vs microcode

<87fswndsbi.fsf@localhost>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18566&group=comp.arch#18566

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: lyn...@garlic.com (Anne & Lynn Wheeler)
Newsgroups: comp.arch
Subject: Re: Execute and IBM history, not Sequencer vs microcode
Date: Fri, 09 Jul 2021 12:40:33 -1000
Organization: Wheeler&Wheeler
Lines: 27
Message-ID: <87fswndsbi.fsf@localhost>
References: <sb1abl$ps8$1@dont-email.me> <sc4uj6$2t6l$1@gal.iecc.com>
<sc5acm$ub4$1@dont-email.me> <87tul4y8nd.fsf@localhost>
<sc8hgb$ptg$1@gal.iecc.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="ceacb98e7b2b193830316d45284a78f1";
logging-data="16046"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19JrrA64yaBEj6JtgGHuUouoIHURoi9iNo="
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:1HTIlMDmCwdaMAymgcaYw2q6w/8=
sha1:wn+6N+lcUTLTc6vVwxCFZT1kDmg=
 by: Anne & Lynn Whee - Fri, 9 Jul 2021 22:40 UTC

John Levine <johnl@taugh.com> writes:
> These days Unix and linux systems do more or less the same thing but they limit
> the overhead by combining all of the writable data for an entire library into
> one place and loading it immediately after the code so intructions can use
> relative offsets to get to the data.

Some of the MIT CTSS people went to the 5th flr and Project MAC to do
MULTICS and others went to science center on the 4th flr and did
cp40/cms ... which morphs into cp67/cms when 360/67 standard with
virtual memory becomes available.

When I joined the science center, I figured I could do anything the
multics people were doing, so wrote a page-mapped filesystem for CMS and
provided support for location independent execution (even having r/o
sharing of same executable image at different virtual addresses in
different virtual address spaces).

To actually support R/O shared (segment) location independence (since
the underlying stuff borrowed from os/360 didn't), I had to manually
rewrite application inline code to support sharing and use relative
offsets (rather than RLD processing, which would have also modified
storage violating R/O shared) ... managed to do it for major, high-use
applications ... editors, shell/execs, various other applications and
utilities.

--
virtualization experience starting Jan1968, online at home since Mar1970

Re: Execute and IBM history, not Sequencer vs microcode

<610f4443-a4a6-4697-9cd6-545ada865ec8n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18567&group=comp.arch#18567

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a0c:bf4b:: with SMTP id b11mr39542039qvj.11.1625871035168;
Fri, 09 Jul 2021 15:50:35 -0700 (PDT)
X-Received: by 2002:a9d:6b0b:: with SMTP id g11mr18425732otp.240.1625871034984;
Fri, 09 Jul 2021 15:50:34 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 9 Jul 2021 15:50:34 -0700 (PDT)
In-Reply-To: <sc8for$ll5$1@gal.iecc.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:79cd:420:2b23:4d8d;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:79cd:420:2b23:4d8d
References: <sb1abl$ps8$1@dont-email.me> <a25e1dc8-29c1-46c8-aa7e-ee1f9661864fn@googlegroups.com>
<sc4uj6$2t6l$1@gal.iecc.com> <sc5acm$ub4$1@dont-email.me> <sc8for$ll5$1@gal.iecc.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <610f4443-a4a6-4697-9cd6-545ada865ec8n@googlegroups.com>
Subject: Re: Execute and IBM history, not Sequencer vs microcode
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Fri, 09 Jul 2021 22:50:35 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Fri, 9 Jul 2021 22:50 UTC

On Thursday, July 8, 2021 at 9:28:29 PM UTC-6, John Levine wrote:
> I think they also wrongly believed that forcing all
> addresses to use base registers would make hardware relocation unnecessary, which was
> of course completely wrong.

True, but it _did_ make hardware relocation faster, since now only the addresses used
to load the base registers had to be adjusted, not every single address in every instruction.

John Savard

Re: Execute and IBM history, not Sequencer vs microcode

<scb78i$30ln$1@gal.iecc.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=18576&group=comp.arch#18576

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.cmpublishers.com!adore2!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: joh...@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: Execute and IBM history, not Sequencer vs microcode
Date: Sat, 10 Jul 2021 04:21:38 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <scb78i$30ln$1@gal.iecc.com>
References: <sb1abl$ps8$1@dont-email.me> <sc5acm$ub4$1@dont-email.me> <sc8for$ll5$1@gal.iecc.com> <610f4443-a4a6-4697-9cd6-545ada865ec8n@googlegroups.com>
Injection-Date: Sat, 10 Jul 2021 04:21:38 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="98999"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <sb1abl$ps8$1@dont-email.me> <sc5acm$ub4$1@dont-email.me> <sc8for$ll5$1@gal.iecc.com> <610f4443-a4a6-4697-9cd6-545ada865ec8n@googlegroups.com>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Sat, 10 Jul 2021 04:21 UTC

According to Quadibloc <jsavard@ecn.ab.ca>:
>On Thursday, July 8, 2021 at 9:28:29 PM UTC-6, John Levine wrote:
>> I think they also wrongly believed that forcing all
>> addresses to use base registers would make hardware relocation unnecessary, which was
>> of course completely wrong.
>
>True, but it _did_ make hardware relocation faster, since now only the addresses used
>to load the base registers had to be adjusted, not every single address in every instruction.

I presume you mean relocation at program fetch time. I suppose so,
although if you look at the code from Fortran G, it generated an awful
lot of address pointers in memory that had to be relocated.

Later on they realized that relative addresses in branch instructions
are what you want. A 16 bit signed offset, shifted one bit since
instructions have to be halfword aligned, covers 64K in either
direction with no base register and that's a pretty big routine.

--
Regards,
John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
Please consider the environment before reading this e-mail. https://jl.ly

Re: Sequencer vs microcode

<sduvab$2t7$1@z-news.wcss.wroc.pl>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19318&group=comp.arch#19318

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!newsfeed.pionier.net.pl!pwr.wroc.pl!news.wcss.wroc.pl!not-for-mail
From: antis...@math.uni.wroc.pl
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Thu, 29 Jul 2021 19:24:59 +0000 (UTC)
Organization: Politechnika Wroclawska
Lines: 86
Message-ID: <sduvab$2t7$1@z-news.wcss.wroc.pl>
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
NNTP-Posting-Host: hera.math.uni.wroc.pl
X-Trace: z-news.wcss.wroc.pl 1627586699 2983 156.17.86.1 (29 Jul 2021 19:24:59 GMT)
X-Complaints-To: abuse@news.pwr.wroc.pl
NNTP-Posting-Date: Thu, 29 Jul 2021 19:24:59 +0000 (UTC)
Cancel-Lock: sha1:h53MePvCAmOmyyUPpIdQ8Y0pqik=
User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-10-amd64 (x86_64))
 by: antis...@math.uni.wroc.pl - Thu, 29 Jul 2021 19:24 UTC

MitchAlsup <MitchAlsup@aol.com> wrote:
> On Thursday, July 1, 2021 at 8:39:10 PM UTC-5, Kent Dickey wrote:
> > In article <8b1baea3-a802-4341...@googlegroups.com>,
> > MitchAlsup <Mitch...@aol.com> wrote:
> > >On Saturday, June 26, 2021 at 10:54:53 AM UTC-5, EricP wrote:
> > >> MitchAlsup wrote:
> > >> > <
> > >> > To show the extent of my disfavor for EXC, in My 66000 one cannot
> > >execute code in a page
> > >> > that is writable !
> > >> That forces JIT'ers and self modifiers to make a trip through
> > >> the OS to change the page protection from RW to RE.
> > ><
> > >No, it requires the JIT to run in a different address mapping than the
> > >application
> > >using the JITted code. Since this transition only costs 12 cycles plus cache
> > >effects, it is well worth while.
> > ><
> > >> Not that it is a bad thing as it does allow the OS to clean up model
> > >> specfic things like caches and prefetch buffers across multiple SMP cores.
> >
> > Can you explain why you're doing this? What does having the JIT modification
> > be in a different address space help in the hardware? I'm not seeing how
> > this really helps, other than to make certain JIT strategies harder.
> <
> Protection::
> The executor of the code cannot modify the code (no write permission).
> The JIT is not in the address space of the "application"
> The "application" cannot modify the JITer or even see it
> The "application" can only see the ASCII code given to the JIT.
> The "application" can only execute from JIT cache.
> Thus:: JIT smells a lot more like a dynamic library than current.

Hmm, consider language implementation as follows:

- functions posses modifiable metadata, including pointer to
actual code. Currently code directly follows metadata,
but in principle could be allocated in separate area.
- there is separate control stack (used for local variables
and return address) and data stack (mostly used for argument
passing). All arguments are passed on data stack.
Similarly return values are on data stack.
- Given a function f and values v1,...,vn one can create a new
function g which first pushes v1, ...,vn onto data stack
and then calls f. Currently this is accomplished by
creating header + small machine code snippet to do argument pushing,
but could be modifed to have code in separate area.
After such modification it would be possible to create
new function as pure data manipulation (re-using machine
code from other function).
- Given functions f and g one can create new function h which
has effect of calling f first and when f returns calling
g (if f needs arguments it takes them from data stack...).
- there is compiler which at runtime can compile new code

AFAICS, once attacker can modify data area, he has complete
control of the application:
1) He can create new composed function which first calls
compiler to compile his code and then calls it ("apply"
is available as a built-in function)
2) He can modify one of function pointers so that his
function gets called instead of one of functions belonging
to the application

In other words, separating code and data gives really no
extra protection. Do you think that this is bad language?

BTW1: Code can be garbage collected. Garbage collector may
move code, but otherwise keeps code as is. To account
for changed location garbage collector adjusts metadata.

BTW2: I looked at this issue because "security" folks want
to disable "writable and executable" memory. If they
persist it is likely that developement effort will go
into pointless excercise of puting code in separate area,
which will mean more indirection via function pointers,
slightly larger and slower code, but as explaned no
extra security. There was also proposal to switch
to interpreted bytecode. Since from point of view
of CPU bytecode is data, such program is considered
"secure". But overwritng bytecode can have as bad
effect as overwriting machine code, so no real
gain in security.

--
Waldek Hebisch

Re: Sequencer vs microcode

<sduvrj$2t7$2@z-news.wcss.wroc.pl>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19319&group=comp.arch#19319

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!3.eu.feeder.erje.net!1.as.feeder.erje.net!feeder.erje.net!newsfeed.pionier.net.pl!pwr.wroc.pl!news.wcss.wroc.pl!not-for-mail
From: antis...@math.uni.wroc.pl
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Thu, 29 Jul 2021 19:34:11 +0000 (UTC)
Organization: Politechnika Wroclawska
Lines: 19
Message-ID: <sduvrj$2t7$2@z-news.wcss.wroc.pl>
References: <sb1abl$ps8$1@dont-email.me> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <3b2b37a7-6168-42c0-a657-dcff23fa3e03n@googlegroups.com> <7ce8fca5-3a58-4e9a-92b4-595d0a743c57n@googlegroups.com> <e2d01fcb-2cb1-4fb4-bf0e-b08d23ead140n@googlegroups.com> <jwvv95yhy1o.fsf-monnier+comp.arch@gnu.org> <cd8707b1-0d4a-4ffe-8717-dd74f246c876n@googlegroups.com> <8fcc1aac-10c9-4507-8b78-8e5f03184930n@googlegroups.com>
NNTP-Posting-Host: hera.math.uni.wroc.pl
X-Trace: z-news.wcss.wroc.pl 1627587251 2983 156.17.86.1 (29 Jul 2021 19:34:11 GMT)
X-Complaints-To: abuse@news.pwr.wroc.pl
NNTP-Posting-Date: Thu, 29 Jul 2021 19:34:11 +0000 (UTC)
Cancel-Lock: sha1:vrcegYVDojQyfT1w21PK7LybvsI=
User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-10-amd64 (x86_64))
 by: antis...@math.uni.wroc.pl - Thu, 29 Jul 2021 19:34 UTC

Quadibloc <jsavard@ecn.ab.ca> wrote:
>
> Out of curiosity, I checked the Principles of Operation of the IBM System/360 to see
> if _it_ had an Execute instruction. It did. But it had limitations which meant that it
> could *not* be used the way the execute instruction on the SDS 930 could be used.
>
> Only bits 8 through 15 of the executed instruction could be modified.

Argument to execute is in memory, so you write instruction first, then
execute it. If you are after saving single instruction, then extra
write defeats the purpose. If you want to interpret arbitrary 360
instructions, it is probably much faster than alternatives. Anyway,
Execute was used by ASSIST to provide "safe" execution of 360 code
in the same address space as assembler. Interpreter first checked
for problematic instructions and after simple mangling passed
most to Execute (the remaing few had to be fully interpreted).

--
Waldek Hebisch

Re: Sequencer vs microcode

<ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19321&group=comp.arch#19321

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:dad:: with SMTP id h13mr7130467qvh.26.1627589277149; Thu, 29 Jul 2021 13:07:57 -0700 (PDT)
X-Received: by 2002:a9d:6f84:: with SMTP id h4mr4832235otq.240.1627589276925; Thu, 29 Jul 2021 13:07:56 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 29 Jul 2021 13:07:56 -0700 (PDT)
In-Reply-To: <sduvab$2t7$1@z-news.wcss.wroc.pl>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:4d78:fd0f:f097:e375; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:4d78:fd0f:f097:e375
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com> <sduvab$2t7$1@z-news.wcss.wroc.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
Subject: Re: Sequencer vs microcode
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Thu, 29 Jul 2021 20:07:57 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 105
 by: MitchAlsup - Thu, 29 Jul 2021 20:07 UTC

On Thursday, July 29, 2021 at 2:25:01 PM UTC-5, anti...@math.uni.wroc.pl wrote:
> MitchAlsup <Mitch...@aol.com> wrote:
> > On Thursday, July 1, 2021 at 8:39:10 PM UTC-5, Kent Dickey wrote:
> > > In article <8b1baea3-a802-4341...@googlegroups.com>,
> > > MitchAlsup <Mitch...@aol.com> wrote:
> > > >On Saturday, June 26, 2021 at 10:54:53 AM UTC-5, EricP wrote:
> > > >> MitchAlsup wrote:
> > > >> > <
> > > >> > To show the extent of my disfavor for EXC, in My 66000 one cannot
> > > >execute code in a page
> > > >> > that is writable !
> > > >> That forces JIT'ers and self modifiers to make a trip through
> > > >> the OS to change the page protection from RW to RE.
> > > ><
> > > >No, it requires the JIT to run in a different address mapping than the
> > > >application
> > > >using the JITted code. Since this transition only costs 12 cycles plus cache
> > > >effects, it is well worth while.
> > > ><
> > > >> Not that it is a bad thing as it does allow the OS to clean up model
> > > >> specfic things like caches and prefetch buffers across multiple SMP cores.
> > >
> > > Can you explain why you're doing this? What does having the JIT modification
> > > be in a different address space help in the hardware? I'm not seeing how
> > > this really helps, other than to make certain JIT strategies harder.
> > <
> > Protection::
> > The executor of the code cannot modify the code (no write permission).
> > The JIT is not in the address space of the "application"
> > The "application" cannot modify the JITer or even see it
> > The "application" can only see the ASCII code given to the JIT.
> > The "application" can only execute from JIT cache.
> > Thus:: JIT smells a lot more like a dynamic library than current.
>
> Hmm, consider language implementation as follows:
>
> - functions posses modifiable metadata, including pointer to
> actual code. Currently code directly follows metadata,
> but in principle could be allocated in separate area.
> - there is separate control stack (used for local variables
> and return address) and data stack (mostly used for argument
> passing). All arguments are passed on data stack.
> Similarly return values are on data stack.
> - Given a function f and values v1,...,vn one can create a new
> function g which first pushes v1, ...,vn onto data stack
> and then calls f. Currently this is accomplished by
> creating header + small machine code snippet to do argument pushing,
> but could be modifed to have code in separate area.
> After such modification it would be possible to create
> new function as pure data manipulation (re-using machine
> code from other function).
> - Given functions f and g one can create new function h which
> has effect of calling f first and when f returns calling
> g (if f needs arguments it takes them from data stack...).
> - there is compiler which at runtime can compile new code
>
> AFAICS, once attacker can modify data area, he has complete
> control of the application:
> 1) He can create new composed function which first calls
> compiler to compile his code and then calls it ("apply"
> is available as a built-in function)
<
Not in My 66000, it is illegal to have both write and execute
permissions simultaneously in a PTE. So, if you wrote it
you cannot execute it. Someone with higher permissions
can write it, transfer control back to you (context switch)
and then you can execute it.
<
> 2) He can modify one of function pointers so that his
> function gets called instead of one of functions belonging
> to the application
<
Yes, but the function needs to be in Execute only PTE mapping.
>
> In other words, separating code and data gives really no
> extra protection. Do you think that this is bad language?
>
> BTW1: Code can be garbage collected. Garbage collector may
> move code, but otherwise keeps code as is. To account
> for changed location garbage collector adjusts metadata.
>
> BTW2: I looked at this issue because "security" folks want
> to disable "writable and executable" memory.
<
My 66000 makes this a HW detected problem. W+X = fault.
<
< If they
> persist it is likely that developement effort will go
> into pointless excercise of puting code in separate area,
> which will mean more indirection via function pointers,
<
I see no additional pointer indirections.
<
> slightly larger and slower code, but as explaned no
> extra security. There was also proposal to switch
> to interpreted bytecode. Since from point of view
> of CPU bytecode is data, such program is considered
> "secure". But overwritng bytecode can have as bad
> effect as overwriting machine code, so no real
> gain in security.
<
Which is why I don't want anyone without special privileges
to write what can be considered code.
>
> --
> Waldek Hebisch

Re: Sequencer vs microcode

<8ceffecf-e8c2-43af-af98-f9ed9a273d73n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19325&group=comp.arch#19325

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:29cf:: with SMTP id s15mr7584139qkp.363.1627596733846; Thu, 29 Jul 2021 15:12:13 -0700 (PDT)
X-Received: by 2002:a9d:6f84:: with SMTP id h4mr5165647otq.240.1627596733612; Thu, 29 Jul 2021 15:12:13 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 29 Jul 2021 15:12:13 -0700 (PDT)
In-Reply-To: <sduvab$2t7$1@z-news.wcss.wroc.pl>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:f39c:db00:502:1a7:8e3:4239; posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:f39c:db00:502:1a7:8e3:4239
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com> <sduvab$2t7$1@z-news.wcss.wroc.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8ceffecf-e8c2-43af-af98-f9ed9a273d73n@googlegroups.com>
Subject: Re: Sequencer vs microcode
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Thu, 29 Jul 2021 22:12:13 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 53
 by: Quadibloc - Thu, 29 Jul 2021 22:12 UTC

On Thursday, July 29, 2021 at 1:25:01 PM UTC-6, anti...@math.uni.wroc.pl wrote:

> BTW2: I looked at this issue because "security" folks want
> to disable "writable and executable" memory.

> But overwritng bytecode can have as bad
> effect as overwriting machine code, so no real
> gain in security.

I think you're overlooking an important point here.

Preventing memory that is executable from also being written
does provide a real gain in security *in the usual case* where
people are running programs that have been written in assembler
or compiled to machine language at a previous time.

Of course, the linking loader or whatever reads the program off
the disk and writes it to memory has to be able to write to memory
that will later be marked for execution. But nothing else.

Bytecode, whether it is interpreted or turned into machine instructions
by JIT compilation, does indeed tell the computer to do things.

Let us accept that this case can be considered an _afterthought_;
not allowing machine code to be re-written limits the usual thing
virus writers used to do. Now, if write/execute protections force them
to fiddle with bytecode instead... well, is the fact that people can
break windows a reason not to lock your front door?

Preventing machine code from being written is assumed to prevent
the code from doing "bad things". But what if the code was doing
bad things in the first place? So write/execute protections don't
totally prevent code executing on the computer from doing malicious
stuff; the _application writer_ is also responsible for not doing bad
stuff too.

Thus, clearly, how write/execute protections can still be useful
in a world where there is bytecode and JIT compilation should now
be clear. Just as people who write applications must not put bad
stuff in their programs (and also be vigilant against _supply-chain
attacks_), people who write JavaScript interpreters or engines or
whatever you call them... need to be vigiliant so as to make their
programs *not generate code useful to malicious actors* in response
to any bytecode inputs.

That may not always be easy or even feasible, since if a program
can throw up a screen to communicate with the user, it can make
that screen look like one from the operating system (of course,
it has been done to sandbox a system like that so that all the
screens it puts up have a special border, but so far this tends to
be considered an extreme measure) and in other ways do malicious
things without high privilege.

John Savard

Re: Sequencer vs microcode

<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19327&group=comp.arch#19327

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:96c2:: with SMTP id y185mr7607579qkd.6.1627597215344;
Thu, 29 Jul 2021 15:20:15 -0700 (PDT)
X-Received: by 2002:a05:6830:3109:: with SMTP id b9mr5035027ots.276.1627597215141;
Thu, 29 Jul 2021 15:20:15 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.mixmin.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 29 Jul 2021 15:20:14 -0700 (PDT)
In-Reply-To: <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:f39c:db00:502:1a7:8e3:4239;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:f39c:db00:502:1a7:8e3:4239
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com>
Subject: Re: Sequencer vs microcode
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Thu, 29 Jul 2021 22:20:15 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Thu, 29 Jul 2021 22:20 UTC

On Thursday, July 29, 2021 at 2:07:58 PM UTC-6, MitchAlsup wrote:

> Which is why I don't want anyone without special privileges
> to write what can be considered code.

Isn't that basically true of any system with write-execute
protection mechanisms?

Programs like JIT interpreters, just like the loader, have to be
identified to the operating system.

However, "can be considered" could include, say, JavaScript
source code. Which was prepared on an editor _running on
another computer_ which may not have a My 66000 processor
installed.

A program written in JavaScript "may be considered" program
code, but the only means of control one would have to prevent
anyone to whom you haven't extended system credentials
from writing it for execution on your system... is basically
to disable JavaScript functionality in any browser running on
your machine.

So if you want fully functional Internet connectivity and security
as well, you need another security mechanism besides saying
"no". You also need to have a sandbox in which untrusted code
*can* be allowed to execute... well, at least until those who have
designed the Internet with which we all must cope come to their
senses.

Security must be something that can be implemented in the real
world, as a utopian dream will benefit no one.

John Savard

Re: Sequencer vs microcode

<sdvb78$dqd$1@z-news.wcss.wroc.pl>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19332&group=comp.arch#19332

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!2.eu.feeder.erje.net!1.as.feeder.erje.net!feeder.erje.net!newsfeed.pionier.net.pl!pwr.wroc.pl!news.wcss.wroc.pl!not-for-mail
From: antis...@math.uni.wroc.pl
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Thu, 29 Jul 2021 22:48:08 +0000 (UTC)
Organization: Politechnika Wroclawska
Lines: 41
Message-ID: <sdvb78$dqd$1@z-news.wcss.wroc.pl>
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com> <sduvab$2t7$1@z-news.wcss.wroc.pl> <8ceffecf-e8c2-43af-af98-f9ed9a273d73n@googlegroups.com>
NNTP-Posting-Host: hera.math.uni.wroc.pl
X-Trace: z-news.wcss.wroc.pl 1627598888 14157 156.17.86.1 (29 Jul 2021 22:48:08 GMT)
X-Complaints-To: abuse@news.pwr.wroc.pl
NNTP-Posting-Date: Thu, 29 Jul 2021 22:48:08 +0000 (UTC)
Cancel-Lock: sha1:ZpGOISGzPjHIg4gDBXgP946YhWU=
User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-10-amd64 (x86_64))
 by: antis...@math.uni.wroc.pl - Thu, 29 Jul 2021 22:48 UTC

Quadibloc <jsavard@ecn.ab.ca> wrote:
> On Thursday, July 29, 2021 at 1:25:01 PM UTC-6, anti...@math.uni.wroc.pl wrote:
>
> > BTW2: I looked at this issue because "security" folks want
> > to disable "writable and executable" memory.
>
> > But overwritng bytecode can have as bad
> > effect as overwriting machine code, so no real
> > gain in security.
>
> I think you're overlooking an important point here.
>
> Preventing memory that is executable from also being written
> does provide a real gain in security *in the usual case* where
> people are running programs that have been written in assembler
> or compiled to machine language at a previous time.

I have nothing against making code unwritable _by default_.
However, if program _wants_ writable and executable memory
OS and architecture should not forbid this.
> Thus, clearly, how write/execute protections can still be useful
> in a world where there is bytecode and JIT compilation should now
> be clear. Just as people who write applications must not put bad
> stuff in their programs (and also be vigilant against _supply-chain
> attacks_), people who write JavaScript interpreters or engines or
> whatever you call them... need to be vigiliant so as to make their
> programs *not generate code useful to malicious actors* in response
> to any bytecode inputs.

Runtime compilation is _very_ useful. Due to its general usefulness
it helps attacker too. I have seen Linux system where adminstrator
removed programs like perl because "it is used by rootkits".
If you do not need perl not installing it may gain you maybe
0.00001% extra security, but normally limiting essential
functionality makes no sense: if normal way of doing essential
things is forbidden, then users will find another, possibly
less secure way.
--
Waldek Hebisch

Re: Sequencer vs microcode

<ea619a5f-4ecc-4d13-ab32-90a824a4b0aen@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19333&group=comp.arch#19333

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:a544:: with SMTP id o65mr7652915qke.68.1627600297564;
Thu, 29 Jul 2021 16:11:37 -0700 (PDT)
X-Received: by 2002:a4a:2242:: with SMTP id z2mr4523058ooe.90.1627600297359;
Thu, 29 Jul 2021 16:11:37 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 29 Jul 2021 16:11:37 -0700 (PDT)
In-Reply-To: <d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:4d78:fd0f:f097:e375;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:4d78:fd0f:f097:e375
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ea619a5f-4ecc-4d13-ab32-90a824a4b0aen@googlegroups.com>
Subject: Re: Sequencer vs microcode
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Thu, 29 Jul 2021 23:11:37 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Thu, 29 Jul 2021 23:11 UTC

On Thursday, July 29, 2021 at 5:20:16 PM UTC-5, Quadibloc wrote:
> On Thursday, July 29, 2021 at 2:07:58 PM UTC-6, MitchAlsup wrote:
>
> > Which is why I don't want anyone without special privileges
> > to write what can be considered code.
<
> Isn't that basically true of any system with write-execute
> protection mechanisms?
<
It depends. In x86, for example, one can set the NX (no execute) bit in
a PTE but one does not HAVE TO use it like that.
<
In My 66000 if both the W and the X bit are set in a PTE the HW takes a trap
due to the illegal condition. So in order to support both W and X permissions
the SW has to setup a trap handler which ping pongs the permissions back
and forth--leading them to quickly realize there HAS TO BE a better way to do
it.
>
> Programs like JIT interpreters, just like the loader, have to be
> identified to the operating system.
>
> However, "can be considered" could include, say, JavaScript
> source code. Which was prepared on an editor _running on
> another computer_ which may not have a My 66000 processor
> installed.
>
> A program written in JavaScript "may be considered" program
> code, but the only means of control one would have to prevent
> anyone to whom you haven't extended system credentials
> from writing it for execution on your system... is basically
> to disable JavaScript functionality in any browser running on
> your machine.
<
There are over 300 sites on my javascrip controller in Chrome with JS
turned off.
>
> So if you want fully functional Internet connectivity and security
> as well, you need another security mechanism besides saying
> "no". You also need to have a sandbox in which untrusted code
> *can* be allowed to execute... well, at least until those who have
> designed the Internet with which we all must cope come to their
> senses.
<
You can do this efficiently because context switches are only 12 cycles.
You could not do this efficiently on a machine where context switches
are 1000+ cycles.
>
> Security must be something that can be implemented in the real
> world, as a utopian dream will benefit no one.
<
Security must also be something that does not leave all the doors and
window open so that bad actors in the quise of doing something positive
get let in to reek their havoc.
>
> John Savard

Re: Sequencer vs microcode

<sdvd5l$3gn$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19335&group=comp.arch#19335

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Thu, 29 Jul 2021 16:21:24 -0700
Organization: A noiseless patient Spider
Lines: 8
Message-ID: <sdvd5l$3gn$1@dont-email.me>
References: <sb1abl$ps8$1@dont-email.me>
<3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad>
<8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com>
<7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl>
<ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com>
<ea619a5f-4ecc-4d13-ab32-90a824a4b0aen@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 29 Jul 2021 23:21:25 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="33af34fea54b9a0a2536cc4b88b09706";
logging-data="3607"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+MYShQnpRAdrVUQ7fr/oTK"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
Cancel-Lock: sha1:lKJiycjI+K6K3BNCkprI1Ixsr6E=
In-Reply-To: <ea619a5f-4ecc-4d13-ab32-90a824a4b0aen@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Thu, 29 Jul 2021 23:21 UTC

On 7/29/2021 4:11 PM, MitchAlsup wrote:

> Security must also be something that does not leave all the doors and
> window open so that bad actors in the quise of doing something positive
> get let in to reek their havoc.

wreak: https://en.wiktionary.org/wiki/wreak

Re: Sequencer vs microcode

<sdvden$4ms$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19336&group=comp.arch#19336

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Thu, 29 Jul 2021 16:26:14 -0700
Organization: A noiseless patient Spider
Lines: 58
Message-ID: <sdvden$4ms$1@dont-email.me>
References: <sb1abl$ps8$1@dont-email.me>
<3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad>
<8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com>
<7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl>
<8ceffecf-e8c2-43af-af98-f9ed9a273d73n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 29 Jul 2021 23:26:15 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="33af34fea54b9a0a2536cc4b88b09706";
logging-data="4828"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+jrz33cmDOaYBGoekXmyi5"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
Cancel-Lock: sha1:O7M3p1xwikGc7jSIzIyXNByi3GI=
In-Reply-To: <8ceffecf-e8c2-43af-af98-f9ed9a273d73n@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Thu, 29 Jul 2021 23:26 UTC

On 7/29/2021 3:12 PM, Quadibloc wrote:
> On Thursday, July 29, 2021 at 1:25:01 PM UTC-6, anti...@math.uni.wroc.pl wrote:
>
>> BTW2: I looked at this issue because "security" folks want
>> to disable "writable and executable" memory.
>
>> But overwritng bytecode can have as bad
>> effect as overwriting machine code, so no real
>> gain in security.
>
> I think you're overlooking an important point here.
>
> Preventing memory that is executable from also being written
> does provide a real gain in security *in the usual case* where
> people are running programs that have been written in assembler
> or compiled to machine language at a previous time.
>
> Of course, the linking loader or whatever reads the program off
> the disk and writes it to memory has to be able to write to memory
> that will later be marked for execution. But nothing else.
>
> Bytecode, whether it is interpreted or turned into machine instructions
> by JIT compilation, does indeed tell the computer to do things.
>
> Let us accept that this case can be considered an _afterthought_;
> not allowing machine code to be re-written limits the usual thing
> virus writers used to do. Now, if write/execute protections force them
> to fiddle with bytecode instead... well, is the fact that people can
> break windows a reason not to lock your front door?
>
> Preventing machine code from being written is assumed to prevent
> the code from doing "bad things". But what if the code was doing
> bad things in the first place? So write/execute protections don't
> totally prevent code executing on the computer from doing malicious
> stuff; the _application writer_ is also responsible for not doing bad
> stuff too.
>
> Thus, clearly, how write/execute protections can still be useful
> in a world where there is bytecode and JIT compilation should now
> be clear. Just as people who write applications must not put bad
> stuff in their programs (and also be vigilant against _supply-chain
> attacks_), people who write JavaScript interpreters or engines or
> whatever you call them... need to be vigiliant so as to make their
> programs *not generate code useful to malicious actors* in response
> to any bytecode inputs.
>
> That may not always be easy or even feasible, since if a program
> can throw up a screen to communicate with the user, it can make
> that screen look like one from the operating system (of course,
> it has been done to sandbox a system like that so that all the
> screens it puts up have a special border, but so far this tends to
> be considered an extreme measure) and in other ways do malicious
> things without high privilege.
>
> John Savard
>

Anther advantage is that the I and D caches don't have t be coherent.

Re: Sequencer vs microcode

<sdvgug$lvu$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19338&group=comp.arch#19338

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: sfu...@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Thu, 29 Jul 2021 17:25:50 -0700
Organization: A noiseless patient Spider
Lines: 30
Message-ID: <sdvgug$lvu$1@dont-email.me>
References: <sb1abl$ps8$1@dont-email.me>
<3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad>
<8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com>
<7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl>
<ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 30 Jul 2021 00:25:52 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="cab2b5282177e850faf36fabc62855d6";
logging-data="22526"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/jkp2AKU5l63ok8qt9EqSJ3OUY7dr/hVQ="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
Cancel-Lock: sha1:vHNqTiW/epgap6m0dKuVMtBn52w=
In-Reply-To: <d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com>
Content-Language: en-US
 by: Stephen Fuld - Fri, 30 Jul 2021 00:25 UTC

On 7/29/2021 3:20 PM, Quadibloc wrote:
> On Thursday, July 29, 2021 at 2:07:58 PM UTC-6, MitchAlsup wrote:
>
>> Which is why I don't want anyone without special privileges
>> to write what can be considered code.
>
> Isn't that basically true of any system with write-execute
> protection mechanisms?
>
> Programs like JIT interpreters, just like the loader, have to be
> identified to the operating system.
>
> However, "can be considered" could include, say, JavaScript
> source code. Which was prepared on an editor _running on
> another computer_ which may not have a My 66000 processor
> installed.
>
> A program written in JavaScript "may be considered" program
> code, but the only means of control one would have to prevent
> anyone to whom you haven't extended system credentials
> from writing it for execution on your system... is basically
> to disable JavaScript functionality in any browser running on
> your machine.

You could do that (and many do), but why is it not a bug in the JS
compiler/interpreter to generate anything that breaks security?

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: Sequencer vs microcode

<9ae5e49b-0fd1-4918-abc8-5e2285dad067n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19340&group=comp.arch#19340

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:d4d:: with SMTP id 13mr5049007qvr.42.1627605112852;
Thu, 29 Jul 2021 17:31:52 -0700 (PDT)
X-Received: by 2002:aca:3094:: with SMTP id w142mr4851352oiw.37.1627605112682;
Thu, 29 Jul 2021 17:31:52 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 29 Jul 2021 17:31:52 -0700 (PDT)
In-Reply-To: <sdvgug$lvu$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=104.59.204.55; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 104.59.204.55
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com> <sdvgug$lvu$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9ae5e49b-0fd1-4918-abc8-5e2285dad067n@googlegroups.com>
Subject: Re: Sequencer vs microcode
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Fri, 30 Jul 2021 00:31:52 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Fri, 30 Jul 2021 00:31 UTC

On Thursday, July 29, 2021 at 7:25:54 PM UTC-5, Stephen Fuld wrote:
> On 7/29/2021 3:20 PM, Quadibloc wrote:
> > On Thursday, July 29, 2021 at 2:07:58 PM UTC-6, MitchAlsup wrote:
> >
> >> Which is why I don't want anyone without special privileges
> >> to write what can be considered code.
> >
> > Isn't that basically true of any system with write-execute
> > protection mechanisms?
> >
> > Programs like JIT interpreters, just like the loader, have to be
> > identified to the operating system.
> >
> > However, "can be considered" could include, say, JavaScript
> > source code. Which was prepared on an editor _running on
> > another computer_ which may not have a My 66000 processor
> > installed.
> >
> > A program written in JavaScript "may be considered" program
> > code, but the only means of control one would have to prevent
> > anyone to whom you haven't extended system credentials
> > from writing it for execution on your system... is basically
> > to disable JavaScript functionality in any browser running on
> > your machine.
> You could do that (and many do), but why is it not a bug in the JS
> compiler/interpreter to generate anything that breaks security?
<
Could be a bug in the JS; for example finding code sequences (because
they are readable) that contain RET instructions and using this as an
ROP attack means.
> --
> - Stephen Fuld
> (e-mail address disguised to prevent spam)

Re: Sequencer vs microcode

<1b9e4c9b-e0e3-4d09-b3ee-e60f956ad237n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19343&group=comp.arch#19343

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ae9:ed05:: with SMTP id c5mr1254556qkg.24.1627635341802;
Fri, 30 Jul 2021 01:55:41 -0700 (PDT)
X-Received: by 2002:aca:ac46:: with SMTP id v67mr1016847oie.99.1627635341506;
Fri, 30 Jul 2021 01:55:41 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!4.us.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 30 Jul 2021 01:55:41 -0700 (PDT)
In-Reply-To: <sdvd5l$3gn$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:f39c:db00:6c34:6af8:765b:3e77;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:f39c:db00:6c34:6af8:765b:3e77
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com> <ea619a5f-4ecc-4d13-ab32-90a824a4b0aen@googlegroups.com>
<sdvd5l$3gn$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1b9e4c9b-e0e3-4d09-b3ee-e60f956ad237n@googlegroups.com>
Subject: Re: Sequencer vs microcode
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Fri, 30 Jul 2021 08:55:41 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Fri, 30 Jul 2021 08:55 UTC

On Thursday, July 29, 2021 at 5:21:27 PM UTC-6, Ivan Godard wrote:
> On 7/29/2021 4:11 PM, MitchAlsup wrote:

> > Security must also be something that does not leave all the doors and
> > window open so that bad actors in the quise of doing something positive
> > get let in to reek their havoc.

> wreak: https://en.wiktionary.org/wiki/wreak

Yes, but I'll assume it was just a typo, and he knew the difference between
a bad smell and working havoc. Even if I myself was recently picky about the
Kogge-Stone adder.

John Savard

Re: Sequencer vs microcode

<21974b7f-1202-4e25-a94c-5764148bd8f0n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19345&group=comp.arch#19345

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:dab:: with SMTP id h11mr1583694qvh.21.1627635618502;
Fri, 30 Jul 2021 02:00:18 -0700 (PDT)
X-Received: by 2002:a9d:3a49:: with SMTP id j67mr1354588otc.114.1627635618270;
Fri, 30 Jul 2021 02:00:18 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.pasdenom.info!usenet-fr.net!fdn.fr!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 30 Jul 2021 02:00:18 -0700 (PDT)
In-Reply-To: <sdvgug$lvu$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:f39c:db00:6c34:6af8:765b:3e77;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:f39c:db00:6c34:6af8:765b:3e77
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com> <sdvgug$lvu$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <21974b7f-1202-4e25-a94c-5764148bd8f0n@googlegroups.com>
Subject: Re: Sequencer vs microcode
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Fri, 30 Jul 2021 09:00:18 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Fri, 30 Jul 2021 09:00 UTC

On Thursday, July 29, 2021 at 6:25:54 PM UTC-6, Stephen Fuld wrote:
> why is it not a bug in the JS
> compiler/interpreter to generate anything that breaks security?

Indeed, it is a duty for a JavaScript compiler/interpreter to block
the generation or execution of code that violates security; otherwise,
the objection that the existence of things like JavaScript makes
write/execute protections useless would be valid.

However, there are many ways to break security - programs that extract
timing information, for side-channel attacks like Spectre, for example,
have been written in JavaScript, and that sort of activity is quite hard
to detect.

John Savard

Re: Sequencer vs microcode

<se0gn8$ifg$1@z-news.wcss.wroc.pl>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19346&group=comp.arch#19346

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!newsfeed.pionier.net.pl!pwr.wroc.pl!news.wcss.wroc.pl!not-for-mail
From: antis...@math.uni.wroc.pl
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Fri, 30 Jul 2021 09:28:08 +0000 (UTC)
Organization: Politechnika Wroclawska
Lines: 162
Message-ID: <se0gn8$ifg$1@z-news.wcss.wroc.pl>
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com> <sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
NNTP-Posting-Host: hera.math.uni.wroc.pl
X-Trace: z-news.wcss.wroc.pl 1627637288 18928 156.17.86.1 (30 Jul 2021 09:28:08 GMT)
X-Complaints-To: abuse@news.pwr.wroc.pl
NNTP-Posting-Date: Fri, 30 Jul 2021 09:28:08 +0000 (UTC)
Cancel-Lock: sha1:dAmcAl1+y6JQ/GkqdBBIrLFpZXg=
User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-10-amd64 (x86_64))
 by: antis...@math.uni.wroc.pl - Fri, 30 Jul 2021 09:28 UTC

MitchAlsup <MitchAlsup@aol.com> wrote:
> On Thursday, July 29, 2021 at 2:25:01 PM UTC-5, anti...@math.uni.wroc.pl wrote:
> > MitchAlsup <Mitch...@aol.com> wrote:
> > > On Thursday, July 1, 2021 at 8:39:10 PM UTC-5, Kent Dickey wrote:
> > > > In article <8b1baea3-a802-4341...@googlegroups.com>,
> > > > MitchAlsup <Mitch...@aol.com> wrote:
> > > > >On Saturday, June 26, 2021 at 10:54:53 AM UTC-5, EricP wrote:
> > > > >> MitchAlsup wrote:
> > > > >> > <
> > > > >> > To show the extent of my disfavor for EXC, in My 66000 one cannot
> > > > >execute code in a page
> > > > >> > that is writable !
> > > > >> That forces JIT'ers and self modifiers to make a trip through
> > > > >> the OS to change the page protection from RW to RE.
> > > > ><
> > > > >No, it requires the JIT to run in a different address mapping than the
> > > > >application
> > > > >using the JITted code. Since this transition only costs 12 cycles plus cache
> > > > >effects, it is well worth while.
> > > > ><
> > > > >> Not that it is a bad thing as it does allow the OS to clean up model
> > > > >> specfic things like caches and prefetch buffers across multiple SMP cores.
> > > >
> > > > Can you explain why you're doing this? What does having the JIT modification
> > > > be in a different address space help in the hardware? I'm not seeing how
> > > > this really helps, other than to make certain JIT strategies harder.
> > > <
> > > Protection::
> > > The executor of the code cannot modify the code (no write permission).
> > > The JIT is not in the address space of the "application"
> > > The "application" cannot modify the JITer or even see it
> > > The "application" can only see the ASCII code given to the JIT.
> > > The "application" can only execute from JIT cache.
> > > Thus:: JIT smells a lot more like a dynamic library than current.
> >
> > Hmm, consider language implementation as follows:
> >
> > - functions posses modifiable metadata, including pointer to
> > actual code. Currently code directly follows metadata,
> > but in principle could be allocated in separate area.
> > - there is separate control stack (used for local variables
> > and return address) and data stack (mostly used for argument
> > passing). All arguments are passed on data stack.
> > Similarly return values are on data stack.
> > - Given a function f and values v1,...,vn one can create a new
> > function g which first pushes v1, ...,vn onto data stack
> > and then calls f. Currently this is accomplished by
> > creating header + small machine code snippet to do argument pushing,
> > but could be modifed to have code in separate area.
> > After such modification it would be possible to create
> > new function as pure data manipulation (re-using machine
> > code from other function).
> > - Given functions f and g one can create new function h which
> > has effect of calling f first and when f returns calling
> > g (if f needs arguments it takes them from data stack...).
> > - there is compiler which at runtime can compile new code
> >
> > AFAICS, once attacker can modify data area, he has complete
> > control of the application:
> > 1) He can create new composed function which first calls
> > compiler to compile his code and then calls it ("apply"
> > is available as a built-in function)
> <
> Not in My 66000, it is illegal to have both write and execute
> permissions simultaneously in a PTE. So, if you wrote it
> you cannot execute it. Someone with higher permissions
> can write it, transfer control back to you (context switch)
> and then you can execute it.

I am not sure if you understand what I wrote. Above language
function consist of metadata + executable code. Metadata
includes function pointer to executable code. Attacker can
do his job by modifying metadata, no need to touch code.
To be more precise, code needed by attacker already exists,
he just needs to feed it with appropriate data.

Maybe you want to say that I can not have runtime compiler?
But you say that I can, just that I need helper process
with extra priviledges.

> <
> > 2) He can modify one of function pointers so that his
> > function gets called instead of one of functions belonging
> > to the application
> <
> Yes, but the function needs to be in Execute only PTE mapping.

Code yes. But meta-data is just data. Each function has header
that looks like

name |tag | pointer to code| other data ...

^
|
Language function pointer point here

Each function call is "memory indirect", on normal architectures
language function pointer is loaded to a register first, than
pointer to code is loaded to another register and finally
there is call via register. Note: executable code is fully
relocatable and contains no memory addresses, all addresses
are in data parts. All that is needed to divert control
flow is to modify data, no need to touch Execute only pages.

If you want to say that attacker has to depend on already
existing code, then this is true. What I am saying that
needed code already exists, so fact that there are Execute
only pages provides _no_ extra protection.

> >
> > In other words, separating code and data gives really no
> > extra protection. Do you think that this is bad language?
> >
> > BTW1: Code can be garbage collected. Garbage collector may
> > move code, but otherwise keeps code as is. To account
> > for changed location garbage collector adjusts metadata.
> >
> > BTW2: I looked at this issue because "security" folks want
> > to disable "writable and executable" memory.
> <
> My 66000 makes this a HW detected problem. W+X = fault.
> <
> < If they
> > persist it is likely that developement effort will go
> > into pointless excercise of puting code in separate area,
> > which will mean more indirection via function pointers,
> <
> I see no additional pointer indirections.

Currently on ARM and x86_64 code takes advantage of fact
that metadata is just befor code and uses PC-relative
addressing. Separate execute-only area means that
must be separate pointers. Most indirection via
function pointers is already in place, but separationg
executable area is likely to require some extra
indirection since existing positional dependencies
are broken.

> > slightly larger and slower code, but as explaned no
> > extra security. There was also proposal to switch
> > to interpreted bytecode. Since from point of view
> > of CPU bytecode is data, such program is considered
> > "secure". But overwritng bytecode can have as bad
> > effect as overwriting machine code, so no real
> > gain in security.
> <
> Which is why I don't want anyone without special privileges
> to write what can be considered code.

But this is loosing battle: Goedel and Turing say that
you can not win: recognizing "what can be considered code"
is uncomputable. Interpreters are widely accepted
and if My 6600 does not support them well, people
will choose another machine. Puting it differently,
you may try to forbid Emacs, you may get away with
forbing Lisp (and you ejected significant obstacles
to high-performace Lisp), but trying to forbid Python
and company is sure fail.

--
Waldek Hebisch

Re: Sequencer vs microcode

<se0hae$ifg$2@z-news.wcss.wroc.pl>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19347&group=comp.arch#19347

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!news-out.netnews.com!news.alt.net!fdc3.netnews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!newsfeed.pionier.net.pl!pwr.wroc.pl!news.wcss.wroc.pl!not-for-mail
From: antis...@math.uni.wroc.pl
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Fri, 30 Jul 2021 09:38:22 +0000 (UTC)
Organization: Politechnika Wroclawska
Lines: 15
Message-ID: <se0hae$ifg$2@z-news.wcss.wroc.pl>
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com> <sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com> <d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com> <ea619a5f-4ecc-4d13-ab32-90a824a4b0aen@googlegroups.com>
NNTP-Posting-Host: hera.math.uni.wroc.pl
X-Trace: z-news.wcss.wroc.pl 1627637902 18928 156.17.86.1 (30 Jul 2021 09:38:22 GMT)
X-Complaints-To: abuse@news.pwr.wroc.pl
NNTP-Posting-Date: Fri, 30 Jul 2021 09:38:22 +0000 (UTC)
Cancel-Lock: sha1:471erJsfv1huSaN8fAaNOzZf2fk=
User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-10-amd64 (x86_64))
X-Received-Bytes: 2000
 by: antis...@math.uni.wroc.pl - Fri, 30 Jul 2021 09:38 UTC

MitchAlsup <MitchAlsup@aol.com> wrote:
> Security must also be something that does not leave all the doors and
> window open so that bad actors in the quise of doing something positive
> get let in to reek their havoc.

AFAICS biggest security problem is due to buffer overflows. I would
expect security concious folks to help in fight with buffer overflows.
That includes support for languages which check or at least
can check all array accesses. ATM I see that you are pushing
everyone to use C, where checking for array accesses at best
is tricky (C++ makes this better, but leaves hole for leagacy
C code).

--
Waldek Hebisch

WX (was: Sequencer vs microcode)

<2021Jul30.154128@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19348&group=comp.arch#19348

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.arch
Subject: WX (was: Sequencer vs microcode)
Date: Fri, 30 Jul 2021 13:41:28 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 35
Message-ID: <2021Jul30.154128@mips.complang.tuwien.ac.at>
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com> <sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com> <d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com> <ea619a5f-4ecc-4d13-ab32-90a824a4b0aen@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="f375a9bee4d8b8b6e84aaa12c2f4c78d";
logging-data="23808"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+XqXIcpc5/m2p25VNb0MCG"
Cancel-Lock: sha1:2XzSUrdO5amEJRi9Hwa4nFaqAEk=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Fri, 30 Jul 2021 13:41 UTC

MitchAlsup <MitchAlsup@aol.com> writes:
>In My 66000 if both the W and the X bit are set in a PTE the HW takes a trap
>due to the illegal condition. So in order to support both W and X permissions
>the SW has to setup a trap handler which ping pongs the permissions back
>and forth--leading them to quickly realize there HAS TO BE a better way to do
>it.

In Gforth we will just take the easy way: disable dynamic native code
generation and revert to plain threaded code. The bottom line is a
certain slowdown (e.g., a factor of 2 for fft on Skylake) and zero
additional security, because Gforth can do everything machine language
can do; most stuff out of the box, but the rest by constructing an
appropriate binary and dynamically loading it.

This restriction of My66000 might be a good fit for locked-down devices
like the iPhone, where you can only run binaries blessed by Apple, and
Apple in general does not bless language interpreters. However, as
the Pegasus spyware demonstrates, even Apple's approach does not
provide security, so the measures above are really about protecting
Apple's app-store monopoly on iOS.

It seems to me that those OSs that want to disable WX can do so
without problems on existing hardware, e.g., by replying with EINVAL
or (your approach) some trap to mmap(... PROT_EXEC|PROT_WRITE ...),
and I guess there are quite a number of people who think that would be
a good idea. But there is obviously enough software that would break,
and while you are probably not alone in thinking that breaking such
software is a good idea, it's not prevalent in Linux and Windows last
time I looked. Baking this restriction into the hardware will just
ensure that nobody will use it for a general-purpose computer.

- anton
--
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>

Re: WX (was: Sequencer vs microcode)

<af0199c4-7b11-4fd9-b335-651e6fa29229n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19349&group=comp.arch#19349

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:644f:: with SMTP id y76mr2626295qkb.100.1627655073159;
Fri, 30 Jul 2021 07:24:33 -0700 (PDT)
X-Received: by 2002:a05:6830:1658:: with SMTP id h24mr2144394otr.182.1627655072921;
Fri, 30 Jul 2021 07:24:32 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.pasdenom.info!usenet-fr.net!fdn.fr!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 30 Jul 2021 07:24:32 -0700 (PDT)
In-Reply-To: <2021Jul30.154128@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:f39c:db00:fc42:4de7:2db8:d430;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:f39c:db00:fc42:4de7:2db8:d430
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl> <ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com> <ea619a5f-4ecc-4d13-ab32-90a824a4b0aen@googlegroups.com>
<2021Jul30.154128@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <af0199c4-7b11-4fd9-b335-651e6fa29229n@googlegroups.com>
Subject: Re: WX (was: Sequencer vs microcode)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Fri, 30 Jul 2021 14:24:33 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Fri, 30 Jul 2021 14:24 UTC

On Friday, July 30, 2021 at 8:16:41 AM UTC-6, Anton Ertl wrote:

> This restriction of My66000 might be a good fit for locked-down devices
> like the iPhone, where you can only run binaries blessed by Apple, and
> Apple in general does not bless language interpreters. However, as
> the Pegasus spyware demonstrates, even Apple's approach does not
> provide security, so the measures above are really about protecting
> Apple's app-store monopoly on iOS.

Yes, Apple seeks to preserve its highly profitable app store monopoly
on iOS. That is first and foremost what the locked-down nature of iOS
is about. I do not disagree with this claim.

However, I do, very strongly, disagree with the claim that the fact that
the... incidental security benefits... of Apple's policies are less than
perfect, as the recent Pegasus debacle shows... is in any way
_evidence_ of the motivation behind Apple's app store policies.

Even if Apple locked down its app store for reasons that were pure
as the driven snow, that would not give it the ability to design a
secure system that determined adversaries with funding and
expertise could not subvert.

John Savard

Re: Sequencer vs microcode

<se141f$90o$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19350&group=comp.arch#19350

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!paganini.bofh.team!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: sfu...@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: Sequencer vs microcode
Date: Fri, 30 Jul 2021 07:57:49 -0700
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <se141f$90o$1@dont-email.me>
References: <sb1abl$ps8$1@dont-email.me>
<3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com>
<e5IBI.683979$ST2.397427@fx47.iad>
<8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com>
<FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com>
<7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com>
<sduvab$2t7$1@z-news.wcss.wroc.pl>
<ca2d96d9-d69b-4b6e-b2ff-31c69d2c2ca4n@googlegroups.com>
<d1f40b0e-b32a-45a5-97dd-894b589dcc30n@googlegroups.com>
<sdvgug$lvu$1@dont-email.me>
<21974b7f-1202-4e25-a94c-5764148bd8f0n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 30 Jul 2021 14:57:51 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="cab2b5282177e850faf36fabc62855d6";
logging-data="9240"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/+lf0ilhyQgBhXxId+HZ8lEZlbUNXe2xc="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
Cancel-Lock: sha1:WcYIY3VsKCz8UiNngHnLb0bOD/U=
In-Reply-To: <21974b7f-1202-4e25-a94c-5764148bd8f0n@googlegroups.com>
Content-Language: en-US
 by: Stephen Fuld - Fri, 30 Jul 2021 14:57 UTC

On 7/30/2021 2:00 AM, Quadibloc wrote:
> On Thursday, July 29, 2021 at 6:25:54 PM UTC-6, Stephen Fuld wrote:
>> why is it not a bug in the JS
>> compiler/interpreter to generate anything that breaks security?
>
> Indeed, it is a duty for a JavaScript compiler/interpreter to block
> the generation or execution of code that violates security; otherwise,
> the objection that the existence of things like JavaScript makes
> write/execute protections useless would be valid.
>
> However, there are many ways to break security - programs that extract
> timing information, for side-channel attacks like Spectre, for example,
> have been written in JavaScript, and that sort of activity is quite hard
> to detect.

Sure. But Specter attacks should be prevented in the hardware, and has
nothing to do with write/execute permissions. My position is that Java
script should be no less secure than any other language program.

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

WX (was: Sequencer vs microcode)

<2021Jul30.165744@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=19351&group=comp.arch#19351

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.arch
Subject: WX (was: Sequencer vs microcode)
Date: Fri, 30 Jul 2021 14:57:44 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 28
Message-ID: <2021Jul30.165744@mips.complang.tuwien.ac.at>
References: <sb1abl$ps8$1@dont-email.me> <3d37be3c-e4fd-41b3-93f7-7037a3c19aefn@googlegroups.com> <e5IBI.683979$ST2.397427@fx47.iad> <8b1baea3-a802-4341-8afd-d827e4eee948n@googlegroups.com> <FdWdnYnNu76q80P9nZ2dnUU7-dudnZ2d@giganews.com> <7fb90705-a13d-473d-8462-7b9d62e117fen@googlegroups.com> <sduvab$2t7$1@z-news.wcss.wroc.pl> <8ceffecf-e8c2-43af-af98-f9ed9a273d73n@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="f375a9bee4d8b8b6e84aaa12c2f4c78d";
logging-data="22616"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/SEq1oEej1qmiMu9wt12dH"
Cancel-Lock: sha1:2/Bpx2gVkeGzidiPlKdfQGMOSAg=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Fri, 30 Jul 2021 14:57 UTC

Quadibloc <jsavard@ecn.ab.ca> writes:
>Preventing memory that is executable from also being written
>does provide a real gain in security *in the usual case* where
>people are running programs that have been written in assembler
>or compiled to machine language at a previous time.

Linux has marked the text segment RX (no W) since forever (at least
since QMAGIC binaries, probably earlier), and it has not been alone in
this.

IIRC malloc()ed memory has been RW (no X) since the early 2000s.

So the only ones who get WX memory are those who ask mmap(),
mprotect() and friends for it. E.g., JIT compiler writers are doing
that.

>well, is the fact that people can
>break windows a reason not to lock your front door?

Dian Thomas told us when we asked about leaving her Jeep open that she
does not want a wannabe thief to have to cut through the
(soft-plastic) window to find out that there is nothing to steal in
there.

- anton
--
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>

Pages:1234567
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor