• Re: Kernel Transplantation (was: Re: New CEO of VMS Software)

    From Stephen Hoffman@21:1/5 to Lawrence D'Oliveiro on Fri Jan 5 19:59:12 2024
    On 2024-01-05 04:40:52 +0000, Lawrence D'Oliveiro said:

    On Thu, 4 Jan 2024 22:09:12 -0500, Arne Vajhøj wrote:

    I was not comparing "Linux port to Alpha" with "VSI actual port of VMS
    to x86-64" but to "hypothetical port of VMS to being on top of Linux
    kernel".

    Remember, I’m not talking about porting the whole of VMS, just the part that users care about: userland executables and DCL command procedures. That’s it.


    For some idea of relative scale for that "that's it", that's "merely" a
    sizable chunk of what is roughly 35 million lines of code written in a
    mix of assembler, BLISS, and C with proprietary extensions and API
    calls, and which is entirely dependent on the rest of the 35 million
    lines of code and some unique compilers. Not a small project.



    There have been various discussions about this kernel port in a time
    and place that no longer exists too, but that's all fodder for another
    time and another place, and maybe with a little more included below.



    Ponder how much of the "upper level" APIs and tools here tie into the
    XQP and ACPs and device drivers, including the terminal drivers,
    network drivers, and storage drivers. There have been ongoing I/O
    issues (e.g. SSIO, quorum I/O) underneath clustering and assumptions of
    storage writes too, and I'd expect those issues to appear elsewhere
    when porting to a different kernel.

    It's an immense project. FreeVMS made an effort in this direction some
    years ago, but effectively ran out of staff (volunteers) and funding.
    Lost their domain, too. DEC did a partial port to Mach years ago as an
    advanced development project, but that work was far from complete.

    Sector 7 has been porting APIs incrementally for decades now, and
    Sector 7 can have the option of reworking the app source code as and
    where needed.

    Valve has a tougher problem, as they can't rework the app source code
    to run on Steam Deck. Valve and the open source projects involved have
    in aggregate done an immense pile of work to get a number of games
    working, though there are many that don't work, and pretty much any
    games with anti-cheat won't. https://www.steamdeck.com/en/verified
    Apple has expended some development effort in this area too, with their game-porting tools: https://developer.apple.com/games/

    Could VSI do something akin to FreeVMS, Sector 7, Steam Deck, or Apple,
    and their respective tooling, but starting with the original OpenVMS
    source code? Sure. Then existing OpenVMS customers then have another
    five or ten years of wait to enjoy and with no particular enhancements.
    And then quite probably a whole pile of app-level workarounds for
    whatever didn't get ported or implemented, or that had to diverge for
    reasons. Or waiting for a yet larger and longer and more complex
    project to allow binaries to run directly, work which would necessarily
    lag behind the rest of the porting work.





    What does this kernel swap mean? VSI spends years creating an inevitably-somewhat-incomplete third-party Linux porting kit for
    customer OpenVMS apps, and the end goal of the intended customers then inexorably shifts toward the removal of that porting kit, and probably
    in the best case the whole effort inevitably degrades into apps ported
    top and running on VSI Linux. Or to porting to and running on some
    other not-VSI Linux. That's certainly a service business opportunity,
    providing customers assistance porting their OpenVMS apps to VSI Linux.
    It does get VSI out of maintaining a kernel, but does not reduce much
    else. And that at no small cost and no small investment, and at a cost
    of a number of other opportunities.




    TL;DR: The kernel isn't a big hunk of the ongoing development effort,
    once the port is complete. Yeah, it takes a while to get to a working
    bootstrap and working kernel during a port, though operating as a guest
    reduces that somewhat. Porting to a different platform supported by the
    shared kernel would get easier, though VSI still has to drag along
    compilers and other tooling, or work to expunge that. De-kerneling the userland would be a larger effort. And re-kerneling means VSI must now
    track changes to their chosen replacement kernel, because y'all just
    know some kernel changes will almost certainly be required here. In
    the best case with re-kerneling, the customers then get a decade of
    delays, with few enhancements, and all for an OS and APIs that arguably
    haven't seen appreciable enhancements and new features since before
    Y2K. Or customers can choose the existing OpenVMS x86-64 guests, and
    can get back to whatever they were doing, and VSI can get back to
    working on enhancements and updates and performance.





    From another time and place, a DEC Usenix paper from way back in 1992 discussing a kernel-swap project: http://fossies.org/linux/freevms/doc/Usenix_VMS-on-Mach.PS

    From a reference to that work: "In 1992, a development team from
    Digital Equipment described a proof-of-concept implementation of VMS on
    Mach 3.0. ... Their work provided independent confirmation that
    multiple OS personalities could be supported on the Mach microkernel.
    At the same time, it exposed certain limitations. For example, it
    proved impossible to accurately emulate VMS scheduling policies using
    Mach. As another example, it was not possible to emulate VMS’ strong isolation of kernel resource usage by different users. Preliminary
    measurements also suggested that layering VMS on Mach resulted in
    unacceptable performance overhead. Due to these technical concerns and
    other nontechnical considerations, Digital Equipment did not follow
    through with a production quality implementation of VMS on Mach."

    That prototype work predated L4Ka and such, which reduced the overhead
    involved with Mach.





    Would I like to see an OpenVMS port to Linux, L4, or otherwise? Sure.
    Fun project. But who wants to buy that? And for how much?






    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Stephen Hoffman on Sat Jan 6 02:48:42 2024
    On Fri, 5 Jan 2024 19:59:12 -0500, Stephen Hoffman wrote:

    [lots of interesting stuff omitted]

    From another time and place, a DEC Usenix paper from way back in 1992 discussing a kernel-swap project: http://fossies.org/linux/freevms/doc/Usenix_VMS-on-Mach.PS

    From a reference to that work: "In 1992, a development team from Digital Equipment described a proof-of-concept implementation of VMS on Mach
    3.0. ... Their work provided independent confirmation that multiple OS personalities could be supported on the Mach microkernel. At the same
    time, it exposed certain limitations. For example, it proved impossible
    to accurately emulate VMS scheduling policies using Mach.

    That can be blamed on the limitations of Mach. People still seem to think microkernels are somehow a good idea, but they really don’t help much, do they?

    As another example, it was not possible to emulate VMS’ strong isolation
    of kernel resource usage by different users.

    Would the Linux cgroups functionality (as commonly used in the various container schemes) help with this?

    Preliminary measurements also
    suggested that layering VMS on Mach resulted in unacceptable performance overhead.

    No big surprise -- microkernel trouble yet again.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to Lawrence D'Oliveiro on Sat Jan 6 13:36:59 2024
    On 2024-01-06 02:48:42 +0000, Lawrence D'Oliveiro said:

    On Fri, 5 Jan 2024 19:59:12 -0500, Stephen Hoffman wrote:

    [lots of interesting stuff omitted]

    From another time and place, a DEC Usenix paper from way back in 1992
    discussing a kernel-swap project:
    http://fossies.org/linux/freevms/doc/Usenix_VMS-on-Mach.PS

    From a reference to that work: "In 1992, a development team from
    Digital Equipment described a proof-of-concept implementation of VMS on
    Mach 3.0. ... Their work provided independent confirmation that
    multiple OS personalities could be supported on the Mach microkernel.
    At the same time, it exposed certain limitations. For example, it
    proved impossible to accurately emulate VMS scheduling policies using
    Mach.

    That can be blamed on the limitations of Mach. People still seem to
    think microkernels are somehow a good idea, but they really don’t help much, do they?

    Every choice made in an OS is a trade-off. Every one.

    There are OS and hardware trade-offs in every design, every era, every generation.

    And the trade-offs vary over time and place. 1992 was VAX.

    With current hardware including cores and performance and with newer message-passing designs such as OKL4 and ilk, some things are looking
    rather better.

    As another example, it was not possible to emulate VMS’ strong
    isolation of kernel resource usage by different users.

    Would the Linux cgroups functionality (as commonly used in the various container schemes) help with this?

    No.

    Designers of VAX/VMS chose a memory management model closer to that of
    Multics, where much of the rest of hardware and software in the
    industry diverged from that lotsa-rings memory management design.
    Memory management designs with more than rings have largely disappeared
    in the ensuing decades, with Itanium being one of the most recent
    examples. x86-64 sorta-kinda has four rings, but the page table and
    ring design was too limited for OpenVMS expectations, and VSI is
    accordingly (and creatively) using two page tables to provide the
    necessary modes.

    Containers are arguably fundamentally about product-licensing
    arbitrage, too. But it's not a foundation for a kernel transplantation.

    Preliminary measurements also suggested that layering VMS on Mach
    resulted in unacceptable performance overhead.

    No big surprise -- microkernel trouble yet again.

    Mach on VAX in 1992, yeah. Microkernels are in use all over the place
    nowadays, seL4-, L4-, and OKL4-derived. And hardware performance has
    improved over the decades, and core counts are far higher than VAX era.

    https://docs.sel4.systems/projects/sel4/frequently-asked-questions.html

    Other deployments? Apple is using their own L4 derivative throughout.

    Compare a 1992-era VAX to a 2023-era smartphone with 6 cores, 8 GB
    memory and a terabyte of persistent storage, and with vastly better
    graphics and networking. In a server design with similarly-modern
    heterogeneous processor hardware, the efficiency cores would likely be
    running batch and baggage, too. VAX SIMH on a smartwatch probably runs decently well too, save for the woefully inadequate UI.

    For a small development team—and VSI is tiny—kernel transplantation
    doesn't gain much from a technical basis, once the platform port is
    completed. It might help with future ports, sure. Ports (including transplantations) more generally are entirely disruptive, and delay
    other userland work and userland enhancements. And the kernel
    transplantation still requires ongoing maintenance and support and
    updates and releases as the new "host" kernel is modified by the
    outside vendors. From another vendor doing this:

    https://www.chromium.org/chromium-os/chromiumos-design-docs/chromium-os-kernel/

    From a business perspective, what Sector 7 offers is an easier and
    incremental off-ramp from OpenVMS to else-platform. Which is not going
    to be popular roadmap choice for the folks at VSI. And I'm somewhat at
    a loss for what the transplantation offers users.

    Would I like to see a more modern kernel design underneath OpenVMS?
    Sure. But pragmatically, that's all way, way, way, way, way down the
    priority list for an ISV or third-party developer or customer. Or at
    VSI, by all appearances. And that new design will be
    userland-disruptive. Just as userland-disruptive as a port, if not
    larger. Booting OpenVMS as a guest on x86-64 gets rid of most of the longstanding customer hardware issues. And VSI isn't nearly well-funded
    enough to create a new OS both with easier portability for existing
    OpenVMS apps, and with enough new work and new features to draw in new customers—that's a decade of work and a chunk of a billion dollars just
    to get going. Got a bored billionaire handy that wants to take on
    ~everybody with a new RISC V supermicrominikernel megaOS product with
    extra added OpenVMS flavor? Have at. Lemme know too, as that sounds
    like a fun project.


    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Stephen Hoffman on Sat Jan 6 20:08:02 2024
    On Sat, 6 Jan 2024 13:36:59 -0500, Stephen Hoffman wrote:

    On 2024-01-06 02:48:42 +0000, Lawrence D'Oliveiro said:

    That can be blamed on the limitations of Mach. People still seem to
    think microkernels are somehow a good idea, but they really don’t help
    much, do they?

    With current hardware including cores and performance and with newer message-passing designs such as OKL4 and ilk, some things are looking
    rather better.

    Hope springs eternal in the microkernel aficionado’s breast. ;)

    As another example, it was not possible to emulate VMS’ strong
    isolation of kernel resource usage by different users.

    Would the Linux cgroups functionality (as commonly used in the various
    container schemes) help with this?

    No.

    Designers of VAX/VMS chose a memory management model closer to that of Multics, where much of the rest of hardware and software in the industry diverged from that lotsa-rings memory management design.

    Seems you are confusing two different things here. I am aware of the user/ supervisor/exec/kernel privilege-level business, but you did say “resource usage by different *users*”. cgroups are indeed designed to manage that.

    Remember that my proposal for adopting the Linux kernel would get rid of
    every part of VMS that currently runs at higher than user mode. It’s only their own user-mode code that customers would care about.

    Containers are arguably fundamentally about product-licensing arbitrage,
    too.

    I don’t use them that way. I use them as a cheap way to run up multiple
    test installations of things I am working on, instead of resorting to full
    VMs. Typically it only takes a few gigabytes to create a new userland for
    a container. E.g. on this machine I am using now:

    root@theon:~ # du -ks /var/lib/lxc/*/rootfs/
    1700060 /var/lib/lxc/debian10/rootfs/
    7654028 /var/lib/lxc/debian11/rootfs/
    876568 /var/lib/lxc/debian12/rootfs/

    Microkernels are in use all over the place nowadays, seL4-, L4-, and OKL4-derived.

    Really?? Can you name some deployments? How would performance compare with Linux? Because, let’s face it, Linux is the standard for high-performance computing.

    For a small development team—and VSI is tiny—kernel transplantation doesn't gain much from a technical basis, once the platform port is completed. It might help with future ports, sure.

    Which was my point all along: if they’d done this for the AMD64 port from
    the beginning, they would have shaved *years* off the development time.
    And likely ended up with a somewhat larger (remaining) customer base than
    they have now.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to ldo@nz.invalid on Sat Jan 6 20:31:22 2024
    In article <uncbv2$ns66$1@dont-email.me>,
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Sat, 6 Jan 2024 13:36:59 -0500, Stephen Hoffman wrote:

    On 2024-01-06 02:48:42 +0000, Lawrence D'Oliveiro said:

    That can be blamed on the limitations of Mach. People still seem to
    think microkernels are somehow a good idea, but they really don’t help >>> much, do they?

    With current hardware including cores and performance and with newer
    message-passing designs such as OKL4 and ilk, some things are looking
    rather better.

    Hope springs eternal in the microkernel aficionado’s breast. ;)

    As another example, it was not possible to emulate VMS’ strong
    isolation of kernel resource usage by different users.

    Would the Linux cgroups functionality (as commonly used in the various
    container schemes) help with this?

    No.

    Designers of VAX/VMS chose a memory management model closer to that of
    Multics, where much of the rest of hardware and software in the industry
    diverged from that lotsa-rings memory management design.

    Seems you are confusing two different things here. I am aware of the user/ >supervisor/exec/kernel privilege-level business, but you did say "resource >usage by different *users*". cgroups are indeed designed to manage that.

    But that's not what he actually said: you omitted the critical
    word, "kernel", as in _kernel resources_ used by different
    users. cgroups are designed to manage _userspace_ resources;
    they still exist in fundamentally the same kernel space.

    Remember that my proposal for adopting the Linux kernel would get rid of >every part of VMS that currently runs at higher than user mode. It's only >their own user-mode code that customers would care about.

    You think that's easy, but it is clear that you really don't
    understand the issues involved.

    Containers are arguably fundamentally about product-licensing arbitrage,
    too.

    I don't use them that way. I use them as a cheap way to run up multiple
    test installations of things I am working on, instead of resorting to full >VMs. Typically it only takes a few gigabytes to create a new userland for
    a container. E.g. on this machine I am using now:

    Containers started as a way to run multiple versions of some
    very large programs with disparate library and other
    dependencies on a single system, and grew into a mechanism for
    managing resources generally.

    root@theon:~ # du -ks /var/lib/lxc/*/rootfs/
    1700060 /var/lib/lxc/debian10/rootfs/
    7654028 /var/lib/lxc/debian11/rootfs/
    876568 /var/lib/lxc/debian12/rootfs/

    Microkernels are in use all over the place nowadays, seL4-, L4-, and
    OKL4-derived.

    Really?? Can you name some deployments? How would performance compare with >Linux? Because, let's face it, Linux is the standard for high-performance >computing.

    He gave you examples.

    He pointed you to seL4, which is used in plenty of safety
    critical systems.

    Additionally, QNX runs nuclear power plants. Every Mac on the
    planet runs more or less a version of Mach+BSD. The Intel ME
    embedded in most Intel CPUs runs Minix3.

    Such a shame that the Linux team, despite their vast resources,
    are incapable of delivering an effective microkernel. I guess
    they just can't pull it off. (/s)

    For a small development team—and VSI is tiny—kernel transplantation
    doesn't gain much from a technical basis, once the platform port is
    completed. It might help with future ports, sure.

    Which was my point all along: if they'd done this for the AMD64 port from
    the beginning, they would have shaved *years* off the development time.

    So you say. People who know better disagree.

    And likely ended up with a somewhat larger (remaining) customer base than >they have now.

    You have yet to articulate any measurable way in which this
    would have made a difference to customers. It seems clear that
    this is because you yourself have no idea other than, "lol Linux
    is better."

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Dan Cross on Sat Jan 6 22:46:13 2024
    On Sat, 6 Jan 2024 20:31:22 -0000 (UTC), Dan Cross wrote:

    But that's not what he actually said: you omitted the critical word, "kernel", as in _kernel resources_ used by different users.

    Since *all* resources are defined (and managed) as such by the kernel, I
    fail to see what the distinction is.

    cgroups let you manage CPU time usage and CPU affinity (are CPUs a
    “kernel” resource?), memory usage (is that a “kernel” resource?), I/O usage (is that a “kernel” resource?), RDMA usage (is that a “kernel” resource?), numbers of processes created (is that a “kernel” resource?)
    etc etc.

    Otherwise, feel free to explain what the distinction is between a “user” resource and a “kernel” resource.

    Remember that my proposal for adopting the Linux kernel would get rid of >>every part of VMS that currently runs at higher than user mode. It's
    only their own user-mode code that customers would care about.

    You think that's easy, but it is clear that you really don't understand
    the issues involved.

    The poster I was replying to already conceded this point.

    Containers started as a way to run multiple versions of some very large programs with disparate library and other dependencies on a single
    system, and grew into a mechanism for managing resources generally.

    You are thinking of Docker. Which is just one kind of “container” technology. Remember that “containers” as such do not exist as a built-in primitive in the Linux kernel: they are constructed out of a bunch of lower-level primitives, including cgroups and the various kinds of
    namespaces. This allows for very different kinds of technologies to be
    built that call themselves “containers”. And for them to coexist.

    Every Mac on the planet runs more or less a version of Mach+BSD.

    And doesn’t exactly do so well. Back when Apple sold servers, I remember a review of MySQL running on OS X Server versus Linux, on the same hardware. Linux ran circles around Apple’s microkernel-based OS. On the company’s
    own hardware.

    The Intel ME embedded in most Intel CPUs runs Minix3.

    Bad, bad example. <https://arstechnica.com/information-technology/2017/05/the-hijacking- flaw-that-lurked-in-intel-chips-is-worse-than-anyone-thought/>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to ldo@nz.invalid on Sun Jan 7 00:52:22 2024
    In article <uncl7l$p3mp$5@dont-email.me>,
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Sat, 6 Jan 2024 20:31:22 -0000 (UTC), Dan Cross wrote:

    But that's not what he actually said: you omitted the critical word,
    "kernel", as in _kernel resources_ used by different users.

    Since *all* resources are defined (and managed) as such by the kernel, I
    fail to see what the distinction is.

    That is evident, but this is not the flex you think that it is.

    cgroups let you manage CPU time usage and CPU affinity (are CPUs a
    "kernel" resource?), memory usage (is that a "kernel" resource?), I/O
    usage (is that a "kernel" resource?), RDMA usage (is that a "kernel" >resource?), numbers of processes created (is that "kernel" resource?)
    etc etc.

    Otherwise, feel free to explain what the distinction is between a "user" >resource and a "kernel" resource.

    Since you asked....

    User resources: resources allocated to a user process for the
    purpose of executing user code. Examples may include mapped
    segments containing executable text, read-only or read/write
    data, identifiers handed to userspace to identify resources
    held by the kernel on a process's behalf (file and socket
    descriptors, for example).

    Kernel resources: Those allocated by the kernel for its internal
    use. Examples may include page tables describing an address
    space, the mapping of user-visible tokens to IO resources (e.g.,
    the file array that maps file descriptors to the kernel's
    representation of an open file or socket or pipe or whatever),
    on Unix-y systems the set of signals pending delivery in the
    process, etc. Other examples may include things like a
    description of the buses and peripheral devices (e.g., the
    complete enumeration of the PCIe topology), buffers associated
    with IO devices and the filesystem, a page cache, etc.

    Some things blur the line: is the `proc` structure describing a
    process a kernel resource, even though it's sole purpose is to
    describe a user process? Most kernel people would probably say
    yes, particularly as (on Unix-y style systems) the proc
    structure allocated to a process will outlive the process itself
    (e.g., so that the parent can `wait` on it to collect its exit
    status).

    These are just a few examples.

    Remember that my proposal for adopting the Linux kernel would get rid of >>>every part of VMS that currently runs at higher than user mode. It's
    only their own user-mode code that customers would care about.

    You think that's easy, but it is clear that you really don't understand
    the issues involved.

    The poster I was replying to already conceded this point.

    Yes, everyone has acknowledged that you don't understand the
    issues involved.

    Containers started as a way to run multiple versions of some very large
    programs with disparate library and other dependencies on a single
    system, and grew into a mechanism for managing resources generally.

    You are thinking of Docker.

    No, I am not. I was there when containers were invented, and I
    know very much what the original use case was.

    Which is just one kind of "container"
    technology. Remember that "containers" as such do not exist as a built-in >primitive in the Linux kernel: they are constructed out of a bunch of >lower-level primitives, including cgroups and the various kinds of >namespaces. This allows for very different kinds of technologies to be
    built that call themselves "containers". And for them to coexist.

    Yawn. Cool story, bro.

    Every Mac on the planet runs more or less a version of Mach+BSD.

    And doesn't exactly do so well.

    "For some specific use cases." FTFY.

    Back when Apple sold servers, I remember a
    review of MySQL running on OS X Server versus Linux, on the same hardware.

    Linux ran circles around Apple's microkernel-based OS. On the company's
    own hardware.

    I remember when Linux acquired TCP/IP support. It was
    consistently about 10% slower than BSD at the time. What's your
    point? But if we're going to go there....

    Why, after all these years, does USB audio on Linux fail so
    miserably so often? Why do they still have problems with
    suspend and resume on laptops? Why does Linux panic when you
    turn on built-in features, like AX.25? Why is it such a pain to
    partition disks? Why does the `ss` command still not show
    routing tables for lesser-used protocols? Why are the debugging
    tools so primitive compared to what Sun was doing 20 years ago
    with dtrace? Why don't they have something as robust and
    functional as ZFS? Why can't the amazingly resourced Linux
    repeat what a group of like 5 engineers at Sun did in 18 months
    20 years ago?

    You seem to think that Linux is so great, and the irony is that
    you're actually _right_. But it's obvious that you don't have
    the first clue about _why_ you think that, or what makes Linux
    great.

    The Intel ME embedded in most Intel CPUs runs Minix3.

    Bad, bad example. ><https://arstechnica.com/information-technology/2017/05/the-hijacking- >flaw-that-lurked-in-intel-chips-is-worse-than-anyone-thought/>

    Yup. They had a pretty bad flaw. Do you think it hasn't been
    fixed? And do you think that's the fault of the kernel that
    runs on the ME? That was, after all, in an application program
    that ran on that OS: should we start comparing to CVEs in
    programs that run under Linux? For that matter, should we start
    comparing CVEs between Minix and Linux?

    I notice you elided my other examples, as they did not support
    your point.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to Lawrence D'Oliveiro on Tue Jan 9 14:32:48 2024
    On 2024-01-06 20:08:02 +0000, Lawrence D'Oliveiro said:

    On Sat, 6 Jan 2024 13:36:59 -0500, Stephen Hoffman wrote:

    On 2024-01-06 02:48:42 +0000, Lawrence D'Oliveiro said:

    That can be blamed on the limitations of Mach. People still seem to
    think microkernels are somehow a good idea, but they really don’t help >>> much, do they?

    With current hardware including cores and performance and with newer
    message-passing designs such as OKL4 and ilk, some things are looking
    rather better.

    Hope springs eternal in the microkernel aficionado’s breast. ;)

    As another example, it was not possible to emulate VMS’ strong
    isolation of kernel resource usage by different users.

    Would the Linux cgroups functionality (as commonly used in the various
    container schemes) help with this?

    No.

    Designers of VAX/VMS chose a memory management model closer to that of
    Multics, where much of the rest of hardware and software in the
    industry diverged from that lotsa-rings memory management design.

    Seems you are confusing two different things here. I am aware of the user/supervisor/exec/kernel privilege-level business, but you did say “resource usage by different *users*”. cgroups are indeed designed to manage that.

    Not that the implementation detail I'm referring to.

    Remember that my proposal for adopting the Linux kernel would get rid
    of every part of VMS that currently runs at higher than user mode. It’s only their own user-mode code that customers would care about.

    That's a massive effort toward ring compression if not a wholesale
    rewrite of userland, and for negligible savings in staff, for no
    savings in initial schedule, and maybe for a faster next port of
    OpenVMS to AArch64 or RISC V or whatever in a decade or two.

    And given LLVM and compiler support has been a gating factor this time
    'round, that hypothetical future port is already in much better shape
    for any hypothetical future platform already supported by LLVM.


    Containers are arguably fundamentally about product-licensing arbitrage, too.

    I don’t use them that way. I use them as a cheap way to run up multiple
    test installations of things I am working on, instead of resorting to
    full VMs. Typically it only takes a few gigabytes to create a new
    userland for a container. E.g. on this machine I am using now:

    root@theon:~ # du -ks /var/lib/lxc/*/rootfs/
    1700060 /var/lib/lxc/debian10/rootfs/
    7654028 /var/lib/lxc/debian11/rootfs/
    876568 /var/lib/lxc/debian12/rootfs/

    Good on you.

    For the folks with massive bills for third-party dependencies,
    containers are interesting for an entirely different reason.

    Microkernels are in use all over the place nowadays, seL4-, L4-, and
    OKL4-derived.

    Really?? Can you name some deployments? How would performance compare
    with Linux? Because, let’s face it, Linux is the standard for high-performance computing.

    Off hand, only a billion or so devices in widespread usage for L4 with
    one vendor. Probably more, given other usage at other vendors.

    HPC is a different market. Not where OpenVMS was or is.

    VAX/VMS was focused on commercial computing since the VAX era, and well
    before Y2K. UNIX and then Linux got most of technical computing from
    VAX/VMS as VAX and VMS prices increased and VAX performance decreased.

    Yes, VAX/VMS was sorta kinda in high-performance computing decades ago
    with VAX, but—outside of existing installs—not in decades.

    As for OpenVMS in high performance, OpenVMS hasn't been particularly
    supported on the vendor's own top-end hardware platforms; on
    AlphaServer SC series, and on upper-end Superdome and Superdome 2
    models. Superdome support was as a guest.

    For a small development team—and VSI is tiny—kernel transplantation
    doesn't gain much from a technical basis, once the platform port is
    completed. It might help with future ports, sure.

    Which was my point all along: if they’d done this for the AMD64 port
    from the beginning, they would have shaved *years* off the development
    time. And likely ended up with a somewhat larger (remaining) customer
    base than they have now.

    Not unless you mean way back at the juncture that mis-branched to
    Itanium. Sledgehammer (and Yamhill) hadn't been officially announced
    then.

    The kernel transplant is larger than a port, for the first time around.
    Much larger. After that, the effort is smaller when the host kernel
    supports the target platform. And adding platforms is a form of
    dilution for an operating system vendor, and for third-party
    vendors. More work. More testing.

    And again, what you are interested here in has been available for many
    years via Sector 7. Sector 7 provides an incremental off-ramp from
    OpenVMS for those that want or need that. But probably not a good
    long-term model for any OS vendor.


    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to John Dallman on Tue Jan 9 14:43:06 2024
    On 2024-01-06 15:30:00 +0000, John Dallman said:

    First, complete the 64-bit API, after all these years. It's a fairly well-defined task, but I don't know how big it is.

    There's no way to do that without breaking source-level compatibility,
    and probably not without also doing a migration to a parallel set of
    64-bit APIs.

    Basically, the image activator examines the image and decides which implementation to activate within; the existing 32- and 64-bit
    implementation, or 64-bit new.

    This implementation and this migration would also provide an
    opportunity to toss out the most problematic parts of the existing
    APIs. *stares at password hash APIs* *glances at thicket of C API
    definitions* *rolls eyes at itemlists* *sighs and drags BASIC forward
    to 64-bit and OO*

    Some work in the linker and in the image activator here, and a whole
    lot of work in the various user and kernel APIs, and work in app code
    ranging from build procedures to an app overhaul. And work in the docs
    too, of course.


    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Stephen Hoffman on Tue Jan 9 20:19:42 2024
    On Tue, 9 Jan 2024 14:43:06 -0500, Stephen Hoffman wrote:

    *glances at thicket of C API definitions*

    The design of VMS system calls, with lots of arguments, most of them
    optional, is really bad for a language that don’t allow argument passing
    by keyword. But I would say that’s the fault of the language.

    *rolls eyes at itemlists*

    I always thought they were kind of neat. What’s a better alternative for exensibility?

    *sighs and drags BASIC forward to 64-bit and OO*

    BASIC ... you got to be kidding, right?

    If kids wanted to learn programming these days, I would point them at
    Python.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to Stephen Hoffman on Tue Jan 9 21:06:00 2024
    In article <unk7ka$24i3c$1@dont-email.me>, seaohveh@hoffmanlabs.invalid (Stephen Hoffman) wrote:

    On 2024-01-06 15:30:00 +0000, John Dallman said:
    First, complete the 64-bit API, after all these years. It's a
    fairly well-defined task, but I don't know how big it is.
    There's no way to do that without breaking source-level
    compatibility, and probably not without also doing a migration to a
    parallel set of 64-bit APIs.

    Basically, the image activator examines the image and decides which implementation to activate within; the existing 32- and 64-bit implementation, or 64-bit new.

    I was presuming that the 64-bit VMS APIs would have 64-bit specific names,
    as the 64-bit versions that already do, as best I know. That would means
    there were a full set of APIs, both 32-bit and 64-bit, at OS level, in
    the same implementation.

    Cross-compiled MACRO-32 code could then gradually transition between them,
    by source adaptation. Higher-level languages could offer compiler options
    for selecting APIs.

    Or does this not make sense?

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to John Dallman on Tue Jan 9 16:16:55 2024
    On 1/9/2024 4:06 PM, John Dallman wrote:
    In article <unk7ka$24i3c$1@dont-email.me>, seaohveh@hoffmanlabs.invalid (Stephen Hoffman) wrote:

    On 2024-01-06 15:30:00 +0000, John Dallman said:
    First, complete the 64-bit API, after all these years. It's a
    fairly well-defined task, but I don't know how big it is.
    There's no way to do that without breaking source-level
    compatibility, and probably not without also doing a migration to a
    parallel set of 64-bit APIs.

    Basically, the image activator examines the image and decides which
    implementation to activate within; the existing 32- and 64-bit
    implementation, or 64-bit new.

    I was presuming that the 64-bit VMS APIs would have 64-bit specific names,
    as the 64-bit versions that already do, as best I know. That would means there were a full set of APIs, both 32-bit and 64-bit, at OS level, in
    the same implementation.

    I think that is the only safe option.

    Cross-compiled MACRO-32 code could then gradually transition between them,
    by source adaptation. Higher-level languages could offer compiler options
    for selecting APIs.

    Or does this not make sense?

    I suspect that all direct calls to LIB$ and SYS$ no matter if it is
    Macro-32 or Fortran or C would have to be manually edited to use
    new 64 bit capable version, but that the various language RTL
    could switch to 64 bit capable versions transparently.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Lawrence D'Oliveiro on Tue Jan 9 16:30:25 2024
    On 1/9/2024 3:19 PM, Lawrence D'Oliveiro wrote:
    On Tue, 9 Jan 2024 14:43:06 -0500, Stephen Hoffman wrote:
    *sighs and drags BASIC forward to 64-bit and OO*

    BASIC ... you got to be kidding, right?

    If kids wanted to learn programming these days, I would point them at
    Python.

    Education in elementary programming is probably out of
    scope for VMS these days. And Basic was not the language
    used back when VMS was used for that. There are other
    reasons for enhancing Basic.

    There is every reason to believe that a large part of
    future business application development on VMS will
    use non-native languages (Java, Groovy, Python, PHP,
    JavaScript etc.), because that is what we see on
    other platforms.

    But some of those future business application development
    will need to be native. It will need to link with old
    native code or it will need need to use various
    LIB$/SYS$ functions or for whatever reasons.

    Fortran, Cobol and C should be deemed out of that race.

    C++ is an obvious candidate, but not everyone likes C++.

    Pascal and Basic have potential to evolve into strong
    candidates as well if extended properly.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Stephen Hoffman on Tue Jan 9 22:09:30 2024
    On Tue, 9 Jan 2024 14:32:48 -0500, Stephen Hoffman wrote:

    And again, what you are interested here in has been available for many
    years via Sector 7.

    I’m not sure they did a comprehensive enough job. For instance, I remember the previous time this came up, reading between the lines in one of their
    case studies, the original customer scenario mentioned using DECnet, but
    that was missiong from the description of the solution.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to D'Oliveiro on Tue Jan 9 21:35:00 2024
    In article <unkdkr$25et9$1@dont-email.me>, ldo@nz.invalid (Lawrence
    D'Oliveiro) wrote:

    Or use the same names, and just link against different versions of
    the libraries, located in suitable architecture-specific
    directories, as selected by the build script.

    I'm afraid sir has not understood the current state of the mixed
    32-/64-bit API.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to All on Tue Jan 9 21:35:00 2024
    In article <unkd47$25cg2$1@dont-email.me>, arne@vajhoej.dk (Arne Vajhj)
    wrote:

    I suspect that all direct calls to LIB$ and SYS$ no matter if it is
    Macro-32 or Fortran or C would have to be manually edited to use
    new 64 bit capable version, but that the various language RTL
    could switch to 64 bit capable versions transparently.

    With a sufficiently regular naming scheme, a compiler could make
    substitutions, but I don't know if the current scheme will cope.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to John Dallman on Tue Jan 9 21:25:47 2024
    On Tue, 9 Jan 2024 21:06 +0000 (GMT Standard Time), John Dallman wrote:

    I was presuming that the 64-bit VMS APIs would have 64-bit specific
    names ...

    Or use the same names, and just link against different versions of the libraries, located in suitable architecture-specific directories, as
    selected by the build script.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Scott Dorsey on Tue Jan 9 23:07:00 2024
    On 9 Jan 2024 22:56:47 -0000, Scott Dorsey wrote:

    In article <unkdkr$25et9$1@dont-email.me>,
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    On Tue, 9 Jan 2024 21:06 +0000 (GMT Standard Time), John Dallman wrote:

    I was presuming that the 64-bit VMS APIs would have 64-bit specific
    names ...

    Or use the same names, and just link against different versions of the >>libraries, located in suitable architecture-specific directories, as >>selected by the build script.

    Linux did it with different versions in different directories with the
    same name. Solaris did it with different names. In the end the Solaris route was much less frustrating to debug.

    Solaris never ran on 2 dozen different architectures though, did it?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Dorsey@21:1/5 to ldo@nz.invalid on Tue Jan 9 22:56:47 2024
    In article <unkdkr$25et9$1@dont-email.me>,
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Tue, 9 Jan 2024 21:06 +0000 (GMT Standard Time), John Dallman wrote:

    I was presuming that the 64-bit VMS APIs would have 64-bit specific
    names ...

    Or use the same names, and just link against different versions of the >libraries, located in suitable architecture-specific directories, as
    selected by the build script.

    Linux did it with different versions in different directories with the
    same name. Solaris did it with different names. In the end the Solaris
    route was much less frustrating to debug.
    --scott
    --
    "C'est un Nagra. C'est suisse, et tres, tres precis."

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Stephen Hoffman on Tue Jan 9 18:33:13 2024
    On 1/9/2024 2:43 PM, Stephen Hoffman wrote:
    On 2024-01-06 15:30:00 +0000, John Dallman said:

    First, complete the 64-bit API, after all these years. It's a fairly
    well-defined task, but I don't know how big it is.

    There's no way to do that without breaking source-level compatibility, and probably not without also doing a migration to a parallel set of 64-bit APIs.

    Basically, the image activator examines the image and decides which implementation to activate within; the existing 32- and 64-bit implementation,
    or 64-bit new.

    This implementation and this migration would also provide an opportunity to toss
    out the most problematic parts of the existing APIs. *stares at password hash
    APIs* *glances at thicket of C API definitions* *rolls eyes at itemlists* *sighs
    and drags BASIC forward to 64-bit and OO*

    Some work in the linker and in the image activator here, and a whole lot of work
    in the various user and kernel APIs, and work in app code ranging from build procedures to an app overhaul. And work in the docs too, of course.



    Ok, correct me if I'm wrong.

    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around should not be a detriment, right?

    I seriously doubt that any Basic users would take advantage of a conversion to 64 bit addresses. So why bother?

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Lawrence D'Oliveiro on Tue Jan 9 18:34:27 2024
    On 1/9/2024 3:19 PM, Lawrence D'Oliveiro wrote:
    On Tue, 9 Jan 2024 14:43:06 -0500, Stephen Hoffman wrote:

    *glances at thicket of C API definitions*

    The design of VMS system calls, with lots of arguments, most of them optional, is really bad for a language that don’t allow argument passing
    by keyword. But I would say that’s the fault of the language.

    *rolls eyes at itemlists*

    I always thought they were kind of neat. What’s a better alternative for exensibility?

    *sighs and drags BASIC forward to 64-bit and OO*

    BASIC ... you got to be kidding, right?

    If kids wanted to learn programming these days, I would point them at
    Python.


    Bigot alert ....

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dave Froble on Tue Jan 9 18:47:12 2024
    On 1/9/2024 6:33 PM, Dave Froble wrote:
    Ok, correct me if I'm wrong.

    As far as I know, totally 64 bit apps can be implemented on VMS.  So,
    what's the problem.  The fact that there is also that 32 bit capability hanging around should not be a detriment, right?

    I don't have a problem with API's expecting 32 bit pointers being present.

    I have a problem with the situations where there is a function
    expecting 32 bit pointers but no function expecting 64 bit pointers.
    When one for whatever reason have a pointer to something
    up in P2 space. Allocating memory in P0 space, copy from
    P2 to P0, call function, copy back if necessary and
    deallocate it not elegant.

    I seriously doubt that any Basic users would take advantage of a
    conversion to 64 bit addresses.  So why bother?

    Depends on what VSI's long term plan for Basic is.

    "build legacy source code, but do new development in other
    languages" => probably no need for 64 bit support

    "evolve language and encourage new development in it" => it
    will need 64 bit support.

    And as I stated in another post, then Pascal and Basic
    are the two most interesting languages for evolution among
    the traditional VMS languages.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to John Dallman on Tue Jan 9 18:52:06 2024
    On 1/9/2024 4:35 PM, John Dallman wrote:
    In article <unkd47$25cg2$1@dont-email.me>, arne@vajhoej.dk (Arne Vajhøj) wrote:
    I suspect that all direct calls to LIB$ and SYS$ no matter if it is
    Macro-32 or Fortran or C would have to be manually edited to use
    new 64 bit capable version, but that the various language RTL
    could switch to 64 bit capable versions transparently.

    With a sufficiently regular naming scheme, a compiler could make substitutions, but I don't know if the current scheme will cope.

    If the arguments are simple buffer addresses, then maybe the
    compiler could do something.

    But what with more complex data structures like item lists?

    A Fortran compiler could add a 64 to the function name called and
    could pass a 64 bit descriptor instead of a 32 bit descriptor for
    a string. But I can't imagine it changing all the addresses
    in an item list from INTEGER*4 to INTEGER*8.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Dave Froble on Wed Jan 10 00:12:23 2024
    On Tue, 9 Jan 2024 18:34:27 -0500, Dave Froble wrote:

    On 1/9/2024 3:19 PM, Lawrence D'Oliveiro wrote:

    BASIC ... you got to be kidding, right?

    If kids wanted to learn programming these days, I would point them at
    Python.

    Bigot alert ....

    Did I step on somebody’s BASIC-loving toes?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Dave Froble on Wed Jan 10 00:14:22 2024
    On Tue, 9 Jan 2024 18:33:13 -0500, Dave Froble wrote:

    I seriously doubt that any [noddy] users would take advantage of a
    conversion to 64 bit addresses. So why bother?

    In the x86-32/x86-64 situation in particular, the 32-bit architecture is
    known for being register-poor. This is alleviated somewhat in the 64-bit extensions. This means a compiler can generate more efficient code using
    the 64-bit instructions.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Dorsey@21:1/5 to ldo@nz.invalid on Wed Jan 10 00:15:59 2024
    In article <unkjij$26ao8$1@dont-email.me>,
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On 9 Jan 2024 22:56:47 -0000, Scott Dorsey wrote:

    In article <unkdkr$25et9$1@dont-email.me>,
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    On Tue, 9 Jan 2024 21:06 +0000 (GMT Standard Time), John Dallman wrote:

    I was presuming that the 64-bit VMS APIs would have 64-bit specific
    names ...

    Or use the same names, and just link against different versions of the >>>libraries, located in suitable architecture-specific directories, as >>>selected by the build script.

    Linux did it with different versions in different directories with the
    same name. Solaris did it with different names. In the end the Solaris
    route was much less frustrating to debug.

    Solaris never ran on 2 dozen different architectures though, did it?

    Not at the same time. Only two at the same time.

    Same with VMS, which did have a 16-bit compatibility mode to run code of
    two different architectures at the same time early on.

    The Pr1me fifty-series, now THOSE had dozens of different architectures in
    the same box, seemingly. Because you can never have enough mode bits.
    --scott
    --
    "C'est un Nagra. C'est suisse, et tres, tres precis."

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Scott Dorsey on Wed Jan 10 00:24:37 2024
    On 10 Jan 2024 00:15:59 -0000, Scott Dorsey wrote:

    In article <unkjij$26ao8$1@dont-email.me>,
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    On 9 Jan 2024 22:56:47 -0000, Scott Dorsey wrote:

    In article <unkdkr$25et9$1@dont-email.me>,
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    On Tue, 9 Jan 2024 21:06 +0000 (GMT Standard Time), John Dallman
    wrote:

    I was presuming that the 64-bit VMS APIs would have 64-bit specific
    names ...

    Or use the same names, and just link against different versions of the >>>>libraries, located in suitable architecture-specific directories, as >>>>selected by the build script.

    Linux did it with different versions in different directories with the
    same name. Solaris did it with different names. In the end the
    Solaris route was much less frustrating to debug.

    Solaris never ran on 2 dozen different architectures though, did it?

    Not at the same time. Only two at the same time.

    Note how a distro like Debian does it, with its “multiarch” concept. This allows multiple installations of the same distro version, for different architectures, to share large (at least readonly) parts of their root filesystems. Debian supports something close to a dozen different architectures, last I checked.

    What alternative to architecture-specific library directories would there
    be, that would scale to such a setup?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Lawrence D'Oliveiro on Tue Jan 9 19:42:12 2024
    On 1/9/2024 7:14 PM, Lawrence D'Oliveiro wrote:
    On Tue, 9 Jan 2024 18:33:13 -0500, Dave Froble wrote:
    I seriously doubt that any [noddy] users would take advantage of a
    conversion to 64 bit addresses. So why bother?

    In the x86-32/x86-64 situation in particular, the 32-bit architecture is known for being register-poor. This is alleviated somewhat in the 64-bit extensions. This means a compiler can generate more efficient code using
    the 64-bit instructions.

    And?

    The VMS 32 vs 64 bit discussion has nothing to do with traditional
    32 bit vs 64 bit.

    There has never been and never will be a VMS Basic for x86 (IA-32).

    VMS Basic is expected to become available for VMS x86-64 any day.

    And we expect it to store 32 bit pointers because that is
    what it does on Alpha and Itanium.

    It will use x86-64 instructions and x86-64 registers and x86-64
    address space and so on.

    And we are discussing whether it some day in the future should
    switch to use 64 bit pointers.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to arne@vajhoej.dk on Wed Jan 10 13:36:09 2024
    On 2024-01-09, Arne Vajhj <arne@vajhoej.dk> wrote:
    On 1/9/2024 4:35 PM, John Dallman wrote:
    In article <unkd47$25cg2$1@dont-email.me>, arne@vajhoej.dk (Arne Vajhj)
    wrote:
    I suspect that all direct calls to LIB$ and SYS$ no matter if it is
    Macro-32 or Fortran or C would have to be manually edited to use
    new 64 bit capable version, but that the various language RTL
    could switch to 64 bit capable versions transparently.

    With a sufficiently regular naming scheme, a compiler could make
    substitutions, but I don't know if the current scheme will cope.

    If the arguments are simple buffer addresses, then maybe the
    compiler could do something.

    But what with more complex data structures like item lists?

    A Fortran compiler could add a 64 to the function name called and
    could pass a 64 bit descriptor instead of a 32 bit descriptor for
    a string. But I can't imagine it changing all the addresses
    in an item list from INTEGER*4 to INTEGER*8.


    It could if there was a SDL definition for the itemlist and if the SDL definition contained information that the field was an address instead
    of a longword.

    As an alternative, and getting back to the core of the problem (Macro-32
    does not have an address datatype so all addresses in HLLs were stored in unabstracted longwords), if the user's source code defined that field as
    an address pointer, instead of a uint32_t (for example), then the compiler would have more information to work with when deciding whether to generate 32-bit or 64-bit addresses depending on the function name.

    This is exactly what happened when badly-written C code was forced to
    move from "unsigned long int ptr" to "struct some_struct_def *ptr" when
    moving to the 64-bit world. The nice thing about that C code is that it
    could be changed in a way that enabled it to continue working in both
    a 32-bit and 64-bit environment.

    Because of the mixed 32-bit/64-bit address space in VMS, this approach
    would be more tricky than in Unix/Windows, but it could still be viable.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Lawrence D'Oliveiro on Wed Jan 10 13:40:41 2024
    On 2024-01-09, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Tue, 9 Jan 2024 14:32:48 -0500, Stephen Hoffman wrote:

    And again, what you are interested here in has been available for many
    years via Sector 7.

    I?m not sure they did a comprehensive enough job. For instance, I remember the previous time this came up, reading between the lines in one of their case studies, the original customer scenario mentioned using DECnet, but
    that was missiong from the description of the solution.

    DECnet should not be in use in today's security world and a customer
    should have been forced away from using DECnet anyway due to external
    auditing and security standards.

    I do remember what Sector 7 offers as being very complete (within the
    limits of moving to another OS) and I don't see how reinventing the
    wheel would be a viable commercial option, given what Sector 7 already has.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Dave Froble on Wed Jan 10 13:43:42 2024
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:

    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around should not be a detriment, right?


    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Wed Jan 10 13:06:59 2024
    On 1/10/24 6:40 AM, Simon Clubley wrote:
    On 2024-01-09, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Tue, 9 Jan 2024 14:32:48 -0500, Stephen Hoffman wrote:

    And again, what you are interested here in has been available for many
    years via Sector 7.

    I?m not sure they did a comprehensive enough job. For instance, I remember >> the previous time this came up, reading between the lines in one of their
    case studies, the original customer scenario mentioned using DECnet, but
    that was missiong from the description of the solution.

    DECnet should not be in use in today's security world and a customer
    should have been forced away from using DECnet anyway due to external auditing and security standards.

    .
    .
    .

    Hogwash. DECnet can be made just as secure as any IP communication by
    simply using IP transports. A couple of simple examples:

    1. Run DECnet phase V. Use DECnet-over-IP, and encrypt it with IPSEC
    before it ever leaves your host. This not only encrypts all of your
    DECnet traffic but it means that DECnet proxies are now as secure as
    your IPSEC profile.

    1a. If you are running OpenVMS on x86, TCP/IP Services does not
    currently provide IPSEC and Multinet is not yet available. However,
    VMware ESXi does support IPSEC. You can configure your ESXi host to do
    the encryption for you. You just need to do your DECnet-over-IP traffic
    using IPv6.

    2. Run DECnet phase IV. Install pyDECnet on any host in your LAN that
    supports python (I use a dedicated raspberry pi). This will be your
    DECnet router. Isolate DECnet traffic to its own VLAN. All off-LAN
    DECnet traffic is encrypted by the pyDECnet host, again, likely using IPSEC.

    More security that this is possible. If you have a security requirement
    this doesn't meet, let me know.

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Simon Clubley on Wed Jan 10 20:14:06 2024
    On Wed, 10 Jan 2024 13:40:41 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-09, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Tue, 9 Jan 2024 14:32:48 -0500, Stephen Hoffman wrote:

    And again, what you are interested here in has been available for many
    years via Sector 7.

    I?m not sure they did a comprehensive enough job. For instance, I
    remember the previous time this came up, reading between the lines in
    one of their case studies, the original customer scenario mentioned
    using DECnet, but that was missiong from the description of the
    solution.

    DECnet should not be in use in today's security world and a customer
    should have been forced away from using DECnet anyway due to external auditing and security standards.

    Surely that’s their choice. I thought the point was to make the transition away from VMS as painless as possible. Others were trying to poke holes in
    my claims of minimal pain; now you are trying to add to the pain instead.

    Nowadays, the whole Internet is built on the concept of running secure protocols over insecure channels. Those secure protocols can in turn be channels for older, insecure protocols--this is not rocket science.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Mark Berryman on Thu Jan 11 03:29:30 2024
    On Wed, 10 Jan 2024 13:06:59 -0700, Mark Berryman wrote:

    2. Run DECnet phase IV. Install pyDECnet on any host in your LAN that supports python (I use a dedicated raspberry pi).

    Wow. I had no idea such a thing existed ... and written in Python, no
    less. About 23,000 lines of code, for a pretty comprehensive DECnet Phase
    IV stack.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Simon Clubley on Thu Jan 11 01:17:41 2024
    On 1/10/2024 8:43 AM, Simon Clubley wrote:
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:

    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around >> should not be a detriment, right?


    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option.

    Simon.


    My understanding, which could be totally wrong, is that the major concept of "64
    bit" is about addresses.

    So, even something using solely 64 bit addresses could still have multiple sizes
    of data types. If using RMS, which I mainly do not, one would use the data types that RMS requires. The concept would be for just about everything, use what the tool/app/whatever requires.

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Lawrence D'Oliveiro on Thu Jan 11 13:48:37 2024
    On 2024-01-10, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    Nowadays, the whole Internet is built on the concept of running secure protocols over insecure channels. Those secure protocols can in turn be channels for older, insecure protocols--this is not rocket science.

    Things like SSL only protect data in motion. It does nothing to help
    you if the server software on the receiving end of that SSL connection
    has a vulnerability within it.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Mark Berryman on Thu Jan 11 13:45:29 2024
    On 2024-01-10, Mark Berryman <mark@theberrymans.com> wrote:
    On 1/10/24 6:40 AM, Simon Clubley wrote:
    On 2024-01-09, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Tue, 9 Jan 2024 14:32:48 -0500, Stephen Hoffman wrote:

    And again, what you are interested here in has been available for many >>>> years via Sector 7.

    I?m not sure they did a comprehensive enough job. For instance, I remember >>> the previous time this came up, reading between the lines in one of their >>> case studies, the original customer scenario mentioned using DECnet, but >>> that was missiong from the description of the solution.

    DECnet should not be in use in today's security world and a customer
    should have been forced away from using DECnet anyway due to external
    auditing and security standards.

    .
    .
    .

    Hogwash. DECnet can be made just as secure as any IP communication by
    simply using IP transports. A couple of simple examples:

    1. Run DECnet phase V. Use DECnet-over-IP, and encrypt it with IPSEC
    before it ever leaves your host. This not only encrypts all of your
    DECnet traffic but it means that DECnet proxies are now as secure as
    your IPSEC profile.

    1a. If you are running OpenVMS on x86, TCP/IP Services does not
    currently provide IPSEC and Multinet is not yet available. However,
    VMware ESXi does support IPSEC. You can configure your ESXi host to do
    the encryption for you. You just need to do your DECnet-over-IP traffic using IPv6.

    2. Run DECnet phase IV. Install pyDECnet on any host in your LAN that supports python (I use a dedicated raspberry pi). This will be your
    DECnet router. Isolate DECnet traffic to its own VLAN. All off-LAN
    DECnet traffic is encrypted by the pyDECnet host, again, likely using IPSEC.

    More security that this is possible. If you have a security requirement
    this doesn't meet, let me know.


    I am amused and saddened that whenever I raise this issue, people immediately assume that I am talking about MITM attacks only and address that only.

    The fact is that MITM attacks are only a small part of the attack surface.
    Far more common are attacks against the listening services themselves from connections you initiate, not those you intercept.

    For example, in 2) above, how does this address clients on an authorised
    VLAN being able to send malformed packets to a server with an inappropriately fully-privileged EVL listener that has a dodgy message parser built into it ?

    TCP/IP (and its higher-level protocols) have been heavily probed and issues
    are still being found. Goodness knows what a serious probing of DECnet will reveal if I can find the following things with a quick probing:

    https://groups.google.com/g/comp.os.vms/c/Bjp0hRkSnh4

    I also find it amusing that whenever I raise this issue, there is nothing
    in the DECnet world that protects data in motion and you all have to
    suggest a protocol that came from the rival TCP/IP world instead. :-)

    Simon.

    PS: I wonder if, 2 years on, whether VSI has got around to fixing those
    issues in DECnet Phase IV yet ?

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Dave Froble on Thu Jan 11 13:56:36 2024
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/10/2024 8:43 AM, Simon Clubley wrote:
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:

    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around >>> should not be a detriment, right?


    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option.


    My understanding, which could be totally wrong, is that the major concept of "64
    bit" is about addresses.


    And that is exactly what I am talking about. Not everything in RMS had
    a 64-bit addressing API the last time I checked.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Simon Clubley on Thu Jan 11 12:46:53 2024
    On 1/11/2024 8:56 AM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/10/2024 8:43 AM, Simon Clubley wrote:
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:

    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around
    should not be a detriment, right?


    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option.


    My understanding, which could be totally wrong, is that the major concept of "64
    bit" is about addresses.


    And that is exactly what I am talking about. Not everything in RMS had
    a 64-bit addressing API the last time I checked.

    Simon.


    Then I have to ask, "so what?"=

    If RMS doesn't fit your requirements, then don't use it.

    What does it matter how RMS works internally?

    Perhaps I'm just the old dog that cannot learn new tricks?

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Dave Froble on Thu Jan 11 18:17:06 2024
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/11/2024 8:56 AM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/10/2024 8:43 AM, Simon Clubley wrote:
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:

    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around
    should not be a detriment, right?


    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option.


    My understanding, which could be totally wrong, is that the major concept of "64
    bit" is about addresses.


    And that is exactly what I am talking about. Not everything in RMS had
    a 64-bit addressing API the last time I checked.

    Simon.


    Then I have to ask, "so what?"=


    You claimed that "totally 64 bit apps can be implemented on VMS".
    I am showing you why that is not the case.

    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS references are still in the executable you create however.


    What does it matter how RMS works internally?

    Perhaps I'm just the old dog that cannot learn new tricks?


    As above, you claimed that "totally 64 bit apps can be implemented on VMS".
    I am showing you why that is not the case.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Simon Clubley on Thu Jan 11 15:48:26 2024
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/11/2024 8:56 AM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/10/2024 8:43 AM, Simon Clubley wrote:
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:
    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around
    should not be a detriment, right?

    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option. >>>>
    My understanding, which could be totally wrong, is that the major concept of "64
    bit" is about addresses.

    And that is exactly what I am talking about. Not everything in RMS had
    a 64-bit addressing API the last time I checked.

    That is correct. Practically only data related fields in RAB64
    supports 64 bit addresses.

    Then I have to ask, "so what?"=

    You claimed that "totally 64 bit apps can be implemented on VMS".
    I am showing you why that is not the case.

    I guess that depends on what is meant by "totally 64 bit".

    If it means that all addresses stored in process space whether
    user code or VMS code are stored as 64 bit then it indeed seems
    unlikely.

    It it means that in user code all addresses are 64 bit, then that
    should be doable.

    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff
    like finding IFI).

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Thu Jan 11 13:51:28 2024
    On 1/11/24 11:17 AM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/11/2024 8:56 AM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/10/2024 8:43 AM, Simon Clubley wrote:
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:

    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around
    should not be a detriment, right?


    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option. >>>>>

    My understanding, which could be totally wrong, is that the major concept of "64
    bit" is about addresses.


    And that is exactly what I am talking about. Not everything in RMS had
    a 64-bit addressing API the last time I checked.

    Simon.


    Then I have to ask, "so what?"=


    You claimed that "totally 64 bit apps can be implemented on VMS".
    I am showing you why that is not the case.

    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS references are still in the executable you create however.


    What does it matter how RMS works internally?

    Perhaps I'm just the old dog that cannot learn new tricks?


    As above, you claimed that "totally 64 bit apps can be implemented on VMS".
    I am showing you why that is not the case.

    Um, if I have a 64-bit app, that would mean I have complete access to
    P0, P1, P2 space. Now, I choose to put some data structures in P0
    space, does that mean that the app is suddenly no longer "totally 64-bit"?

    I've written 64-bit apps. I've certainly never had to copy data from P2
    space to P0 space because of some limitation. I've used both 32-bit and
    64-bit item lists and descriptors, including dynamic descriptors. None
    of the system services or RTL routines I used had any problem accepting
    my parameters. Where in all of this, in your definition, has my app
    stopped becoming a 64-bit app?

    For me, it is ok for the documentation to say that a certain item needs
    to be in P0 space. I have no problem putting there and I still have a
    64-bit app with full access to 64-bit address space. Nothing the system requires to be in P0 space is dynamic. It is set it up and forget it
    (at least as far as anything I can remember using).

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to John Dallman on Thu Jan 11 16:04:39 2024
    On 2024-01-09 21:35:00 +0000, John Dallman said:

    In article <unkd47$25cg2$1@dont-email.me>, arne@vajhoej.dk (Arne Vajhj) wrote:

    I suspect that all direct calls to LIB$ and SYS$ no matter if it is
    Macro-32 or Fortran or C would have to be manually edited to use new 64
    bit capable version, but that the various language RTL could switch to
    64 bit capable versions transparently.

    With a sufficiently regular naming scheme, a compiler could make substitutions, but I don't know if the current scheme will cope.

    Cope nope. Best reasonably achievable is probably a lint-like tool
    that'll scan for and point to problem areas.

    Areas of "fun" will be itemlists, quota lists, and specific itemcodes
    and APIs and app-level code that will probably need to be extended or
    replaced such as UAI$_PWD.

    Itemlists are great, right up until you hit the limit. And two passes
    through an itemlist (first for sizing, second for buffers) is less than optimal. (I've worked with message-passing APIs that are far cleaner;
    that have less code cruft, and that hide the remapping involved.

    OpenVMS is reminiscent of PDP-11 RSX-11M these days, in terms of all
    the "fun" involved in keeping the 32-bit source code and 32-bit
    binaries working.

    And if the results of the 64-bit rework are centrally focused on source
    code compatibility with the existing 32-/64-bit APIs and not with
    having a flat 64-bit address space with 64-bit calls throughout, well,
    why bother? Keep that stuff in the current 32-/64-bit world.



    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to Lawrence D'Oliveiro on Thu Jan 11 15:51:26 2024
    On 2024-01-09 22:09:30 +0000, Lawrence D'Oliveiro said:

    On Tue, 9 Jan 2024 14:32:48 -0500, Stephen Hoffman wrote:

    And again, what you are interested here in has been available for many
    years via Sector 7.

    I’m not sure they did a comprehensive enough job. For instance, I
    remember the previous time this came up, reading between the lines in
    one of their case studies, the original customer scenario mentioned
    using DECnet, but that was missiong from the description of the
    solution.

    In the traditional OpenVMS realm, porting apps to newer OpenVMS
    architectures has never been transparent, whether with DECmigrate or
    otherwise. Source code compatibility has been the goal, but full source compatibility wasn't ever achieved. (q.v. OpenVMS porting manuals)

    Nothing on the order of the transparency provided by Rosetta or Rosetta
    2 has ever been available for OpenVMS.

    As for DECnet networking, that's a sizable chunk of inner-mode code to
    make that work, whether in OpenVMS or in Linux using the now-deprecated
    DECnet code. OpenVMS uses an ACP and drivers, and provides an API known
    as VCI. It might be workable to re-create a non-IP network stack in
    user mode with some API at roughly the level of Linux (or OpenVMS) tap,
    though how well that might perform at links running at tens of gigabits
    per second and potentially faster? But for a user app being migrated
    off of OpenVMS, might as well migrate the networking to IP APIs while
    porting the code to the target Sector 7 environment.

    Ain't nobody going to do a complete Sector 7 platform in one shot,
    either. APIs and itemcodes will get dribbled out as needed and
    available and tested, and the really obscure or arcane API usage stuff
    will get re-written or replaced within the apps.

    More generally, I'd also wonder why anybody would target the Linux
    kernel for their kernel transplantation. Serious question. No insult
    intended toward Linux here, but any kernel transplant best considers
    all of the available open-source kernels, if the existing OpenVMS
    kernel is not going to be preserved. Why would anybody pick the Linux
    kernel for a transplant, over the other candidates? Picking Linux also
    means GPL compliance is involved, and that makes things interesting as
    VSI doesn't own full rights to the HPE-provided OpenVMS code.



    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Stephen Hoffman on Thu Jan 11 22:29:42 2024
    On Thu, 11 Jan 2024 15:51:26 -0500, Stephen Hoffman wrote:

    Why would anybody pick the Linux kernel for a
    transplant, over the other candidates?

    Because it already has the widest support for available hardware, and filesystems, and network protocol stacks, and security layers, and virtualization/containerization technologies, and other legacy emulators,
    and other apps.

    In short, it’s the place that will maximize your choices for other, future migrations.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Simon Clubley on Fri Jan 12 00:06:11 2024
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/11/2024 8:56 AM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/10/2024 8:43 AM, Simon Clubley wrote:
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:

    As far as I know, totally 64 bit apps can be implemented on VMS. So, what's the
    problem. The fact that there is also that 32 bit capability hanging around
    should not be a detriment, right?


    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option. >>>>>

    My understanding, which could be totally wrong, is that the major concept of "64
    bit" is about addresses.


    And that is exactly what I am talking about. Not everything in RMS had
    a 64-bit addressing API the last time I checked.

    Simon.


    Then I have to ask, "so what?"=


    You claimed that "totally 64 bit apps can be implemented on VMS".
    I am showing you why that is not the case.

    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS references are still in the executable you create however.

    For text files, that is correct. One does not need to use RMS indexed and relative files.


    What does it matter how RMS works internally?

    Perhaps I'm just the old dog that cannot learn new tricks?


    As above, you claimed that "totally 64 bit apps can be implemented on VMS".
    I am showing you why that is not the case.

    Simon.


    There is a slight difference between "can be" and "always will be".

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to All on Fri Jan 12 00:08:13 2024
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/11/2024 8:56 AM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    On 1/10/2024 8:43 AM, Simon Clubley wrote:
    On 2024-01-09, Dave Froble <davef@tsoft-inc.com> wrote:
    As far as I know, totally 64 bit apps can be implemented on VMS. So, >>>>>>> what's the
    problem. The fact that there is also that 32 bit capability hanging around
    should not be a detriment, right?

    Try using RMS in totally 64-bit mode. Unless there's been further
    development since, not everything in RMS had a 64-bit address option. >>>>>
    My understanding, which could be totally wrong, is that the major concept >>>>> of "64
    bit" is about addresses.

    And that is exactly what I am talking about. Not everything in RMS had >>>> a 64-bit addressing API the last time I checked.

    That is correct. Practically only data related fields in RAB64
    supports 64 bit addresses.

    Then I have to ask, "so what?"=

    You claimed that "totally 64 bit apps can be implemented on VMS".
    I am showing you why that is not the case.

    I guess that depends on what is meant by "totally 64 bit".

    If it means that all addresses stored in process space whether
    user code or VMS code are stored as 64 bit then it indeed seems
    unlikely.

    It it means that in user code all addresses are 64 bit, then that
    should be doable.

    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS
    references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff
    like finding IFI).

    Arne


    And if one is using a database product that has nothing to do with RMS ???

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dave Froble on Fri Jan 12 07:23:50 2024
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS
    references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff
    like finding IFI).

    And if one is using a database product that has nothing to do with RMS ???

    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Mark Berryman on Fri Jan 12 13:28:58 2024
    On 2024-01-11, Mark Berryman <mark@theberrymans.com> wrote:

    Um, if I have a 64-bit app, that would mean I have complete access to
    P0, P1, P2 space. Now, I choose to put some data structures in P0
    space, does that mean that the app is suddenly no longer "totally 64-bit"?


    No, not if it is your choice instead of some API restriction.

    I've written 64-bit apps. I've certainly never had to copy data from P2 space to P0 space because of some limitation. I've used both 32-bit and 64-bit item lists and descriptors, including dynamic descriptors. None
    of the system services or RTL routines I used had any problem accepting
    my parameters. Where in all of this, in your definition, has my app
    stopped becoming a 64-bit app?


    The moment you are forced to keep something at a location that can be
    reached by a 32-bit address because of an API restriction that does not
    have a 64-bit alternative, such as those seen in the RMS APIs.

    That includes if the language RTL is doing the 32-bit API access for you without it ever being explicit in your code.

    For me, it is ok for the documentation to say that a certain item needs
    to be in P0 space. I have no problem putting there and I still have a
    64-bit app with full access to 64-bit address space. Nothing the system requires to be in P0 space is dynamic. It is set it up and forget it
    (at least as far as anything I can remember using).


    Yes, but that's doesn't meet David's claim of being able to create a pure 64-bit application. I was replying to that and nothing else.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to All on Fri Jan 12 14:57:11 2024
    On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS >>>> references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff
    like finding IFI).

    And if one is using a database product that has nothing to do with RMS ???

    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Arne



    Your expectation would be wrong.

    File opens without RMS use QIO to open a file.

    I will state that the RMS PARSE routine is used to parse a filename. But that has nothing to do with an OPEN. I'd also argue that the routine really is misnamed because it has uses outside RMS.

    If you don't believe me, I'll post some code.

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Simon Clubley on Fri Jan 12 14:59:51 2024
    On 1/12/2024 8:28 AM, Simon Clubley wrote:
    On 2024-01-11, Mark Berryman <mark@theberrymans.com> wrote:

    Um, if I have a 64-bit app, that would mean I have complete access to
    P0, P1, P2 space. Now, I choose to put some data structures in P0
    space, does that mean that the app is suddenly no longer "totally 64-bit"? >>

    No, not if it is your choice instead of some API restriction.

    I've written 64-bit apps. I've certainly never had to copy data from P2
    space to P0 space because of some limitation. I've used both 32-bit and
    64-bit item lists and descriptors, including dynamic descriptors. None
    of the system services or RTL routines I used had any problem accepting
    my parameters. Where in all of this, in your definition, has my app
    stopped becoming a 64-bit app?


    The moment you are forced to keep something at a location that can be
    reached by a 32-bit address because of an API restriction that does not
    have a 64-bit alternative, such as those seen in the RMS APIs.

    That includes if the language RTL is doing the 32-bit API access for you without it ever being explicit in your code.

    For me, it is ok for the documentation to say that a certain item needs
    to be in P0 space. I have no problem putting there and I still have a
    64-bit app with full access to 64-bit address space. Nothing the system
    requires to be in P0 space is dynamic. It is set it up and forget it
    (at least as far as anything I can remember using).


    Yes, but that's doesn't meet David's claim of being able to create a pure 64-bit application. I was replying to that and nothing else.

    Simon.


    Simon, did anyone ever inform you, you're too much of a purist?

    :-)

    Also note, I admitted I could be wrong. Did you have to rub it in?

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dave Froble on Fri Jan 12 15:22:26 2024
    On 1/12/2024 2:57 PM, Dave Froble wrote:
    On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS >>>>> references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff
    like finding IFI).

    And if one is using a database product that has nothing to do with
    RMS ???

    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Your expectation would be wrong.

    It happens frequently.

    File opens without RMS use QIO to open a file.

    How does it get the FID?

    I usually do the SYS$OPEN, grab the FID from the NAM block,
    SYS$CLOSE and then do SYS$QIOW with IO$_ACCESS | IO$M_ACCESS.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Dave Froble on Fri Jan 12 20:26:01 2024
    On Fri, 12 Jan 2024 14:57:11 -0500, Dave Froble wrote:

    I will state that the RMS PARSE routine is used to parse a filename.

    That’s just a convenience. You can reimplement it yourself, with the help
    of ACP/XQP QIO calls like IO$_ACCESS.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to Lawrence D'Oliveiro on Fri Jan 12 16:16:58 2024
    On 2024-01-11 22:29:42 +0000, Lawrence D'Oliveiro said:

    On Thu, 11 Jan 2024 15:51:26 -0500, Stephen Hoffman wrote:

    Why would anybody pick the Linux kernel for a transplant, over the
    other candidates?

    Because it already has the widest support for available hardware, and filesystems, and network protocol stacks, and security layers, and virtualization/containerization technologies, and other legacy
    emulators, and other apps.

    In short, it’s the place that will maximize your choices for other,
    future migrations.

    Little of that is applicable to a kernel transplant. For no obvious
    cost or staff or schedule savings. Worse still for the discussion,
    maximizing supported platforms and platform permutations maximizes
    testing and support expenses.

    Why would VSI and their third-party vendors want to do (pay for) any of
    that? And why would VSI want to do that atop the GPL'd Linux kernel?

    VSI already have a working x86-64 kernel, and are presently working on
    layered products.

    Approximately nobody is going to want to pay for and be testing OpenVMS
    and third-party and end-user apps across multiple platforms, either.
    Not without Rosetta-like transparency, and other assists. All of which
    is presently lacking.

    Next OpenVMS port is conceivably to AArch64 or maybe RISC-V, and the
    start of that hypothetical port is a decade or more out at the
    earliest, and that port only happens well after that server hardware is
    well established, and as interest in x86-64 is declining. And that next
    port after x86-64 gets somewhat easier, should LLVM support be
    available on the target platform.

    The market for OpenVMS x86-64 is tiny, and not known for high growth.
    The market for OpenVMS on a Linux kernel also available on "Alpha, ARC,
    ARM, C-Sky, Hexagon, LoongArch, m68k, Microblaze, MIPS, Nios II,
    OpenRISC, PA-RISC, PowerPC, RISC-V, s390, SuperH, SPARC, x86, Xtensa", cross-platform, etc., is even smaller.

    TL;DR: Massive work. Distant future payback. At best. If at all.


    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to Stephen Hoffman on Fri Jan 12 22:42:00 2024
    In article <unsa8a$3jmr7$1@dont-email.me>, seaohveh@hoffmanlabs.invalid (Stephen Hoffman) wrote:

    And that next port after x86-64 gets somewhat easier,
    should LLVM support be available on the target platform.

    LLVM is highly retargetable, and supports a large range of target architectures. It's by far the most-used compiler for ARM64 (since it's
    what iOS and Android use) and supports RISC-V. It's also displaced IBM's
    own compilers on AIX, and is the system compiler for FreeBSD and some
    OpenBSD architectures.

    New architectures that aim to be usable for general-purpose computing
    have to support at least one of GCC and LLVM, and supporting LLVM is
    easier, since its code is newer and much better-structured.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to All on Fri Jan 12 18:46:33 2024
    On 1/12/2024 3:22 PM, Arne Vajhøj wrote:
    On 1/12/2024 2:57 PM, Dave Froble wrote:
    On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS >>>>>> references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff
    like finding IFI).

    And if one is using a database product that has nothing to do with RMS ??? >>>
    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Your expectation would be wrong.

    It happens frequently.

    File opens without RMS use QIO to open a file.

    How does it get the FID?

    I'll post pieces of code to keep this short, well, relatively ..

    ; Parse the file specification, using the RMS $PARSE service
    ;
    MOVAB WRK_FAB,R8 ; Load FAB address
    MOVAB WRK_NAM,FAB$L_NAM(R8) ; Set name block address
    MOVL DSC$A_POINTER(R3),FAB$L_FNA(R8)
    CVTWB DSC$W_LENGTH(R3),FAB$B_FNS(R8)
    $PARSE FAB = R8 ; Invoke RMS parsing service
    BLBS R0,200$ ; Continue if all is okay
    BRW ERRORS ; Else return with error code
    ;
    ; Set up the filename descriptor for the ACP access
    ;
    200$: MOVL FAB$L_NAM(R8),R8 ; Point to NAM block
    MOVZBL NAM$B_ESL(R8),R0 ; Length of expanded string
    MOVL NAM$L_ESA(R8),R1 ; Address of expanded string
    LOCC #^A"]",R0,(R1) ; Find end of directory
    SUBW3 #1,R0,WRK_Q_FILDSC+DSC$W_LENGTH
    ADDL3 #1,R1,WRK_Q_FILDSC+DSC$A_POINTER

    ---

    ; Assign the VMS I/O channel number
    ;
    MOVAB WRK_Q_DEVDSC,R0 ; Set descriptor address
    CVTBW NAM$T_DVI(R8),DSC$W_LENGTH(R0)
    MOVAB NAM$T_DVI+1(R8),DSC$A_POINTER(R0)
    $ASSIGN_S DEVNAM=(R0),CHAN=WRK_W_VMSCHN,ACMODE=#PSL$C_USER
    BLBS R0,300$ ; Continue if all is okay
    210$: BRW ERRORS ; Else exit

    ---

    ; Fill the $QIO block
    ;
    300$: MOVAB WRK_QIO,R9 ; Set $QIO parameter block address
    MOVAQ WRK_Q_IOSB,QIO$_IOSB(R9) ; I/O status block
    MOVZWL WRK_W_VMSCHN,QIO$_CHAN(R9); Set VMS channel number
    MOVZWL #<IO$_ACCESS!IO$M_ACCESS>,QIO$_FUNC(R9)
    MOVAQ WRK_Q_FIBDSC,QIO$_P1(R9) ; FIB descriptor address
    MOVAQ WRK_Q_FILDSC,QIO$_P2(R9) ; Filename specification descrip
    tor address
    CLRQ QIO$_P3(R9) ; Clear (p3,p4)
    MOVAB WRK_ATRLST,QIO$_P5(R9) ; Attributes requested
    ;
    ; Se
  • From Dave Froble@21:1/5 to Lawrence D'Oliveiro on Fri Jan 12 18:48:14 2024
    On 1/12/2024 3:26 PM, Lawrence D'Oliveiro wrote:
    On Fri, 12 Jan 2024 14:57:11 -0500, Dave Froble wrote:

    I will state that the RMS PARSE routine is used to parse a filename.

    That’s just a convenience. You can reimplement it yourself, with the help of ACP/XQP QIO calls like IO$_ACCESS.


    But that would be pretty stupid. Like re-inventing the wheel.

    Should DEC ever upgrade the $PARSE, you've already got that.

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dave Froble on Fri Jan 12 19:11:36 2024
    On 1/12/2024 6:46 PM, Dave Froble wrote:
    On 1/12/2024 3:22 PM, Arne Vajhøj wrote:
    On 1/12/2024 2:57 PM, Dave Froble wrote:
    On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language.
    The RMS
    references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff
    like finding IFI).

    And if one is using a database product that has nothing to do with
    RMS ???

    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Your expectation would be wrong.

    It happens frequently.

    File opens without RMS use QIO to open a file.

    How does it get the FID?

    I'll post pieces of code to keep this short, well, relatively ..

    300$:   MOVAB   WRK_QIO,R9              ; Set $QIO parameter block address
            MOVAQ   WRK_Q_IOSB,QIO$_IOSB(R9) ; I/O status block
            MOVZWL  WRK_W_VMSCHN,QIO$_CHAN(R9); Set VMS channel number
            MOVZWL  #<IO$_ACCESS!IO$M_ACCESS>,QIO$_FUNC(R9)
            MOVAQ   WRK_Q_FIBDSC,QIO$_P1(R9)        ; FIB descriptor address
            MOVAQ   WRK_Q_FILDSC,QIO$_P2(R9)        ; Filename specification descrip
    tor address
            CLRQ    QIO$_P3(R9)             ; Clear (p3,p4)
            MOVAB   WRK_ATRLST,QIO$_P5(R9)  ; Attributes requested
    ;
    ;       Set-up the FIB
    ;
            MOVAB   WRK_FIB,R6              ; Base of FIB
            CLRQ    (R6)+                   ; Clear (1,2)
            CLRQ    (R6)+                   ; (3,4)
            CLRQ    (R6)+                   ; (5,6)
            CLRQ    (R6)+                   ; (7,8)
            CLRQ    (R6)+                   ; (9,10)
            CLRQ    (R6)                    ; (11,12)
            MOVAB   WRK_FIB,R6              ; Base of FIB
            MOVL    R6,WRK_Q_FIBDSC+DSC$A_POINTER
            MOVW    #<12*4>,WRK_Q_FIBDSC+DSC$W_LENGTH
            MOVZWL  TBL_ACCTL[R4],FIB$L_ACCTL(R6)
            MOVL    NAM$W_DID(R8),FIB$W_DID(R6)
            MOVW    NAM$W_DID+4(R8),FIB$W_DID+4(R6)

    ---

    ;
    700$:   $QIOW_G (R9)                    ; Issue the $QIO

    Ok, that's just snips.  You'd need the entire sources to actually follow
    the details.  But, the thing is, no part of RMS was used to open the file.

    I usually do the SYS$OPEN, grab the FID from the NAM block,
    SYS$CLOSE and then do SYS$QIOW with IO$_ACCESS | IO$M_ACCESS.

    You know something I don't.

    I have grabbed the FID from NAM and used that to access
    the file for like 35 years.

    And now I see that you just specify DID in FIB and give
    filename as P2.

    With the point being that SYS$PARSE return actual DID and
    a zero FID in NAM while SYS$OPEN return both DID and FID
    in NAM.

    Clever.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Dave Froble on Sat Jan 13 00:21:49 2024
    On Fri, 12 Jan 2024 18:48:14 -0500, Dave Froble wrote:

    On 1/12/2024 3:26 PM, Lawrence D'Oliveiro wrote:

    On Fri, 12 Jan 2024 14:57:11 -0500, Dave Froble wrote:

    I will state that the RMS PARSE routine is used to parse a filename.

    That’s just a convenience. You can reimplement it yourself, with the
    help of ACP/XQP QIO calls like IO$_ACCESS.

    But that would be pretty stupid. Like re-inventing the wheel.

    Should DEC ever upgrade the $PARSE, you've already got that.

    On the other hand, they have never done so. So there has been more than
    enough time (some might say, too much) to come up with your own, much
    better version. Like adding the extra wildcard types Simon Clubley asked
    for elsewhere.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to All on Sat Jan 13 01:18:00 2024
    On 1/12/2024 7:11 PM, Arne Vajhøj wrote:
    On 1/12/2024 6:46 PM, Dave Froble wrote:
    On 1/12/2024 3:22 PM, Arne Vajhøj wrote:
    On 1/12/2024 2:57 PM, Dave Froble wrote:
    On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS >>>>>>>> references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff >>>>>>> like finding IFI).

    And if one is using a database product that has nothing to do with RMS ???

    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Your expectation would be wrong.

    It happens frequently.

    File opens without RMS use QIO to open a file.

    How does it get the FID?

    I'll post pieces of code to keep this short, well, relatively ..

    300$: MOVAB WRK_QIO,R9 ; Set $QIO parameter block address >> MOVAQ WRK_Q_IOSB,QIO$_IOSB(R9) ; I/O status block
    MOVZWL WRK_W_VMSCHN,QIO$_CHAN(R9); Set VMS channel number
    MOVZWL #<IO$_ACCESS!IO$M_ACCESS>,QIO$_FUNC(R9)
    MOVAQ WRK_Q_FIBDSC,QIO$_P1(R9) ; FIB descriptor address
    MOVAQ WRK_Q_FILDSC,QIO$_P2(R9) ; Filename specification descrip
    tor address
    CLRQ QIO$_P3(R9) ; Clear (p3,p4)
    MOVAB WRK_ATRLST,QIO$_P5(R9) ; Attributes requested
    ;
    ; Set-up the FIB
    ;
    MOVAB WRK_FIB,R6 ; Base of FIB
    CLRQ (R6)+ ; Clear (1,2)
    CLRQ (R6)+ ; (3,4)
    CLRQ (R6)+ ; (5,6)
    CLRQ (R6)+ ; (7,8)
    CLRQ (R6)+ ; (9,10)
    CLRQ (R6) ; (11,12)
    MOVAB WRK_FIB,R6 ; Base of FIB
    MOVL R6,WRK_Q_FIBDSC+DSC$A_POINTER
    MOVW #<12*4>,WRK_Q_FIBDSC+DSC$W_LENGTH
    MOVZWL TBL_ACCTL[R4],FIB$L_ACCTL(R6)
    MOVL NAM$W_DID(R8),FIB$W_DID(R6)
    MOVW NAM$W_DID+4(R8),FIB$W_DID+4(R6)

    ---

    ;
    700$: $QIOW_G (R9) ; Issue the $QIO

    Ok, that's just snips. You'd need the entire sources to actually follow the >> details. But, the thing is, no part of RMS was used to open the file.

    I usually do the SYS$OPEN, grab the FID from the NAM block,
    SYS$CLOSE and then do SYS$QIOW with IO$_ACCESS | IO$M_ACCESS.

    You know something I don't.

    I have grabbed the FID from NAM and used that to access
    the file for like 35 years.

    And now I see that you just specify DID in FIB and give
    filename as P2.

    With the point being that SYS$PARSE return actual DID and
    a zero FID in NAM while SYS$OPEN return both DID and FID
    in NAM.

    Clever.

    Arne

    Credit where credit is due. A friend named Ben Carter did that piece.

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Sat Jan 13 11:11:01 2024
    On 1/11/24 6:45 AM, Simon Clubley wrote:
    On 2024-01-10, Mark Berryman <mark@theberrymans.com> wrote:
    On 1/10/24 6:40 AM, Simon Clubley wrote:
    On 2024-01-09, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Tue, 9 Jan 2024 14:32:48 -0500, Stephen Hoffman wrote:

    And again, what you are interested here in has been available for many >>>>> years via Sector 7.

    I?m not sure they did a comprehensive enough job. For instance, I remember >>>> the previous time this came up, reading between the lines in one of their >>>> case studies, the original customer scenario mentioned using DECnet, but >>>> that was missiong from the description of the solution.

    DECnet should not be in use in today's security world and a customer
    should have been forced away from using DECnet anyway due to external
    auditing and security standards.

    .
    .
    .

    Hogwash. DECnet can be made just as secure as any IP communication by
    simply using IP transports. A couple of simple examples:

    1. Run DECnet phase V. Use DECnet-over-IP, and encrypt it with IPSEC
    before it ever leaves your host. This not only encrypts all of your
    DECnet traffic but it means that DECnet proxies are now as secure as
    your IPSEC profile.

    1a. If you are running OpenVMS on x86, TCP/IP Services does not
    currently provide IPSEC and Multinet is not yet available. However,
    VMware ESXi does support IPSEC. You can configure your ESXi host to do
    the encryption for you. You just need to do your DECnet-over-IP traffic
    using IPv6.

    2. Run DECnet phase IV. Install pyDECnet on any host in your LAN that
    supports python (I use a dedicated raspberry pi). This will be your
    DECnet router. Isolate DECnet traffic to its own VLAN. All off-LAN
    DECnet traffic is encrypted by the pyDECnet host, again, likely using IPSEC. >>
    More security that this is possible. If you have a security requirement
    this doesn't meet, let me know.


    I am amused and saddened that whenever I raise this issue, people immediately assume that I am talking about MITM attacks only and address that only.

    The fact is that MITM attacks are only a small part of the attack surface. Far more common are attacks against the listening services themselves from connections you initiate, not those you intercept.

    For example, in 2) above, how does this address clients on an authorised
    VLAN being able to send malformed packets to a server with an inappropriately fully-privileged EVL listener that has a dodgy message parser built into it ?

    The only hosts I speak DECnet with are trusted hosts. No other hosts
    can even reach my DECnet stack to try to probe it. I suspect this to be
    a common setup.

    The purpose of a secure setup is to both make things as difficult as
    possible (but never impossible) to perform any sort of unauthorized or inappropriate activity, and to be able to trace it if it happens. By
    isolating DECnet traffic to its own VLAN, it becomes trivial to monitor
    said traffic and isolate and deal with anything nefarious.

    On the other hand, other platforms have had holes in their SSL (i.e.
    encrypted TCP traffic) implementation that made it possible for
    outsiders to take control of that host. Sadly, because the incoming
    data was encrypted, while it was possible to determine that the event
    happened - tracking it back to its source was either difficult or
    impossible (I can't remember which). With DECnet however, nothing
    reaches my host that I can't see in the clear.

    Also, you are out of date. EVL is not fully privileged. It only has
    SYSNAM, OPER, and SYSPRV privileges and its listener only runs in
    unprivileged user mode.
    .
    .
    .

    I also find it amusing that whenever I raise this issue, there is nothing
    in the DECnet world that protects data in motion and you all have to
    suggest a protocol that came from the rival TCP/IP world instead. :-)

    So? IP traffic frequently runs over non-IP pipes to get from point A to
    point B. In fact, if I'm being pedantic, IP traffic gets nowhere
    without some layer-2 protocol to encapsulate and carry it.

    As for me, I don't consider them "rival" stacks. I use them in parallel
    for different purposes.

    PS: I wonder if, 2 years on, whether VSI has got around to fixing those issues in DECnet Phase IV yet ?

    Beyond your previously mentioned ability to crash EVL, what issues would
    those be (I'm genuinely curious)?

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Reagan@21:1/5 to Dave Froble on Sat Jan 13 14:22:48 2024
    On 1/12/2024 6:46 PM, Dave Froble wrote:
    On 1/12/2024 3:22 PM, Arne Vajhøj wrote:
    On 1/12/2024 2:57 PM, Dave Froble wrote:
    On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language.
    The RMS
    references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff
    like finding IFI).

    And if one is using a database product that has nothing to do with
    RMS ???

    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Your expectation would be wrong.

    It happens frequently.

    File opens without RMS use QIO to open a file.

    How does it get the FID?

    I'll post pieces of code to keep this short, well, relatively ..

    ;       Parse the file specification, using the RMS $PARSE service
    ;
            MOVAB   WRK_FAB,R8              ; Load FAB address
            MOVAB   WRK_NAM,FAB$L_NAM(R8)   ; Set name block address
            MOVL    DSC$A_POINTER(R3),FAB$L_FNA(R8)
            CVTWB   DSC$W_LENGTH(R3),FAB$B_FNS(R8)
            $PARSE  FAB = R8                ; Invoke RMS parsing service
            BLBS    R0,200$                 ; Continue if all is okay
            BRW     ERRORS                  ; Else return with error code
    ;
    ;       Set up the filename descriptor for the ACP access
    ;
    200$:   MOVL    FAB$L_NAM(R8),R8        ; Point to NAM block
            MOVZBL  NAM$B_ESL(R8),R0        ; Length of expanded string
            MOVL    NAM$L_ESA(R8),R1        ; Address of expanded string
            LOCC    #^A"]",R0,(R1)          ; Find end of directory
            SUBW3   #1,R0,WRK_Q_FILDSC+DSC$W_LENGTH
            ADDL3   #1,R1,WRK_Q_FILDSC+DSC$A_POINTER


    Please don't use that code. Looking for a hard-coded closing
    bracket? Oh pleeeze...

    Use the various NAM$B_DIR,NAM$L_DIR fields or use $FILESCAN.

    I immediately stopped looking when I saw that LOCC.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat Jan 13 20:31:31 2024
    Op 13.jan.2024 om 20:22 schreef John Reagan:
    On 1/12/2024 6:46 PM, Dave Froble wrote:
    On 1/12/2024 3:22 PM, Arne Vajhøj wrote:
    On 1/12/2024 2:57 PM, Dave Froble wrote:
    On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. >>>>>>>> The RMS
    references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff >>>>>>> like finding IFI).

    And if one is using a database product that has nothing to do with >>>>>> RMS ???

    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Your expectation would be wrong.

    It happens frequently.

    File opens without RMS use QIO to open a file.

    How does it get the FID?

    I'll post pieces of code to keep this short, well, relatively ..

    ;       Parse the file specification, using the RMS $PARSE service
    ;
             MOVAB   WRK_FAB,R8              ; Load FAB address
             MOVAB   WRK_NAM,FAB$L_NAM(R8)   ; Set name block address
             MOVL    DSC$A_POINTER(R3),FAB$L_FNA(R8)
             CVTWB   DSC$W_LENGTH(R3),FAB$B_FNS(R8)
             $PARSE  FAB = R8                ; Invoke RMS parsing service
             BLBS    R0,200$                 ; Continue if all is okay
             BRW     ERRORS                  ; Else return with error code
    ;
    ;       Set up the filename descriptor for the ACP access
    ;
    200$:   MOVL    FAB$L_NAM(R8),R8        ; Point to NAM block
             MOVZBL  NAM$B_ESL(R8),R0        ; Length of expanded string
             MOVL    NAM$L_ESA(R8),R1        ; Address of expanded string
             LOCC    #^A"]",R0,(R1)          ; Find end of directory
             SUBW3   #1,R0,WRK_Q_FILDSC+DSC$W_LENGTH
             ADDL3   #1,R1,WRK_Q_FILDSC+DSC$A_POINTER


    Please don't use that code.  Looking for a hard-coded closing
    bracket?  Oh pleeeze...

    Use the various NAM$B_DIR,NAM$L_DIR fields or use $FILESCAN.

    ...


    Amongst others to recognize also directories that are delimited with <>
    instead of [].

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to John Reagan on Sat Jan 13 18:30:36 2024
    On 1/13/2024 2:22 PM, John Reagan wrote:
    On 1/12/2024 6:46 PM, Dave Froble wrote:
    On 1/12/2024 3:22 PM, Arne Vajhøj wrote:
    On 1/12/2024 2:57 PM, Dave Froble wrote:
    On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
    On 1/12/2024 12:08 AM, Dave Froble wrote:
    On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
    On 1/11/2024 1:17 PM, Simon Clubley wrote:
    On 2024-01-11, Dave Froble <davef@tsoft-inc.com> wrote:
    If RMS doesn't fit your requirements, then don't use it.

    Everyone uses RMS, even if it hidden from you by the language. The RMS >>>>>>>> references are still in the executable you create however.

    In practice yes.

    In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
    it is very cumbersome (especially if one cannot use RMS for stuff >>>>>>> like finding IFI).

    And if one is using a database product that has nothing to do with RMS ???

    I would still expect that database product to use RMS to open
    the database file even if the actual IO is done by
    SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.

    Your expectation would be wrong.

    It happens frequently.

    File opens without RMS use QIO to open a file.

    How does it get the FID?

    I'll post pieces of code to keep this short, well, relatively ..

    ; Parse the file specification, using the RMS $PARSE service
    ;
    MOVAB WRK_FAB,R8 ; Load FAB address
    MOVAB WRK_NAM,FAB$L_NAM(R8) ; Set name block address
    MOVL DSC$A_POINTER(R3),FAB$L_FNA(R8)
    CVTWB DSC$W_LENGTH(R3),FAB$B_FNS(R8)
    $PARSE FAB = R8 ; Invoke RMS parsing service
    BLBS R0,200$ ; Continue if all is okay
    BRW ERRORS ; Else return with error code
    ;
    ; Set up the filename descriptor for the ACP access
    ;
    200$: MOVL FAB$L_NAM(R8),R8 ; Point to NAM block
    MOVZBL NAM$B_ESL(R8),R0 ; Length of expanded string
    MOVL NAM$L_ESA(R8),R1 ; Address of expanded string
    LOCC #^A"]",R0,(R1) ; Find end of directory
    SUBW3 #1,R0,WRK_Q_FILDSC+DSC$W_LENGTH
    ADDL3 #1,R1,WRK_Q_FILDSC+DSC$A_POINTER


    Please don't use that code. Looking for a hard-coded closing
    bracket? Oh pleeeze...

    Use the various NAM$B_DIR,NAM$L_DIR fields or use $FILESCAN.

    I immediately stopped looking when I saw that LOCC.


    Not a problem John. The database product is no longer in use. And most likely will never be used again.

    Data could have been ">" :-)

    Was just showing Arne that RMS is not essential when opening a VMS file.

    What might you expect from 1984?

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Dave Froble on Mon Jan 15 13:30:13 2024
    On 2024-01-12, Dave Froble <davef@tsoft-inc.com> wrote:

    I'll post pieces of code to keep this short, well, relatively ..

    ; Parse the file specification, using the RMS $PARSE service
    ;
    MOVAB WRK_FAB,R8 ; Load FAB address
    MOVAB WRK_NAM,FAB$L_NAM(R8) ; Set name block address
    MOVL DSC$A_POINTER(R3),FAB$L_FNA(R8)
    CVTWB DSC$W_LENGTH(R3),FAB$B_FNS(R8)
    $PARSE FAB = R8 ; Invoke RMS parsing service
    BLBS R0,200$ ; Continue if all is okay
    BRW ERRORS ; Else return with error code

    That's 32-bit code without a 64-bit version available. :-)

    ;
    ; Set up the filename descriptor for the ACP access
    ;
    200$: MOVL FAB$L_NAM(R8),R8 ; Point to NAM block
    MOVZBL NAM$B_ESL(R8),R0 ; Length of expanded string
    MOVL NAM$L_ESA(R8),R1 ; Address of expanded string
    LOCC #^A"]",R0,(R1) ; Find end of directory
    SUBW3 #1,R0,WRK_Q_FILDSC+DSC$W_LENGTH
    ADDL3 #1,R1,WRK_Q_FILDSC+DSC$A_POINTER


    Likewise. :-) I see others have already commented on the hardcoded "]". :-)

    Sorry David, but that code could not be used in a pure 64-bit application. :-)

    Simon.

    PS: "$ set response/mode=good_natured" just in case it's not clear...

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Simon Clubley on Mon Jan 15 23:17:04 2024
    On 1/15/2024 8:30 AM, Simon Clubley wrote:
    On 2024-01-12, Dave Froble <davef@tsoft-inc.com> wrote:

    I'll post pieces of code to keep this short, well, relatively ..

    ; Parse the file specification, using the RMS $PARSE service
    ;
    MOVAB WRK_FAB,R8 ; Load FAB address
    MOVAB WRK_NAM,FAB$L_NAM(R8) ; Set name block address
    MOVL DSC$A_POINTER(R3),FAB$L_FNA(R8)
    CVTWB DSC$W_LENGTH(R3),FAB$B_FNS(R8)
    $PARSE FAB = R8 ; Invoke RMS parsing service
    BLBS R0,200$ ; Continue if all is okay
    BRW ERRORS ; Else return with error code

    That's 32-bit code without a 64-bit version available. :-)

    ;
    ; Set up the filename descriptor for the ACP access
    ;
    200$: MOVL FAB$L_NAM(R8),R8 ; Point to NAM block
    MOVZBL NAM$B_ESL(R8),R0 ; Length of expanded string
    MOVL NAM$L_ESA(R8),R1 ; Address of expanded string
    LOCC #^A"]",R0,(R1) ; Find end of directory
    SUBW3 #1,R0,WRK_Q_FILDSC+DSC$W_LENGTH
    ADDL3 #1,R1,WRK_Q_FILDSC+DSC$A_POINTER


    Likewise. :-) I see others have already commented on the hardcoded "]". :-)

    Sorry David, but that code could not be used in a pure 64-bit application. :-)

    Simon.

    PS: "$ set response/mode=good_natured" just in case it's not clear...


    Uh, Simon, what does 64 bit have to do with this?

    The discussion was, Arne mentioned that RMS must be used to open a file. I gave
    some example code showing that is not the case.

    As for the "]", yeah, something bad, but it's been there for 40 years now,and never a single issue. I guess I can live with that experience. And I do agree,
    is is bad coding.

    Outside of some stuff from DEC, I've never seen <> used in place of []. Don't know why both are valid. Never seen anything of that nature elsewhere.

    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Jan-Erik_S=C3=B6derholm?=@21:1/5 to All on Tue Jan 16 14:15:13 2024
    Den 2024-01-16 kl. 05:17, skrev Dave Froble:

    Outside of some stuff from DEC, I've never seen <> used in place of [].
    Don't know why both are valid.  Never seen anything of that nature elsewhere.


    Depending on your language variant of your keyboard, the <> are
    simply easier to access than []. Such as the "Nordic" variants.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dave Froble on Tue Jan 16 08:17:26 2024
    On 1/15/2024 11:17 PM, Dave Froble wrote:
    As for the "]", yeah, something bad, but it's been there for 40 years
    now,and never a single issue.  I guess I can live with that experience.
    And I do agree, is is bad coding.

    Outside of some stuff from DEC, I've never seen <> used in place of [].
    Don't know why both are valid.  Never seen anything of that nature elsewhere.

    I always thought it was a leftover from some older DEC OS,
    but maybe not.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Dave Froble on Tue Jan 16 13:39:12 2024
    On 2024-01-15, Dave Froble <davef@tsoft-inc.com> wrote:

    Uh, Simon, what does 64 bit have to do with this?


    During the pure 64-bit application discussion you mentioned you didn't
    use RMS. I was just pointing out that the APIs you _do_ use are also
    limited to 32-bits. :-)

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Simon Clubley on Tue Jan 16 21:12:33 2024
    On Thu, 11 Jan 2024 13:48:37 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-10, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    Nowadays, the whole Internet is built on the concept of running secure
    protocols over insecure channels. Those secure protocols can in turn be
    channels for older, insecure protocols--this is not rocket science.

    Things like SSL only protect data in motion. It does nothing to help you
    if the server software on the receiving end of that SSL connection has a vulnerability within it.

    Not sure why that’s relevant to the issue of whether to support DECnet or not.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Lawrence D'Oliveiro on Wed Jan 17 13:11:31 2024
    On 2024-01-16, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Thu, 11 Jan 2024 13:48:37 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-10, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    Nowadays, the whole Internet is built on the concept of running secure
    protocols over insecure channels. Those secure protocols can in turn be
    channels for older, insecure protocols--this is not rocket science.

    Things like SSL only protect data in motion. It does nothing to help you
    if the server software on the receiving end of that SSL connection has a
    vulnerability within it.

    Not sure why that?s relevant to the issue of whether to support DECnet or not.

    The server software with the vulnerability could be the DECnet stack
    running on that server.

    BTW, has anyone been able to do a $ show proc/priv against the EVL listener
    PID and are you able to post the output ?

    I notice that no-one, including Mark yet, has posted this, so I wonder
    just how many of you are actually running the DECnet Phase IV stack on
    your machines.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Simon Clubley on Wed Jan 17 20:21:32 2024
    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-16, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    On Thu, 11 Jan 2024 13:48:37 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-10, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    Nowadays, the whole Internet is built on the concept of running
    secure protocols over insecure channels. Those secure protocols can
    in turn be channels for older, insecure protocols--this is not rocket
    science.

    Things like SSL only protect data in motion. It does nothing to help
    you if the server software on the receiving end of that SSL connection
    has a vulnerability within it.

    Not sure why that’s relevant to the issue of whether to support DECnet
    or not.

    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Simon Clubley on Wed Jan 17 19:36:38 2024
    On 1/17/2024 8:11 AM, Simon Clubley wrote:
    BTW, has anyone been able to do a $ show proc/priv against the EVL listener PID and are you able to post the output ?

    Full priv on my VMS 8.4-2L2 Alpha and 9.2-1 x86-64.

    I notice that no-one, including Mark yet, has posted this, so I wonder
    just how many of you are actually running the DECnet Phase IV stack on
    your machines.

    Among hobbyists I expect most to have DECnet installed - to get
    "the real VMS experience". And 20 years ago many would have went
    with V, but today I think a lot just go with IV because it is
    simpler and does what they need.

    For real use there are probably more TCP/IP only among the
    newly installed systems while the older systems probably have
    either V or IV installed.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Simon Clubley on Wed Jan 17 21:43:42 2024
    On 1/17/2024 8:11 AM, Simon Clubley wrote:
    On 2024-01-16, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Thu, 11 Jan 2024 13:48:37 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-10, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    Nowadays, the whole Internet is built on the concept of running secure >>>> protocols over insecure channels. Those secure protocols can in turn be >>>> channels for older, insecure protocols--this is not rocket science.

    Things like SSL only protect data in motion. It does nothing to help you >>> if the server software on the receiving end of that SSL connection has a >>> vulnerability within it.

    Not sure why that?s relevant to the issue of whether to support DECnet or
    not.

    The server software with the vulnerability could be the DECnet stack
    running on that server.

    BTW, has anyone been able to do a $ show proc/priv against the EVL listener PID and are you able to post the output ?

    I notice that no-one, including Mark yet, has posted this, so I wonder
    just how many of you are actually running the DECnet Phase IV stack on
    your machines.

    Simon.


    Well, rather old, on a VAX/VMS V7.2 system.

    $ show proc/priv/id=90

    17-JAN-2024 21:37:35.63 User: DECNET Process ID: 00000090
    Node: DFE90A Process name: "EVL"

    Authorized privileges:
    ACNT ALLSPOOL ALTPRI AUDIT BUGCHK BYPASS CMEXEC CMKRNL
    IMPERSONATDIAGNOSE DOWNGRADE EXQUOTA GROUP GRPNAM GRPPRV IMPORT
    LOG_IO MOUNT NETMBX OPER PFNMAP PHY_IO PRMCEB PRMGBL
    PRMMBX PSWAPM READALL SECURITY SETPRV SHARE SHMEM SYSGBL
    SYSLCK SYSNAM SYSPRV TMPMBX UPGRADE VOLPRO WORLD

    Process privileges:
    ACNT may suppress accounting messages
    ALLSPOOL may allocate spooled device
    ALTPRI may set any priority value
    AUDIT may direct audit to system security audit log
    BUGCHK may make bug check log entries
    BYPASS may bypass all object access controls
    CMEXEC may change mode to exec
    CMKRNL may change mode to kernel
    IMPERSONATE may impersonate another user
    DIAGNOSE may diagnose devices
    DOWNGRADE may downgrade object secrecy
    EXQUOTA may exceed disk quota
    GROUP may affect other processes in same group
    GRPNAM may insert in group logical name table
    GRPPRV may access group objects via system protection
    IMPORT may set classification for unlabeled object
    LOG_IO may do logical i/o
    MOUNT may execute mount acp function
    NETMBX may create network device
    OPER may perform operator functions
    PFNMAP may map to specific physical pages
    PHY_IO may do physical i/o
    PRMCEB may create permanent common event clusters
    PRMGBL may create permanent global sections
    PRMMBX may create permanent mailbox
    PSWAPM may change process swap mode
    READALL may read anything as the owner
    SECURITY may perform security administration functions
    SETPRV may set any privilege bit
    SHARE may assign channels to non-shared devices
    SHMEM may create/delete objects in shared memory
    SYSGBL may create system wide global sections
    SYSLCK may lock system wide resources
    SYSNAM may insert in system logical name table
    SYSPRV may access objects via system protection
    TMPMBX may create temporary mailbox
    UPGRADE may upgrade object integrity
    VOLPRO may override volume protection
    WORLD may affect other processes in the world

    Process rights:
    SYSTEM resource
    BATCH

    System rights:
    SYS$NODE_DFE90A


    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Lawrence D'Oliveiro on Thu Jan 18 13:06:21 2024
    On 2024-01-17, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:
    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    Because, at best, it has only had a very small fraction of the effort
    spent on probing it that the mainstream network stacks have had.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to arne@vajhoej.dk on Thu Jan 18 13:18:10 2024
    On 2024-01-17, Arne Vajhj <arne@vajhoej.dk> wrote:
    On 1/17/2024 8:11 AM, Simon Clubley wrote:
    BTW, has anyone been able to do a $ show proc/priv against the EVL listener >> PID and are you able to post the output ?

    Full priv on my VMS 8.4-2L2 Alpha and 9.2-1 x86-64.


    Thank you for checking Arne. Seeing this still being the case on x86-64
    was an unpleasant surprise.

    So, that's two full years VSI have had to look at this and they have
    done nothing.

    I wonder if they are sitting on any other issues that are just a weakness
    at the moment, but may become an actual vulnerability if either further
    probing is done, or if another unrelated issue is discovered and these
    are chained together with that new issue.

    For those of you with the premium support contracts who are worried about
    this, then a formal _polite_ request to VSI to answer the above question
    and to ask when the DECnet issues will be fixed might be in order.

    You may have more luck getting them to fix these issues than I have had.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Dave Froble on Thu Jan 18 13:20:40 2024
    On 2024-01-17, Dave Froble <davef@tsoft-inc.com> wrote:

    Well, rather old, on a VAX/VMS V7.2 system.

    $ show proc/priv/id=90

    17-JAN-2024 21:37:35.63 User: DECNET Process ID: 00000090
    Node: DFE90A Process name: "EVL"

    Authorized privileges:
    ACNT ALLSPOOL ALTPRI AUDIT BUGCHK BYPASS CMEXEC CMKRNL
    IMPERSONATDIAGNOSE DOWNGRADE EXQUOTA GROUP GRPNAM GRPPRV IMPORT
    LOG_IO MOUNT NETMBX OPER PFNMAP PHY_IO PRMCEB PRMGBL
    PRMMBX PSWAPM READALL SECURITY SETPRV SHARE SHMEM SYSGBL
    SYSLCK SYSNAM SYSPRV TMPMBX UPGRADE VOLPRO WORLD


    [snip]

    Thank you for checking David. I wonder when VSI will get around to finally fixing these issues ?

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Simon Clubley on Thu Jan 18 08:33:24 2024
    On 1/18/2024 8:06 AM, Simon Clubley wrote:
    On 2024-01-17, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:
    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    Because, at best, it has only had a very small fraction of the effort
    spent on probing it that the mainstream network stacks have had.

    Less probing and less evolution.

    I don't think DECnet phase IV was worse than other networking
    at the time (late 70's to early 90's). But other networking
    which ended up being almost entirely TCP/IP evolved.

    I don't know if phase V had better options that just did
    not materialize because everyone only used the phase IV
    compatibility stuff in phase V.

    But if DEC and VMS had evolved like the rest of the IT world
    then we would have been at phase VII or VIII now - and I am
    sure that it would have been much better security wise.

    Well - back to the real world. DECnet is old and has not
    evolved.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Simon Clubley on Thu Jan 18 08:37:43 2024
    On 1/18/2024 8:18 AM, Simon Clubley wrote:
    On 2024-01-17, Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/17/2024 8:11 AM, Simon Clubley wrote:
    BTW, has anyone been able to do a $ show proc/priv against the EVL listener >>> PID and are you able to post the output ?

    Full priv on my VMS 8.4-2L2 Alpha and 9.2-1 x86-64.

    Thank you for checking Arne. Seeing this still being the case on x86-64
    was an unpleasant surprise.

    So, that's two full years VSI have had to look at this and they have
    done nothing.

    I wonder if they are sitting on any other issues that are just a weakness
    at the moment, but may become an actual vulnerability if either further probing is done, or if another unrelated issue is discovered and these
    are chained together with that new issue.

    For those of you with the premium support contracts who are worried about this, then a formal _polite_ request to VSI to answer the above question
    and to ask when the DECnet issues will be fixed might be in order.

    You may have more luck getting them to fix these issues than I have had.

    VSI has to prioritize engineering resources.

    I think it would be hard to justify prioritizing DECnet
    enhancements.

    Customers will have to decide whether to drop DECnet
    completely or perform sufficient mitigation to consider
    the risk lowered to an acceptable level in their context.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Thu Jan 18 09:54:49 2024
    On 1/17/24 6:11 AM, Simon Clubley wrote:
    On 2024-01-16, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Thu, 11 Jan 2024 13:48:37 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-10, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    Nowadays, the whole Internet is built on the concept of running secure >>>> protocols over insecure channels. Those secure protocols can in turn be >>>> channels for older, insecure protocols--this is not rocket science.

    Things like SSL only protect data in motion. It does nothing to help you >>> if the server software on the receiving end of that SSL connection has a >>> vulnerability within it.

    Not sure why that?s relevant to the issue of whether to support DECnet or
    not.

    The server software with the vulnerability could be the DECnet stack
    running on that server.

    BTW, has anyone been able to do a $ show proc/priv against the EVL listener PID and are you able to post the output ?

    I notice that no-one, including Mark yet, has posted this, so I wonder
    just how many of you are actually running the DECnet Phase IV stack on
    your machines.

    Sorry, I am only infrequently on this forum.

    On my system EVL runs with exactly the privs I specified earlier but I
    did do some digging.

    EVL is started by netacp in whatever account netacp is running using the command file sys$system:evl.com. EVL neither raises nor lowers privs.
    The startup command file normally looks like this:
    $ ! Copyright (c) 1987 Digital Equipment Corporation. All rights reserved.
    $ SET NOON
    $ IF "''EVL$COMMAND'" .NES. "" THEN EVL$COMMAND
    $ RUN SYS$SYSTEM:EVL
    $ PURGE/KEEP=3 EVL.LOG
    $ LOGOUT/BRIEF

    However, sometime in the dim and distant past (meaning I no longer
    remember when or why) I inserted this line:

    $ SET PROCESS/PRIVILEGES=(NOALL,SYSNAM,OPER,SYSPRV,NETMBX,TMPMBX)

    which is why EVL is limited in privs on my system. Anyone concerned can
    make the same edit.

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Thu Jan 18 10:25:29 2024
    On 1/18/24 6:06 AM, Simon Clubley wrote:
    On 2024-01-17, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:
    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    Because, at best, it has only had a very small fraction of the effort
    spent on probing it that the mainstream network stacks have had.

    Simon's postings would tend to indicate that he believes that anything
    not subject to constant probing by hundreds or thousands of hack.., er, security researchers is just full of latent bugs waiting to be discovered.

    It might help to remember that the IP stack was designed by committee
    and implemented by an even more diverse group, some good at programming,
    some not so much. DECnet, however, was designed and implemented by a
    much smaller group, which often leads to much better code. I suspect,
    but don't know for sure, that the designers and implementers were also essentially the same people. (They were also very good).

    Also, once upon a time, DECnet was a more diverse network than the
    internet. Until the internet went public in the early 90s, it was quite limited in scope, consisting mainly of some government institutions,
    some government contractors, and some universities. DECnet, however,
    was used to implement a number of world-wide networks consisting of many diverse endpoints. There was some probing that went on but not a whole
    lot. For one, with DECnet the source was too easy to trace and, for
    another, if any of the probes were successful I never heard of it (I was
    on SPAN at the time). This was all DECnet phase IV. After the internet
    went public, these networks ran multiple protocols in parallel,
    including TCP/IP and DECnet. As DEC equipment was phased out at these
    sites, so was DECnet. But it somehow managed to survive without issue
    all those years. (The only known problems were caused by local misconfigurations by people who didn't read the manual and simply
    accepted defaults that should have been better. None were cause by the
    stack itself.)

    Finally, as I mentioned in an earlier post, it is trivial in today's
    world to isolate one's DECnet stack from anything other than trusted
    hosts. On any network where I have been involved, it some host were compromised, and if that host were to try to probe DECnet, none of its
    packets would even reach the DECnet interface of any host that was
    actually running DECnet.

    There are, after all, many ways to implement security.

    My two cents.

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Mark Berryman on Thu Jan 18 18:44:36 2024
    On 2024-01-18, Mark Berryman <mark@theberrymans.com> wrote:
    On 1/18/24 6:06 AM, Simon Clubley wrote:
    On 2024-01-17, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:
    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    Because, at best, it has only had a very small fraction of the effort
    spent on probing it that the mainstream network stacks have had.

    Simon's postings would tend to indicate that he believes that anything
    not subject to constant probing by hundreds or thousands of hack.., er, security researchers is just full of latent bugs waiting to be discovered.


    Simon's relatively quick research into DECnet a couple of years ago would
    seem to indicate that he has a point... :-)

    Simon.

    PS: $ set response/mode=good_natured :-)

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Mark Berryman on Thu Jan 18 18:38:11 2024
    On 2024-01-18, Mark Berryman <mark@theberrymans.com> wrote:

    Sorry, I am only infrequently on this forum.

    On my system EVL runs with exactly the privs I specified earlier but I
    did do some digging.

    EVL is started by netacp in whatever account netacp is running using the command file sys$system:evl.com. EVL neither raises nor lowers privs.
    The startup command file normally looks like this:
    $ ! Copyright (c) 1987 Digital Equipment Corporation. All rights reserved. $ SET NOON
    $ IF "''EVL$COMMAND'" .NES. "" THEN EVL$COMMAND
    $ RUN SYS$SYSTEM:EVL
    $ PURGE/KEEP=3 EVL.LOG
    $ LOGOUT/BRIEF

    However, sometime in the dim and distant past (meaning I no longer
    remember when or why) I inserted this line:

    $ SET PROCESS/PRIVILEGES=(NOALL,SYSNAM,OPER,SYSPRV,NETMBX,TMPMBX)

    which is why EVL is limited in privs on my system. Anyone concerned can
    make the same edit.


    Because that command is being run in the same process as the EVL listener
    it will not help constrain an attacker. This is because all an attacker
    needs to do in their shellcode is to reenable those privileges.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to Mark Berryman on Thu Jan 18 15:24:28 2024
    On 1/18/2024 12:25 PM, Mark Berryman wrote:
    On 1/18/24 6:06 AM, Simon Clubley wrote:
    On 2024-01-17, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:
    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    Because, at best, it has only had a very small fraction of the effort
    spent on probing it that the mainstream network stacks have had.

    Simon's postings would tend to indicate that he believes that anything not subject to constant probing by hundreds or thousands of hack.., er, security researchers is just full of latent bugs waiting to be discovered.

    No, really? Someone else noticed this? And here I thought it was just me ..

    It might help to remember that the IP stack was designed by committee and implemented by an even more diverse group, some good at programming, some not so
    much. DECnet, however, was designed and implemented by a much smaller group, which often leads to much better code. I suspect, but don't know for sure, that
    the designers and implementers were also essentially the same people. (They were also very good).

    Well, it does work well, for what it does.

    Also, once upon a time, DECnet was a more diverse network than the internet. Until the internet went public in the early 90s, it was quite limited in scope,
    consisting mainly of some government institutions, some government contractors,
    and some universities. DECnet, however, was used to implement a number of world-wide networks consisting of many diverse endpoints. There was some probing that went on but not a whole lot. For one, with DECnet the source was
    too easy to trace and, for another, if any of the probes were successful I never
    heard of it (I was on SPAN at the time). This was all DECnet phase IV. After
    the internet went public, these networks ran multiple protocols in parallel, including TCP/IP and DECnet. As DEC equipment was phased out at these sites, so
    was DECnet. But it somehow managed to survive without issue all those years. (The only known problems were caused by local misconfigurations by people who didn't read the manual and simply accepted defaults that should have been better. None were cause by the stack itself.)

    Sure, blame the user (guilty) ...

    Finally, as I mentioned in an earlier post, it is trivial in today's world to isolate one's DECnet stack from anything other than trusted hosts. On any network where I have been involved, it some host were compromised, and if that
    host were to try to probe DECnet, none of its packets would even reach the DECnet interface of any host that was actually running DECnet.

    There are, after all, many ways to implement security.

    My two cents.

    Mark Berryman



    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Mark Berryman on Thu Jan 18 15:30:15 2024
    On 1/18/2024 12:25 PM, Mark Berryman wrote:
    Finally, as I mentioned in an earlier post, it is trivial in today's
    world to isolate one's DECnet stack from anything other than trusted
    hosts.  On any network where I have been involved, it some host were compromised, and if that host were to try to probe DECnet, none of its packets would even reach the DECnet interface of any host that was
    actually running DECnet.

    Common practice.

    And considered good enough for years.

    But it may not continue so - ZTN is in fashion.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Mark Berryman on Thu Jan 18 20:38:04 2024
    On Thu, 18 Jan 2024 10:25:29 -0700, Mark Berryman wrote:

    DECnet, however, was designed and implemented by a
    much smaller group, which often leads to much better code.

    Code (implementation) is one thing, design (protocol) is quite another.
    DECnet had an address space so restricted, it make the 32-bit IP address
    space seem expansive. And whose dumb idea was it to tie the DECnet address
    to the MAC address? TCP/IP has ARP; even lowly AppleTalk had its own ARP- equivalent; yet the clever DEC engineers never saw this as important for
    their protocol stack.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Simon Clubley on Thu Jan 18 20:35:57 2024
    On Thu, 18 Jan 2024 13:06:21 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-17, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:
    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    Because, at best, it has only had a very small fraction of the effort
    spent on probing it that the mainstream network stacks have had.

    But we already know it is an insecure protocol, and we already know how to
    run such things securely, as I pointed out before.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Lawrence D'Oliveiro on Thu Jan 18 15:59:59 2024
    On 1/18/2024 3:38 PM, Lawrence D'Oliveiro wrote:
    DECnet had an address space so restricted, it make the 32-bit IP address space seem expansive.

    16 bit is less than 32 bit.

    If DEC had known how large DECnet networks would become, then they
    would probably have chosen 32 bit.

    But it is difficult to predict the future.

    And whose dumb idea was it to tie the DECnet address
    to the MAC address?

    It is pretty smart. No need for an extra protocol.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to All on Thu Jan 18 23:02:00 2024
    In article <uoc3gf$2oe4i$1@dont-email.me>, arne@vajhoej.dk (Arne Vajhj)
    wrote:

    And whose dumb idea was it to tie the DECnet address
    to the MAC address?
    It is pretty smart. No need for an extra protocol.

    Different objectives. Internet Protocol was designed to be able to be
    adaptable to almost any kind of computer. DECnet was only for DEC OSes.
    Network externalities, quite literally, meant IP won the competition.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to John Dallman on Thu Jan 18 23:35:00 2024
    On Thu, 18 Jan 2024 23:02 +0000 (GMT Standard Time), John Dallman wrote:

    Different objectives. Internet Protocol was designed to be able to be adaptable to almost any kind of computer. DECnet was only for DEC OSes.

    Hard to see how tying the protocol address to the MAC address was a good
    idea in any way.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Lawrence D'Oliveiro on Fri Jan 19 13:11:31 2024
    On 2024-01-18, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Thu, 18 Jan 2024 13:06:21 -0000 (UTC), Simon Clubley wrote:

    On 2024-01-17, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:

    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:
    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    Because, at best, it has only had a very small fraction of the effort
    spent on probing it that the mainstream network stacks have had.

    But we already know it is an insecure protocol, and we already know how to run such things securely, as I pointed out before.

    As I have already mentioned, that only protects data in transit.

    If you can still reach the DECnet stack via the nice modern secure
    protocol, you can still open your own connections to the DECnet stack
    and launch attacks against the DECnet stack running on the server.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to mark@theberrymans.com on Fri Jan 19 15:33:18 2024
    In article <uobmub$2m944$1@dont-email.me>,
    Mark Berryman <mark@theberrymans.com> wrote:
    On 1/18/24 6:06 AM, Simon Clubley wrote:
    On 2024-01-17, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Wed, 17 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:
    The server software with the vulnerability could be the DECnet stack
    running on that server.

    Any reason why you think DECnet is particularly prone to introducing
    security holes, per se?

    Because, at best, it has only had a very small fraction of the effort
    spent on probing it that the mainstream network stacks have had.

    Simon's postings would tend to indicate that he believes that anything
    not subject to constant probing by hundreds or thousands of hack.., er, >security researchers is just full of latent bugs waiting to be discovered.

    History has shown that Simon is mostly correct in that belief.

    It might help to remember that the IP stack was designed by committee
    and implemented by an even more diverse group, some good at programming,
    some not so much. DECnet, however, was designed and implemented by a
    much smaller group, which often leads to much better code. I suspect,
    but don't know for sure, that the designers and implementers were also >essentially the same people. (They were also very good).

    Which IP stack are you referring to? IP has been implemented
    many times by many different groups; even on VMS!

    Also, once upon a time, DECnet was a more diverse network than the
    internet. Until the internet went public in the early 90s, it was quite >limited in scope, consisting mainly of some government institutions,
    some government contractors, and some universities. DECnet, however,
    was used to implement a number of world-wide networks consisting of many >diverse endpoints. There was some probing that went on but not a whole
    lot. For one, with DECnet the source was too easy to trace and, for
    another, if any of the probes were successful I never heard of it (I was
    on SPAN at the time). This was all DECnet phase IV. After the internet
    went public, these networks ran multiple protocols in parallel,
    including TCP/IP and DECnet. As DEC equipment was phased out at these
    sites, so was DECnet. But it somehow managed to survive without issue
    all those years. (The only known problems were caused by local >misconfigurations by people who didn't read the manual and simply
    accepted defaults that should have been better. None were cause by the
    stack itself.)

    Finally, as I mentioned in an earlier post, it is trivial in today's
    world to isolate one's DECnet stack from anything other than trusted
    hosts. On any network where I have been involved, it some host were >compromised, and if that host were to try to probe DECnet, none of its >packets would even reach the DECnet interface of any host that was
    actually running DECnet.

    There are, after all, many ways to implement security.

    My two cents.

    I dunno. I'd bet a month's salary that more packets travel
    across the Internet in a day than have transitted DECnet ever.
    That's a lot of testing and hardening.

    This of course doesn't mean that DECnet implementations are
    insecure, but it does mean they are a _lot_ less tested. It
    could be that they're insecure and no one realizes because no
    one has tested sufficiently. That means there's an element of
    risk there that doesn't exist with e.g. the Linux or BSD TCP/IP
    stacks.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to arne@vajhoej.dk on Fri Jan 19 15:28:45 2024
    In article <uoc3gf$2oe4i$1@dont-email.me>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/18/2024 3:38 PM, Lawrence D'Oliveiro wrote:
    DECnet had an address space so restricted, it make the 32-bit IP address
    space seem expansive.

    16 bit is less than 32 bit.

    If DEC had known how large DECnet networks would become, then they
    would probably have chosen 32 bit.

    But it is difficult to predict the future.

    And whose dumb idea was it to tie the DECnet address
    to the MAC address?

    It is pretty smart. No need for an extra protocol.

    IPv6 with SLAAC does the same thing. It's very convenient;
    though of course the IPv6 address space is much larger than
    either DECnet or IPv4.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Fri Jan 19 09:19:00 2024
    On 1/18/24 11:38 AM, Simon Clubley wrote:
    On 2024-01-18, Mark Berryman <mark@theberrymans.com> wrote:

    Sorry, I am only infrequently on this forum.

    On my system EVL runs with exactly the privs I specified earlier but I
    did do some digging.

    EVL is started by netacp in whatever account netacp is running using the
    command file sys$system:evl.com. EVL neither raises nor lowers privs.
    The startup command file normally looks like this:
    $ ! Copyright (c) 1987 Digital Equipment Corporation. All rights reserved. >> $ SET NOON
    $ IF "''EVL$COMMAND'" .NES. "" THEN EVL$COMMAND
    $ RUN SYS$SYSTEM:EVL
    $ PURGE/KEEP=3 EVL.LOG
    $ LOGOUT/BRIEF

    However, sometime in the dim and distant past (meaning I no longer
    remember when or why) I inserted this line:

    $ SET PROCESS/PRIVILEGES=(NOALL,SYSNAM,OPER,SYSPRV,NETMBX,TMPMBX)

    which is why EVL is limited in privs on my system. Anyone concerned can
    make the same edit.


    Because that command is being run in the same process as the EVL listener
    it will not help constrain an attacker. This is because all an attacker
    needs to do in their shellcode is to reenable those privileges.

    IIRC, you managed to crash EVL using an insecure setup. Crashing a
    process is much different that convincing a process to run bogus code
    and, of course, simply crashing EVL causes its process to exit.

    With a secure setup, you can't get your malformed packets into EVL.
    However, if you'd like to show how you can get EVL to run bogus code, in
    any setup, then you will have raised a very valid concern. Until then,
    I have addressed what concern you have raised.

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Mark Berryman on Fri Jan 19 18:44:29 2024
    On 2024-01-19, Mark Berryman <mark@theberrymans.com> wrote:
    On 1/18/24 11:38 AM, Simon Clubley wrote:
    On 2024-01-18, Mark Berryman <mark@theberrymans.com> wrote:

    Sorry, I am only infrequently on this forum.

    On my system EVL runs with exactly the privs I specified earlier but I
    did do some digging.

    EVL is started by netacp in whatever account netacp is running using the >>> command file sys$system:evl.com. EVL neither raises nor lowers privs.
    The startup command file normally looks like this:
    $ ! Copyright (c) 1987 Digital Equipment Corporation. All rights reserved.
    $ SET NOON
    $ IF "''EVL$COMMAND'" .NES. "" THEN EVL$COMMAND
    $ RUN SYS$SYSTEM:EVL
    $ PURGE/KEEP=3 EVL.LOG
    $ LOGOUT/BRIEF

    However, sometime in the dim and distant past (meaning I no longer
    remember when or why) I inserted this line:

    $ SET PROCESS/PRIVILEGES=(NOALL,SYSNAM,OPER,SYSPRV,NETMBX,TMPMBX)

    which is why EVL is limited in privs on my system. Anyone concerned can >>> make the same edit.


    Because that command is being run in the same process as the EVL listener
    it will not help constrain an attacker. This is because all an attacker
    needs to do in their shellcode is to reenable those privileges.

    IIRC, you managed to crash EVL using an insecure setup. Crashing a
    process is much different that convincing a process to run bogus code
    and, of course, simply crashing EVL causes its process to exit.


    By "insecure setup", you mean using a network stack as supplied out of
    the box by a vendor selling "the world's most secure operating system" ?

    With a secure setup, you can't get your malformed packets into EVL.
    However, if you'd like to show how you can get EVL to run bogus code, in
    any setup, then you will have raised a very valid concern. Until then,
    I have addressed what concern you have raised.


    For my concern to be handled, they would also have to be permanently
    removed from the list of authorised privileges, not just the list of
    currently enabled privileges.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Simon Clubley on Fri Jan 19 20:47:16 2024
    On Fri, 19 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:

    As I have already mentioned, that only protects data in transit.

    Relevance being?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Simon Clubley on Fri Jan 19 22:29:12 2024
    On Thu, 11 Jan 2024 13:48:37 -0000 (UTC), Simon Clubley wrote:

    Things like SSL only protect data in motion.

    How exactly is a network protocol supposed to operate when not “in
    motion”?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Dorsey@21:1/5 to ldo@nz.invalid on Sat Jan 20 00:07:31 2024
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Fri, 19 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:

    As I have already mentioned, that only protects data in transit.

    Relevance being?

    Local attacks are still possible. Which is much less of a worry in most environments, true. But it's an easy thing to avoid, and decnet did not.

    I run phase IV on some machines that aren't critical and it works and is convenient and well-integrated with the older VMS version in use. I would
    not want to run it on a production system today but thanks to the efforts
    of people at TGV and FTP Software I don't have to.
    --scott
    --
    "C'est un Nagra. C'est suisse, et tres, tres precis."

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to Simon Clubley on Fri Jan 19 22:44:55 2024
    On 2024-01-19 18:44:29 +0000, Simon Clubley said:

    By "insecure setup", you mean using a network stack as supplied out of
    the box by a vendor selling "the world's most secure operating system" ?

    That DECnet uses cleartext credentials for network connections, both
    within the cleartext network protocol, and usernames and passwords
    stored within the hopefully-protected DECnet database, was straight out
    of 1990.



    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Sat Jan 20 09:45:01 2024
    On 1/19/24 11:44 AM, Simon Clubley wrote:
    On 2024-01-19, Mark Berryman <mark@theberrymans.com> wrote:
    .
    .
    .
    Because that command is being run in the same process as the EVL listener >>> it will not help constrain an attacker. This is because all an attacker
    needs to do in their shellcode is to reenable those privileges.

    IIRC, you managed to crash EVL using an insecure setup. Crashing a
    process is much different that convincing a process to run bogus code
    and, of course, simply crashing EVL causes its process to exit.


    By "insecure setup", you mean using a network stack as supplied out of
    the box by a vendor selling "the world's most secure operating system" ?

    No, by insecure setup I mean you allowed an untrusted host, and one not
    running DECnet, access to another host's DECnet stack.

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Stephen Hoffman on Sat Jan 20 21:19:52 2024
    On Fri, 19 Jan 2024 22:44:55 -0500, Stephen Hoffman wrote:

    That DECnet uses cleartext credentials for network connections, both
    within the cleartext network protocol, and usernames and passwords
    stored within the hopefully-protected DECnet database, was straight out
    of 1990.

    We know how to mitigate that nowadays. Constrain it to a limited set of mutually-trusted nodes, that cannot see anything else (via DECnet) anyway, connected via trusted channels, most likely virtual.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Lawrence D'Oliveiro on Mon Jan 22 13:07:53 2024
    On 2024-01-19, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Thu, 11 Jan 2024 13:48:37 -0000 (UTC), Simon Clubley wrote:

    Things like SSL only protect data in motion.

    How exactly is a network protocol supposed to operate when not ?in
    motion??

    Yes, you are either trolling or simply do not understand.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Lawrence D'Oliveiro on Mon Jan 22 13:06:54 2024
    On 2024-01-19, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Fri, 19 Jan 2024 13:11:31 -0000 (UTC), Simon Clubley wrote:

    As I have already mentioned, that only protects data in transit.

    Relevance being?

    In view of the existing discussion about attacking the stack itself
    and not any existing data transfers, that question doesn't even make
    any sense.

    I gave you the benefit of the doubt (I'm like that :-)), but it is
    clear you are either a troll or simply do not understand the issues
    involved (and if it's the latter case, you probably don't even realise
    fully what is it you don't understand).

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Mark Berryman on Mon Jan 22 13:12:43 2024
    On 2024-01-20, Mark Berryman <mark@theberrymans.com> wrote:
    On 1/19/24 11:44 AM, Simon Clubley wrote:
    On 2024-01-19, Mark Berryman <mark@theberrymans.com> wrote:
    .
    .
    .
    Because that command is being run in the same process as the EVL listener >>>> it will not help constrain an attacker. This is because all an attacker >>>> needs to do in their shellcode is to reenable those privileges.

    IIRC, you managed to crash EVL using an insecure setup. Crashing a
    process is much different that convincing a process to run bogus code
    and, of course, simply crashing EVL causes its process to exit.


    By "insecure setup", you mean using a network stack as supplied out of
    the box by a vendor selling "the world's most secure operating system" ?

    No, by insecure setup I mean you allowed an untrusted host, and one not running DECnet, access to another host's DECnet stack.


    Oh, I see Mark. So you mean just like every public node on the Internet is supposed to handle without instantly falling over ? :-) (And which gets
    fixed when something unexpected is found ?)

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Mon Jan 22 12:40:14 2024
    On 1/22/24 6:12 AM, Simon Clubley wrote:
    On 2024-01-20, Mark Berryman <mark@theberrymans.com> wrote:
    On 1/19/24 11:44 AM, Simon Clubley wrote:
    On 2024-01-19, Mark Berryman <mark@theberrymans.com> wrote:
    .
    .
    .
    Because that command is being run in the same process as the EVL listener >>>>> it will not help constrain an attacker. This is because all an attacker >>>>> needs to do in their shellcode is to reenable those privileges.

    IIRC, you managed to crash EVL using an insecure setup. Crashing a
    process is much different that convincing a process to run bogus code
    and, of course, simply crashing EVL causes its process to exit.


    By "insecure setup", you mean using a network stack as supplied out of
    the box by a vendor selling "the world's most secure operating system" ?

    No, by insecure setup I mean you allowed an untrusted host, and one not
    running DECnet, access to another host's DECnet stack.


    Oh, I see Mark. So you mean just like every public node on the Internet is supposed to handle without instantly falling over ? :-) (And which gets
    fixed when something unexpected is found ?)
    Most likely, every public node on the Internet is behind a firewall,
    which severely limits what packets can reach a given node and, depending
    on the quality of the firewall, the nature of those packets (i.e. good firewalls can detect and reject malformed packets).

    Sadly, when an IP-based attack makes it through the firewall and into a
    host, the host typically does worse than "fall over". It lets the
    attacker in where the attacker can then do all kinds of nefarious
    things. This is often not detected until long after the fact. If there
    has ever been a successful attack from an external source on a VMS
    system that allowed the attacker to muck around on that system, I am not
    aware of it. Are you?

    The purpose of a firewall is to protect the IP stack of the hosts behind
    it. I merely suggested a couple of ways one can firewall one's DECnet
    traffic, and thereby protect that stack. Nothing unusual or exceptional
    about it.

    I ran a VMS host fully exposed to the Internet with DECnet phase V on it
    for years without issue. It was a honeypot so it wanted to see as many
    attack attempts as possible. It was running WASD instead of Apache so
    none of the attacks on the web port succeeded and none of the attacks on
    the ports used by DECnet ever caused an issue. So, real word
    experience, not guess work. And, no, I wouldn't try this with any other platform.

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Mark Berryman on Tue Jan 23 13:29:56 2024
    On 2024-01-22, Mark Berryman <mark@theberrymans.com> wrote:

    Sadly, when an IP-based attack makes it through the firewall and into a
    host, the host typically does worse than "fall over". It lets the
    attacker in where the attacker can then do all kinds of nefarious
    things. This is often not detected until long after the fact. If there
    has ever been a successful attack from an external source on a VMS
    system that allowed the attacker to muck around on that system, I am not aware of it. Are you?


    I know that Stephen has mentioned he has had to clean up compromised VMS systems for clients, but I don't recall him stating the infection origin.
    I suspect, given the nature of VMS systems and the people who manage them,
    such details are kept private however.

    The biggest external problem I have ever had to personally deal with was
    that the UCX stack still had an SMTP open relay with no way of restricting
    it, when the rest of the world had moved on and this was very, very, no
    longer acceptable.

    It's been too long, so I don't recall how I fixed that. I could have waited
    for a later version of UCX before enabling this, or I could have put a Linux email server in front of the VMS system.

    I do know this was about the time I finally abandoned the idea of directly attaching a webserver running on a VMS system to the Internet and placing
    it instead behind a Linux webserver, but I can't remember how I fixed the
    open relay issue.

    The purpose of a firewall is to protect the IP stack of the hosts behind
    it. I merely suggested a couple of ways one can firewall one's DECnet traffic, and thereby protect that stack. Nothing unusual or exceptional about it.

    I ran a VMS host fully exposed to the Internet with DECnet phase V on it
    for years without issue. It was a honeypot so it wanted to see as many attack attempts as possible. It was running WASD instead of Apache so
    none of the attacks on the web port succeeded and none of the attacks on
    the ports used by DECnet ever caused an issue. So, real word
    experience, not guess work. And, no, I wouldn't try this with any other platform.


    I assume this was way after the DECnet worms were no longer a thing... :-)

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to Simon Clubley on Tue Jan 23 17:15:16 2024
    On 2024-01-23 13:29:56 +0000, Simon Clubley said:



    The biggest external problem I have ever had to personally deal with
    was that the UCX stack still had an SMTP open relay with no way of restricting it, when the rest of the world had moved on and this was
    very, very, no longer acceptable.

    Last I checked, the 💩 default for TCP/IP Services SMTP mail server was
    a 💩 open relay. With no diagnostics. Reproducer was trivially simple:
    delete (or mis-locate) the SMTP configuration file.

    With no TLS and no STARTTLS support to be found anywhere in the TCP/IP
    mail server, last I checked.



    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Mark Berryman on Tue Jan 23 19:01:59 2024
    On 1/22/2024 2:40 PM, Mark Berryman wrote:
    Most likely, every public node on the Internet is behind a firewall,
    which severely limits what packets can reach a given node and, depending
    on the quality of the firewall, the nature of those packets (i.e. good firewalls can detect and reject malformed packets).

    Sadly, when an IP-based attack makes it through the firewall and into a
    host, the host typically does worse than "fall over".  It lets the
    attacker in where the attacker can then do all kinds of nefarious
    things.  This is often not detected until long after the fact.  If there has ever been a successful attack from an external source on a VMS
    system that allowed the attacker to muck around on that system, I am not aware of it.  Are you?

    Long time ago: yes.

    The purpose of a firewall is to protect the IP stack of the hosts behind it.  I merely suggested a couple of ways one can firewall one's DECnet traffic, and thereby protect that stack.

    Internet is IP only and firewalls does never pass DECnet traffic, so
    no DECnet attacks that way.

    DECnet attacks has to either be local or get in via IP and propagate
    via DECnet.

    I ran a VMS host fully exposed to the Internet with DECnet phase V on it
    for years without issue.  It was a honeypot so it wanted to see as many attack attempts as possible.  It was running WASD instead of Apache so
    none of the attacks on the web port succeeded and none of the attacks on
    the ports used by DECnet ever caused an issue.

    I was not even aware that DECnet used ports.

    And how did DECnet traffic come in via the internet?

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to arne@vajhoej.dk on Wed Jan 24 13:11:21 2024
    On 2024-01-23, Arne Vajhj <arne@vajhoej.dk> wrote:
    On 1/22/2024 2:40 PM, Mark Berryman wrote:
    I ran a VMS host fully exposed to the Internet with DECnet phase V on it
    for years without issue. It was a honeypot so it wanted to see as many
    attack attempts as possible. It was running WASD instead of Apache so
    none of the attacks on the web port succeeded and none of the attacks on
    the ports used by DECnet ever caused an issue.

    I was not even aware that DECnet used ports.


    They are called objects, but they are really numbered ports, just like
    TCP/IP. However, I suspect Mark is talking about the TCP/IP ports used
    as a transport for DECnet packets, in the same way as SSH can be used
    to transport X11 traffic.

    And how did DECnet traffic come in via the internet?


    I suspect the implementation Mark is using encapsulates the DECnet
    traffic in a little custom TCP/IP-based protocol, which is then routed
    over one or more TCP/IP ports to its destination before the encapsulation
    is reversed and the DECnet packets delivered to the target DECnet stack.

    That means the attacks would be limited to malformed TCP/IP packets
    unless the attacker was also running a DECnet stack and the same TCP/IP
    DECnet encapsulation protocol.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hans Bachner@21:1/5 to All on Wed Jan 24 14:03:13 2024
    Arne Vajhøj schrieb am 24.01.2024 um 01:01:
    On 1/22/2024 2:40 PM, Mark Berryman wrote:
    Most likely, every public node on the Internet is behind a firewall,
    which severely limits what packets can reach a given node and,
    depending on the quality of the firewall, the nature of those packets
    (i.e. good firewalls can detect and reject malformed packets).

    Sadly, when an IP-based attack makes it through the firewall and into
    a host, the host typically does worse than "fall over".  It lets the
    attacker in where the attacker can then do all kinds of nefarious
    things.  This is often not detected until long after the fact.  If
    there has ever been a successful attack from an external source on a
    VMS system that allowed the attacker to muck around on that system, I
    am not aware of it.  Are you?

    Long time ago: yes.

    The purpose of a firewall is to protect the IP stack of the hosts
    behind it.  I merely suggested a couple of ways one can firewall one's
    DECnet traffic, and thereby protect that stack.

    Internet is IP only and firewalls does never pass DECnet traffic, so
    no DECnet attacks that way.

    DECnet attacks has to either be local or get in via IP and propagate
    via DECnet.

    I ran a VMS host fully exposed to the Internet with DECnet phase V on
    it for years without issue.  It was a honeypot so it wanted to see as
    many attack attempts as possible.  It was running WASD instead of
    Apache so none of the attacks on the web port succeeded and none of
    the attacks on the ports used by DECnet ever caused an issue.

    I was not even aware that DECnet used ports.

    And how did DECnet traffic come in via the internet?
    Mark mentioned DECnet phase V which often/mostly uses DECnet over IP
    enabled and so uses IP ports.

    While there will be rarely incoming DECnet traffic, the ports for DECnet
    over IP may be attacked.

    Hans.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Stephen Hoffman on Wed Jan 24 08:46:24 2024
    On 1/23/24 3:15 PM, Stephen Hoffman wrote:
    On 2024-01-23 13:29:56 +0000, Simon Clubley said:



    The biggest external problem I have ever had to personally deal with
    was that the UCX stack still had an SMTP open relay with no way of
    restricting it, when the rest of the world had moved on and this was
    very, very, no longer acceptable.

    Last I checked, the 💩 default for TCP/IP Services SMTP mail server was
    a 💩 open relay. With no diagnostics. Reproducer was trivially simple: delete (or mis-locate) the SMTP configuration file.

    With no TLS and no STARTTLS support to be found anywhere in the TCP/IP
    mail server, last I checked.

    The applications that come with TCP/IP Services are but one of the many
    reasons that I have stated in the past that, if you are really concerned
    about security, you don't run TCP/IP Services, you run Multinet. And,
    at least for mail, if Multinet is not an option then try PMDF.

    I no longer have the resources to bang on TCP/IP Services V6 that I once
    had but, for any earlier version, yes - there were issues. I really
    hope VSI has, or will, address them in the new version.

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mark Berryman@21:1/5 to Simon Clubley on Wed Jan 24 08:36:03 2024
    On 1/24/24 6:11 AM, Simon Clubley wrote:
    On 2024-01-23, Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/22/2024 2:40 PM, Mark Berryman wrote:
    I ran a VMS host fully exposed to the Internet with DECnet phase V on it >>> for years without issue.  It was a honeypot so it wanted to see as many >>> attack attempts as possible.  It was running WASD instead of Apache so
    none of the attacks on the web port succeeded and none of the attacks on >>> the ports used by DECnet ever caused an issue.

    I was not even aware that DECnet used ports.


    They are called objects, but they are really numbered ports, just like TCP/IP. However, I suspect Mark is talking about the TCP/IP ports used
    as a transport for DECnet packets, in the same way as SSH can be used
    to transport X11 traffic.

    And how did DECnet traffic come in via the internet?


    I suspect the implementation Mark is using encapsulates the DECnet
    traffic in a little custom TCP/IP-based protocol, which is then routed
    over one or more TCP/IP ports to its destination before the encapsulation
    is reversed and the DECnet packets delivered to the target DECnet stack.

    That means the attacks would be limited to malformed TCP/IP packets
    unless the attacker was also running a DECnet stack and the same TCP/IP DECnet encapsulation protocol.

    No, as I mentioned in a previous message, it was DECnet Phase V, which
    supports DECnet over IP. An attacker would not need to be running
    DECnet. The attacks simply tried to attack the ports used by DECnet
    phase V. And, as I mentioned, none of those attack attempts caused an
    issue for the DECnet stack.

    Mark Berryman

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)