Author: admin

  • Spreadsheet Functionality Coming Soon!

    This is under development now and will be very limited at first, but should help form a basis of a suite of editing apps for my OS.

    I’ve never been a big fan of popular spreadsheet applications so this won’t be a clone of those, but will overlap some of their functionality while also being useful for editing configuration files and other things.

  • I’m Still African

    I will never become a defender of the “white” race like the Palantir guy.

    I will always support businesses run by Black Americans and other diaspora groups, but not those few who serve the “white” ancestors.

  • Palantir Is Apparently Just Ripping Customers Off Anyway

    Ausgov will probably never get delivered whatever they paid their Jewish friends for in their dodgy deal to avoid public tender.

  • Writing GUI Toolkits Is Fun

    This is exactly the sort of stuff people should study at university, it’s very simple maths but layered very deeply with the complexity of relating conceptual objects to the real world. Things like sorting algorithms and off-by-one errors naturally lend themselves to being explained visually in such a way.

    Unfortunately instead they are teaching people this stuff the hard way with HTML/CSS instead of plain C.

  • NSW Police Are A Pedophile Organisation

    That’s why those people want me off the internet, they’ve been trying to shut me up about it since I was 15.

    The staff at NSW Police routinely abuse children and protect other abuses and they believe this is normal for a police organisation, they refuse to investigate complaints about it.

    That is the nature of the people who have been trying to keep me off the internet since I was a teenager.

  • BSD-Style Pseudo-Terminals

    How It Works

    Programs like terminal emulators need a stable way to connect to programs or backends, this is provided by the kernel through a pipe-like abstraction known as pseudo-terminals.

    These can provide a little more functionality than plain pipes but work similarly – data goes in one end and comes out the other.

    The problem is how to allocate these resources – some systems do it statically and others dynamically. The SecureLang RD Kernel currently solves this problem by statically allocating pseudo-terminals and letting programs decide which one to use.

    The Simple Approach

    The system creates some devices pty0, pty1, pty2 … for one end of the communication and matching tty0, tty1, tty2 … devices for the other end.

    A program such as a terminal emulator then needs to just attempt to open the pty0/tty0 pair and if this fails it tries pty1/tty1, pty2/tty2 and so on until one is available.

    This system is a little simplified but is basically the same as the old BSD way (from what search results tell me of early versions).

    Why Dynamic Allocation Is Probably Better

    The simple way works, but may not be fully reliable when multiple programs are cycling through trying to open things at the same time. It also raises some issues like having to give some attention to file permissions to ensure the other end is accessible.

    One solution used by most modern systems is to have the kernel dynamically allocate a new pty/tty pair when needed. On the one hand this solves the problem, on the other hand it isn’t really as simple or intuitive as having a few numbered devices that a program can just select from.

    So this might be a longer term strategy for the SecureLang RD implementation but might not actually be necessary if these issues can be resolved easier another way.

    This Stuff Is Abstracted By Libraries

    Luckily nowadays programs like terminal emulators don’t really need to know those details, as they can just use library functions like posix_openpt and ptsname to select a pty/tty pair. However the implementation may still be important for system administrators and framework developers, and can be important for programmers if/when it breaks!

    Subnote: Why Not Pipes/Sockets

    Operating systems provide other features that can be used for channeling I/O streams between applications, but a dedicated pseudo-terminal abstraction is important because it can also be used to apply terminal-specific options to these channels (for example to help programs reliably detect terminal type).

  • Starlink Is For Espionage

    People who don’t realise this are dumb. It isn’t a business-quality internet connection it’s a restricted connection aimed at collecting your personal and national data.

  • Features Going In Now

    I probably won’t make much progress with real device drivers until I get my hardware setup under control, but I’ve been working on some virtual drivers for pseudo-terminals and may also start on improving IPC performance for the desktop environment.

    Pseudo-terminals are used for GUI-based terminal emulators and may also be useful for testing drivers that operate over serial connections. I expect this new functionality will work pretty reliably as it’s based on existing kernel code for pipes, but it won’t be as efficient as it could be until I focus more on optimisations later.