#MINTIA (not vibecoded)
1 messages · Page 7 of 1
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
yeah, something like that
although if they do that and believe they're good it's unlikely they'll get somewhere...
Why is this a problem if present is false anyway? You just invalidate this page when u get a pf and youre good no?
why would the binary size shrink for !BLD_CHK builds?
it shrunk for checked builds i meant
the assert messages were more compact than the ad hoc messages i had before
oh lol
basically virtual page 0 would match with an empty tlb entry where present=false
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
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
well ok if the arch explicitly doesnt work like that then sure
this actually wouldnt fix it
"invalidating" would just create a new entry that matches on page 0 and present=false
Hm?
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;
}
}
}
Hmm, but your pr doesnt fix this bug entirely then?
Oh ok
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
Why do you need the zeroth page anyway?
and this
bc i identity mapped the low 4mb of ram before jumping into the kernel and it accesses the IVT through the identity mapped zeroth page
during initialization
Damn
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
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
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
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
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
Whats the point of the present bit in that code if as you say it doesnt cache non present ptes anyway?
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
Maybe that logic should be removed altogether
Makes sense
mintia2 on fox32 is now happily fireworking again
just change tlb cache non-present entries 
xr17032 already does that
it's fun
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
loongarch does that
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
exactly what you've described
I had to adjust my kernel to not shit itself on stale invalid tlb entries
rather than going like (pseudo-assembly)
andi tmp, pte_value, 1 // isolate valid bit
beq tmp, zero, PageFaultHandler
load pte into tlb
rfe
What's the point of that? Either you fill it right there, or proceed to segfault, either way the entry is never used again?
basically you can eliminate 2 instructions from the end of the psuedo tlb miss handler here
I know, I've written a software tlb refiller
With software refilled TLB, you get separate exceptions for refill and for invalid entry
you remove checking for validity of the pte from the hot path of tlb miss handling
(At least I think that's their rationale)
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
So like it's guaranteed to be present?
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
Ohh
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
To be fair it could just auto page fault if you load some placeholder address?
rather than a tlb miss exception
wdym
Like for example consider 0 a non present page
isnt that this exact thing except more work
you could maybe pagefault if you loaded invalid entry into tlb
Well no tlb entry used in this case
like immediately? thatd trample on exception state in an evil way
Well in a safe way
it's a possibility
if you dont use a tlb entry then the hardware cant check it and then you just added a branch back into the software handler
you could probably work around that
and you may as well have branched on the valid bit
read my architecture manual to see the evil state machine necessary to page fault safely in a tlb miss handler
but like you rarely hit stale entries anyway so it's not a big deal
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
Your tlb miss handler runs with paging on?
yes
Thats truly evil
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
Did you do it like that just for funsies?
that's cursed
its because i think its extremely efficient
i see where the obsession for recursive page tables comes from
How is it efficient to recursively page fault
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
you can also just cache lower page table levels
thats what this does
Did any real arches do it like that btw
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
This works because recursive paging?
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
no
here's mine on x86:
TlbMissHandler:
and the zero register is banked 🤯
when a tlb miss occurs, the cpu automatically fills the lower 22 bits with the offset the pte is at inside the page table (which is calculated basically as just vpn << 2)
Here's mine:
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
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
actually writes succeed but asymptomatically since you cant read it back
(unless youre in a tlb miss handler)
mov zero, long [zero] loads the PTE from the address it got from this process
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
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?
read what i just said
Since you have paging on
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)
Oh you have a permanent tlb entry
How do you set them?
why?
Page table and handler itself
yeah, but cannot there be a unified TLB?
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
Thats pretty smart
is there an equivalent of ASID/PCID for this scheme? or is everything flushed on context switches?
Like this sounds like it would work, but isnt it super slow
yeah i have ASIDs
wdym
It creates like a ton of tlb traffic to handle a page fault
"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
it sounds like a normal amount of traffic
How many levels are page tables on your arch
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
wdym by boring kernels
are they public? 
one is a swap test that intentionally causes swap thrashing and another is a forkbomb that just forkbombs
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
Yeah probably very very few hobby osses here can survive a fork bomb, let alone for a few days
theres like 32 in the DTB and 16 in the ITB i think
but its not specified architecturally
unlike mips
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)
Hm?
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
It will just oom at worst
yeah
but still
But u can set the oom adj score to -1000, so it will never be killed
(The original forker)
I don't get it
What do you mean by surviving a fork bomb
no i just start returning error statuses from process creation once they hit their resource limits or exhaust system resources
duh
Ok
The kernel doesnt leak memory, nothing blows up because of an oom
Successfully recovers once stopped
but then the fork bomb stops once you run out of memory
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
You can restart it in a loop
like nothing happened
no it doesnt
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
so SIGBUS
Also mintia doesnt even overcommit
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
Uhh no, just an errno lol
actually i guess it doesnt terminate
it just prints the error message
it probably used to terminate
Thats probably bad because once you use all available memory they just spin
it overcommits phys mem but not virtual mem
By overcommits you mean ram + page file?
yeah im pretty sure i changed it at some point and forgot to change it back
how do you even overcommit virtual mem?
U cant lol
virtual memory here means the capacity available in ram+pagefile
and not virtual address space
Discord wouldn't work on that 
Wait so what exactly do you overcommit
and doesnt commit it
It requeses 1TB of ram
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
What does that even mean? Overcommiting virtual is a subset of overcommiting physical
no it isnt
.
so physical memory is a subset of virtual memory
its the virtual memory that is currently cached in ram
Yes
you can overcommit physical memory by asking for more than exists in ram
Im confused
you cannot overcommit virtual memory by asking for more than exists in ram+pagefile
in mintia
Whats the difference vs nt here
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
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?
So mintia overcommit behavior is same as nt?
yes
Nvm then
file cache pages have backing on disk so they dont factor into this
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
What about shared anon
yup. but you can't fault them in if there are no free/freeable pages
im unsure why thats supposed to be a special case
so you swap out pages
this might evict other file cache pages or it might evict anonymous pages
What if there's nothing to evict
uhh
then you had a wired memory leak
whcih is a bug
and the system hangs
this would break any system
no
Well you've already done the mmap at that point lol
yeah
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
each shared page just counts as 1 page
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
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'?
what on earth do PTEs have to do with this
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
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
there needs to be some datastructure for process B to be able to see that process A has already mmaped that page, and so it shouldn't be accounted
Why do you need a copy if it’s like a page of data anyway?
it doesnt need any actual existence whatsoever other than the logical existence of "it exists"
the data structure is the common shared memory object you already have
if youve done a competent shared memory implementation
Linux has struct address_space for this
It has a list of vm areas that map that file
i mean sure, if you can just
ahci_write_sector(...);```
then who cares about allocating anything, but if you have a big ass i/o system above all of that it becomes a bit more complicated than that i think
and you account for the pages when you create the shared memory region not when you mmap it
Why does it become more complicated? Like if a device needs bounce buffers?
why would that mean that
idk m,y mental model is missing like everything
even if youre using programmed IO you can still just read the bytes from the page and shove them out the port
idk how that shit works
i am trying to figure that out
well assuming you use port io, yeah
You tell the disk to read from phys X and write to block Y
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
yeah that's what i was trying to figure out
i was wondering if you just keep a reserve for critical things like that
for disks this is basically intrinsic to all HBAs since a long time
How is accounting usually done for pages that are shared across resource limit context boundaries (e.g. rlimit, cgroups, etc.)?
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
the only thing ive identified that ill need it for in mintia2 is IO packet locations which im going to dynamically allocate during IO enqueue
if there is no scatter-gather then you can still write on a block-by-block basis
for me, the creator is charged with it
but making sure that there are always a few pages available makes sense
the creator can disappear and thats fine because the resource limit block has its own lifetime with its own refcount thatll be upped by the existence of these objects
ok, makes a lot of sense actually.
SG was my concern (in the 0 physical pages left case) since you need to allocate some structures to perform the IO
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
I mean it makes sense that the kernel would have a pool of pages only for itself
you can just set a field in the thread struct for the swapper that says "i am memory privileged"
To use for stuff like that
in this case, does the "page struct" (or page struct equivalent) keep a reference to the "creator" for decommit later on?
no, the shared memory object does
i generally preallocate the necessary resources
however in all but the worst cases you should be able to do block-by-block writeback without further allocation
i do this as much as i can but one instance i found where i cant is if the pagefile IO fragments and i need to allocate more associated IO packets
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
disk swapping sounds really cool to implement but i'm sure it's not a simple as it sounds
its simple once you understand it
many things are simple once you have a good understanding of them :p
sadly i lack the understanding lol
I want(ed) to support swap in my OS
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
things fall into place when you have the right design
But got distracted (several times)
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
i remember the old keyronex that used to run bash and xorg and i think i can say i agree with that statement
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
it has progressed so much it's crazy
this exact thing might be the ultimate source of the ke vs executive layering in NT
that makes sense actually
it had the wrong design in a lot of places, but enough parts were right that it could get so far as that
is there a good way to learn about "the layering in NT" or did you just do your own thing in mintia?
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
now im gonna do a freaky UVM-NT hybrid bastard child where i use NTy policy (working set lists) and low level mechanism (page lists) but UVMy mid level mechanism (amaps and the fork impl)
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!!)
like there are probably so many considerations to do that with a microkernel
a terrible beauty will be born
i hold a per-file "paging IO lock" across file page writebacks but it only synchronizes against truncation, normal file reads/writes dont take that lock
they do take another lock shared (which truncation also takes exclusive)
iirc you supported memory compression or am i thinking of something else?
but they dont take any locks that synchronize against page writeback
it "worked" but would not work if the page was deallocated during compression
pagefile writes do not take this lock bc that would cause deadlocks
and truncation is handled specially there
so that its not needed
i think i do too, i forgot
i mean its necessary
or possibly i let the filesystem decide, there's something anyway
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
this book also gave us the cache manafler diagram
nt cache manafler is for sure its best component.
viewcache is a better name tho
whats a manafler anyway
oh also
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
isn't the interrupt handling a bigger problem with it than the scheduling?
Probably
You'd probably need to message the drivers to get them to rearrange their own interrupts if they support such a thing
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
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
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
it probably stems from the backwards compatibility (?)
No
Well maybe
I was just gonna say it was cleanly designed like this relatively recently but by that I mean like 1998
Was NT parking cores back then, or was it a convenient interface that they already had when that was implemented?
the famous bsod
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)
Like when core parking was even added to Windows?
no clue
I'm suspecting around Windows 8?
i intend to do it identically but more xnu-y and iokit-y
(I have no idea how NT is internally)
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
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
it's the right way though
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
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
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
RIIJ
it seems to have had a macroscopic effect
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
wow i had a hunch the other day :^)
it didnt help with the fireworks jitter
ah :(
but improving the parallelism at least a bit is still a good outcome i guess
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
how many cores does the imac have?
former
makes sense
maybe kernel overhead
but i dont think it would account for that much
it might. im running a version thats like 5 years newer than the last officially supported OS on this machine
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
basically im on the newest macos version on a 2014 intel imac
this is not very performant
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
also the benefits will be way more visible when im doing fun async IO stress tests and stuff
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
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
bc i evidently dont need one
evidently you do need one that strcat ( strcat ( ) ) looks ugly
u can do it the way u like it in ur own compiler
of course
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
makes sense
i still don't get how this works 🥺 stir cat
it st(i)rs two cats together into one big cat
bom
just the file name and line number were too ambiguous
bc that can change from version to version
the preprocessor directives have a lispy syntax
( STRCAT a b ) yields a string ab
so this is basically doing like
EXPR_STRING = "\"" + expression + "\""
awawa
Windows 7
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
all of them
and by that i mean it shouldn't matter if you just emulate all the syscalls
but why are you using such an old imac if you have the macbook
Big 5k monitor
when in 2014 was it released
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"
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
what years of linked list usage does to a kernel dev
wdym
like your design didnt account for it?
I just didn't implement it and had been doing it the hard way in a few places
Just a dumb thing
the hard way as in like
classic malloc memcpy free
Yeah
wouldnt it be like more efficient to keep the physical pages
and only realloc the virt pages
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
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
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
lmao
aarch64 by far the toughest target i have targeted and i've done 4 targets
i think about that every time i write the word mintia to the point where ive considered calling the internals book "MINTIA Minutia"
you think idt and gdt are hard? wait until you see aarch64 cache modes and maintenance and shareability and so on
it's too good to pass up, beats mintia internals by a country mile
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
it's just a bunch of empty words they're repeating because they've heard them said before by others - nothing but miming
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
herbert couldn't let a reference to x86 go by without having to pipe in with trite commentary
i think they talked about this in The Californian Ideology
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
musk will get a rude awakening with doge
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
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
so theres a high chance this is happening somewhere
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
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
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
do you think this'll be used to deport political rivals
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
lmao it's literally the same here, the guys who're supposed to show the most opposition rn dont even treat the protests like protests
do you have laws saying a president cant run for like more than 2 terms
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
cuz we had those here and mr dictator didnt care
a constitutional amendment says that yeah
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
how do you think this'll stop
to unanimous cheers from their constituents
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
i see
and?
i think whatevers happening will reach a conclusion with minimal interference from opponents
no impeachment?
damn
do you think luigi'ing trump/musk would do anything
or would they be instantly replaced by worse people
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.
the 3 letter organizations would never
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
also isnt CIA like not supposed to be fiddling with internal affairs
yeah but they always have lol
why not this time
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
how are you so sure theyre not people with MAGA hats sitting around a cybertruck and worshipping it
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
how do you know
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.
muh, this is proof that trans people were invented by the CIA!!
when they say "housecleaning" do they mean filling all agencies with only cishet white guys wearing maga hats
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
unfortunately this quote is from a conservative news outlet who go out of their way to misgender the agents
its an accurate description otherwise
yeah i noticed that
5 transgender cia agents are assembling poison darts in a secret warehouse rn
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.
EXACTLY what a mossad agent would say
my understanding is that they have blanket approval and a budget to develop things like this and they only need to tell their bosses in order to get final approval to pull the trigger so to speak
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
at least you got a bureaucracy
kinda already happening, students with green cards for example are being deported for protesting in favor of palestine
I don't think it will
no but i live close to russia which the US is a de facto ally of
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
i think you're overestimating russia
im certainly not on isreals side in this but you have to be delusional if you think you can immigrate to a foreign country and then start protesting against them and their allies without repercussions
imagine immigrating to china and then going to pro taiwan protests, you'd be put in jail forever
have some common sense
if it's not against the law then it should be fine in my opinion
and of course you dont overexaggerate
the constitution doesnt apply to people who arent citizens
this is the same in almost every country
Yes it does
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
China isn't the standard we should be holding ourselves to lol
Also the bill of rights is meant to legally enshrine natural rights that belong to all humans by virtue of them being born human
yeah thats fair, my point was more that being deported is the nicer end of the spectrum
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"
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
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
Also it is very likely unconstitutional bc the first amendment applies to any enforcement action the government takes and the question is whether this counts as such. The answer is probably a slam dunk "yes" considering the relevant governing entities said OUT LOUD that it was specifically a punishment for peacefully protesting (ie, exercising free speech rights) lol
They probably don't even want it to succeed they just want to put on a show for their moronic base
didn't Putin do this?
Yeah I think so
The chances for trump to amend the constitution to allow such a thing are basically zero though
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
^^^
I wouldn't be so sure
Not mentioning that he's likely going to try
Amendments need a 2/3 majority
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
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?
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
if the orange man tells them, it is effectively career suicide, at least for the forseeable future, not to.
whether thats enough now that so many politicians have piles of money and can just leave to live elsewhere is another question
yeah lol
Apache is obviously showing he has no fucking idea what he's talking about
also fuck Israel, free Palestine 🇵🇸
in a sensible world, what he's saying is true, though.
i sometimes forget that most of the world is in a terminal state of delirium
my bad 
hell, not even just Republicans
Democrats will vote for what orange man says too
because bags of cash
forget age limits on politicians, they should enforce that everyone gets 9 hours of good sleep before they're allowed to vote on anything
20 years ago you'd be right but rn Trump is god-appointed emperor of the republicans
though i doubt he's going to ever get a constitutional amendment through anyways
but that doesn't matter
Trump has been ignoring the constitution
it would be nice if he could stop putting tarrifs on random things
Amazon made me pay a tariff to buy my Canadian friend some Korean skincare goop :(
damn that was quick on amazons part
if you're American support AOC and Bernie
I think ppl are going to just keep voting for moderate do-nothings who get obliterated by trump and friends until it's too late
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
dissatisfaction of Democrats with the party is at an all time high, if there is a chance for people who are not moderate do-nothings to shine it'd be now
so support them while you can
isn't it true that the brightest of stars shine in the darkest of nights :^)
nope
there are solutions to many political problems but discord TOS prevents me from talking about them
you're Russian you probably didn't even get the reference
- kill everyone i dont like
- kill everyone i dont like
- kill everyone i dont like
is that your list
no those are solutions to personal problems
I'm not even convinced that there will be a next presidential election in any meaningful way
yes im the most russian person here
america hasnt had an election since 1960 
Bc capital is 100% on board with god emperor trump and the most powerful forces in this country will be trying their best to suspend or subvert elections while their only opponents are impotent Democratic Party leaders
yup completely the same thing
hasan piker country
yes sure, we can be analytical smartasses about it, in which case you'd be right, but with that attitude all you got's a self fulfilling prophecy
We will probably increasingly see the tech billionaires using their centralized control over the entire internet toward this purpose
They already are but I mean even moreso
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
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
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
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
The conservative base is easier to manipulate due to being stupider which is why the tech guys are teamed up with the republicans now
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]"
incredible how you just cant win in america
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...
at least in eastern europe bribing the police and politicians isnt reserved for the super wealthy
lmao
The reaction of most liberals to Bernie is still "what a crazy old man, if it wasn't for him Hillary might have gotten more votes >:("
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
And that itself might be pretty ugly too
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
born too late to explore the world, too early to explore the galaxy, but just in time to watch america balkanize
I think if it happens it could still be quite a ways off and trump would be long dead by then
although i doubt it ever will, too much important stuff depends on america staying mostly in one piece
nothing ever happens and all that
btw how things are going in your country is very similar to turkey
minus the tech bro in government part
There's also a slim chance trump dies of old age and the right loses all its juice and things return to status quo but if there was ever a window of time where that'd happen it's probably rapidly closing
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
Permanent cultural and structural changes are ongoing that are ruling this out or already have
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
what does it matter
your job is done
most politicians are in it for the power and influence, if you're not elected again you lose those things
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
damn holy shit what attitudes i see
now i hope that russia DOESN'T invade but yknow
no wonder how Trump is in power
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"
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
doing nothing and letting yourself be trampled by circumstance may as well be equivalent
i'm not american
were you romanian
i am
will you be romanian
i am already what do you mean
gotta make sure you're not one of them greeks
lmao
true
i don't want to get enrolled in the romanian army, but if i have no choice
then i will try
also if russia doesnt invade then you're still not safe
about as safe as now
one day you might trip going down the stairs and land perfectly on the tip of an unnecessarily sharp umbrella
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
hell no
and spend years in jail?
lmao
it doesn't work like that
they will just take me to jail
also i would never
out of the 500,000 people that dodged the vietnam war draft only 3000 served jail time
its an empty threat
but like also at that point you're dealing with armed forces
did all 500k use that threat or what
no
uuh
thats not how things work in the balkans
unfortunately..
die for a country that hates you or spend time in jail is a pretty easy choice either way ngl
the best is to try and avoid both
i wonder how other inmates treat people who are in jail for dodging mandatory service
well yeah ideally flee to another country long before the draft becomes a thing to worry about
uuh just dont tell em you're in for dodging mandatory service??
pretty badly id assume
theyll think you did worse
tell them you robbed a bank or something
anyways worst case they declare you a traitor and beat you up
depends on how nationalistic they are ig
this too
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
romania is part of the EU isnt it?
Stop doom scrolling and watching news
yeah, you can't flee to other countries in eu
idk but my friend crossed the border to bulgaria with an out of date passport and many liters of wine
that's not good
look
The world is still a much better place than 10/20/30/40/... years ago
your great grandparents lived through way more cataclysmic events than the stuff now
you could flee to turkey
theres like 3000km of land border, there are plenty of ways to get out
imagine living through WWI and WWII in Europe
yeah i know, but you're sort of representative of what the average young American may feel
and honestly, the only option we all have in this regard
or the most productive option in any scenario
is to carry on with life
that's true
i never implied i would kill myself
oh
just that i might die by russian
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 
wow
possibly
in any case it doesnt help to be like "oh no i might die!!"
and i should think
we dont care too much about illegal immigrants (by we i mean the government. they love em)
i dont think russia has another war in them for the forseeable future once ukraine is done
they've cratered their demographics
tbh I have no idea what's going on at this point
with russia and neighbouring countries
I doubt that
the Democrats have been in a way worse position and in way more disarray than nowadays
there's been 180 years of events
they'll probably win parts of ukraine but they're running out of people to throw into the meat grinder
think of 2016
you're playing agar.io with a buncha friends
and theres a huge fucking guy on the map
who ate you in the past
i am russian
and now he's not interested in eating you
but you dont really know when he might turn
but yeah russia seems to have big demographic and economic problems from what i hear
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
below the age of 30 women outnumber men by like what kind of ratio
its something insane like 65% female in that age band
i'd get my eyes checked if i were you
it's not ww2 territory
ok maybe bad but not terrible
just a bit worse than canada where 60% of the population under 30 is male because of the amount of immigration from india 
i really dont understand countries taking immigrants from places where the culture is like the exact opposite
its great how many countries are seemingly trying to speedrun total demographic collapse