#MINTIA (not vibecoded)

1 messages · Page 7 of 1

random heath
#

correct

twilit smelt
#

and the kernel binary shrunk by like 200 bytes lol

#

while going to see how the asserts looked on fox32 i got sidetracked by a random intermittent crash and it turned out to be bad initialization of the virtual tlb in the fox32 emulator https://github.com/fox32-arch/fox32/pull/30

#

i debugged this and sent a PR in literally maybe 15 minutes

#

lmfao

random heath
#

yeah, something like that

although if they do that and believe they're good it's unlikely they'll get somewhere...

dense vigil
heady bobcat
twilit smelt
#

the assert messages were more compact than the ad hoc messages i had before

heady bobcat
#

oh lol

twilit smelt
#

the emulator overloads this with the present bit having been zero in the pte

#

so itd not look up the page tables and would just unconditionally page fault at that point

dense vigil
#

Yeah I get that

#

Just invalidate the page and retry?

twilit smelt
#

this is a bug in the emulator because the fox32 tlb is not supposed to have negative entries

#

its supposed to work like the x86 one

#

this is a negative entry in the fox32 tlb ie a bug

dense vigil
#

well ok if the arch explicitly doesnt work like that then sure

twilit smelt
#

"invalidating" would just create a new entry that matches on page 0 and present=false

dense vigil
#

Hm?

twilit smelt
#

youd have to invalidate by cycling the page out of the tlb completely

#

by accessing like 32 pages or however many entries there are in the tlb

#
void flush_single_page(uint32_t virtual_address) {
    uint32_t virtual_page = virtual_address & 0xFFFFF000;
    //printf("flushing single page %X\n", virtual_page);
    for (size_t i = 0; i < 64; i++) {
        if (mmu_tlb[i].virtual_page == virtual_page) {
            mmu_tlb[i].physical_address = 0;
            mmu_tlb[i].virtual_page = 0;
            mmu_tlb[i].present = false;
            mmu_tlb[i].rw = false;
            //printf("flushed\n");
            break;
        }
    }
}
dense vigil
twilit smelt
#

it does

#

because i also fixed this spot

dense vigil
#

Oh ok

twilit smelt
#

this would be a fun chip bug to work around if it were real

#

and then id have to do something like what you said

dense vigil
#

Why do you need the zeroth page anyway?

twilit smelt
#

during initialization

dense vigil
#

Damn

twilit smelt
#

this worked intermittently bc sometimes id have touched enough pages to have cycled out the empty entries and other times i didnt

#

i was lowkey just ignoring this crash before because itd magically go away if i rebuilt the whole kernel (i guess somehow affecting the number of pages touched between the loader enabling paging and the kernel initializing the IVT)

#

so i figured it was just some inscrutable bug in my build system i didnt want to figure out

dense vigil
#

Cant you just setup the ivt and stuff before you enable paging? It seems kinda unsafe to identity map zero anyway as you won't notice null derefs

twilit smelt
#

i destroy the identity mapping a bit later in kernel init

#

thats another possible workaround yeah, or just mapping it in some other virtual page

#

but at the end of the day it was an emulator bug so i fixed it and sent a PR rather than doing crazy workarounds in my kernel

dense vigil
#

But yeah this could very well be a chip errata

#

Not that big of a deal anyway

#

I generally try to avoid cases where zeroing a struct somehow implies non default state

#

Ykwim

twilit smelt
#

this bug has been in the fox32 emulator for probably 2 years

#

maybe 3

#

it wasnt noticed in old mintia bc the kernel was big enough by the time it got a fox32 port that the loader would 100% of the time touch enough pages (while copying the kernel into the higher half) to remove all the empty entries by the time old mintia kernel would do this same thing to initialize the IVT

dense vigil
#

Whats the point of the present bit in that code if as you say it doesnt cache non present ptes anyway?

twilit smelt
#

youd have to ask ryfox

#

to be fair to her its the first time she ever implemented a paging mmu in an emulator and it held up well for a long time other than this and a few other oddities over the yrs

dense vigil
#

Maybe that logic should be removed altogether

twilit smelt
#

potentially

#

i tried to make my pr non-invasive tho

dense vigil
#

Makes sense

twilit smelt
#

mintia2 on fox32 is now happily fireworking again

coarse current
twilit smelt
coarse current
#

it's fun

twilit smelt
#

the reason to do that is to eliminate a branch in a software tlb miss handler

#

basically you dont have to check the present bit on the pte before loading it into the tlb

#

you can just blindly load it and return

#

and let the hardware notice if it was invalid

coarse current
#

loongarch does that

twilit smelt
#

when the instruction is re-executed and it matches with a tlb entry with present=0 and then it does a page fault exception that time

coarse current
#

exactly what you've described

#

I had to adjust my kernel to not shit itself on stale invalid tlb entries

twilit smelt
#

rather than going like (pseudo-assembly)

andi tmp, pte_value, 1 // isolate valid bit
beq  tmp, zero, PageFaultHandler
load pte into tlb
rfe
dense vigil
#

What's the point of that? Either you fill it right there, or proceed to segfault, either way the entry is never used again?

twilit smelt
#

basically you can eliminate 2 instructions from the end of the psuedo tlb miss handler here

coarse current
#

I know, I've written a software tlb refiller

coarse current
twilit smelt
coarse current
#

(At least I think that's their rationale)

twilit smelt
#

according to john mashey (old unix guy and MIPS architect) they did it like that specifically to remove the branch instruction from the tlb miss handler

#

while designing MIPS in the early 80s they had a prospective tlb miss handler on a whiteboard and every time someone came up with an idea to make it shorter theyd implement it

#

and that was one idea

dense vigil
twilit smelt
#

your tlb miss handler loads the pte for the virtual page you missed on

#

and then it just chucks it into the tlb

#

without checking anything about it

dense vigil
#

Ohh

twilit smelt
#

the second time the faulting instruction is executed, it'll match on the new tlb entry and the hardware notices the valid bit is 0 and then it does a page fault exception that time

dense vigil
#

To be fair it could just auto page fault if you load some placeholder address?

twilit smelt
#

rather than a tlb miss exception

dense vigil
#

Like for example consider 0 a non present page

twilit smelt
#

isnt that this exact thing except more work

coarse current
#

you could maybe pagefault if you loaded invalid entry into tlb

dense vigil
twilit smelt
dense vigil
#

Well in a safe way

coarse current
#

it's a possibility

twilit smelt
coarse current
twilit smelt
twilit smelt
coarse current
#

but like you rarely hit stale entries anyway so it's not a big deal

twilit smelt
#

the tlb miss handling scheme in my toy arch requires being able to page fault on stuff

#

in the tlb miss handler

#

specifically page tables

dense vigil
twilit smelt
#

yes

dense vigil
#

Thats truly evil

twilit smelt
#

not only that, it loads the pte out of a recursive page table mapping

#

and can take nested tlb misses

#

that essentially perform an implicit bottom-up page table walk

dense vigil
#

Did you do it like that just for funsies?

coarse current
#

that's cursed

twilit smelt
coarse current
#

i see where the obsession for recursive page tables comes from

dense vigil
#

How is it efficient to recursively page fault

twilit smelt
#

after you fill in tlb entries for each level of the page tables, a future bottom-up walk can shortcut most of the paging hierarchy

coarse current
#

you can also just cache lower page table levels

twilit smelt
#

thats what this does

coarse current
#

without the recursive page table ... things

#

like all decent modern CPUs do afaik

dense vigil
#

Did any real arches do it like that btw

twilit smelt
#

this uses the same tlb for caching the lookup for all levels of the page tables

#

this is my entire tlb miss handler:

BxDtbMissHandler:
    mfcr zero, dtbaddr
    mov  zero, long [zero]
    mtcr dtbpte, zero
    rfe
#

its probably the most code golfed software tlb miss scheme ever

dense vigil
#

This works because recursive paging?

twilit smelt
#

yeah this looks like it couldnt possibly do anything useful but it does

#

basically dtbaddr is a control reg you initialize the upper 10 bits of with the 4mb-aligned base virtual address of your recursive page table

warm mural
#

here's mine on x86:

TlbMissHandler:
heady bobcat
twilit smelt
dense vigil
twilit smelt
#

yeah the zero register becomes a usable GPR during tlb miss handlers

#

so you can use it as scratch

#

it always reads zero otherwise

#

ignores writes

coarse current
#

Loongarch is ```mipsasm
tlb_refill:
csrwr $t0, 0x8B
csrrd $t0, 0x1B
lddir $t0, $t0, 3
lddir $t0, $t0, 2
lddir $t0, $t0, 1
ldpte $t0, 0
ldpte $t0, 1
tlbfill
csrrd $t0, 0x8B
ertn

twilit smelt
#

(unless youre in a tlb miss handler)

twilit smelt
#

if there is no tlb entry for the page table its within, a nested tlb miss exception occurs - this is just setting dtbaddr to the new PTE (which is really now a PDE but this is calculated identically) and branching back to the start

#

repeat until you hit the top level page table which is anchored with a permanent tlb entry you set up earlier

#

then you fill out the tlb from the top down and later misses that hit in one of those page tables short cut the upper levels

dense vigil
#

Btw isn't there an issue there where to fetch an address of a pte you get into a tlb miss handler which fetches from the same page directory which again recurses into the same tlb miss handler?

twilit smelt
#

read what i just said

dense vigil
#

Since you have paging on

twilit smelt
#

you use a wired page of the ITB (instruction translation buffer) to map the tlb miss handlers

#

(there are two, an ITB and DTB miss handler)

#

(which are identical other than using the CRs for their respective TLB)

dense vigil
#

Oh you have a permanent tlb entry

twilit smelt
#

yeah the low 4 entries are permanent

#

in both tlbs

dense vigil
#

How do you set them?

heady bobcat
dense vigil
heady bobcat
#

yeah, but cannot there be a unified TLB?

twilit smelt
# dense vigil How do you set them?

theres a dtbindex control reg that increments automatically every time you write to dtbpte, which inserts an entry in the DTB at the current index and then increments it

#

so you get rough fifo

#

the index wraps back around to 4 once you get to the top which is how those entries are made permanent

#

but you can explicitly set dtbindex to one of the first 4 entries and then write into dtbpte to set it

dense vigil
#

Thats pretty smart

heady bobcat
#

is there an equivalent of ASID/PCID for this scheme? or is everything flushed on context switches?

dense vigil
#

Like this sounds like it would work, but isnt it super slow

dense vigil
#

It creates like a ton of tlb traffic to handle a page fault

twilit smelt
#

"it sounds like it would work" it does work mf i have a virtual memory manager successfully running stress tests on this thing that most people in here couldnt dream of on their boring x86 kernel

coarse current
#

it sounds like a normal amount of traffic

dense vigil
#

How many levels are page tables on your arch

twilit smelt
#

again each level of the page table is cached in the tlb

#

2 bc its 32 bit but this extends naturally to any number of levels

dense vigil
#

Oh ok

#

And how many entries in the tlb

coarse current
#

are they public? trl

twilit smelt
#

it can forkbomb indefinitely w/o crashing the OS and still recover when u ^C

#

ive run it for days without crashing

#

thrashing swap and doing all kinds of vmm things that idk of any other hobby vmm that can do em

#

they r written in cthuluspeak though

dense vigil
twilit smelt
#

but its not specified architecturally

#

unlike mips

coarse current
#

how do you survive it?

#

like killing the processes?

dense vigil
#

By not having bugs

#

Lol

twilit smelt
#

u can see the first four (wired) entries in the ITB, only one of them is used which is mapping the exception block which contains the TB miss handlers (among other exception entrypoints)

coarse current
#

like Linux dies

#

from a fork bomb

dense vigil
#

Hm?

coarse current
#

(its userspace at least)

#

maybe not the kernel

twilit smelt
#

the DTB maps two wired pages, one is the page directory at its proper position in the recursive mapping, and the other is the per-cpu block which is mapped at 0xFFFFF000 on all cpus

dense vigil
#

It will just oom at worst

coarse current
#

yeah

coarse current
dense vigil
#

But u can set the oom adj score to -1000, so it will never be killed

#

(The original forker)

coarse current
#

I don't get it

dense vigil
#

So it will keep on forking

#

You will be getting ooms yes

coarse current
#

What do you mean by surviving a fork bomb

twilit smelt
#

duh

coarse current
#

Ok

dense vigil
#

Successfully recovers once stopped

coarse current
twilit smelt
#

yeah you can ^C and wait like 30 seconds for everything to kill itself (bc most of the processes are entirely swapped out so this causes lots of IO as they leave existence)

#

and then get ur shell back

dense vigil
#

You can restart it in a loop

twilit smelt
#

like nothing happened

twilit smelt
#

basically for maximum thrashing i just have a process terminate when it receives an "out of resources" status

#

which creates like a broiling sea of processes constantly popping in and out of existence forever

coarse current
#

so SIGBUS

twilit smelt
#

and beating the shit out of like every codepath

#

no?

dense vigil
#

Also mintia doesnt even overcommit

twilit smelt
#
fn (StressTestF) ForkbombTest { -- ok }
    while (1)
        auto phandle
        auto thandle

        "forkbomb"
        ArgTable@@ // path
        0 // creationflags
        0 // creationparams
        ACCESS_OWNER_ALL // permissions
        "forkbomb" // name
        OSSpawn ok! phandle! thandle!

        if (ok@)
            ok@ OSStatusGetName "%s\n" Printf
        end else
            phandle@ OSClose drop
            thandle@ OSClose drop
        end
    end
end
dense vigil
twilit smelt
#

actually i guess it doesnt terminate

#

it just prints the error message

#

it probably used to terminate

dense vigil
twilit smelt
dense vigil
#

By overcommits you mean ram + page file?

twilit smelt
coarse current
#

how do you even overcommit virtual mem?

dense vigil
#

U cant lol

twilit smelt
#

and not virtual address space

coarse current
#

Discord wouldn't work on that trl

twilit smelt
#

it would

#

because it only reserves 1TB

dense vigil
#

Wait so what exactly do you overcommit

twilit smelt
#

and doesnt commit it

coarse current
#

It requeses 1TB of ram

twilit smelt
#

it wouldnt run on windows if it does that

#

bc windows also forbids virtual memory overcommit

#

it will not promise you memory it cant back with whats available in ram+swap space

#

it tries to extend the pagefile before failing a request but it wont even try that if its asked for 1TB at once

#

that exceeds some heuristic auto-failure limit by quite a lot probably lol

dense vigil
twilit smelt
dense vigil
#

Yes

#

Still a subset

twilit smelt
#

so physical memory is a subset of virtual memory

#

its the virtual memory that is currently cached in ram

dense vigil
#

Yes

twilit smelt
#

you can overcommit physical memory by asking for more than exists in ram

dense vigil
#

Im confused

twilit smelt
#

you cannot overcommit virtual memory by asking for more than exists in ram+pagefile

#

in mintia

dense vigil
#

Whats the difference vs nt here

twilit smelt
#

no difference

#

i also extend the pagefile if someone asks for more than is currently available and only fail it if i cant

#

and stuff

heady bobcat
#

what is a common policy for shared memory accounting/overcommit?

e.g. assume that there is a lot of memory pressure, no free physical pages, no swappable pages, and someone tries to mmap a file. what to do?

dense vigil
#

So mintia overcommit behavior is same as nt?

twilit smelt
#

yes

dense vigil
#

Nvm then

twilit smelt
#

you can always write them back to their file and discard them at any time

#

so theres no need to account them at all

#

by virtue of existing on disk theres room for them

dense vigil
#

What about shared anon

heady bobcat
twilit smelt
twilit smelt
#

this might evict other file cache pages or it might evict anonymous pages

dense vigil
#

What if there's nothing to evict

twilit smelt
#

uhh

#

then you had a wired memory leak

#

whcih is a bug

#

and the system hangs

#

this would break any system

heady bobcat
#

probably

twilit smelt
#

no

dense vigil
#

Well you've already done the mmap at that point lol

twilit smelt
#

yeah

dense vigil
#

You just start evicting pages that have just been read from disk

#

Basically like running on a platform that's collapsing behind you and appearing in front

twilit smelt
#

you only need 4kb (or insert pagesize here) for it in ram or pagefile so theres nothing special about it, you just account it as 1 page

heady bobcat
#

if two processes mmap the same page of the same file without faulting it in, is accounting done by keeping track of a 'virtual PTE'?

twilit smelt
sterile frost
#

how do you swap out to disk if you have literally 0 available physical frames

#

you need zero copy disk io

#

right?

#

or do you just keep a reserve of pages for critical things like that

twilit smelt
# twilit smelt what on earth do PTEs have to do with this

the answer is obviously no, its literally just a counter of "committed pages" you increment when you create anonymous pages. so if you create a shared memory region of 2mb and dont actually fault on it then youve incremented that counter by 2mb/4kb pages

#

faulting on it and PTEs are irrelevant

heady bobcat
dense vigil
twilit smelt
#

it doesnt need any actual existence whatsoever other than the logical existence of "it exists"

twilit smelt
#

if youve done a competent shared memory implementation

dense vigil
#

It has a list of vm areas that map that file

sterile frost
twilit smelt
#

and you account for the pages when you create the shared memory region not when you mmap it

dense vigil
twilit smelt
sterile frost
twilit smelt
#

even if youre using programmed IO you can still just read the bytes from the page and shove them out the port

sterile frost
#

idk how that shit works

#

i am trying to figure that out

#

well assuming you use port io, yeah

dense vigil
#

You tell the disk to read from phys X and write to block Y

twilit smelt
#

but yes you usually do say like "i have 4 reserved pages" and you block threads when there are only 4 page frames left rather than when there are 0

#

and you only allow the swapper related threads to allocate from the last 4

sterile frost
#

yeah that's what i was trying to figure out

#

i was wondering if you just keep a reserve for critical things like that

twilit smelt
#

not like "that"

#

because that makes no sense

#

but for other things yes

warm pine
heady bobcat
#

How is accounting usually done for pages that are shared across resource limit context boundaries (e.g. rlimit, cgroups, etc.)?

sterile frost
#

yeah but you need to somehow pass that information through the IO system, assuming you can use it in a page swap out scenario, but i dont see why you couldn't

twilit smelt
warm pine
#

if there is no scatter-gather then you can still write on a block-by-block basis

twilit smelt
sterile frost
#

but making sure that there are always a few pages available makes sense

twilit smelt
heady bobcat
sterile frost
#

i guess the SG list can go on the stack but the IO system might need to allocate some intermediate stuff like IOPs or whatever

dense vigil
twilit smelt
dense vigil
#

To use for stuff like that

heady bobcat
twilit smelt
#

no, the shared memory object does

warm pine
#

however in all but the worst cases you should be able to do block-by-block writeback without further allocation

twilit smelt
#

i mean i could preallocate enough for the worst case where it fragments on every single sector of the IO, and the max pagefile IO size is 64kb, and the max number inflight is 4, so then thats 4*64kb = 256kb, / 512 = 512 preallocated packets

#

at that point youre reserving enough memory you may as well just reserve some pages and make it a general mechanism for other things that might need it

sterile frost
#

disk swapping sounds really cool to implement but i'm sure it's not a simple as it sounds

twilit smelt
#

its simple once you understand it

sterile frost
#

many things are simple once you have a good understanding of them :p

#

sadly i lack the understanding lol

twilit smelt
#

it took me over a year to get it

#

a year and like 5 broken implementations

coarse current
#

I want(ed) to support swap in my OS

sterile frost
#

it took me like 3 years to write a shitty kernel that does nothing, crashes at the slightest inconvenience and i can't get anything done anymore because i set my standards way too high and idk where to learn about stuff

#

sooo

#

¯_(ツ)_/¯

#

it is what it is

#

at least im glad i can watch other people do cool stuff and maybe contribute

warm pine
coarse current
twilit smelt
#

the big thing about swapping is that it introduces shit tons of intricate little rules that you definitely did not follow and didnt even know you were breaking when you wrote your kernel initially

sterile frost
warm pine
#

in my case that was gotten at by getting rid of the temptation to insert unwanted innovations and instead implementing something that hewed very closely to the mintia/nt vmm

sterile frost
#

it has progressed so much it's crazy

twilit smelt
sterile frost
#

that makes sense actually

warm pine
sterile frost
warm pine
#

actually the VMM in it was neither fish nor fowl, i had studied the vms vmm tradition long enough by then that i did incorporate certain concepts like MDLs and the page refcount, but attached to a clock-style replacement

twilit smelt
warm pine
#

and incorporating those two concepts i finally learned the basis to implement page replacement and writeback without getting lost in crazy nonsense like extended page locks held during I/O (horrible!! shit!!)

coarse current
twilit smelt
#

they do take another lock shared (which truncation also takes exclusive)

digital pivot
twilit smelt
#

but they dont take any locks that synchronize against page writeback

warm pine
twilit smelt
#

and truncation is handled specially there

#

so that its not needed

twilit smelt
#

i mean its necessary

warm pine
#

or possibly i let the filesystem decide, there's something anyway

twilit smelt
#

i originally didnt have that and there was just a big race condition and i was re-reading "NT File System Internals" and it mentioned the paging IO ERESOURCE and what it was for and i was like ohhhh shit

#

i originally ignored it bc i didnt understand the difference with the normal file ERESOURCE (that is to say, rwlock)

#

and didnt notice the races between truncation and reading/writing (somehow)

#

i mean i think i synchronized it at a mechanical level in the fs driver so the on-disk structures were always sane but there was some data consistency race condition that could only be fully handled higher up

#

i dont remember what

twilit smelt
#

nt cache manafler is for sure its best component.

#

viewcache is a better name tho

#

whats a manafler anyway

twilit smelt
#

file page writeback also only takes it shared

#

ONLY truncation takes it exclusive

#

this could cause deadlocks bc theres paged code and data in the truncation codepath

#

if the modified page writer tried to take the paging io rwlock and a truncator had it

#

they might fault on something and block for pages and never get them bc the modified page writer is waiting for them to release the paging io rwlock

#

and this is why the modified page writer is split out into the file page writer

#

and it dispatches file page writes for that other guy to do

#

so that he can block on paging io rwlocks without blocking the guy who writes to the pagefile

#

this still has a potential issue which is if memory is 100% filled with file pages and the file page writer is your only hope for getting any

#

but this is impossible to happen in practice

#

kind of accidentally

#

just from the fact that theres not really any plausible sequence of actions to take that results in the system having only fluid file pages and zero fluid anon pages

#

youd inevitably fault in more anon pages on the way to trying to make that happen

#

specifically because there is paged kernel code and data that you cant stop from being touched if you take a page fault on a file page

#

so the paged kernel code and data actualyl serves an extremely subtle functional purpose lmfao

#

which is preventing this highly specific deadlock by stopping fluid memory from ever being 100% dirtied file pages

#

but thats not enough to rely on so you also should just throttle threads who create tons of dirtied file pages by forcing them to sleep for a few millseconds

#

i should add support for offlining a cpu to my scheduler

#

specifically so i can do the famous BeOS demo

#

i have no other use for it

coarse current
#

isn't the interrupt handling a bigger problem with it than the scheduling?

twilit smelt
#

Probably

#

You'd probably need to message the drivers to get them to rearrange their own interrupts if they support such a thing

coarse current
#

Like scheduling is easy, just evacuate everything to a different CPU and stop it

#

But you have to have a really robust driver interface for interrupt renalancing

twilit smelt
#

Yeah I'll be able to do that too no problem

#

I just read about how windows does that exact thing the other day

#

It sends a plug n play STOP packet to any driver with resources taken out that need rebalancing, so in this case any driver that has an interrupt registered with the cpu being offlined, and the driver marks the packet completed after it quiesces and releases these things

#

It sends a START packet later (in this case presumably after the cpu is fully offlined) which causes the driver to re-request its resources, in this case getting some interrupts allocated on whatever cpu except the one that was offlined

#

And it has to restart it's in progress packets in a transparent way

#

So users don't notice

coarse current
#

I see ACPI in it

#

Yeah, after thinking about it it's not a big issue

twilit smelt
#

The STOP and START packets are very heavy handed tho

#

Drivers have to release literally every hardware resource they asked for (interrupts, dma channels, etc) without cancelling any ongoing user requests

#

And also save any state from the device that needs saving in ram bc the device might be getting powered off by user request or something

#

When it gets a START it has to transparently restart all of this

coarse current
#

it probably stems from the backwards compatibility (?)

twilit smelt
#

No

#

Well maybe

#

I was just gonna say it was cleanly designed like this relatively recently but by that I mean like 1998

coarse current
#

Was NT parking cores back then, or was it a convenient interface that they already had when that was implemented?

twilit smelt
#

I don't know

#

Also pnp was originally designed for win9x

coarse current
#

the famous bsod

twilit smelt
#

iiuc it was ported to NT after that

#

(Designed all along with the intent of moving it to NT later)

#

the original usage of the start and stop packets was for manually powering down a device at user request

#

it would send such packets to all device stacks downstream of a device being powered down

#

from the leaves of the device tree up serially

#

(but the leaves would receive these packets and process them in parallel as async IO requests, its just their parent wouldnt receive the packet until the children had fully completed it)

coarse current
#

Like when core parking was even added to Windows?

twilit smelt
#

no clue

coarse current
#

I'm suspecting around Windows 8?

twilit smelt
coarse current
#

(I have no idea how NT is internally)

twilit smelt
#

im gonna have a HUGE io system this time and it was already 15kloc last time w/o supporting all this plug n play junk and object oriented driver models and whatever so u know i mean business

#

nvm it was only 10k

#

largest file was IOPageFile.df at 1300 lines

#

Ke (basically the scheduler and exception handling) was 6900 lines last time and is 14,500 lines this time

#

So Far

#

if the ratio is the same for the IO system (it wont be) itll be 21k lines this time

#

ik ik youre not supposed to admire largeness

#

but largeness is cool when it reflects essential complexity

#

and not accidental complexity

#

terry "an idiot admires complexity. a genius admires simplicity" davis didnt understand this part bc of racism brain worms and a lack of appreciation for fred brooks

#

its funny he said that like templeos is a beacon of genius simplicity

#

despite that its still repeated by dummies about 100 times a day

#

usually to excuse being bad as just "no. its elegant. its simple"

#

"just like king terry would have wanted"

#

cuz they confused paring down accidental complexity with chopping items off their feature list

#

often not even frilly features either but like. "robustness"

#

cuz they have no concept of a distinction between complexity bc it does a lot, and complexity bc its badly written

#

a lot of ppl conflate the latter with the former explicitly and they do this under the like "well its just the unix KISS principle. do ONE thing and do it well. if youre doing lots of things then you simply have a bad program anyway"

#

somehow they dont realize the unix kernel at any point after the late 70s is itself a 100k, 200k, 500k, 1 million line behemoth that does a LOT

#

not to mention the toolchain its built with

#

the only value in KISS is the obvious "modularity" and "code reuse" stuff thats intuitive

#

using it as some iron law is extremely obselete thinking from like 1972 when they physically couldnt hold the results of each pass of a compiler in memory and had to write it out to disk and feed it into the next stage which was a separate program and so on

#

and nowadays is 90% of the time a cope by the mediocre to excuse sucking ass by invoking some like vague hero figures who coined a catchphrase in the 70s that they think is somehow supposed to still be automatically taken seriously today (prob cuz theyre too mediocre to use critical thinking)

#

honsetly the biggest reason i dislike microkernels is probably because they originated explicitly as an attempt to apply "KISS" to the unix kernel itself

#

which i think is like arbitrary dogma and completely technically inappropriate

#

and i think the best proof for that is literally every attempt to do a general purpose OS on top of a microkernel ever

#

no offense to the microkernelers in here

#

it reminds me of the "real communism has never been tried" thing

#

im sure this time there will be a good fast microkernel

twilit smelt
#

it occurs to me that if at some point im planning on doing linux userspace binary compatibility

#

i need to pick WHICH linux userspace

#

and then im doing distro dev

warm pine
#

of course if you have a primitive dogmatic conception of what simplicity is then you paradoxically break the concept of simplicity

#

(maoists call this dogmato-revisionism, the inescapable tendency of dogmatism to also be revisionist, i.e. to deviate from the original concept while it pretends to uphold it. it's very dialectical but the same principle is also arrived at by very much not maoists, like popper with his paradox of tolerance. and in software you can see this a lot, for example how amigaos cultists try to claim the lack of virtual memory of amigaos as a feature, when in fact it was an undesired compromise made because adding an MMU wasn't practicable at the time. by reifying accident into essential dogma, they do a disservice to what amigaos was meant to be, what it could be)

#

and so the corollary to this is that you can't be truly faithful to a concept unless you are prepared to search for its fuller embodiment and application. take UNIX for instance

#

if you bear true fidelity to unix as an ideal then you have to support things like handles to processes being file descriptors. that's being more unix than historic unix itself

warm mural
#

I think a good microkernel is definitely feasible

#

for a general-purpose desktop OS, that is

#

just gotta know how to balance responsability between user processes and the kernel

twilit smelt
#

i have eliminated the big IO lock in xremu

#

idk why that was there for so long

#

it was a stopgap when it first became multithreaded and it basically just wrapped all the simulated devices

#

i just broke it up into per-device locks

#

on another note xremu probably needs like a total rewrite

#

it is so scummy

#

scrungly

#

inconsistent error handling (sometimes i handle malloc failure (at init time), other times i just abort()), inconsistent code style, generally ugly code

sterile frost
#

RIIJ

twilit smelt
#

when i removed it, some text that ive never seen mixed together (bc of race conditions; multiple cpus printing simultaneously) was mixed together consistently

#

suggesting increased parallelism

#

also finally motivated me to put hooks around my RtlPrint function that let the client (in this case the kernel) take a lock to guard the line if it wants

#

i assumed it wouldnt have had much of an effect bc accessing devices is pretty infrequent and most of the time each cpu lives out of its own cache (which is locked per-cache-set)

#

but ig it did

sterile frost
#

wow i had a hunch the other day :^)

twilit smelt
#

it didnt help with the fireworks jitter

sterile frost
#

ah :(

#

but improving the parallelism at least a bit is still a good outcome i guess

twilit smelt
#

but thats on my 11 yr old intel imac, on my m1 macbook i can barely notice the jitter

#

so im p sure its just a result of a really shitty ancient intel cpu from 11 yrs ago not being good at running the cpu threads in a physically simultaneous manner and so they get stuck on spinlocks and IPIs for a long time, waiting for the other guy to get scheduled in on the host

#

and the pause trick (which causes the cpu thread to sched_yield() if you execute like >256 of them within a millisecond, and i execute this on each iteration of a spin that waits for another cpu) only goes so far

#

it does go pretty far though

#

pre-pause if i ran the fireworks test with 8 cpus on my intel imac it would BARELY even run

#

now it runs and is only slightly more jittery than 2 cpus

sterile frost
#

how many cores does the imac have?

twilit smelt
#

as a direct result of the pause thing

#

4 lol

sterile frost
#

4 physical 8 logical

#

or 2c4t

#

im assuming former

twilit smelt
#

former

sterile frost
#

makes sense

#

maybe kernel overhead

#

but i dont think it would account for that much

twilit smelt
#

it might. im running a version thats like 5 years newer than the last officially supported OS on this machine

sterile frost
#

i mean at least one of the logical cores is shared between the "guest" and the rest of the os

#

probably two or three though

#

but im also assuming they aren't being utilised 100% by the emulator

twilit smelt
#

this is not very performant

sterile frost
#

yeah that sounds less than optimal

#

ever thought about just using linux on it?

twilit smelt
#

i only updated (which was only possible with some third party patching software) bc i was worried about malware

#

i meant to imply i want my experience to improve

#

not get worse

#

my bad

twilit smelt
#

as of some time ago all disk IO in the emulator is async by enqueuing an SDL timer with a timeout of 0 which effectively causes it to get instantly dispatched on SDL's timer thread

#

so the cpu threads dont have to take the burden of the read() and write() syscalls and stuff

#

previously itd be highly likely for this work thread to contend on the big io mutex with a cpu thread (rendering a lot of the benefits null) but now its much less likely

#

cuz it just takes a disk controller mutex instead

mortal thunder
#

finally

#

i remember mentioning this to you a few mo ago

#

why dont you just add a stringify type preprocessor feature

#

like in C, #paramnamehere turns whatever tokens you passed into it into a string

twilit smelt
mortal thunder
#

evidently you do need one that strcat ( strcat ( ) ) looks ugly

twilit smelt
#

u can do it the way u like it in ur own compiler

mortal thunder
#

of course

twilit smelt
#

which is a good response to annoying aesthetic nitpicks

#

but if u ever see me say something like that in response to some major functional deficiency i want you to shoot me

#

bc it means ive died

#

and something evil took my place

#

this isnt that tho cuz it works just fine

#

you just find the way it works ugly

#

which idc about

#

i listened to ur functional critique about the asserts needing to exist but this aesthetic one idc about

#

u see how that works

#

i should probably add the function name to the assert message

signal zinc
#

i still don't get how this works 🥺 stir cat

mortal thunder
#

it st(i)rs two cats together into one big cat

twilit smelt
#

just the file name and line number were too ambiguous

#

bc that can change from version to version

twilit smelt
#

( STRCAT a b ) yields a string ab

#

so this is basically doing like

EXPR_STRING = "\"" + expression + "\""
signal zinc
#

awawa

craggy spire
#

It didn't rebalance the interrupts back then

#

The main idea is to disable thread scheduling on the parked core so that it can potentially idle

mortal thunder
#

and by that i mean it shouldn't matter if you just emulate all the syscalls

mortal thunder
mortal thunder
#

you might have considered this but just wondering

#

but uh it seems like there are some seemingly arbitrary restrictions on what versions actually work

#

like "you can only use target display mode if the source is running macos catalina or earlier and the mac was introduced 2019 or earlier"

twilit smelt
#

I just remembered realloc exists

#

Leaving this as a note here for when I have time to go and use it in appropriate places

#

Consequences of being dumb

white valley
mortal thunder
#

like your design didnt account for it?

twilit smelt
#

I just didn't implement it and had been doing it the hard way in a few places

#

Just a dumb thing

white valley
#

classic malloc memcpy free

twilit smelt
#

Yeah

white valley
#

and only realloc the virt pages

twilit smelt
#

For large alligations yeah

#

The ones that were made page aligned to begin with

#

For smaller ones I'll just check for enough free space to the right of the block and try to extend it into there

#

If not then I'll just fall back to a malloc memcpy free

twilit smelt
#

seeing this feels like painstakingly climbing down a cliffside of the grand canyon and then up the other side and then looking back across and theres a tech bro going "guys. its HIGH SIGNAL to be on the other side of this canyon. all you have to do is jump across" and then 685 people jump to their deaths

warm pine
# twilit smelt

it seems to be a universal rule of osdev that any tutorial will cover legacy x86 minutia in great depth (but often not very accurately) then quickly peter out before it gets into actual osdev

#

just realised mintia is one letter away from minutia

#

aarch64 by far the toughest target i have targeted and i've done 4 targets

twilit smelt
warm pine
#

you think idt and gdt are hard? wait until you see aarch64 cache modes and maintenance and shareability and so on

warm pine
twilit smelt
# warm pine lmao

these people think theyre smart bc they push out slop (usually vaguely right wing coded) to a crowd of useful idiot cs majors who lap it all up

#

ppl rly similar to that poster are currently taking control of the apparatus of the federal government

#

so thats cool

warm pine
twilit smelt
#

dumb silicon valley billionaires dreamt about libertarian technocracy and when they tried to make it real the best they could do was authoritarian tech-bro-cracy

warm pine
#

herbert couldn't let a reference to x86 go by without having to pipe in with trite commentary

warm pine
twilit smelt
#

the reason its scary is that theyre doomed to crash and burn because they arent as smart as they think they are and reality will eventually catch up to them. they forgot that theyre just marketers and accidentally put themselves in positions where they now have to be technically competent in order to succeed

#

this would be amusing if it werent now tied up with the fate of the western world

#

smth interesting is if im wrapped in a blanket and i throw it back onto my bed my headphones gently play static for a few seconds

#

wonder what static electricity bs is going on to cause that

warm pine
#

he is a bit like the archetype of the manager who never spent any time on the shop floor so he thinks he can cut this or that and change whatever and it'll all improve things because he's smart

#

but the depth of arrogance is much, much worse because of the tech background

twilit smelt
#

he's worried about assassination but seems to think the most likely culprits would be edgy posters on twitter and not the CIA

#

i dont think he knows what game he's gotten himself into trying to use his financial and soft power to reshape the federal govt in a way that could risk america's national security

#

or he's mistaken the CIA's bureaucracy (which probably feels mostly transparent to the authority of the executive) with its actual actors

#

they could be drafting up contingency plans to violently counter-coup DOGE in an office building that the bureaucratic administration of the CIA doesnt even know exists

#

by design, bc the executive changes every 4-8 years and thats far too fickle and risky to rest the national security of the country on, the only real solution (which ppl would have realized over a century ago) would be to have layers of secrecy such that the president cant know everything thats going on no matter how much he'd like to, and what he doesnt know about he cant control

#

i mean this is intelligence agency 101 shit that the CIA surely implemented decades ago at least

#

elected civilian administration just cant have that much control or knowledge over these things - it just wouldnt work well for very long if at all

#

a really robust security state has to be inherently undemocratic in some way probably

#

robust secrecy is undemocratic

#

inherently

#

is what im saying

#

its also required to maintain the long term security of a global hegemon

twilit smelt
#

it probably varies over time how much the "director of the CIA" knows or has control over what the CIA is doing

#

at a time like this its probably at an all time low bc the people would adjust around their perceived trustworthiness which would not be high at this moment, being a cabinet pick by an administration that is seemingly actively working against our national interests for some reason

#

it always struck me that "the director of the CIA" just cannot know that much about what its doing. like. ironically a fully-informed central administration is antithetical to the whole purpose of its existence

#

like you probably have lower to mid level administrators who have been there for decades and have the trust of "their people" and so they probably know and can direct certain things

#

but some bullshit cabinet pick by an idiot president probably has substantially less influence and might be judged very low on the "need to know" scale

#

i bet the FBI is a lot worse at keeping secrets from itself though

#

it probably does have a fully informed central bureaucratic admin and thats how trump was able to ask them for a list of agents who worked against him and get a complete answer

#

for the CIA something like "tell me all the agents who work on sensitive intelligence about Russia" is probably more of an unanswerable question even if they wanted to

#

if you can even answer a question like that youre probably a shit intelligence agency

#

maybe someone like the modern Mossad outclass the modern CIA at that kind of secrecy though, i really would not know (and by definition maybe nobody knows.)

#

it would explain a lot if that were the case

#

honestly if literally everything going on in the US right now were the result of an extremely successful Mossad operation to turn it into a gigantic client state of Israel i would only be like 70% surprised

#

they do stand to gain the most by far

#

ppl like to point the finger at putin bc he gets to keep some territories of ukraine and that is a pretty substantial gain which makes him a good suspect

#

but israel getting our unconditional direct diplomatic and military support with literally anything they do ever is probably a relatively much larger one

#

i dunno. its difficult to explain whats happening, i dont want to think that the silicon valley "technolibertarians" are winning this hard just by their own hand bc theyre so stupid its painful to imagine

#

imagining them as useful idiots who are being exploited by a foreign power and tricked into thinking its all their own idea (which would be easy, because they are stupid) makes more sense

white valley
#

what do you think about trump saying fuck u to the court and deporting people who havent even be proved to be gang members anyways

#

and trying to deport someone with a green card cuz they protested against israel

twilit smelt
#

i mean those are transparently authoritarian moves

#

and a level of deference to a genocidal foreign power that is absolutely insane and probably unprecedented in american history

#

and difficult to explain if there isnt some kind of grasp on this administration

white valley
#

do you think this'll be used to deport political rivals

twilit smelt
#

no those will just be made irrelevant

#

the democratic party is literally too impotent to be a threat so the old assholes will probably just retire and live out their lives peacefully in the first years of the trump dynasty or something

#

there are no politicians who can stop these people

white valley
white valley
warm pine
#

they claimed biden was an old man taken advantage of by others in his government

#

well, Mary Anne's boy, he seems to be that to a tee

white valley
twilit smelt
#

but the constitution has been openly decried as obsolete by people who now hold a shit ton of federal power

#

the aforementioned silicon valley idiots who kind of snuck in the back door behind trump

#

led (publicly) by musk (thiel might be more influential behind the scenes)

#

and mainstream republican politicians have called for trump to run for a third term

white valley
#

how do you think this'll stop

twilit smelt
#

one of them was drafting a constitutional amendment to make the 2 term limit a 2 consecutive term limit

#

so you can have another 2 terms if theres a gap inbetween lol

#

the extra time would be useful for further dismantling the federal government and reprogramming half of the country into thinking federal democracy is actually woke and anti-freedom

#

and trying to set up a new form of govt with trump as CEO and musk or thiel heading up a board of directors or something like that

#

thi sis obviously stupid and i dont expect it to work out how they plan but i fully believe the silicon valley billionaires want to do exactly this

#

but like i said theyre probably being puppeteered (potentially without even knowing it) by the intelligence services of a foreign power like israel or russia or both

#

and the real goal is just to convert america into a rabidly conservative and openly imperial authoritarian country that will never stop serving the interests of (israel/russia/whatever) for the foreseeable future; the point of the authoritarianism is just to give a certain segment of the elite class (carefully installed) more power to serve your interests for longer

#

which is probably the best plan if your (potential) enemy is a literally unbeatable global hegemon

#

just turn them into ur bitch while tricking them into thinking theyre just awakening a newfound national pride

#

now youre the unbeatable global hegemon for like 1 millionth the work

#

for a while at least

white valley
#

i see

white valley
twilit smelt
#

i think whatevers happening will reach a conclusion with minimal interference from opponents

white valley
#

no impeachment?

twilit smelt
#

uhhh no

#

not even close

#

lol

white valley
#

damn

#

do you think luigi'ing trump/musk would do anything

#

or would they be instantly replaced by worse people

twilit smelt
#

probably not

#

i think if you went that route youd have to push a red button that would immediately disappear like about 50 people simultaneously

#

this isnt possible so.

white valley
twilit smelt
#

literally the (actual) deep state is the only hope rn lol

#

the only potentially non completely impotent opponents of the actual people responsible for whats happening

#

whoever they are

#

assuming its not just straightforwardly the dumbass silicon valley billionaires which again i dont want to believe bc its so stupid

#

i hope it is bc thats a MUCH more beatable opponent

#

DOGE vs CIA: FIGHT

white valley
#

also isnt CIA like not supposed to be fiddling with internal affairs

twilit smelt
#

yeah but they always have lol

white valley
twilit smelt
#

they might be

#

it doesnt make any sense for them to be responsible for whats going on bc it only diminishes their own power and prestige

#

which is why im assuming its a foreign power

white valley
twilit smelt
#

bc modern CIA agents have the same make-up as like modern math and (actual) programming geniuses

#

that is to say theyre like 40% trans girls

#

and are extremely liberal

white valley
#

how do you know

twilit smelt
#

bc some internal CIA chats leaked recently (by the trump administration, as culture war fuel) where it was literally 100% trans girls talking about gender affirming surgery and stuff LOL

#

in perfect discord speak

#

right-wing media outlets like Fox News and The Daily Wire picked up on Rufo's story — as did unelected Trump administration official Elon Musk, who suggested the revelations show that "MAJOR housecleaning is needed" at America's spy agencies.

white valley
#

when they say "housecleaning" do they mean filling all agencies with only cishet white guys wearing maga hats

twilit smelt
#

Another intelligence official boasted that genital surgery allowed him “to wear leggings or bikinis without having to wear a gaff under it.”

These employees discussed hair removal, estrogen injections, and the experience of sexual pleasure post-castration. “[G]etting my butthole zapped by a laser was . . . shocking,” said one transgender-identifying intel employee who spent thousands on hair removal. “Look, I just enjoy helping other people experience boobs,” said another about estrogen treatments. “[O]ne of the weirdest things that gives me euphoria is when i pee, i don’t have to push anything down to make sure it aims right,” a Defense Intelligence Agency employee added.

#

agents from several agencies were involved in these chats so its not just the CIA lmfao

#

the fact it was an inter-agency chat is probably how it was unsecret enough for ppl as untrustworthy as the trump administration to be able to get a peek at it at all

twilit smelt
#

its an accurate description otherwise

white valley
#

yeah i noticed that

twilit smelt
#

5 transgender cia agents are assembling poison darts in a secret warehouse rn

white valley
#

first transgender us president when

#

would be a bigger deal than obama

twilit smelt
#

this whole thing might come down to a secret intelligence war like a dumb spy movie

#

if its just against DOGE theres nothing to worry about bc those guys are idiots who dont understand the concept of opsec and half their girlfriends are probably spies already

#

FSB or Mossad are scarier as i already said

#

netanyahu probably wasnt even briefed on the pager thing until an hour before they set it off

#

the guy who briefed him probably wasnt briefed until an hour before that

#

i do understand opsec which is why me expressing my views on all of this openly is proof im a lazy asshole and a complete non-threat. i am not worth ur time scary spy people.

white valley
#

EXACTLY what a mossad agent would say

twilit smelt
#

actually this is absolutely necessary or nothing would ever work, as soon as information reaches the elected administration of any democratic nation the odds of it inevitably leaking accidentally or otherwise probably goes up to 100%

#

obama probably didnt know they knew where bin laden was until they asked for approval to go kill him

#

well i mean ig that ones obvious

#

he def knew they were looking for him lol

#

only cuz everybody did though

tiny swallow
#

at least you got a bureaucracy

mortal thunder
mortal thunder
white valley
#

u dont even live there

#

i asked will cuz he has the most exposure to us politics

mortal thunder
#

The russian regime wasn't taken down in 35 years

#

what makes anyone think musk's regime will be

#

even if trump dies musk will probably still have the same amount of power with jd vance as president

coarse current
green pelican
#

imagine immigrating to china and then going to pro taiwan protests, you'd be put in jail forever

#

have some common sense

mortal thunder
#

and of course you dont overexaggerate

green pelican
#

the constitution doesnt apply to people who arent citizens

#

this is the same in almost every country

twilit smelt
#

The legal principle is that if someone is subject to our laws then they also are guaranteed the rights that restrict those laws

#

Bc they are part of the law!

#

And you're not supposed to be able to pick and choose what parts of the law you want to apply to someone

twilit smelt
twilit smelt
green pelican
twilit smelt
#

You should be able to come to America and peacefully protest their support of a genocidal regime lol

#

Bc it's a free country. We always say "come over and have some freedom!!" and it's lame to arbitrarily go "oh nvm no freedom for you you criticized our evil ally"

green pelican
#

america is not known to be the most consistent country ngl

#

im not arguing if its right or wrong, im saying that its kinda insane to expect nothing to happen when people do these things

twilit smelt
#

No it isn't

#

Please stop talking before I stop liking you

#

This is a gradual erosion of rights issue, because in America no there's not really any precedent for deporting legal residents for protesting, until now

#

What you're saying is Russia or China logic

twilit smelt
#

They probably don't even want it to succeed they just want to put on a show for their moronic base

twilit smelt
#

Yeah I think so

raven drift
#

The chances for trump to amend the constitution to allow such a thing are basically zero though

green pelican
#

my favourite conspiracy to come out of twitter is that trump shouldn't have been allowed to run in the 2024 elections because he won the 2020 ones

mortal thunder
#

Not mentioning that he's likely going to try

raven drift
#

Amendments need a 2/3 majority

mortal thunder
#

The SCOTUS is pretty much in his hand

#

Isn't it?

green pelican
#

certainly not a 2/3rd majority of it

#

and i doubt many republicans would vote for it anyway, the constitution is like the one thing you dont touch

#

and on top of that voting for that kind of thing is political career suicide, you'd never be elected by your state again

heady bobcat
#

In the Swedish constitution it is written that an amendment needs to pass the vote two times, with an election in-between (obviously in legal-speek and not as straightforward as this, though). There's also a process where proposed changes to the law are sent for review to interested institutions and governmental bodies months before they are voted on. Is this just not a thing elsewhere?

green pelican
#

iirc in canada its a 2/3rd majority vote as well, but again its career suicide even if it passes. everytime the constitution has been amended the person that did it was shunned out of politics pretty quickly afterwards

heady bobcat
green pelican
cunning mortar
#

Apache is obviously showing he has no fucking idea what he's talking about

#

also fuck Israel, free Palestine 🇵🇸

heady bobcat
#

in a sensible world, what he's saying is true, though.

cunning mortar
#

yeah well

#

he's talking about American politics in 2025

green pelican
#

i sometimes forget that most of the world is in a terminal state of delirium

#

my bad halfmemeright

cunning mortar
#

hell, not even just Republicans

#

Democrats will vote for what orange man says too

#

because bags of cash

green pelican
#

forget age limits on politicians, they should enforce that everyone gets 9 hours of good sleep before they're allowed to vote on anything

twilit smelt
cunning mortar
#

but that doesn't matter

#

Trump has been ignoring the constitution

green pelican
#

it would be nice if he could stop putting tarrifs on random things

twilit smelt
#

Amazon made me pay a tariff to buy my Canadian friend some Korean skincare goop :(

green pelican
#

damn that was quick on amazons part

cunning mortar
#

if you're American support AOC and Bernie

twilit smelt
green pelican
#

vote for howard dean

#

i have no clue what his policies were but i have a couple of tshirts and they've been very good quality

cunning mortar
#

so support them while you can

#

isn't it true that the brightest of stars shine in the darkest of nights :^)

green pelican
#

there are solutions to many political problems but discord TOS prevents me from talking about them

cunning mortar
white valley
#

is that your list

green pelican
#

no those are solutions to personal problems

twilit smelt
#

I'm not even convinced that there will be a next presidential election in any meaningful way

cunning mortar
#

well the mid-terms are first

#

we'll see with those

white valley
cunning mortar
#

sorry, you're Turkish

#

same thing

green pelican
#

america hasnt had an election since 1960 trl

twilit smelt
white valley
green pelican
#

hasan piker country

cunning mortar
twilit smelt
#

They already are but I mean even moreso

green pelican
#

i was very suprised to see how quickly tech giants turned coat when trump got elected

#

google renaming the gulf of mexico to the gulf of america in like a week was not something i thought would happen

twilit smelt
#

It's because they are all "technolibertarians" who think they can co opt the Republican Party to destroy the government and have their ideology rise from the ashes

green pelican
#

i get that these megacorps are all about making money but i would've thought the amount of internal pushback would've slowed stuff down alot

twilit smelt
#

No there's just been a weird political extremism brewing in Silicon Valley circles that kind of snuck up on everyone

#

They've been saying it out loud for decades but ppl brushed it off as "haha what loony eccentric billionaires how quaint" until extremely recently it got less cute when they started concentrating their power on implementing it

#

At some point they recruited Trump and that gave them the opportunity to do all this

#

In actuality they don't like either the conservative base who they think are mouth breathing tribalistic cavemen nor the liberal base who they think are deranged woke communists

#

They like rich people (themselves)

#

Who they think are superior humans

#

They think wealth is the highest measure of merit and that they should get to rule the modern technological world they think they built, for everyone's good

twilit smelt
#

You could see a demonstration of this division recently with the like H1B visa controversy lol

#

The tech billionaire part of maga was like "we love Indian immigrants bc we can pay them less and they work harder" and the racist part (the entire rest of it) was like "what????? no! we hate Indian immigrants bc [insert racist tirade]"

green pelican
#

incredible how you just cant win in america

white valley
#

it's a big club

#

and you aint in it

cunning mortar
#
CNN

Rep. Alexandria Ocasio-Cortez didn’t reserve her criticism for Republicans while calling for change, saying Democrats need a party that “fights harder” for them. The comments from the progressive New York Democrat highlight tensions within the party as many call for a stronger strategy to counter President Donald Trump. Ocasio-Cortez spoke as sh...

▶ Play video
green pelican
white valley
#

lmao

twilit smelt
#

I think the Democratic Party will just disintegrate and become an irrelevant husk and it'll take like another 15-20 years for a new leftist party to appear that has any juice

#

I hate to say it

#

Average liberals are going to keep smugly accusing ppl further left of sabotaging them and keep trying to pander to an imaginary moderate base that no longer exists and this will continue until they're outnumbered within the left by young ppl who have been more radicalized by what's coming

cunning mortar
#

the analysis is correct

#

i hope it happens faster than you think it will

twilit smelt
#

No moderates left on either side means appeasement stops and things maybe get violent

#

Might be a civil war by the time this saga comes to a close

green pelican
#

born too late to explore the world, too early to explore the galaxy, but just in time to watch america balkanize

twilit smelt
#

I think if it happens it could still be quite a ways off and trump would be long dead by then

green pelican
#

although i doubt it ever will, too much important stuff depends on america staying mostly in one piece

#

nothing ever happens and all that

white valley
#

btw how things are going in your country is very similar to turkey

#

minus the tech bro in government part

twilit smelt
white valley
#

but the "fascist guy takes over and fucks up the country while the leftist party is too incompetent to do anything significant" is pretty similar

twilit smelt
#

The last straw might have been capital throwing their lot in with him

#

That might be the point of no return

#

Bc that's a very powerful force that'll work to continue what he was doing after he's gone

#

Also musk has an extra motive aside from "rich people are ubermensch who deserve to divide the earth amongst themselves and rule as dictator CEOs of corporatocracies"

#

He probably convinced himself that he needs to control the govt in order to direct its resources toward like mars colonization which he thinks is humanity's only hope

mortal thunder
#

your job is done

green pelican
mortal thunder
#

the solution is simple

#

modify the constitution to allow the president to personally appoint [insert position here] without Congress or a vote

#

you lose popularity but if it passes no one can get rid of you without violence

#

honestly i kinda wanted to start fixing shit in my life but recent events and russian threats have completely killed my motivation to do anything

#

if im going to die in 5 years (please dont) then why should i bother doing anything other than the bare minimum

cunning mortar
#

damn holy shit what attitudes i see

mortal thunder
#

now i hope that russia DOESN'T invade but yknow

cunning mortar
#

no wonder how Trump is in power

green pelican
#

because your ancestors didnt survive wars and famines just for you to up and kill yourself what kind of question is that

#

2000 years of people struggling for a better life for their kids just for some idiot to go "oh no the world is bad time to become a genetic dead end"

white valley
#

they didnt say theyre gonna kill themselves

#

they just asked why they should be doing anything with their life if theyre going to die in a short time anyways

green pelican
#

doing nothing and letting yourself be trampled by circumstance may as well be equivalent

mortal thunder
white valley
#

were you romanian

mortal thunder
#

i am

white valley
#

will you be romanian

mortal thunder
#

i am already what do you mean

white valley
green pelican
#

lmao

mortal thunder
#

i don't want to get enrolled in the romanian army, but if i have no choice

#

then i will try

white valley
#

also if russia doesnt invade then you're still not safe

mortal thunder
white valley
#

one day you might trip going down the stairs and land perfectly on the tip of an unnecessarily sharp umbrella

green pelican
#

if you get conscripted tell the constription officer you'll shoot your commander the second you're handed a gun lmao

#

they cant really take you after that

mortal thunder
#

hell no

mortal thunder
#

also i would never

green pelican
#

out of the 500,000 people that dodged the vietnam war draft only 3000 served jail time

#

its an empty threat

coarse current
#

but like also at that point you're dealing with armed forces

mortal thunder
#

no

white valley
#

thats not how things work in the balkans

#

unfortunately..

green pelican
#

die for a country that hates you or spend time in jail is a pretty easy choice either way ngl

coarse current
#

the best is to try and avoid both

teal trench
#

i wonder how other inmates treat people who are in jail for dodging mandatory service

green pelican
#

well yeah ideally flee to another country long before the draft becomes a thing to worry about

white valley
mortal thunder
white valley
#

tell them you robbed a bank or something

white valley
#

depends on how nationalistic they are ig

mortal thunder
#

this too

white valley
#

anyways i doubt theyll have enough space to jail everyone who dodged their drafts

#

and you should easily be able to like cross a border illegally

green pelican
#

romania is part of the EU isnt it?

raven drift
coarse current
#

yeah, you can't flee to other countries in eu

white valley
#

idk but my friend crossed the border to bulgaria with an out of date passport and many liters of wine

raven drift
#

The world is still a much better place than 10/20/30/40/... years ago

earnest zenith
#

your great grandparents lived through way more cataclysmic events than the stuff now

green pelican
#

theres like 3000km of land border, there are plenty of ways to get out

earnest zenith
cunning mortar
earnest zenith
#

or the most productive option in any scenario

#

is to carry on with life

mortal thunder
#

i never implied i would kill myself

earnest zenith
#

oh

mortal thunder
#

just that i might die by russian

earnest zenith
#

not in that way

#

I mean

mortal thunder
#

either missile or gun

#

or mine

earnest zenith
#

carry on with day-to-day life

#

and on improving yourself personally

green pelican
#

hey did you know one of the main things the CIA learned from their experiments with mk-ultra is that people who are frightened and who feel helpless are easier to control and manipulate

#

fun fact meme

white valley
#

in any case it doesnt help to be like "oh no i might die!!"

mortal thunder
#

and i should think

white valley
#

just live your life to the fullest

#

and you can always flee to turkey

mortal thunder
#

maybe russia wont invade

#

after all they havent for 3 years

white valley
green pelican
#

i dont think russia has another war in them for the forseeable future once ukraine is done

#

they've cratered their demographics

coarse current
#

tbh I have no idea what's going on at this point

#

with russia and neighbouring countries

earnest zenith
green pelican
#

they'll probably win parts of ukraine but they're running out of people to throw into the meat grinder

white valley
#

you're playing agar.io with a buncha friends

#

and theres a huge fucking guy on the map

#

who ate you in the past

coarse current
#

i am russian

white valley
#

and now he's not interested in eating you

#

but you dont really know when he might turn

coarse current
#

like the situation is bad

#

i get surprised when i hear about "russia interfering in elections" and stuff like that, the country is just not that powerful in my eyes

green pelican
#

below the age of 30 women outnumber men by like what kind of ratio

#

its something insane like 65% female in that age band

white valley
coarse current
#

ok maybe bad but not terrible

green pelican
#

just a bit worse than canada where 60% of the population under 30 is male because of the amount of immigration from india meme

white valley
#

i really dont understand countries taking immigrants from places where the culture is like the exact opposite

green pelican
#

its great how many countries are seemingly trying to speedrun total demographic collapse