#MINTIA (not vibecoded)

1 messages Β· Page 22 of 1

twilit smelt
#

i didnt catch that from seeing the scans and pictures of it

flat dust
#

microsoft did that with activation keys i think

digital pivot
#

what changed the most?

flat dust
#

the windows me disc had a bunch of pretty visual stuff

warm mural
#

new books are like 80$!

flat dust
#

they're pricing the books like video games now

#

:(

twilit smelt
hollow musk
#

scalability, topology awareness, power efficiency became first class scheduling input which is a big philosophical shift, timers evolved, priority inversion handling got much more sophisticated

twilit smelt
hollow musk
twilit smelt
#

until 2k3 (i think) the entire scheduler was under the big dispatcher lock

mortal thunder
# twilit smelt until 2k3 (i think) the entire scheduler was under the big dispatcher lock
#

the big dispatcher lock was split up in Windows 7

twilit smelt
#

that was when it completely disappeared

#

they had been splitting it up

#

earlier

hollow musk
mortal thunder
#

oh okay

warm mural
#

yeah arun in the video says they started breaking it up earlier but the scheduler changes finally removed it or something

hollow musk
mortal thunder
#

Prior to Windows 7 (and therefore Windows Server 2008 R2) the Windows kernel dispatcher employed a single lock, the dispatcher lock, which worked well for a relatively small numbers of processors (like 64).
apparently not?

#

or maybe you're thinking that the dispatcher lock originally had even more under its belt

twilit smelt
warm mural
#

I also do somewhere in my code

#

mine is simplified from NT's model however

#

they have a bunch more wait states than I do

hollow musk
#

the scheduler is in good condition, as far as I know, Dave Cutler, the original author, still works at microsoft

#

and I assume that he is still in charge of development

twilit smelt
#

he is not

warm mural
#

no he's not on the windows team

twilit smelt
#

he went to xbox and then hyper-v

warm mural
#

he's doing xbox or azure stuff iirc

twilit smelt
#

i think

#

hyper-v is another "cutler kernel" or so ive heard

#

would be interesting to RE

#

to see more of his work

hollow musk
twilit smelt
#

from more recently

#

yeah and i think that was by his own choice

#

he might have gotten tired of it

warm mural
#

tbf he's probably semi-retired

twilit smelt
#

he left the team in the late '00s i think

warm mural
#

works on whatever interests him

twilit smelt
hollow musk
#

oh, so many changes have already been made without his involvement

twilit smelt
#

he said in his interview with davepl from a year or two back that he still goes to work every morning and does normal work

warm mural
#

damn

#

9 to 5 at like 80 is determination

twilit smelt
#

he said he does it because he wouldnt know what else to do with himself

#

cuz hes been doing system software for 50 years

shadow ridge
#

thats sad

twilit smelt
#

kind of

#

lol

warm mural
#

he could join this server and make a hobby OS meme

shadow ridge
#

cutler os

#

feature list:

  1. loads gdt
  2. loads idt
  3. a20 line enabled
#

maybe not.. lol

hollow musk
warm mural
#

JW would count I guess?

#

dont think he's had an active project for a while tho

digital pivot
hollow musk
#

well, there were some odd bits

#

I don't know what some of them are related to, but I found it a bit strange that some kernel routines have a different naming style from all the others

twilit smelt
#

which ones

hollow musk
#

they usually name functions as the code name of the component, followed by a verb, but some new functions make an exception to this age-old rule

#

I know it sounds like a minor detail, but it caught my eye

#

here is an example of typical naming:
KiAdvanceReadyQueueEnumeratorToNextList
KiAdvanceReadyQueueEnumeratorToNextPhase
KiAdvanceReadyQueueEnumeratorToNextProcessor
KiAdvanceReadyQueueEnumeratorToNextRootScb
KiAdvanceReadyQueueEnumeratorToNextScb
(this is an example from the thread selection flow)

#

and these are mutants:
KeSwappablePageDereference
KeSwappablePageReference
KeSwappablePageGetLockedAddress

twilit smelt
#

lol we noticed that 2 years ago

shadow ridge
#

cutler normal form sucks anyways

#

verb should be at the end

#

dereference is a function of swappable page

#

not the other way around

hollow musk
#

but yeah, it's not a big deal, just a minor thing

#

the other code problems I mentioned somewhere here on the server aren't major either

warm mural
#

verb last makes more sense for namespace separation

hollow musk
shadow ridge
twilit smelt
hollow musk
warm mural
twilit smelt
#

autoboost is used for userspace locks

#

so this is required

warm mural
#

you can grep all functions related to something using grep whatever_*

shadow ridge
#

yea thats a big factor

#

and when youre refactoring

hollow musk
#

and they not only swapout the kernel stack but also this per process page, hence the name

shadow ridge
hollow musk
#

for reference, they can periodically swapout kernel stacks for inactive threads

shadow ridge
shadow ridge
#

your homework isnt in /homework/rustc/home

warm mural
#

yea but you gotta admit verb first looks better

#

even tho its less practical

shadow ridge
warm mural
#

(I personally use verb last though)

shadow ridge
#

like i dont like it from an aesthetic viewpoint either

#

in fact that comes first

#

for me

#

everything else is just rational justification

shadow ridge
#

like.. no.

warm mural
#

it's a matter of taste, but imo KeRaiseIrql reads better than KeIrqlRaise

shadow ridge
#

well i can see a parallel between how we write numbers (most significant digit first) vs how positive iq people order them in memory (least significant byte first)

#

and this

warm pine
#

i think noun_verb is an object oriented style

#

so it looks a bit off for non objects like irqls

twilit smelt
#

the NT naming style by the way is different from both mica and vms style which were the same

#

the explanation ive heard for this is that it is meant to be consistent with OS/2 instead

#

which tracks

#

look at the OS/2 api set

#

its stuff like

#

DosReadFile

#

DosWriteFile

#

etc

shadow ridge
#

irql is purely a software level concept right

#

i forgot

twilit smelt
#

(OS/2 refers to itself as "Dos" internally because it started as Multitasking DOS which was an experimental rewrite of DOS in C with preemptive multitasking)

warm pine
twilit smelt
#

the hardware levels are hardware

flat dust
#

they were going to add it but they ran out of time or smth idk

twilit smelt
#

literally yeah

flat dust
#

deadlines :(

twilit smelt
#

they were forced to do a CLI-only release because things were taking way longer than they expected and they needed to get something minimal out for developers

#

that barebones beta release was like $600 too

flat dust
twilit smelt
#

because IBM

#

idk

flat dust
#

😭

#

ibs

warm mural
#

the start of IBM's downfall πŸ˜”

#

(idk probably)

flat dust
#

what if the PS/3 was released and had a powerpc chip because screw backwards compatibility thats why

warm mural
#

kinda crazy IBM went from the equivalent of current day apple/google/microsoft to like oracle or something

twilit smelt
#

relative to the size of the computer industry at the time they were actually larger than all 3 of those

warm mural
#

apple+google+microsoft then

flat dust
warm mural
#

I know it's still huge

#

also they did try to continue doing PC stuff

#

like thinkpads

twilit smelt
#

they did powerpc thinkpads that ran os/2

#

they sold like

#

10 of them

flat dust
twilit smelt
#

the only real world use of them ive heard is someone saying "we literally still have one of those its the only way to program this gigantic robotic arm we use at my job, the software runs on ppc os/2"

shadow ridge
#

they should springload the drive with a really strong spring so if you open it while it's in your lap it gives you a good smack in the stomach

warm pine
#

ppc os/2 would be an interesting read

flat dust
#

can you port it to a mac like windows nt trl

warm pine
#

they had ambitions for what they called the WorkPlace Microkernel as a universal OS

twilit smelt
#

its a somewhat weird mach

twilit smelt
shadow ridge
twilit smelt
#

and it only shipped as ppc os/2

warm pine
flat dust
twilit smelt
#

apparently ppc os/2 is a miracle that it shipped and the project was internally extended for far, far longer than it would have survived if it werent for a single IBM exec who was a diehard OS/2 fan and would not let it die

shadow ridge
#

2 for himself and the rest for his family

#

the last one runs a random robotic arm at some company

warm pine
#

intended architecture (A) of Workplace kernel vs actually delivered for ppc os/2

warm pine
#

ppc os/2 must be distinctive in being the only ever desktop OS shipped based on a microkernel

twilit smelt
#

is that a microkernel

#

look how much is in the box

#

on the right

hollow musk
twilit smelt
#

is that like NeXT calling it the "Mach microkernel" when it was actually larger than any of the other shipping unix kernels lol

hollow musk
#

sorry, someone already answered

twilit smelt
warm pine
#

if it is and the filesystem is in userland i'd count it

shadow ridge
twilit smelt
#

so you could have an OS/2 personality, a Windows personality, a Classic Mac OS, a Taligent personality (these were all planned at one point)

#

basically IBM was trying to do the osdev beginner stereotype

#

"helo i want write os it wil run mac program linux program and window program" -ibm

warm pine
flat dust
hollow musk
warm mural
twilit smelt
#

it was seen as potentially the idea of the future

warm mural
flat dust
twilit smelt
#

around the turn of the decade 1989-1991 it was ideated

warm mural
#

but they ended up dropping it over time kinda

twilit smelt
#

IBM was the last warrior for it

flat dust
shadow ridge
#

why didnt anyone think of writing a unified api set for userspace that could be shared by any kernel

warm pine
#

in industry at that time this was the main import that 'microkernel' had, other than just the newness of it, but the idea of schizophrenic kernels was what everyone wanted

twilit smelt
#

where did we read that schizophrenic kernel was the term for it again

shadow ridge
flat dust
#

i forgot what

warm pine
#

for management the idea of merging the basis of AIX, OS/2, OS/400, and maybe even more must have been a really exciting prospect with a lot of opportunity to cull manpower

flat dust
shadow ridge
#

i dont mean like system v

#

like

warm mural
shadow ridge
#

just the syscalls etc.

flat dust
warm mural
shadow ridge
#

system calls are an interface

#

if u think about it

warm pine
shadow ridge
#

theyre just glorified function calls

warm mural
#

system calls are a way to call into an interface

twilit smelt
#

its funny how not only is calling a multi-personality kernel a "schizophrenic kernel" not something that would be considered politically correct to use as a technical term these days but its also literally wrong. they were confusing schizophrenia with DID

twilit smelt
#

like an academic paper maybe or a conference presentation

#

and it was used like it was the accepted term

shadow ridge
twilit smelt
#

ableism

shadow ridge
#

how is it ableist

twilit smelt
#

its mocking ppl with schizophrenia

#

or something

shadow ridge
#

nobody says schizo kernels are worse than normal kernels though

#

ok well we were literally just saying that

#

but nobody was saying that at the time

#

they thought it was cool

warm pine
#

i have but i couldn't possibly post them here

shadow ridge
#

schizophrenia is a medical condition

#

i dont think you can say any "analogous" name

hollow musk
# digital pivot what are these

very briefly, so as not to interrupt the chat: they implement a multi dimensional walk over the scheduler's ready sources, so the new thread search code (slow path) can say give me the next eligible ready list

warm mural
#

It's like the "master/slave" terminology

twilit smelt
shadow ridge
#

thats more understandable though cuz it does actually have something to it

#

like

#

if i shouted PANCREAS CANCER KERNEL! literally nobody would care

twilit smelt
#

the NAACP never came out saying like "master/slave terminology in technology is racist. it should be changed."

#

it was a thing white libs came up with

#

performatively

warm mural
#

Well yeah

#

No one cares

twilit smelt
#

but i miss the performative wokeness

#

these days its been replaced by like performative chudness lol

warm pine
twilit smelt
#

vice signalling

warm pine
twilit smelt
#

respectable tech ceo: "I fucking hate humanity. Literally I want everybody to burn. I want you all dead"
passes $5T market cap the next day

shadow ridge
#

and created stereotypes

#

that are still used to ridicule leftists

craggy spire
warm mural
warm mural
shadow ridge
#

literally the only thing that can unify 99.9% of people is like csa

#

it's why companies like roblox shit themselves

#

and why the epstein shit bothers even republicians

warm mural
#

What's CSA

#

ahhh nvm

#

I get it

twilit smelt
#

well thats a little too far out of scope for mintia thread.

shadow ridge
twilit smelt
#

the 99.9% figure here is far too high

#

its more like 80%

craggy spire
#

@hollow musk BTW, I looked into the problem with quantum target overflow that you mentioned. It's only possible if your CPU's nominal frequency reaches at least 34GHz and in some cases 6.5GHz.

twilit smelt
#

theres a campaign on the right to respond to the epstein thing by reframing him as some kind of like giga winner of life drowning in hot underage chicks that everybody is just jealous of and it is catching on

#

you will see this all over right wing spaces

warm mural
#

I think the only time humanity was last unified was pokemon go meme

#

Ever since it's been more and more division

shadow ridge
twilit smelt
#

depending on the right winger the majority responses to the epstein thing are either "its democrat theatrics and a hoax" (80%) or "yeah and? men have wanted young girls since the dawn of time. its natural. youre jealous" (10%)

#

both of which are engineered by social media

hollow musk
twilit smelt
#

that they consume

twilit smelt
#

the remaining 10% are the ones who think its bad

#

thomas massie fans

shadow ridge
#

idk i thought most people agreed that children shouldnt be abused

twilit smelt
#

theyd 90% agree with that its just that the vast majority are being convinced its a nothingburger

warm mural
#

Nothingburger but literally all conspiracy theories are being proven right

twilit smelt
#

by the same news outlets that framed "the government no longer considers greenhouse gases as harmful to the environment and will stop enforcing all related regulations" as simply "you know that annoying feature on your car? thats going away now thanks to god emperor trump!"

shadow ridge
#

which car company was it that bypassed regulations by showing different stats on the benchmarks

#

so the car would detect if it was in like a test grounds or whatever

#

and stop greenhouse emissions if it was

#

cuz it wasnt fuel efficient

warm mural
#

Volkswagen

warm pine
#

the whole thing has been a bizarre spectacle

#

supporters of a known libertine who even publicly talked about grabbing 'em by the you-know-what spent years calling for the epstein files release

twilit smelt
#

it was insane how it got retconned from a cause trump was championing day and night while he was campaigning, to a nothingburger democrat hoax basically overnight

#

in the republican consciousness

shadow ridge
#

i love how trump shits (literally) himself every time he realizes people still care

warm mural
#

The CIA redacting names is also insane

shadow ridge
#

wasnt it the FBI

warm mural
#

(excluding victim names)

#

FBI yeah mb

shadow ridge
#

why would the CIA deal with the epstein files

warm mural
#

Sorry I mixed the three letter agencies πŸ˜”

twilit smelt
shadow ridge
#

anyways yeah it's insane that the KGB redacted everything except the thing they were required to

twilit smelt
#

because its a direct 180 from what they say now

#

vance's like 2020-2024 era tweets about the epstein files would fit right in with what a leftist would say about it today

warm pine
#

that man has no scruples whatsoever

shadow ridge
#

still cant believe he killed the pope

#

who would do that

warm pine
#

he traduced his own people and his own family while claiming their identity for political benefit, he condemned trump then went quiet and obedient the moment it stood to benefit his career

shadow ridge
#

traduced?

#

ah nvm

mortal thunder
twilit smelt
#

it does

warm pine
mortal thunder
#

im surprised they had a PPC version

twilit smelt
#

they implement software interrupt dispatch by setting interrupts pending that get triggered when cr8 is lowered below dispatch_level

#

so they are real hardware interrupts

#

DPC dispatch and so on

shadow ridge
twilit smelt
warm pine
twilit smelt
#

IBM had to scamper to come up with their own portable kernel when they were viciously backstabbed by Microsoft a couple years into NT development

#

they came up with a Mach

#

which they called the workplace microkernel

warm pine
shadow ridge
#

man i forgot so much osdev stuff

#

gotta practice it to retain it ig

#

i dont even remember why microkernels are still used

mortal thunder
#

slightly later they created a MIPS laptop called the WorkPad Z50 https://en.wikipedia.org/wiki/IBM_WorkPad_Z50

The IBM WorkPad z50 is a handheld PC that was marketed by IBM as part of the IBM WorkPad series. It runs on Windows CE. Unlike the rest of the devices in the IBM WorkPad series it is a subnotebook and not a PDA.

#

unfortunately no OS/2 to be seen here

#

they just used windows CE

#

(not even NT smhsmh)

warm pine
twilit smelt
warm pine
#

their last hurrah for use as general-purpose operating systems was BlackBerry 10

warm pine
#

many of you are probably too young to remember the blackberry

#

but having one (and thus access to BBM) brought you into elite circles if you were at high school in the UK around 2008-2012

shadow ridge
mortal thunder
#

i don't "remember" the blackberry phones because i've never noticed one in person but i know they existed

warm pine
#

but i digress, blackberry 10 was a QNX-based OS for smartphones

twilit smelt
#

when i was little i had a PDA that my dad gave me after he stopped having a use for it and i learned how to program it a bit and i used it as a prop in games with my friends

#

at some point i lost it at a friend's house

#

:(

shadow ridge
#

look from the positive side

warm pine
#

i've heard somewhere actually that apple have their own messaging app for iphones and in america you get looked down on if you don't use it

mortal thunder
#

iMessage, yeah

shadow ridge
mortal thunder
#

if the USA were a rational country I'd laugh it off as a joke

shadow ridge
#

almost as creative as OS/2

warm pine
#

blackberry had a messenger too (BBM) but maybe 50% of us max had blackberries so it was no great misfortune if you didn't have one, but we did form something like a club or social circle with some immediate connection between us, a bit like how smokers have that connection with other smokers as soon as they get to the smoking room

mortal thunder
#

these are probably the same people who called it "iPhone"

shadow ridge
#

if windows was called iWindows we would all point and laugh at it

twilit smelt
shadow ridge
#

isnt that just whatsapp

twilit smelt
#

and the green text bubble would tell you theyre poor

#

and lower status

warm pine
#

for the rest of us now of course whatsapp is what everyone outside of america uses, but i really miss that sort of club-like aspect that having a blackberry and BBM got you into

warm pine
twilit smelt
#

possibly the most impactful coloring design in history was whoever came up with the idea to make your texts to other iphone users blue and your texts to android users green

twilit smelt
shadow ridge
#

holy shit

#

self optimizing dating pool?

warm pine
twilit smelt
#

android = poor here for sure

#

thats the strong connotation

shadow ridge
twilit smelt
#

at least in middle class communities

twilit smelt
#

gen z are probably less crazy about it than they are

shadow ridge
#

are your straight friends not gen z

twilit smelt
#

they are

#

im saying it used to be a bigger deal

#

in previous generations

#

people still pay attention now

#

but its not what it was

shadow ridge
#

how is it a bigger deal than blocking you for a color

#

did they fucking kill you

#

because the text bubble was green

digital pivot
twilit smelt
#

dating apps are a special example because everybody there is extremely skittish and looking for a reason to get the ick

#

in the absence of physical signals the brain goes into overdrive overanalyzing everything else about them

shadow ridge
#

i dont use dating apps (or date) so i wouldnt know ig

twilit smelt
#

among millennials you could get bullied and excluded in high school for having green text bubbles

#

among gen z i havent heard of that

warm pine
mortal thunder
#

little do they know you can get an iphone 6 for relatively cheaply and still use imessage in 2026

warm pine
#

i shouldn't talk because i met my gf on tinder but i still don't think they're much good for society

twilit smelt
#

i probably have the most embarrassing possible story for how i met my partner

shadow ridge
mortal thunder
#

like they're designed to extract as much as value from you (by keeping you on the app for as long as possible). that's what i believe

shadow ridge
#

so you dont stick with one person and stop using the app

shadow ridge
#

guys i have a secret vault in my room and theres something inside of it

#

(refuses to elaborate further)

warm pine
shadow ridge
#

and taking 20 mins before they ask the question

twilit smelt
#

do you guys think a chinese emperor ever walked in on some of his courtiers hanging out and just went like "It had to happen." and walked out just to make them freak out

shadow ridge
#

bro piped /dev/urandom to his stream of thought

#

is there an equivalent of /dev/urandom on NT

warm pine
shadow ridge
#

actually how much of devfs has a direct equivalent in NT

twilit smelt
#

the devfs equivalent is the Devices directory in the object namespace

#

which contains device objects

shadow ridge
#

yes but how many of those objects are like

#

a match of unix ones

warm pine
shadow ridge
warm pine
#

so the NT approach to devices is fairly unix-like, the most fundamental distinction is that on NT these operations are all profoundly asychronous

twilit smelt
#

that might have been a mintia-ism

#

that we're projecting

#

on NT

shadow ridge
#

like, would there be a device like /dev/zero that ignores input and only reads 0

#

or /dev/null

#

like what is actually in the devices directory by default

warm pine
# twilit smelt i dont actualyl remember if you get a file object as a result of opening a devic...

it sounds like you do:

The FILE_OBJECT structure is used by the system to represent a file object. To user-mode protected subsystems, a file object represents an open instance of a file, device, directory, or volume. To device and intermediate drivers, a file object usually represents a device object. To drivers in the file system stack, a file object usually represents a directory or file.

A file object is partially opaque. Certain types of drivers, such as file system drivers and network transport drivers, use some of the fields of file objects.

twilit smelt
#

what is said here is not the same as "NtOpenFile'ing a device object will work and yield a file object handle"

#

but that also might be true i dont remember

shadow ridge
#

what else would it yield

twilit smelt
#

idk

#

death by scaphism

shadow ridge
#

asteroid hits the earth

warm pine
#

i think i read an absolute statement to that effect somewhere as well, possibly in windows internals

shadow ridge
#

it's disgusting

#

idk why you know about this

warm pine
shadow ridge
#

iron maiden is well known

#

that bull thing is well known

warm pine
#

everyone reads about this as one of the worst ancient punishments, i think it was practiced by the persians

shadow ridge
#

idk we didnt learn about persian execution methods in school

#

if we did i would have payed attention

shadow ridge
warm pine
shadow ridge
#

we didnt learn any execution methods at all

shadow ridge
#

you would just die from bloatation cuz youre getting force feed huge amounts of milk and honey

warm pine
#

i certainly remember learning about what henry viii had done to his wives and about that ignoble episode in scottish history, the massacre of glencoe

twilit smelt
#

and they defeated the romans like 3 times by doing this and nobody else could figure out how to do this

#

and they also had an infinite arrow glitch

#

where they just had insane arrow supply logistics

#

to maintain continuous arrowfall for like days straight

#

these 2 things are why crassus got crassused

shadow ridge
#

ig we did learn about beheadings and stuff

#

but nothing too gruesome described in extreme detail

#

do you guys remember these phones that had magnetic pens with them

#

i wonder if they still exist in some form

twilit smelt
#

this is what you can do with an infinite arrow glitch in antiquity

shadow ridge
#

did they patch the dupe

twilit smelt
#

who would win between 9000 horse archers on swivelly saddles with infinite arrows and 35,000 heavy infantry

#

i guess we know.

twilit smelt
shadow ridge
#

it says like more than 3 times that

#

right under

twilit smelt
#

yeah

#

some poor laotian farmer gets a leg blown off like once a week

#

while trying to expand his field

#

we just ignore this

shadow ridge
#

so people are just walking around

#

thinking mines were left by gods

twilit smelt
#

somehow its the same farmer every single time

shadow ridge
#

who are punishing them for walking on dirt or smth

twilit smelt
#

hes on like negative 100,000 legs

#

just a fluke of statistics i guess

#

apparently at peak 1 laotian was killed per day from encountering unexploded us munitions

#

this has declined due to awareness efforts

#

the usa sent them one time reparations of like 5 million dollars once

#

which is a couple cents per bomb

#

usa! usa!

digital pivot
shadow ridge
#

i would remove 1 bomb for like 100 bucks if safety gear + training is included

twilit smelt
#

at the most efficient its probably around there

shadow ridge
#

drop more bombs to force the unexploded to detonate

twilit smelt
#

the reason we did that by the way was because vietnamese troops would transport war materiel to the viet cong in the south via jungle corridors in laos and we couldnt really see them through the trees so we would just bomb the shit out of everything

#

1 planeload of bombs every 8 minutes

#

for 9 years

#

straight

#

we didnt even win

shadow ridge
#

yeah how tf did US lose like basically every big war since ww2

twilit smelt
#

we lost that one because we were fighting people who were fighting for their country

#

and had the juice and wanted to win more

#

nothing short of a genocide would have ended that one probably

#

luckily the prevailing winds were against genocide at the time so we lost

acoustic sparrow
dapper mulch
#

Is it Rajeev Nagar book? The section about disquette says:

Accompanying Diskette

A diskette accompanies this book and is often referred to in various chapters of
the book. This diskette contains source code for the following:

  • A file system driver template
    Note carefully that this is simply a skeleton driver that does not provide for
    most of the functionality typically implemented by file system drivers. The
    code has been compiled for the Intel x86 platform. The code has not been
    tested, however, and should never be used as is without major enhancement
    and testing efforts on your part.
    This driver source is provided as a framework for you to use to design and implement a real file system driver for the Windows NT environment.

"Simply a skeleton". So wouldn't a driver samples like fastfat be more useful in this regard? Completeness and up to date.

twilit smelt
#

but you kinda need the sample code to follow along with the book at max effectiveness

#

so it would be useful to archive probably

#

since this book is still read

#

nobody has really written a better treatment of the NT IO system

mortal thunder
safe hollow
#

the state diagrams on the book look like they were drawn with mspaint

dapper mulch
#

If you need Rajeev Nagar book in pdf I can send it.

hollow musk
#

@twilit smelt perhaps you know and can tell me what a "soft working set list" is?

hollow musk
#

the VA type called MiVaSoftWsles

#

I don't know about this one

twilit smelt
#

Me neither

digital pivot
#

whats MMSUPPORT?

#

i thought it was a struct for working sets but its MMWSL_INSTANCE apparently

safe hollow
twilit smelt
#

going to try to finish numa support today

digital pivot
twilit smelt
#

cache coloring is useful on UMA

digital pivot
#

is it like

#

a color per cache line

safe hollow
#

it's better to start from the opposite of cache coloring

twilit smelt
safe hollow
#

you know that for example a small set-associative L2 cache stores at most 8 64-byte blocks per set

#

it uses the bits immediately after the offset to derive the index, and the remaining ones as tag (and ones with the same tag compete in the same set)

#

if you make so that a process only gets even indices, it can only use half of the cache

#

(which afaik it's actually useful in its own right for cache partitioning stuff for hypervisors)

twilit smelt
# twilit smelt going to try to finish numa support today

remaining numa work:

15. fix the messed up way the per-node system process page directory is not actually correctly set up
16. create an XR/frame target to test that this stuff actually works in the `node^.Id != 0` case
17. duplicate kernel text between each node automatically in the bootloader (kernel code paging will still occur when numa node count > 1, and will be local to the node, in the per-node system process's working set)
19. review the implementation of topology awareness in FreeBSD and how it's used in ULE
20. need a fast way to locate the node that a page frame is in and make it so that freeing a page frame doesn't require a node parameter (maybe a binary search over an array describing phys addr ranges and their association with nodes, replicated per node)
20. use topology information for scheduling and memory allocation decisions
21. refactor per-node initialization to be 1 or 2 outer loops around big subsystem initialization functions that now take a node parameter, rather than a billion scattered inner loops
22. fix the freakong turnstile propagation bug where it interacts incorrectly with explicit priority raises, which can prematurely terminate a wait chain boost
#

i merged the numa branch into main branch just now because its not aggressively broken

digital pivot
#

u dont do partitions in mm anymore?

twilit smelt
#

no i got rid of it to simplify stuff

#

the partition object is now just part of the node

digital pivot
#

ah i see

safe hollow
#

mr vmm man, are there some nasty differences between on reverse mapping between a list of VMAs and a list of PTEs (or wsles like windows but indirectly ptes still)

twilit smelt
#

i dont understand the question

safe hollow
#

linux rmap stores a list of mapped regions that contain that page

#

so windows VADs

twilit smelt
#

like syntactically

#

"differences between on reverse mapping between a list of VMAs and a list of PTEs" i dont understand

safe hollow
#

do you happen to know of nastiness than vma lists have that would be avoided with pte lists? the former save quite a bit of space and i think there has to be a catch

twilit smelt
#

by PTE list what do you mean specifically

safe hollow
#

mmpf stores the index to the first WSLE mapping the page, and that WSLE then links all the mappings in other processes right?

twilit smelt
#

no, thats not how working sets work

#

windows does not usually take a page frame and yank it from all of its current mappings

#

it goes the other way

#

a process is selected for trimming and PTEs in that process are aged

#

the ones that are invalidated cause the refcount on the page frame to drop

digital pivot
#

with a pte list you can go straight to the pte and with rmap you need to conpute the virtual address from vma start + page index and then walk page to locate the pte ?

twilit smelt
#

when it hits 0 it becomes a candidate for pageout

#

for pageout they go process->pte->page frame

#

not pageframe->ptes

#

so they have no need for something like rmap

#

or any kind of list of ptes that map a given page frame

#

the working set list was in former times a per-process array of virtual addresses that had valid mappings

#

so that they could iterate over this array and age PTEs and not walk the page tables

#

they have reverted to walking the page tables because its more parallelizable

hollow musk
#

that's interesting

twilit smelt
#

its optimized in interesting ways, its not just naively iterating over all of the page tables in the process

blissful smelt
#

i am quite interested in autoboost

hollow musk
#

as far as I know, there are no public resources

blissful smelt
mortal thunder
#

do they have any interesting optimizations?

warm pine
# mortal thunder do they have any interesting optimizations?

the page structs describing each page table page containing leaf PTEs is linked onto one of several lists headed in the working set description, depending on something to do with the age of PTEs in that table (average age? worst age? unknown)

hollow musk
mortal thunder
#

same

hollow musk
#

what else do you know about the modern virtual memory subsystem? πŸ™‚

mortal thunder
twilit smelt
warm pine
#

snap

mortal thunder
#

oh

#

the PAGE TABLES are linked in a list

#

and specifically the ones that contain leaf PTEs

warm pine
#

it makes good sense really

hollow musk
#

autoboost is a rather complex subsystem, 95% of its implementation in modern Windows is neatly separated into a separate class called AutoBoost (and LegacyAutoBoost is the old version)

warm pine
#

the traditional working set list was a wonderful data structure, almost as well fitted to its use as any organ nature ever evolved, but when you implement a clock-like policy or indeed (as they have for some time) a policy for working set replacement based on maintaining several ages of entries, then it's no longer well suited; you have to traverse a data structure out-of-line with the page tables, and it may lead you about from table to table

blissful smelt
hollow musk
#

let's see, maybe you'll share some new information

#

I didn't spend that much time on it, since I was mostly studying how the thread scheduler proper works

hollow musk
#

my knowledge remained at the level of windows 7

warm pine
hollow musk
#

I remember reading about some windows 11 "lock-less" mechanisms, and specifically about scanning page tables

#

I wonder if that's related, cause I can see how that would cause massive performance issues if they didn't implement new locking mechanisms

#

I think I saw the working set changes but didn't have the context for them and didn't link them with the PTE changes

#

that's super interesting

warm pine
#

it's confirmed by an authoritative source that the scanning of page tables can proceed in parallel for different ages, and i would fairly speculate that it might be that at least aging can be done mostly locklessly with some atomic pte operations, to not block out page faults for instance

hollow musk
#

I noticed that they per each age?

#

I assume that 8 is the age

#

I have a question for you: are page importance and age related?

#

each PFN has a property called importance, and there are also 8 of them, apparently

warm pine
#

i don't know, all i know is that in a powerpoint about ? server 2003 or ? vista there is mention of installing the pages brought in as part of a clustered page fault with an elevated initial age, or maybe even as transitional ptes

digital pivot
hollow musk
#

this is easy one

#

KeReferenceCount counts how many scheduler deferred structures still contain a live reference to the thread and thread deletion asserts it goes back to zero

twilit smelt
#

does it cause thread deletion (sending the thread to the reaper) to be deferred until the count drops to 0

hollow musk
#

when thread teardown runs, it expects the KeReferenceCount pin to be gone and if it isn't, it tries to force progress, and if the pin still remains treats it as a kernel lifetime bug ie bugchecks

#

if KeReferenceCount:
KeFlushQueuedDpcs()
if KeReferenceCount:
bugcheck

#

I don't remember exactly, but something like that

#

one striking example is autoboost

#

initially, a counter was added for it, and I believe it was even called AbReferenceCount

#

enqueue deferred autoboost propagation worker, take ref, worker runs, drops ref

digital pivot
#

i see

blissful smelt
# hollow musk one striking example is autoboost

what "namespace" (function name prefix) are autoboost functions under, and which .dll or .exe would it be? I've found a few functions with AutoBoost in their names, and from my knowledge there should be functions like KiAbProcessContextSwitch but I can't find them

#

I'm looking around system 32 in windows 10 22H2

digital pivot
#

not an expert but it should be ntoskrnl.exe

blissful smelt
#

no mention of it

digital pivot
#

then idk

blissful smelt
#

i see a few Ab* fields in KTHREAD

digital pivot
#

what about autoboost not ab

blissful smelt
digital pivot
#

huh have they really hidden autoboost so well

#

will says that they are deliberately hiding it for a reason

#

or something like that

blissful smelt
#

all this to bump thread priorities around πŸ’”

digital pivot
#

or simpler

#

you searched in the wrong place

#

and just failed

blissful smelt
#

this bsod stack trace reveals a few symbols

digital pivot
#

note it was rewritten in win11 some version

#

i remember reading that it was rewritten but dont know the symbols

hollow musk
#

in the kernel, it is implemented as part of the... kernel, "Ke"

blissful smelt
hollow musk
#

in earlier versions, it's implemented in the autobst.c file, the interface for primitives has the prefix KeAb, internal functions are KiAb

hollow musk
#

in the new version, the current autoboost is located in the AutoBoost C++ class

#

data types are located in the same class and prefixed _AB_

#

internal functions to the kernel are KiAb, private functions of the class are KiAbp, public functions are KeAb

blissful smelt
#

I'll look at a win11 binary too and see

#

since this is 10 22H2

hollow musk
#

new files: ke/autoboost.cpp, ke/autoboost_api.c

hollow musk
#

maybe start with something like mutexes and look at their implementation to see how they use the autoboost interface

#

legacy autoboost's representation was built around a very revealing structure: KLOCK_ENTRY

#

it answers 3questions:

  1. which lock/resource identity is this about?
  2. what role is this thread in -- waiter or owner?
  3. what boost contribution is associated with this edge?
#

KLOCK_ENTRY answers these through:

  1. it has both a tree node and two tree roots (OwnerTree and WaiterTree)
  2. it has a HeadNodeBit
  3. it has an embedded boost bitmap containing CPU boosts and also I/O and I/O QoS bits
  4. it has explicit state bytes for "in tree", "waiting", "acquired", and "cross-thread"
#

in legacy autoboost the same struct can represent a thread's participation entry or a per-resource head node that owns the trees

#

(this has been changed in the modern autoboost.)

blissful smelt
#

announced Jan27 of this year

hollow musk
#

if it's the Dev Canary channel, then I don't know

#

the latest windows 10 builds are perfectly fine, why not?

#

the structures of the new autoboost are closed and will be more difficult

blissful smelt
#

perhaps it was too old?

hollow musk
#

it was already there in Windows 8.1

blissful smelt
#

I was using ghidra

#

hmmmm πŸ€”

digital pivot
#

its funny that it was rewritten into c++

#

considering that autoboost guy said he didnt like transition to c++ in the kernel or something along these lines

blissful smelt
#

the person working on autoboost at microsoft?

digital pivot
twilit smelt
#

feel like i have way more of a case for a divinely inspired schizo kernel than terry

blissful smelt
#

devious numa awareness

#

absolutely schemeful

blissful smelt
twilit smelt
craggy spire
#

Numa-aware turnstiles?

twilit smelt
#

yeah

craggy spire
#

That's a new one

#

Per-numa node turnstile table?

twilit smelt
#

yeah

craggy spire
#

Right

twilit smelt
#

using whatever node the lock is allocated local to

#

hopefully allocated on your local node or a nearby node thanks to allocation affinity

craggy spire
#

Possibly the first NUMA-aware priority inheritance

twilit smelt
#

maybe? idk

#

i feel like pushlocks are more inherently numa aware since they have no central database like this at all

#

i dont think

craggy spire
#

They also have cache-aware pushlocks for bigger machines

#

They are replicated per NUMA node

#

And padded to cover a cache line

twilit smelt
#

isnt that where to acquire shared access you only need to grab the node-local one shared

craggy spire
#

Yeah

twilit smelt
#

but to acquire exclusive access you need to grab them all exclusive

#

i havent found much need for that because 99% of my locking needs are exclusive only

craggy spire
#

The memory manager and FS use them

#

FCB headers for sure

craggy spire
blissful smelt
#

I'm getting pranked

blissful smelt
#

I downloaded 22h2 from archive.org and extracted the install.wim

craggy spire
#

This is the oldest thing I had in my Ghidra

#

22h2 has it 100%

#

This is a fundamental AutoBoost function that has been present in all versions, regardless of how you number them

blissful smelt
#

is that wrong

#

how did you get your binary

craggy spire
#

From system32, it's not important

twilit smelt
#

wonder if one day theyll change the name and it wont be called ntoskrnl.exe anymore like how macos no longer has mach_kernel

craggy spire
#

And uh, did you download the symbols

craggy spire
#

They compile .c files as C++ anyway

hollow musk
#

there are suspiciously many people on this server who are knowledgeable about NT

#

when I joined the server, I assumed there would be intelligent people here, but I didn't expect this!

twilit smelt
#

nobody knew anything about it until around 2021

#

i got obsessed with it and started talking about it nonstop which annoyed ppl to the point where i almost got banned multiple times

digital pivot
twilit smelt
#

but over the span of a few years more NT enjoyers coalesced

hollow musk
#

#osdev-misc-0 message

hollow musk
twilit smelt
#

things changed lol

#

there were a few people who would get weirdly hostile if NT was mentioned

#

some of them are still regulars they just gave up

#

this community was convinced to take NT seriously through like years of persistence by me and a couple others

blissful smelt
hollow musk
#

it's natural that people know less about the inner workings of windows, and the nature of their expectations and perceptions is also clear to me

blissful smelt
hollow musk
#

in my circle, discussions about operating systems boil down to linux

#

I hope to change that

twilit smelt
#

pre-2021 the perception of NT (including mine) was definitely "lol its a micro$hit kernel theres definitely nothing interesting in there"

#

people just would not look at it

blissful smelt
hollow musk
#

I feel like microsoft has been trying to put a spoke in the wheel in recent years, and it's actually a bit of a shame that it's owned by microsoft

twilit smelt
#

i think i only had a case because i was like "actually its not a microsoft kernel its more of a DEC kernel" so i didnt need to like

#

defend microsoft in the process of defending NT

#

i could throw them under the bus and praise DEC culture instead lol

#

otherwise i might have just come off as a microsoft shill and unironically might have just been banned for being annoying on those grounds yrs ago

craggy spire
#

You need to download them from the Microsoft server and load them into your Ghidra project

#

No, I don't remember the link off the top of my head

blissful smelt
#

ahhhhh thank you

hollow musk
#

and that this is partly why they maintain an engineering approach rather than a microsoft approach

twilit smelt
#

hes not completely out of the picture it sounds like he chimes in still

#

and keeps an eye on whats going on

#

NT culture is definitely running on inertia though

hollow musk
#

I don't remember, but someone famous said that he still works at microsoft, and I can't imagine that it's Xbox lol

twilit smelt
#

it was xbox for a time

#

a game console might have sounded like a welcome change after like 30 years of system software innards

hollow musk
#

he's probably working on some kind of cloud for xbox based on NT and Hyper-V

twilit smelt
#

his participation in azure was designing and implementing hyper-v

hollow musk
#

they are closely intertwined perhaps this is to his credit

twilit smelt
#

and he probably contributed to the xbox hypervisor

hollow musk
#

the modern NT scheduler can schedule virtual Hyper-V cores, which is quite interesting

#

I don't know exactly how it works, but it would be interesting to find out

#

this would be very useful in scenarios where host performance is important

#

such as Xbox which runs multiple virtual machines afaik

twilit smelt
#

isnt windows 11 always running as a hyperv guest now

hollow musk
#

this can be easily turned off, but by default it seems to be on

twilit smelt
#

alongside SK which is in another

#

(securekernel)

hollow musk
#

I don't know about SK

#

Is it connected with the scheduler? πŸ™‚

twilit smelt
#

dont think so

hollow musk
#

apparently, the scheduler became too complicated, so they redesigned its heart

blissful smelt
#

i appreciate and value your worthwhile insight πŸ‘

craggy spire
#

Nice Gummi

#

I'm glad you figured it out

warm mural
#

This channel has a crazy amount of NT knowledge

#

Very cool

digital pivot
blissful smelt
#

unfortunately i am not dave cutler reincarnate so i wont be able to analyze this at lightning speed

#

NT code is also fond of long functions

warm mural
#

A fun thing is adding your own decompilations to the database and eventually you end up with a bunch of your own local decompiled NT code

blissful smelt
warm mural
#

Linux code is hard to get into if you don't know the codebase a bit already

#

which is why cross referencers help a ton

blissful smelt
#

do people actually use these and if so what for

#

seems like a funky feature

warm mural
#

Control flow?

delicate dome
#

Control flow analysis? This is basic reverse engineering.

warm mural
blissful smelt
#

perahps i should try this out

warm mural
#

Yeah the decomp is useful but it can be misleading/hard to read

golden meteor
#

CFGs are so useful

blissful smelt
#

autoboost being hardcoded into the dpc execution engine is interesting

digital pivot
#

probably inlined

blissful smelt
#

which is interesting

digital pivot
#

what can you say about autoboost so far

acoustic sparrow
#

also wtf is LOCK() and UNLOCK() lmao

blissful smelt
acoustic sparrow
#

fucking what

#

this decomp is also just wrong lmao

digital pivot
#

is ghidra that bad?

acoustic sparrow
#

sometimes it can be yes

#

im a binary ninja enjoyer

#

which has its own stupids

blissful smelt
#

that's LOCK/UNLOCK

acoustic sparrow
blissful smelt
#

which does beg the question

#

yes

#

idk

#

i cant figure out where that's coming from

acoustic sparrow
#

it probably got folded into the load

dense vigil
#

why is there a no-op lock

blissful smelt
acoustic sparrow
#

maybe a seqcst load or a barrier or something

blissful smelt
#

that's the instruction

acoustic sparrow
#

lmao called it

#

its a seqcst barrier

blissful smelt
#

πŸ’₯

acoustic sparrow
#

but yeah why not just lift it to like

#

FENCE(RW, RW); or something

blissful smelt
#

ghidra weird

#

this should really just decompile to CMPXCHG or soemthing

#

what an odd way to write this

dense vigil
acoustic sparrow
dense vigil
#

what sort of spinlock doesnt act as a barrier

acoustic sparrow
#

hm

acoustic sparrow
#

but a decompiler is all about readability

#

you are not producing code which accurately represents the machine code

#

that is impossible

#

you are producing pseudocode that is meant to make it easier to understand what the machine code is doing

dense vigil
#

but yeah this decomp kinda sucks

acoustic sparrow
blissful smelt
acoustic sparrow
#

oh its just a fetchor lol

#

this is so stupid ngl

dense vigil
#

lock cmpxchg trl

acoustic sparrow
#

i wonder if binja does better

blissful smelt
#

idk either

#

ghidra being odd

#

ah param_2 is EDX

craggy spire
#

Possibly in older ones too

acoustic sparrow
#

i can't decide if this is like meaningfully better

#
__int64 __fastcall x(volatile signed __int32 *a1)
{
  return (unsigned int)_InterlockedAnd(a1, 0xFFFFC000);
}

``` oh and this is hexrays btw
#

which can actually recognize this CAS pattern

digital pivot
#

autoboost decompiles too poorly

acoustic sparrow
#

and also for some reason marked it volatile which is fucking insane

#

most of them produce a cas loop and many do so incorrectly

#

this is really making me feel like i could totally make a top quality decompiler with this competition

craggy spire
acoustic sparrow
# acoustic sparrow this is really making me feel like i could totally make a top quality decompiler...

is it really that hard to:

  • not use signed __int32 as a type jfc you can just write i32 its not that hard
  • not use volatile for atomics???
  • also why is it marked __fastcall its a linux binary there is no fastcall
  • not expand into a cas loop implemented without atomics
  • ideally, just figure out what the atomic op actually is (which hexrays does but hexrays does other jank)
  • not emit weird pseudofunction calls like ghidra
teal trench
warm pine
acoustic sparrow
#

i mean ida yes

warm pine
#

the __sync builtins are only from gcc 4.1

acoustic sparrow
#

which is only a bit after the ghidra decompiler started development

warm pine
#

i don't think they were very popular

#

even today many big dogs like linux have their own memory model, barriers, etc, and i think they use volatile still

acoustic sparrow
#

which is the most important purpose of a decompiler

#

i would be fine if they printed __cas or something like that

#

i dont hate how binary ninja on aarch64 prints ll/sc either (as calls to __ldxr and __stlr)

#

but LOCK() and UNLOCK() is really sucky. especially when you generate wonky decomp

icy bridge
#

my guess is they don't want the decompiler to lose information compared to the disassembly and making it something like __cas would result in cmpxchg/lock cmpxchg being decompiled identically

acoustic sparrow
#

only the lock variant is atomic and should have an intrinsic

icy bridge
#

the non-lock variant is atomic on UP machines

warm pine
acoustic sparrow
#

you dont need to surface every feature

warm pine
#

(or words to that effect)

acoustic sparrow
#

so does binja on x86

warm pine
#

well i can't say i care for that very much

#

i thought it would print a fake builtin or even some inline assembly (but then i suppose people don't want to see inline assembly in their decompiler output)

acoustic sparrow
acoustic sparrow
glossy leaf
#

yeah the LOCK/UNLOCK/while loop stuff just makes it harder to read

acoustic sparrow
#

strictly speaking any assembly sequence is atomic on UP machines if you do it in an rseq

glossy leaf
#

plus if you want to see whether its lock prefixed or not you could always look at the disassembly instead

icy bridge
#

fair enough

warm mural
acoustic sparrow
warm mural
#

Is binary ninja worth it if I have IDA

acoustic sparrow
#

probably not

warm mural
#

Prettier UI though

acoustic sparrow
#

or well maybe

#

yeah the ui is way better

#

and the decompiler is usually worse

warm mural
#

if I wanted something legally I'd take binary ninja

#

Way cheaper

sterile frost
#

their analyzer is multithreaded lol

sterile frost
#

eh, like 30-40+MB probably will be noticeable

#

IDA is singlethreaded and it really shows sometimes lol

warm mural
#

Is that just starting time or overall?

#

like does it just affect how long it takes to start

digital pivot
#

KiAbReleaseTeeLockForEntry

#

i wonder what is a tee lock

#

is there such a concept in cs ?

icy bridge
#

is that not just a typo for tree

blissful smelt
#

ticket lock?

#

teecket lock

icy bridge
#

idk I'm not familiar with autoboost but it looks like a typo

digital pivot
#

typo in autoboost spotted

digital pivot
twilit smelt
#

crazy that if prism weren't cancelled we'd all be sitting around talking about the typo in k$ab_release_tee_lock_for_entry

blissful smelt
digital pivot
#

btw is it patented

warm mural
#

I don't think its patented, because if it were then we'd have to know how it works

twilit smelt
#

It probably is patented and we just haven't found the patent yet

#

It's gonna be called something obtuse like "Method and system for efficient task interactions in a computer operating system"

warm mural
#

Time to look through every MS patent trl

hollow musk
#

Method and Apparatus for Assigning an Updated Priority Indicator to a Lock-Holding Actor in Response to Waiting Actors in a Computing Kernel

craggy spire
#

IIRC there are at least 2 Autoboost patents, but I don't have them on hand

twilit smelt
#

Patentese is the worst way to try to read about a technology

craggy spire
#

I saw both, but I don't remember anything really important

twilit smelt
#

It's a description of that technology with an audience of lawyers

warm mural
#

The RCU patent was surprisingly readable

digital pivot
#

anyone looked into xnu's rcu?

hybrid condor
#

so much chatter about AutoBoost lately

warm mural
#

GUS?

hybrid condor
#

what’s the deal with it?

twilit smelt
#

autoboost inspires interest because it's a way more complicated implementation of PI compared to turnstiles

hybrid condor
twilit smelt
#

it does weird stuff like the boosting of each hop in a waiter chain is apparently deferred

#

asynchronous

hybrid condor
#

so heavily spied on

#

and taken away

warm mural
#

wait what is GUS then

#

I mixed up my acronyms

hybrid condor
#

they call their SMR GUS

#

they = freebsd

hybrid condor
twilit smelt
#

me when I'm allergic to try/retry idioms so I make my boost hops into software interrupts

#

[citation needed]

hybrid condor
#

you made turnstiles for numa

#

πŸ™„

digital pivot
twilit smelt
#

I was mostly joking I'm unsure the details

twilit smelt
# hybrid condor you made turnstiles for numa

the best part is when you steal a turnstile that is local to another node and now for performance reasons at some point you have to free it to that node's turnstile cache and reallocate one for yourself and I do this as. an APC level software interrupt

digital pivot
twilit smelt
#

the software interrupts cannot be escaped

#

sooner or later they come for us all

hybrid condor
#

will anyone be in cali in march?

#

there will be an opportunity to come and maybe even talk

#

there will be an event related to ios security

#

I think you're from california?

#

@liam

twilit smelt
#

I'm unfortunately from Utah

hybrid condor
#

that's not how I remember it.

twilit smelt
#

You might have spoken to the alternate universe Californian version of me

#

just tell me this... is he happy...

hybrid condor
#

then discord is back in hibernation after waking up from the announcement.

#

and what the hell is the verification nonsense?

#

if they don't stop I'll have to delete it

delicate dome
hybrid condor
#

then it's good that I can survive without discord

twilit smelt
#

I mean it shouldn't come up just talking in places like this

#

This discord isn't 18+

shadow ridge
#

doesnt it also work for any server with like more than 1000 members

#

so you cant join unless u verify your age group

twilit smelt
#

Hope not

shadow ridge
#

it's so hard to get my friends to add me on matrix

#

at least i have one's irl phone number so it doesnt actually matter if we dont do it now or whatever

hybrid condor
#

you're no longer sure of the exact rules, and they may change

twilit smelt
hybrid condor
shadow ridge
hybrid condor
#

got it, can uninstall

digital pivot
#

so you uninstalled?

#

i wonder how many people really wont want to do verifcation

shadow ridge