Skip to content

Instantly share code, notes, and snippets.

@wolfwood
wolfwood / PASS_BUG_INFO.TXT
Last active November 8, 2022 17:36
C-Reduce bug
creduce 2.11.0
Linux
BMO
5.15.74-gentoo-dist
#1 SMP Mon Oct 17 20:26:21 CDT 2022
x86_64
***************************************************
if [ -e /sys/bus/acpi/drivers/battery/PNP0C0A\:00/power_supply/BAT0/charge_now ]; then
echo scale=2 \; `cat /sys/bus/acpi/drivers/battery/PNP0C0A\:00/power_supply/BAT0/current_now` \* `cat /sys/bus/acpi/drivers/battery/PNP0C0A\:00/power_supply/BAT0/voltage_now` /1000000000000 |bc
else
echo scale=2 \; `cat /sys/bus/acpi/drivers/battery/PNP0C0A:00/power_supply/BAT0/power_now` /1000000 |bc
fi
hokay, so .... the kernel's job is just to return an activation to userspace at a well known entry point, so the userspace can context switch itself and then tell The Authorities that An Intarrupt Has Occurred.
sooooo,
first : we need to know if the thing we interrupted is a thread:
- modify get current thread to use a magic number to recognize if the suspended RSP is a valid stack
- kernel sets null rsp upon reentering userspace... no stack at all means no thread
- stackless context switcher code must be idempotent - if interrrupted, does the same thing the interrupted code was doing
- what about stackless thread scheduler? we may have dequeued a thread to run but not be on its stack yet :(
@wolfwood
wolfwood / activations
Last active November 15, 2022 01:01
XOmB Activations: as they stand
============= Interrupt Primer =====================================
Computer: a deterministic monolith crunching away until infinity one
instruction after the other, as preordained by The Programmer.
If this is not your experience, it is because of interrupts (NB: it is
NOT because we don't write infinite loops, they are hidden down in the
bottom of most OSes and GUI and console applications). The idea
behind interrupts is that we can pause what the CPU is doing, handle
some new information (like key presses or the printer finishing a
XOmB+Djehuty: A Remix OS for Computation Liberation
In the world of software, most developers are building upwards and
losing sight of the cyber-centuries worth of cruft below, which we
call the Operating System: the final arbitor of access, privilege and
resource allocation on all computers. These systems are developed by a
shrinking community that has ceded us a particular approach to
resource management that parallels the power structure present in
their community and society at large. It has been observed
(http://en.wikipedia.org/wiki/Conway's_law) that there is a strong
* Look at how systems researchers look at primarily competitive aspects and assume maliciousness
* Look at "fairness" metrics.
* Distributed systems show us that scaling-up is problematic (inherently centralized). We need to scale-out.
* Trust.
* Perhaps discuss open source politics (gpl-hate)
* Goal: Some technical problems are social problems... therefore some social problems in our community have technical solutions.
Open with social issue stuff, social problems.
import System.Directory
import System.IO
import IO
import GHC.IO.Handle
import System.Process
import Text.Printf
main = do