klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
bauen1 has joined #osdev
<zid> what about -EGOMOG
Gooberpatrol66 has joined #osdev
<geist> -EGGNOGOG
bliminse has quit [Ping timeout: 240 seconds]
bliminse has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
duckworld has quit [Server closed connection]
duckworld has joined #osdev
immibis_ is now known as immibis
sbalmos has quit [Quit: WeeChat 4.0.5]
cydox has joined #osdev
<mcrod`> so
<mcrod`> fedora was an instant failure
<mcrod`> plugged it in, booted, nothing started
<mcrod`> amazing
netbsduser` has quit [Ping timeout: 260 seconds]
Affliction has quit [Server closed connection]
Affliction has joined #osdev
Affliction has quit [*.net *.split]
duckworld has quit [*.net *.split]
duckworld has joined #osdev
Affliction has joined #osdev
rustyy has quit [Ping timeout: 264 seconds]
<immibis> that's not fair, fedora gradually declined over a long period of time
<heat> linu deskto
<immibis> i see the XP went to the actual desktops
<heat> someone somewhere is still happily running a vista desktop
<geist> mcrod`: hmm, like no drivers?
<geist> oh like doesn't boot off the usb stick?
<zid> runlevel didn't work?
<mcrod`> no, it boots
<mcrod`> but I click 'install fedora'
<mcrod`> and nothing happened
<zid> EMERGENCY, NOT SYNCING
<mcrod`> i clicked terminal, firefox, and like 4 others
<mcrod`> nothing happened
<zid> did you check dmesg?
<mcrod`> ubuntu worked instantly
<mcrod`> no
<geist> did you click with enough ferocity and conviction?
<zid> aww now we'll never know
<geist> did you click knowing in your heart that it was the right path?
<mcrod`> no
<geist> you were judged
<geist> and found unworthy
<mcrod`> i lost interest the moment it didn’t yield to me
<mcrod`> :(
<zid> I am at that part in every puzzle game
<zid> where eventually it asks you to play a piano
<zid> I am not very good at playing the piano
<heat> ubundu
<geist> ubnundu
<zid> budundo
<geist> nbunudn
<heat> lets say you did not have 9 fans
<heat> failure would be less likely to occur, since you would naturally have less hardware
<zid> ^
<zid> can't fault that logic at all
<zid> can you do.. redundant fans, with failover?
<zid> I picture it like a CD changer
<immibis> the lesson: always remove all the fans from your appliances - they are there to make it break
<heat> i regret writing my thing in C++ because it's now very hard to interface with C code
<heat> i played myself
<zid> s/ C code/
<heat> yes, actually
<mcrod`> new fans
<mcrod`> problem: the orientation on the front and rear and side is wrong :(
<zid> the fuck is that doing
<zid> please add arrows of what you think the airflow is
<mcrod`> fuck you i just said it was wrong
<zid> It's wrong by about 9 fans, yes
<mcrod`> yes
<zid> sorry, 13, I miscounted
<mcrod`> that’s what happens when you’re furious and just want it to be over
<zid> you.. make it worse?
<mcrod`> yes
<mcrod`> we’re not all perfect beings like those in #c
<mcrod`> no that’s too much
<zid> oh so the limit is somewhere between "13 too many" and "20 too many", I see
<mcrod`> also, the old corsair ones had arrows
<mcrod`> weakest link is the fan orientation for me somehow
<zid> ftw they almost always eject *line noise* direction
<bslsk05> ​i.imgur.com <no title>
<zid> I hear vortices are good for cooling heat stop being mean
<mcrod`> the rear is intake and the front is exhaust
<zid> arros plws
<mcrod`> but you know, it’s easy to fix
<mcrod`> no
<mcrod`> we’ve already established that the orientation is terribly wrong by my own admission immediately
<zid> I don't care about the orientation
<zid> I never did
<mcrod`> so you just want me to draw arrows
<zid> I asked you to add arrows for which way the air is (should be) going
<mcrod`> oh, how I want it to go?
<mcrod`> bottom, front, and side intake, rear and top exhaust
<zid> >add arrows
<zid> I was very specific about this
<mcrod`> you told me to add arrows for what I think the airflow is
<zid> yes
<zid> not "write on irc"
<mcrod`> god bless this channel
<mcrod`> heat: maybe it will open into another dimension
<zid> heat's is probably the realistic outcome, anyway
<zid> unless you put baffles in or remove about 9 fans
<mcrod`> i do imagine the case rising from the ground and taking flight more often than i should
<heat> have you considered using LN2 instead of 50 thousand fans?
<heat> it's better to have a small scale chemical disaster than a small scale natural disaster
<mcrod`> no
<zid> I made chili, I am eating it with naan bread
<zid> I win
<heat> NaN
<heat> "hey bud can you turn off the fans i'm trying to sleep here"
<mcrod`> it’s virtually silent
<mcrod`> besides she likes to climb on the case now
<mcrod`> at least she’ll have a harder time shutting it off
[itchyjunk] has quit [Remote host closed the connection]
<zid> okay I can now sort of play piano
<zid> if you give me 10 seconds per note
<geist> mcrod`: ooh so you pointed them all the right way and it's silent?
<geist> funny, someone on another discord had more or less the same problem the other day, they had the front fans as exhaust and half the other fans as intake
<geist> and it was super noisy
<geist> we told em to turn them around and it quieted down and works better
<heat> what do CPUs usually do on e.g lock xadd to ensure forward progress? vs cmpxchg or whatever
<heat> stupid question
<heat> i guess they just grab the cacheline exclusively and do the add
edr has quit [Quit: Leaving]
rustyy has joined #osdev
<geist> in the old days the lock meant 'lock the bus'
<geist> basically keeps any other bus masters (other cpus, dma) from doing a memory transaction in the middle of it
<geist> but tht was back when things truly were a bus
<clever> related, i saw a guy on YT fixing 2 motherboards where turbo was broken
<clever> one had turbo stuck on, the other stuck off
<clever> and after RE'ing it, he found that a PLA was just PWM'ing the L1_flush pin of the cpu
<clever> that pin forces the cpu to flush the cache and halt until its released
<heat> yeah i just had a brainfart and was like "why the cmpxchg no forward progress but atomic add forward!!?!?!?"
<geist> oh hah, cute
<clever> so 90% of the time, the cpu was in halt
<clever> but, i can see how that pin was meant to help with dma
<geist> yah in the pentium 2/3 days the usual way to get IBM AT class speed is go in the bios and disable the L2/L1 cache
<clever> L1 is flushed, so its now coherent, and the cpu is halted, so dma can do its thing
<clever> but he also mentioned other methods, that mess with the PLL to change the base clock
<clever> du -hc --max=0 $(nix-store -qR ./result) | sort -h
<bslsk05> ​'Turbo in a retro PC - explanation and repair.' by Necroware (00:21:31)
<heat> how does taht work for modern x86?
<heat> DMA <-> cache coherency
<zid> only DMA to UC memory :P
xenos1984 has quit [Read error: Connection reset by peer]
troseman has joined #osdev
troseman has quit [Client Quit]
gxt has quit [Remote host closed the connection]
<clever> heat: my rough understanding, is that the dram controller and the pcie controller are both in the x86 cpu, and dma is free to snoop on the caches
gxt has joined #osdev
<zid> but yea handily, pci-e is the shit, so if it's over pci-e it JUST WORK
<zid> pci-e is the new external memory bus
<geist> heat: i assume it's something like how ARM does it where the cpu grabs an exclusive on the particular L1 line the data is in
<geist> and either delays any other core from taking it away in the middle of the thing, or does the retry logic like ARM/riscv does
<clever> i feel like the L2 cache must also be aware of the state of every L1 cache?
<geist> yerah, and it does anyway
<heat> i see, so DMA acts as another core?
<geist> and the L3, and cross socket, etc etc. it's already a complicated mess, so the hardware is basically already there
<clever> so you could ask the L2 about cached data, and not talk to the L1's directly
<geist> heat: good question. i have no idea what happens if you do an atomic and simultaneously DMA over it
<geist> that may be undefined
<geist> like DMA may be cache coherent, but maybe doesn't completely play with all the rules there?
<heat> surely you mean UNDEFINED
<geist> UNDEEEEEEFIND
<heat> IMPLEMENTATION DEFINED
<geist> but of course if the atomic is a rust atomic then it's fine by definition
<heat> RUST CPU
<heat> RUST CPU
<geist> ```rust std::atomic```
<geist> rust``` std::atomic```
<heat> verilog? more like veriunsafe
troseman has joined #osdev
<geist> verilag
<geist> vore a log
<heat> verislog
troseman has quit [Client Quit]
<clever> on the VPU, L2 cache is handled in a fairly simple way
<clever> there is a 1gig window from the axi router, that forwards all requests to the L2 cache
<geist> i figured out why the visionfive 2 is fully coherent too, it's actually a pretty nice solution
<geist> maybe slow, but coherency FTW
<clever> and if there is a cache miss, it just sends it back out to the axi router, with the top 2 bits set, which routes it to the dram controller
<clever> both cpu cores and dma can then freely use that L2 window
<clever> and they are essentially equal in power
<geist> hmm, is that a write through L2?
<clever> not sure
<clever> but it will evict to dram when a miss needs more space
<clever> and there is another window in the axi router, that is non-allocating
<clever> so an L2 miss will proxy from dram, but not store to L2
<geist> but yeah that's basically an outer cache that cpus and all bus mastering sits on top of
<clever> yep
<geist> that's also somewhat common as an L3/L4 cache that some ARM socs have. where the inner caches are not coherent, but the outer one is basically sitting between the ram and everything else
<geist> and thus coherent since everything goes through it
<clever> and you can configure the pi2-pi3 to treat that as an L3 cache, doing exactly that
<clever> in theory, it would reduce latency for dma
<clever> the stock setup, involves an arm L1/L2 flush to dram, then dma from dram
<geist> yah at the cost of competing for cache with things that may or may not need it
<clever> so your paying the dram latency twice
<geist> yah
<clever> yeah
<clever> and with only 128kb of "L3" cache, and 512kb of L2 cache
<clever> its a bit unbalanced
<clever> isnt L3 normally bigger then L2?
<heat> yea
<clever> oh, and one issue with the VPU design, i dont think the L2 is aware of the L1
<clever> so you need to manually flush the L1 before initiating dma
xenos1984 has joined #osdev
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
<clever> but, the L1 cache is more async in terms of control, you write a min/max addr to MMIO, hit the flush flag, and then either go do something else, or spin until MMIO says done
<clever> while on arm (and x86?) its a co-processor register that will probably stall if you hit it too much, and dmb will stall intentionally
<clever> i think?
heat has quit [Ping timeout: 240 seconds]
stolen has joined #osdev
<zid> when are we all switching to Hard Hat linux
divine has joined #osdev
smeso has quit [Quit: smeso]
smeso has joined #osdev
m3a has joined #osdev
freakazoid332 has quit [Ping timeout: 255 seconds]
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
rwb has quit [Quit: ZNC - https://znc.in]
rwb has joined #osdev
mkwrz has quit [Ping timeout: 245 seconds]
mkwrz has joined #osdev
acidx has quit [Server closed connection]
acidx has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
goliath has joined #osdev
gog has quit [Remote host closed the connection]
Bonstra has quit [Ping timeout: 240 seconds]
Bonstra has joined #osdev
pretty_dumm_guy has joined #osdev
gog has joined #osdev
heat has joined #osdev
gog has quit [Ping timeout: 252 seconds]
LambdaComplex has quit [Server closed connection]
LambdaComplex has joined #osdev
gog has joined #osdev
gbowne1 has quit [Remote host closed the connection]
<kof1231> hard hat linux? <has flashback of animated construction worker gif digging, "under construction">
<gog> yes
<bslsk05> ​www.textfiles.com: Please be patient - This Page is Under Construction!
<kof1231> well it still exists for loading...construction worker apparently got transformed into circular swirling dots
GeDaMo has joined #osdev
* kof1231 opens up design patterns picture book under "interceptor pattern"...there is just a picture of a command and conquer engineer
Vercas has quit [Ping timeout: 256 seconds]
Vercas has joined #osdev
<gog> you need engineer?
<kof1231> i think cproc and qbe can be c89-ified :D > They're fresh out of batteries, but they're still making noise, making noise
<gog> tank is dry
<geist> wow, that underconstruction page...
adi__ has joined #osdev
<adi__> hello everyone
<Ermine> gog: may I pet you
<adi__> Ermine, :/
<Ermine> adi__: what
<gog> Ermine: yes
* Ermine pets gog
* gog prr
<adi__> Ermine, plz explain why "jmp 0x0000:0xffff" why not "jmp 0xffff:0x0000"
<adi__> ??
<gog> the equivalent segment-based jump wuld be 0xfff:0x000f
<gog> segment << 4 + base
<adi__> gog, :|
<gog> segments aren't byte addresses
<gog> a segment is the basis of a range of 65536 bytes that can be addressed
<gog> and the base address of the segment is the value left shifted by 4 bits
<gog> in real mode you can only address 20 bits
<gog> but indirectly
<gog> you can only directly address 16 bits
<adi__> thanks gog :)
adi__ has quit [Quit: Leaving]
elastic_dog has quit [Ping timeout: 260 seconds]
<gog> cool
pretty_dumm_guy has quit [Ping timeout: 240 seconds]
elastic_dog has joined #osdev
pretty_dumm_guy has joined #osdev
skipwich has quit [Ping timeout: 240 seconds]
skipwich has joined #osdev
skipwich has quit [Ping timeout: 240 seconds]
bauen1 has quit [Ping timeout: 240 seconds]
Left_Turn has joined #osdev
skipwich has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
asarandi has quit [Quit: WeeChat 4.1.1]
asarandi has joined #osdev
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
heat has quit [Ping timeout: 240 seconds]
netbsduser` has joined #osdev
edr has joined #osdev
Arthuria has joined #osdev
Turn_Left has joined #osdev
bauen1 has joined #osdev
Left_Turn has quit [Ping timeout: 272 seconds]
phr3ak has quit [Server closed connection]
phr3ak has joined #osdev
zxrom has quit [Quit: Leaving]
Arthuria has quit [Ping timeout: 252 seconds]
bombuzal has quit [Server closed connection]
DanielNechtan has joined #osdev
agent314 has joined #osdev
zetef has joined #osdev
xenos1984 has quit [Ping timeout: 240 seconds]
sbalmos has joined #osdev
xenos1984 has joined #osdev
goliath has quit [Quit: SIGSEGV]
Turn_Left has quit [Ping timeout: 255 seconds]
Turn_Left has joined #osdev
Turn_Left has quit [Max SendQ exceeded]
Turn_Left has joined #osdev
zxrom has joined #osdev
stolen has joined #osdev
frkzoid has joined #osdev
Bonstra has quit [Quit: Pouf c'est tout !]
Bonstra has joined #osdev
zetef has quit [Remote host closed the connection]
isitBonwick is now known as mjg
<mcrod`> gog
<mcrod`> hi
<gog> mcrod`:
<gog> hi
<mcrod`> i want a hug
* gog hug mcrod`
* mcrod` hug
zetef has joined #osdev
raggi has quit [Server closed connection]
raggi has joined #osdev
mjg is now known as isitTheo
<netbsduser`> is it theo indeed
zetef has quit [Ping timeout: 255 seconds]
<netbsduser`> or is it just de rat
agent314 has quit [Ping timeout: 240 seconds]
heat has joined #osdev
agent314 has joined #osdev
<heat> isitTheo, yes
<heat> it is theodore
xenos1984 has quit [Ping timeout: 245 seconds]
xenos1984 has joined #osdev
gog has quit [Quit: Konversation terminated!]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
Turn_Left has quit [Ping timeout: 258 seconds]
Matt|home has quit [Quit: Leaving]
gog has joined #osdev
Matt|home has joined #osdev
xenos1984 has quit [Ping timeout: 252 seconds]
xenos1984 has joined #osdev
gog has quit [Quit: byee]
gog has joined #osdev
<mcrod`> hi
* gog hug mcrod`
dude12312414 has joined #osdev
* mcrod` hug gog
dude12312414 has quit [Remote host closed the connection]
heat has quit [Remote host closed the connection]
heat has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
<mcrod`> it is cold
<isitTheo> you stealing wormth from gog
isitTheo is now known as mjg
<mcrod`> yes
<mcrod`> she's warm
<Bitweasil> mcrod`, time for build farms?
<gog> i am not warm i am cold
<mjg> fair
<mcrod`> Bitweasil: maybe
<mjg> time to boot up gentoo
<mjg> innit
<Bitweasil> mmm... emerge update world, that'll heat the room!
<mcrod`> at least ubuntu LTS booted for me and so far works lovely
<mjg> you are weak minded
<Bitweasil> Ubuntu LTS is generally fine on all but the absolutely latest hardware, and most of the time the -hwe packages fix that.
<mjg> if you were a real unix user
<mjg> you would have openindiana
<mcrod`> i'm on a 7950X3D and a 3090ti
<mcrod`> still ok
<mcrod`> *BUT*
<mcrod`> I thought the LTS version was 5.15
<mcrod`> yet,
<mcrod`> 6.2.0 was installed
<gog> i just installed 6.6
<mcrod`> was kinda shocked about that
<mcrod`> say CHEESE
<Bitweasil> It was on 5.15 for a while, but seems to have recently updated to 6.x or something. I only pay attention when things break. :)
<Bitweasil> Though I mostly run Qubes anymore.
<bslsk05> ​i.imgur.com <no title>
<Bitweasil> The 3900 Ti, is that the one that needs the small power station to run it?
<mcrod`> i don't know what you mean by that
<mcrod`> if you mean it takes up a shitload of power
<mcrod`> then yes :p
<Bitweasil> Why do you have two GPUs?
<mcrod`> i don't
<mcrod`> I'm going to assume that's iGPU
<Bitweasil> Sez you do in your hardware stats. :p
<Bitweasil> Oh, I didn't think the high end desktop chips had those.
<mjg> weird
<mjg> i have ubuntu 22.04.3 and a 5.15 kernel
<Bitweasil> Enough RAM though. ;)
<mcrod`> this is a fresh install
<Bitweasil> 128GB ought to be enough for most people for a while. ;)
<mcrod`> Bitweasil: yes I can finally do a full LTO LLVM build
<mjg> i do see 6.2 in the search tho
<mjg> 6.2
<mcrod`> i don't plan on updating to the next LTS until the last minute
<Bitweasil> I usually upgrade about 1-2 years in.
<mcrod`> depends on what the new LTS has to offer
<mcrod`> I'm terrified of upgrades on Linux
<mjg> i updated ubuntu since 18.04
<mjg> > The kernel uplift includes a bunch of features, including an updated NTFS3 kernel driver
<mjg> lol
<mjg> ntfs3 is known to be incredibly buggy
carbonfiber has joined #osdev
<Ermine> I tried it once and I don't want it anymore
<Ermine> my system literally failed to boot
<geist> try what?
<Ermine> new ntfs kernel driver
<zid> fuse-3g for life?
<geist> hmm is it in kernel or fuse?
<Ermine> kernel
<Ermine> fuse one is ntfs-3g
<zid> I'll give it 10-20 years before I use the kernel one
<zid> fuse's ntsf-3g has worked correctly for me
<Bitweasil> I really haven't had to interact with NTFS much in the past 5 years or so. exFAT is good enough for cross platform large file transfer these days.
<Bitweasil> And I don't really do Windows anymore, so I don't have to interoperate with it, almost all my externals are exFAT if I have reason to use them with anyone else, or ext4 for my own use.
<geist> i haven't really benchmarked the fuse ntfs, but i think for simple cross transfer it's probably fine
<zid> It's not a thing you need often
<zid> but hwen you do need it, you NEED it
<mjg> did you know btrfs has a converter form ntfs :D
<geist> but of course someone will want to do audio mixing, or play their games off it via some emulation layer, etc
<zid> "Oh fuck, windows has exploded and I need to get all my files off before I wipe this drive" or whatever
<nortti> I've actually had better luck with ntfs than with exfat transferring things over crossplatform, but my situation is admitedly weird
<mjg> Z F S
<mjg> :S
<geist> and yeah exfat i'm no longer worried about corruption, since everything seems to work with it now, vs 5 years ago
<zid> another classic "Fuck, I left the github private key on the windows partition of the machine I stopped using 2 years ago"
<geist> which is good cause sd cards and whatnot are getting big now, and FAT32 strettched to 256GB or so is pretty sad
<Ermine> it is sad that it becomes harder to find small sd cards or usb drivers
<zid> The 2G file limit is all I ever cared about with FAT derivatives
<Bitweasil> FAT32 is pretty sad regardless. No >4GB files? :p
<Bitweasil> Is it 2GB?
<zid> yea
<mjg> brah
<geist> tis true
<mjg> what's the inode limit on the sucker
<Bitweasil> I haven't used FAT for anything except EFI and /boot partitions in... man. About forever.
<nortti> do they store the file size signed?
<zid> or aligned to 2 with a flag, who knows
<geist> i dont think there's a real inode limit on FAT, since there are no inodes
<Bitweasil> Except FAT16 on small partitions for some screwball UEFI or BIOS update USB stick.
<Bitweasil> I had something that was genuinely FAT16 only.
<zid> I hand wrote a fat12 once 20 years ago
<zid> beyond that I don't know anything
<Bitweasil> Stuff a 128MB partition as partition 1, FAT16, update BIOS, recover to drive to something sane.
<nikolar> does fat16 even support directories
<geist> yep
<zid> fat16 isn't even the small one!
<zid> fat12 is
<nikolar> yeah i know
<geist> the difference is fat12 and fat16 both have a fixed root directory, but the secondary subdirectories it supports
<Ermine> implementing fat32 in sortix was painful
<geist> fat32 has a full variable sized root dir
<geist> fat 12 caps around 4MB and fat16 caps around 2GB partitions (though that's at a full 32K cluster)
<zid> fat12 is perfect for floppy disks, however
<nortti> iirc fat12 is used up to 20 megs
<geist> ah you're right. 4096 clusters, max cluster size is 32K, so that's like 128MB
<geist> at 512 byte clusters which is the usual floppy size, that caps at 2MB
<zid> basically hand-designed to be good at floppies
<geist> hand designed *for* floppies. hard drives came along a bit later
<zid> I miss floppies, I wish we got those again instead of SD cards
<geist> well, hard drive support
<zid> SD cards are nice for phones, but fucking useless for anything else
<zid> too small and losable, can't label them, fragile, etc
<nortti> < geist> at 512 byte clusters which is the usual floppy size, that caps at 2MB ← interestingly enough 320K and 360K floppies use 1024K cluster
<nortti> presumably to keep the FAT in one sector
<geist> hmm, yeah
<geist> i always mix up the MSFT doc that rbasically specs the transition points between the FATs at 4MB and 512MB
<geist> but that's with the clusters still at a semi small and reasonable size, not the absolute max size
<geist> i do remember the max size of FAT16 being sort of an issue if you wanted to dual boot windows and NT 3.51 and NT 4, since IIRC NT didn't get FAT32 support until later
<geist> so you had to keep around a FAT16 partition, since windows 3.1/95 would never root on a NTFS drive
<nortti> aiui fat32 was introduced in a later version of win95
<geist> so as you started to get into 1GB+ drives in the mid to late 90s you had to increasingly go full on NTFS and dual booting was a problem
<geist> but NT eventually got FAT32 support, it was just a bit later
<zid> and then we used fat32 until it was way past fit for purpose
<zid> as usual
<geist> it also wasn't as flexible as you get now: both windows 95 and i think NT had these rules that the root dir had to be C: and c: was always the first partition on the first disk
<zid> What about UDF btw, I seem to recall that every DVD I ever looked at had its VOBs split at 2GB or 4GB
<mjg> that's no longer true on windows?
<kof1231> yes, i beileve fat32 was "windows 95b" or some such
<sortie> hello it me
<zid> sortie am UDF
<geist> yah NT may not have gotten FAT32 until win2k? or mayb e it was a later patch of NT4
<mjg> oh??
* mjg has to say NT's history if very different from what he thought
<geist> mjg: they didn't unify the two lines until windows XP, 2001
<mjg> that i know
<mjg> but it does not mean it could not have fat32 way prior
<geist> yah though NT from day one had NTFS, which was basically always superior, so the only reason NT would have had it was to be compatible with win9x
<mjg> hm... was there a fat to ntfs converter?
<geist> yep, there always was
<mjg> right
<geist> something like CONVERT/NTFS
<mjg> so probably that's why
<mjg> i have vague recollection win 2k installer was offering it
<geist> in fact i vaguely remember something like in NT3.51 you always had to install on a FAT partition and then convert it later?
<sortie> I was quite surprised to learn FAT12/FAT16/FAT32 have the exact same feature set, root dir aside
<geist> yah pretty much, there's that secondary superblock on FAT32 with some additional flags, like a dirty flag, and some sort of free space hint, but that's about it
<mjg> hm
<mjg> i installed iwndows 3.5-something few weeks back
<mjg> i think it was all ntfs
<geist> kk
<geist> NT 3.51 on modern hardware is so fast it hurts
<mjg> it boots with a smp-capable kernel for hte installer
<geist> yah SMP vs no SMP kernel was an actual notable thing up through at least win2k
<mjg> which is probably fine, but i find amusing because openbsd is doing the opposite(!)
<geist> XP is when they changed the blue boot screen to a logo and whatnot, so if there still was a separate kernel you didn't raelly see it
<mjg> arguably if they ship 2 kernels
<mjg> they could check in the bootloader
<geist> iirc you didn't have to license NT for something like >2 cpus, but then >2 cpus back in the late 90s/early 2000s was basically a big server
<heat> wasn't there a pae kernel too?
<geist> i had a dual ppro in like 1997, which was not really that expensive. 2 socket/slot boards were pretty reasonable in the late 90s, since there was yet to be any bifurcation in the intel and amd line for client vs server chips
<geist> so you just had to get the motherboard and then you had an open upgrade option now or in the future for a second cpu
<heat> <mjg> ntfs3 is known to be incredibly buggy <-- ntfs3 works fine
<geist> wasn't until about 2000 that xeon came along and then AMD followed suit a bit later
<heat> it has bugs when you fuzz the shit out of it, but normal usage works a-ok
<heat> i'm not saying fuzzing is for dumb dumbs, but fuzzing is for dumb dumbs that have nothing else to do except nitpick
<geist> baaaasically
<geist> i have my opinions about fuzzing too
<mjg> OH
<mjg> fuzzing is stale now that we have RUST #changemymind
<geist> RUUUUUUST
<heat> like either the root user is trusted and can fuck up your machine, or it's not and we have to fuzz everything, substancially increasing developer and maintainer overhead
<heat> linux is somehow stuck in both, and everyone has their own opinions on kernel lockdown and secure boot
<mjg> that fuzzing shit is or plugging in pendrives
<mjg> for
<heat> not only pendrives but all kinds of crap, since user = bad
<geist> yah i'm torn about it. fuzzing *can* and *does* catch good stuff, but it also catches a lot of noise
<mjg> 3rd party pendrive in your laptop == defo an attack vector
<geist> and it requires a lot of time for folks to separate the two
<heat> fs fuzzing is developed for a threat model where only trusted/signed binaries are safe
<mjg> so for example i think fuzzing ntfs is a waste of time
<mjg> but fuzzing fat for these fuckin' pendrives is not
<geist> since the fuzzer doesn't kow the difference, it really puts the onus on the maintainer. of course what i'm saying is not news, it's what heat just said, i'm just sort of restating the obvious
<mjg> 's all we do on this channel
<geist> fuzzing and looking for disk corruption or crashing the machine == good
<geist> mjg: word.
<heat> #complaindev
<mjg> you are all partially polish
<mjg> just sayin
<geist> haha that's the polish way?
<heat> all of eastern europe
<geist> heh
<Ermine> Y not fuzzing RUST programs
<heat> because RUST is SAFE and BUGPROOF
<mcrod`> i hate sine waves
<mcrod`> i hate audio in general
<mcrod`> i hate all of you
<mcrod`> especially heat
<mcrod`> fuck heat
<mjg> Ermine: compiler catches all bugs
<mcrod`> fuck you!!!!
<heat> fuck you
<Ermine> Yet oxidized android 13 crashes sometimes...
<mjg> probably because of ffi to c
<Ermine> Idk, logs don't show anything relevant
<heat> c programmarr bad
<heat> rost programmar good modern
<Ermine> go programmarr?
<heat> go programmer go to unemployment!!
<heat> rust
<mjg> it's rust all the way down to firmware
<Ermine> Ha!
* Ermine brings wd-40
<Ermine> Actually no, this shit is rare now
goliath has joined #osdev
<heat> вд-40
<Ermine> ?
<heat> russian wd-40
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
<nikolar> kek
sjrct has quit [Ping timeout: 264 seconds]
<geist> well, anyway, how about that on topic conversation
<Ermine> yeah let's go on topic
<zid> you'll never take us alive
<heat> fuzzing
<nortti> < heat> вд-40 ← вода-40
<Ermine> fuzzing good
<heat> it's good as long as you can prove it's useful
<mjg> lol
<heat> fuzzer proves stability = fuzzer poggers
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
<sham1> POGGERS
<kof1231> bryan cantrill's descendants (of which he has many of course, obviously) will find this log someday, and go WTF?
<heat> if i found a random IRC log and people there were saying my dad is a prolific kisser of women, i would be very proud
<Ermine> I don't think fuzzing can be harmful
<Ermine> If you catch some bugs: cool, if you catch none: nothing really happened
<mjg> what if you catch stupid shit not worth investigating
<heat> if you catch some bugs it'll eventually need to go through a hooman, that's what we were on about a few minutes ago
<heat> for better or worse, legacy software isn't quite equipped to deal with all sorts of dumbass input when it has been trusting that same input for the last 30 years
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
<zid> If it's just a crash that would never ever happen without the fuzzing, it's just a code quality issue
<zid> and code quality issues only matter if that code will need maintaining in future
<zid> or used as a reference implementation, etc
<zid> so whether it's worth reporting or not depends on more than just "does it crash", basically
bauen1 has quit [Ping timeout: 255 seconds]
Turn_Left has joined #osdev
<bslsk05> ​lore.kernel.org: [PATCH] fs/exec.c: Add fast path for ENOENT on PATH search before allocating mm - Josh Triplett
ThinkT510 has quit [Quit: WeeChat 4.1.1]
<mjg> heat: good idea to lookup first, bad idea to throw away the result
<mjg> basically find the fucking vnode and keep it
<mjg> oh wiat's that's old af
<mjg> let's see what people said
<bslsk05> ​lore.kernel.org: Re: [PATCH] fs/exec.c: Add fast path for ENOENT on PATH search before allocating mm - Kees Cook
<heat> z e r o d a y
Cindy is now known as bnchs
<heat> actually it's just the bot
<heat> not a real 0 day, boring
ThinkT510 has joined #osdev
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<mjg> heat: asked some hard hitting questions there :X
Turn_Left has quit [Remote host closed the connection]
Turn_Left has joined #osdev
Turn_Left has quit [Ping timeout: 260 seconds]
<mjg> heat: lol, i just realised freebsd was already doing the lookup upfront
<mjg> heat: AHEAD OF LINUX ONCE AGAIN
Turn_Left has joined #osdev
<gog> hi
<gog> i'm on linux
<gog> pray for me
<Ermine> happens
<childlikempress> mjg: watchout, linux is catching up
<gog> linux
<gog> lonux
<childlikempress> lunix
<heat> this mateus gusig guy is going after freebsd
<childlikempress> matoos goose of netcraft confirms it: linux is killing freebsd!
<heat> hi its me notch pearsson
<heat> sorry, persson
<heat> sometimes i misspell my name
<heat> im notch persson creator of minebsd and i can confrim openbsd is killing windows
aosync has quit [Changing host]
aosync has joined #osdev
<sortie> heat, are you keeping up with my with the latest Sortix updates?
<heat> keeping up with the sortices
<heat> sortien
<heat> sortie, what happen
<heat> how are you going to shame my system's usability this time around
<mjg> rebased on onyx
<mjg> is my guess
<mjg> ord id you finally commit smp
<sortie> heat, I have done nothing and my system still slays you :)
<heat> ouch
<zid> notch has always been a prick to me when we've spoken, 10/10
gbowne1 has joined #osdev
<zid> Maybe one day he'll give me the 30k he owes me
<heat> we should not gloss over how his last name is literally persson
<zid> Did someone say 片翼の天使
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
<gorgonical> Every day I get close to deciding weakly typed languages are for cowards and the only virtuous way to write system code is with something like Ada
<zid> I'm just thankful I get types
<heat> c
<zid> Have you seen javascript
<gorgonical> Probably fully half of my mistakes in C are just doing things with casts/types wrong and not realizing
<gorgonical> And a less compliant compiler would prevent them I think
<zid> there are a lot of people who write C
<zid> There are relatively few people who know C
<zid> Rust would have the same issue with unsafe and shit if people actually wrote rust
<gorgonical> I mean recently I made the if (x = y) mistake because of a typo and was falling into an erroneous if and it took a long time to spot it
<zid> ..spot?
<zid> compilers have warned about that for 25+ years
<gorgonical> Maybe the lesson here is I should much more closely scrutinize my compiler warnings
<zid> why do you have warnings? O_o
<gorgonical> I do look at them but I think my eyes have learned to ignore certain ones as "noise"
bauen1 has joined #osdev
<zid> none of my code produces warnings on -W -Wall -O3
<zid> unless a newer gcc version got better
<zid> at giving diagnostics
<gorgonical> Once I'm done none of mine do either, but when my code is littered with printks to debug shit I'm often casting sizes and shit with abandon
dude12312414 has joined #osdev
<zid> but.. casts supress warnings..
<gorgonical> but the printks don't cause me to wander into the wrong if statement, so those are okay
<zid> I only allow warnings during dev if I know the implications
dude12312414 has quit [Remote host closed the connection]
<zid> "truncated to fit" "That one's fine because I know my test data has a broken value I need to fix still" or whatever
steew has joined #osdev
<gorgonical> I just put that = error back in and the compiler didn't yell at me. Did we disable Wall lol
<zid> or -Wno-paranthesis
<zid> paren
<gorgonical> we don't have Werror so maybe that's it
<gorgonical> parens is supposed to be in Werror
<zid> no
<bslsk05> ​stackoverflow.com: c - Force GCC to throw an error when an assignment (wrapped in parenthesis) is used as truth value - Stack Overflow
<gorgonical> ?
<zid> that isn't true
<gorgonical> This guys post suggests it might be
<zid> -Wparanthesis is a warning
<zid> -Werror turns warnings into errors
<gorgonical> is it not in Wall?
<zid> paren is in all, yes
<zid> nothing is 'in error'
<zid> because it isn't a set, it's a flag to upgrade warnings to errors
<gorgonical> Yeah I thought that too
<gorgonical> But then shouldn't I be getting this paren warning with Wall? Or are my flags fucked up?
<zid> Yes you should
<gorgonical> Maybe the flags are fucked up then
<zid> unless also -Wno-all or -Wno-parenthesis
agent314 has quit [Ping timeout: 240 seconds]
agent314 has joined #osdev
<bslsk05> ​pastebin.com: ccache aarch64-linux-gcc -Wp,-MD,kernel/linux_syscalls/.write.o.d -nostdinc -isy - Pastebin.com
<gorgonical> Any flags in there that seem suspicious?
<gorgonical> I don't know all the gcc warnings flags without reference
<zid> what is -include
<zid> does that..insert #includes?
<zid> this codebase is.. yea
<gorgonical> That one's before me
<gorgonical> So I dunno what it does
<childlikempress> I used -include once
<childlikempress> I think
<childlikempress> don't remember why or what for though
<gorgonical> Yes it literally includes a file according to info
<zid> and one of them says -linclude
<zid> ?
carbonfiber has quit [Quit: Connection closed for inactivity]
<zid> -fno-common suggests this is C++ code, -fno-strict-aliasing suggests C++ code written by a bad programmer
<gorgonical> I don't see -l
<zid> oh it's an I
<gorgonical> Why does no-common suggest c++
<zid> should probably remove all those -fno- options and see if they actually trigger anywhere, globally ignoring bugs because some file somewhere was written badly
<zid> they do stupid things with compiling code inside headers
<zid> and constantlyf all afoul of -fcommon
<zid> #gcc was "guys how do I fix-" "add -fno-common and try again" for months after they changed the default :P
<gorgonical> but -mkernel sets -fno-common
<gorgonical> ?
<zid> okay pruned this list down
<zid> and replicated the lack of warning
goliath has quit [Quit: SIGSEGV]
<zid> found it
<zid> some idiot passed -w
<zid> -w should cause a warning that -w was passed :P
<gorgonical> !!!
<gorgonical> WAT. I have just seen in the makefile for an arch :"
<gorgonical> "todo ignore warnings, remove this later"
<gorgonical> bruh
<gorgonical> cflags-y += -w
<zid> told ya an idiot made it
<gorgonical> I've just been flying by the seat of my pants this whole time lmao
<zid> This guy's getting ALTITUDE, ALTITUDE, ALTITUDE alarms in his aircraft and trying to find where to disable the speaker
<gorgonical> The other way around
<gorgonical> "The plane is awfully close to the ground but I'm not getting any warnings... What's up?"
<gorgonical> I know what I'm doing the rest of the night: fixing all these warnings
<zid> and remove all those fucking -fno
<zid> and add them to *specific* files if you can't apply a supression
<gorgonical> Thanks zid lol
<zid> (a suppression is something like (void)x; to get rid of unused param warnings, and ((x = 4)) to get rid of assignment inside if)
<zid> beyond that you can also pragma push/pop warnings
<acidx> even to specific files is something I don't like to do. I prefer to `#pragma GCC diagnostic push / #pragma GCC diagnostic ignored "-Wthe-specific-warning"`, a comment explaining why the warning is ignored, the code that would trigger the warning, and `#pragma GCC diagnostic pop`
<acidx> the usual caveat about using pragmas, yadda yadda
<zid> Yea just document it somewhere
<zid> if your build system is the best place for that, there
<zid> otherwise, in the source
<zid> https://godbolt.org/z/oKv534K3Y this is something that doesn't warning that should btw
<bslsk05> ​godbolt.org: Compiler Explorer
<zid> because it obeys the supression logic
zetef has joined #osdev
zetef has quit [Remote host closed the connection]
gbowne1 has quit [Read error: Connection reset by peer]
carbonfiber has joined #osdev
goliath has joined #osdev
<netbsduser`> i've been working on revamping my vmm in userland simulation (i made a pseudo 'port' of my kernel to run hosted)
<netbsduser`> making reasonable progress
<netbsduser`> i plan to add threads to it and then i can implement all sorts of fun test cases. objective is to weed out any bugs (thread sanitiser and co will help me ensure locking is sound) and stress-test conditions like out-of-memory
stolen has quit [Quit: Connection closed for inactivity]
gog has quit [Quit: byee]
agent314 has quit [Ping timeout: 240 seconds]
agent314 has joined #osdev
Turn_Left has quit [Ping timeout: 255 seconds]
cydox has quit [Quit: WeeChat 4.0.5]
sbalmos has quit [Quit: WeeChat 4.1.1]
\Test_User has quit [Server closed connection]
\Test_User has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev