Zero Page Protection: The shift towards RISC OS running on multiple cores

posted in: General, Software | 0

A few years ago, RISC OS Open announced that a large number of applications would soon no longer be able to access the ARM vectors, kernel workspace, or any memory in what is known as ‘zero page’, which the memory from addresses 0 to 4095.

Fixing these zero page memory bugs in anything that runs on RISC OS will be a huge step towards allowing RISC OS to move closer to running on multiple cores in modern ARM processors, and to greatly improve system stability by removing a common class of programming mistake when applications use an address of zero by mistake.

Since ROOL’s announcement over three years ago, they’ve announced that over 70 bugs that needed addressing within RISC OS itself have been resolved – while the response from developers in the community has been pretty good, with a good number of popular applications being fixed to avoid huge compatibility issues later on down the line.

With the introduction of RISC OS 5.24, to help with compatibility a largely empty ‘page’ of read-only memory has been positioned where the old ‘zero page’ used to be, so accidental reads will continue to be hidden until any of the few remaining commonly-used buggy applications are fixed.

What’s really good to see here is the community seems to be responding in a very positive way towards upgrading applications now to avoid compatibility issues later on down the line.

Obviously there will still be some problems when RISC OS moves towards utilising multiple cores (or at least laying down the foundations for it), afterall we’re still coming across a few widely used applications that aren’t 32-bit compatible, 16 years after the first 32-bit RISC OS computer came out. For the most part however, it goes to show to that most people involved with RISC OS seem to be working towards a common goal now rather than the ROOL/RISCOSLtd. split that was very prevalent a few years ago.

A list of applications that have been reported and fixed is available on ROOL’s website should you want to take a gander.

A look at RISC OS 5.24 stable

posted in: General | 0

RISC OS 5.24 stable is now out for all to take advantage of the 708 changes since 2015’s 5.22 stable release. 20 or so of those changes would be considered major improvements.

The biggest news is the addition of RISC OS’ ability to handle larger hard drives, JPEG support, monitor EDID support and a number of tweaks to the network stack.

This release incorporates a huge 707 changes for the OMAP3 platform used by the ARMini and 708 changes for OMAP4, used by the PandaRO and ARMiniX computers. Older platforms such as Tungsten (Iyonix PC) and IOMD (RiscPC & A7000 range) have also seen a deludge of changes. For the first time the stable release includes the Raspberry Pi and Titanium ports.

A number of these major improvements have come as the result of the ROOL Bounty scheme, which for those of you that may be unfamiliar, is a RISC OS Open initiative where a list of development items is published on ROOL’s website and people can throw money at the items they’d most like to see come to fruition. This then allows for developers to work on something that they do not have enough spare time to work on in their free-time.

Userland features have also seen some TLC – with Printers, DosFS, Maestro and other utilities getting updates. Access+, Econet support on Omniclient and the NFS client have also seen their first updates in many years. LanManFS has also been updated with some security tweaks as well as the ability to connect to Windows 8 and 10 shares.

In their announcement of 5.24’s arrival, ROOL have also said they’re hoping to see RISC OS back in the NOOBS software for Raspberry Pi, after it was removed a few releases back.

This release has also seen ROOL improve the release process, there is now a more formal set of criteria to verify each platform supported and a traffic light system with statuses of red, amber and green.

Useability & upgrading

From a useability standpoint, the RISC OS experience is exactly the same as it was so there’s no nasty surprises for when you upgrade your machines.

The upgrade process on my Raspberry Pi was very straightforward and pretty quick – ROOL have a nice guide to take you through the upgrade process that is worth checking out.

Computer and board-specific advice relating to the installation and upgrade process for this release is also available on ROOL’s website.

Backwards compatibility is very good, I’ve encounter no issues with running any applications or utilities so far – which is to be expected from a stable release, afterall 5.24 has been a long-time in the making.

Improvements of note

  • Filecore – Reports sector offsets correctly with the *Map command on old format discs. Full directories on long filename discs are now correctly faulted rather than producing an unreadable disc. Filecore can now use up to 21 bits for the disc address, meaning a smaller logical file allocation unit, for more efficient use of space on large discs. Bug fixes to 4kbyte sector support allowing drives up to 2TB in size to be used, instead of the previous limit of 256GB with 512 byte sectors.
  • ADFS – Compatibility with flash drives has been improved, where previously they might report disc error 20.
  • Kernel – A new concept of ‘physical memory pools’ has been added, this is where a dynamic area can set aside lots of physical memory but only use a small window of logical memory, for example to allow a large RAM disc. Extra APIs have also been added to allow low level software to discover features of the ARM processor such as its support for exclusive monitor instructions as and when they are removed depending on the ARM core.Teletext video modes can now have extra characters on each line rather than being constrained to 40 (up to a limit of 255). An extra conversion for OS_ConvertVariform to handle globally unique numbers (GUID). Some preparations and reorganisation for multiple ARM cores have also been made. A new option to configure a MonitorType of EDID which will read the settings from the monitor directly as part of the EDID bounty work.
  • LanManFS – It will now connect to NTLM authenticated shares which is a minimum requirement on many servers to improve security. It also now correctly performs writes over 64kbytes when the server declares a buffer size of larger than this.
  • USBDriver EHCIDriver and OHCIDriver – Scanning keyboards, particularly when hidden behind hubs, at power on in order to do power-on-delete (for example) is now more reliable as part of the USB bounty work. The drivers have been updated where practical from the parent copies in NetBSD

Where to grab it

You can download RISC OS 5.24 for free from ROOL’s website and for purchase on their SD cards. Their ePic card has also been updated with RISC OS 5.24 and latest versions of SparkFS, PhotoDesk, DDE and Impact – you can purchase it from the ROOL store.