This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import System.Directory | |
import System.IO | |
import IO | |
import GHC.IO.Handle | |
import System.Process | |
import Text.Printf | |
main = do |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
============= 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 :( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
creduce 2.11.0 | |
Linux | |
BMO | |
5.15.74-gentoo-dist | |
#1 SMP Mon Oct 17 20:26:21 CDT 2022 | |
x86_64 | |
*************************************************** |