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
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
antranigv has joined #osdev
apokryptein has joined #osdev
<mjg> heat:
<mjg> Fix vop_readdir's ncookies handling in UFS and EXT2.
<mjg> - ap->a_ncookies -= ncookies;
<mjg> + *ap->a_ncookies -= ncookies;
<heat> lmao
<nortti> was this just corrupting memory, or was it being saved by every site being wrong?
<clever> nortti: a_ncookies was a pointer to a variable, where you should have stored the cookie, it just changed the pointer, rather then the area the pointer pointed to
<clever> and likely nothing read that pointer afterwards
stolen has joined #osdev
apokryptein has quit [Quit: Leaving]
apokryptein has joined #osdev
<moon-child> lool
<zid> moon-child I think it's time we got married, neither of us are getting any younger
heat has quit [Ping timeout: 252 seconds]
alexander has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
alexander has joined #osdev
Hammdist has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
Valeria22 has left #osdev [Konversation terminated!]
stolen has quit [Quit: Connection closed for inactivity]
gorgonical has joined #osdev
<Hammdist> in `assigned-clocks = <0x02 0x64 0x02 0x66>;` I see that 0x02 refers to a clock controller. but what are 0x64 and 0x66 about? the clock controller doesn't have that many clocks so they cannot be indices. any idea?
<clever> Hammdist: do you have the original dts that was an input?
<clever> what compatible is on the clock controller?
regreg has joined #osdev
* clever heads off to bed
<zid> Why are there seagulls making noises outside
<zid> I am not near the sea, and it's 6am go away
<gorgonical> But why are you up at 6am zid
<zid> cus I've been sick and taking naps
<gorgonical> I am sorry to hear that. I live nearly 100km from the nearest large body of water and I have gulls too
jjuran_ has joined #osdev
jjuran has quit [Ping timeout: 252 seconds]
jjuran_ is now known as jjuran
bgs has joined #osdev
regreg has quit [Ping timeout: 260 seconds]
regreg has joined #osdev
Nixkernal has joined #osdev
xvmt has quit [Remote host closed the connection]
Nixkernal has quit [Remote host closed the connection]
Nixkernal has joined #osdev
elastic_dog has quit [Ping timeout: 260 seconds]
regreg has quit [Quit: Konversation terminated!]
regreg has joined #osdev
<bslsk05> ​github.com: linux/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts at master · torvalds/linux · GitHub
<bslsk05> ​github.com: linux/arch/arm64/boot/dts/rockchip/rk3328.dtsi at master · torvalds/linux · GitHub
freakazoid332 has quit [Ping timeout: 248 seconds]
gorgonical has quit [Ping timeout: 250 seconds]
xvmt has joined #osdev
elastic_dog has joined #osdev
zxrom_ is now known as zxrom
<Hammdist> so in the dts the clock references are symblic rather than numeric `<&cru SCLK_MAC2IO>` but I still don't understand where they are defined
<Hammdist> for example, how does the dt compiler even know that SCLK_MAC2IO should be 0x64?
<Hammdist> hm, there seem to be a definition of it in a .h file
<Hammdist> it seems the dt compiler is smart enough to parse defines; or at least invokes the c preprocessor for this purpose
Nixkernal has quit [Remote host closed the connection]
Nixkernal has joined #osdev
GeDaMo has joined #osdev
benlyn has joined #osdev
goliath has joined #osdev
benlyn has quit [Remote host closed the connection]
benlyn has joined #osdev
danilogondolfo has joined #osdev
linearcannon has joined #osdev
linear_cannon has quit [Ping timeout: 256 seconds]
Left_Turn has joined #osdev
nyah has joined #osdev
regreg has quit [Ping timeout: 246 seconds]
mhall has joined #osdev
zxrom has quit [Quit: Leaving]
gog has joined #osdev
[itchyjunk] has joined #osdev
Yoofie9 has joined #osdev
Yoofie has quit [Ping timeout: 260 seconds]
Yoofie9 is now known as Yoofie
regreg has joined #osdev
bauen1 has quit [Ping timeout: 246 seconds]
<gog> i'm getting much better with javascript
* mjg checks channel name
<mjg> is it #webdev?
<mjg> it must be sinc that's what most of you are doing111
<gog> webosdev
<gog> i'm developing a webos in javascript
<mjg> an os for web
<gog> yes
<mjg> well there is WEBASSEMBLY
<mjg> and you can write an os in assembly
<gog> there's a steamed hams meme in here
<mjg> so
<gog> an os for the web, localized entirely within the browser
<mjg> unikernel, except in a web browser
<mjg> you can treat the actual os as firmware
<gog> yes
<gog> your firmware is the entirety of chrome and all its deps
<gog> and the linux kernel
<gog> it's just chrome os
<mjg> firmware does tend to blow up in size over time
<mjg> CASE IN POINT
<gog> or
<gog> we port chrome to EFI
<mjg> i'm gonna port EFI to chrome
<GeDaMo> An operating system in Javascript https://demo.os-js.org/
<bslsk05> ​demo.os-js.org: OS.js Official Demo
<bslsk05> ​www.windows93.net: WINDOWS93
<GeDaMo> Yeah, I saw that one :P
regreg has quit [Quit: Konversation terminated!]
bauen1 has joined #osdev
orccoin has joined #osdev
<immibis> Hammdist: you seemed correctly
<immibis> everything in a dtb file is raw bytes, often interpreted as 4-byte integers or strings
wootehfoot has joined #osdev
ss4 has joined #osdev
wootehfoot has quit [Ping timeout: 240 seconds]
bauen1 has quit [Ping timeout: 248 seconds]
bauen1 has joined #osdev
ss4 has quit [Ping timeout: 240 seconds]
ss4 has joined #osdev
ss4 has quit [Quit: Leaving]
wootehfoot has joined #osdev
stolen has joined #osdev
<dzwdz> is it unusual for grub to take ages to load a largeish boot module from an iso?
<dzwdz> er, from a cd
<dzwdz> ~18s for ~120mb
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
<zid> millibits, or megabytes?
<zid> 120 megabytes is pretty fuckin big, 18s is kinda slow though
<zid> but if all grub can do is PATA for your drive or whatever, maybe it's reasonable?
<froggey> yeah, that's probably reasonable. grub uses the bios functions for loading & they're generally not fast
<Hammdist> if I did the math right that is 44x for the cd speed. I don't think things get much faster than that
<zid> You did not, but you're not far off
<zid> 120millibits is several entire milliseconds ;)
<zid> even at 1x
<zid> (but yea, 120MiB would be like 44.4x from cd, but I think he's off a hdd though?)
<dzwdz> yeah it's a vm
<dzwdz> do other bootloaders also only use the bios functions?
<dzwdz> or could e.g. limine be faster
<immibis> Silly thought: my CPU has a DDR4 memory bus, a 16-lane dedicated PCIe bus intended for graphics cards, and a 4-lane PCIe-ish bus to the PCH which is shared for all other I/O. The fastest way to attach a second (or third if the 16 lanes is bifurcated) peripheral would be to emulate RAM.
<Hammdist> I can't think of a good reason for the bios functions to be slow in a vm. are you using virtio for the cd drive emulation?
<dzwdz> no
<dzwdz> i should try that
<dzwdz> well, that was an easy fix
<dzwdz> thanks
mahk has quit [Ping timeout: 246 seconds]
<zid> dzwdz: the alternative to grub using the bios is that it has drivers for every piece of hardware possible
<zid> immibis: ergh, I hate that shit, 2011 cpus had 40 lanes, then intel decided that was TOO PREMIUM for mere users
<zid> and started giving 16, which they then graciously expanded to 20
leon_ has quit [Ping timeout: 244 seconds]
<clever> 2023-08-25 03:17:00 < Hammdist> for example, how does the dt compiler even know that SCLK_MAC2IO should be 0x64?
<clever> Hammdist: it gets ran thru the c pre-processor first
<clever> include/dt-bindings/clock/rk3328-cru.h:#define SCLK_MAC2IO 100
<clever> drivers/clk/rockchip/clk-rk3328.c: MUXGRF(SCLK_MAC2IO, "clk_mac2io", mux_mac2io_src_p, CLK_SET_RATE_NO_REPARENT,
<clever> Hammdist: and its just a random unused number they use, to refer to an entry in this lookup table
<clever> so youll need an array or switch-case block to map it to the right part of the hw
<clever> if you look at that header, youll also see patterns
benlyn has quit [Remote host closed the connection]
gxt has quit [Remote host closed the connection]
gabi-250 has quit [Remote host closed the connection]
<clever> the PLL's are 1-6, the SCLK's are 30-102, the DCLK's 120-124, skipping some numbers to give a clear boundary, and make room for more
<clever> so it does look like there are >100 clocks
gabi-250 has joined #osdev
gxt has joined #osdev
<immibis> zid: it makes sense to me the CPU should be focused on CPUing as fast as possible and offload I/O to another chip. Otherwise you end up in this situation where some ports on your motherboard don't work depending on your CPU
<immibis> yes, intel could probably add more lanes to the CPU since they are very generic I/O, and they probably don't because they want to sell more expensive CPUs for that
<zid> yea but this is literally "the" bus for talking to the cpu
<zid> using the address bus is dead as a concept
<zid> it's like if the 6502 had two SKUs one of which wouldn't put addresses above 0x7FFF onto the bus unless you paid extra
<immibis> are you talking about PCIe or DMI?
<zid> what
<immibis> the CPU has 16 lanes of PCIe which are intended for a graphics card at super high speed (or two at half speed), and the DMI bus which is PCIe-lite which talks to the PCH chip which does all other I/O
<immibis> like SATA, USB, slower PCIe slots, etc
<zid> what
<immibis> which bus are you complaining about
<zid> I am not complaining about a bus?
<zid> I am complaining about intel making pci-e lanes a paid feature
<immibis> then... where are the lanes you're saying there aren't enough of?
<immibis> oh ok
<zid> because they are "the" way to talk to the cpu, gpus, storage, frame grapphers, audio, etc
<zid> and that awful situation you suggested might happen *is the one we are in*
<immibis> PCIe is a rooted switched fabric and CPU lanes are presumably expensive may have since they have to be backed up with bandwidth inside the CPU
<immibis> s/may have//
<zid> You already have to buy a specific chipset motherboard for specific cpus to work at full spec
<zid> Q35 vs P35
<zid> X79 vs C602, blah blah
heat has joined #osdev
wootehfoot has quit [Read error: Connection reset by peer]
<mcrod> hi
<Ermine> hi mcrod
<mcrod> hi Ermine
<Ermine> heat: I see you have networking in onyx
<heat> correct
<mcrod> hi heat
<heat> hi
<zid> heat: I have networking in windows, sometimes
<heat> my router has networking sometimes too
<zid> I've noticed yea
<zid> your router is a mey mey
<heat> its so fucking annoying
<heat> linuks and that shit router just stop speaking the same ARP language for a bit, neighbours all turn unreachable, then eventually they sync back up
<Ermine> Install freebsd
<heat> >freebsd
<heat> no
<zid> We're short handed today btw, usually theres 4-5 of us to watch heat work
<Ermine> Vendors patch linuks for their hardware heavily
<heat> beard starts growing on your neck
<heat> im not working pal
<heat> im on the algarve
<Ermine> Also they use old kernal versions
<heat> its just that instead of siesta'ing in times of immense heat, i just play football manager
<Ermine> Mine has 3.x
<heat> Ermine, i dont think my router uses lonikx
<Ermine> lolnikx
<Ermine> Wait, is that freebsd???
<heat> no
<heat> something custom i think
<Ermine> Openwrt wiki mentions there are *bsd routers
<heat> at least nmap thinks so
<Ermine> Also I tried to diff dir-300 kernel and mainline of the same version, and the patch was like 30k lines
<Ermine> the hell of router
<Ermine> (that difference is probably the reason I failed to get mainline kernel on my dir-300)
<heat> my router is currently an android kernel :)
<mcrod> my router is what verizon gave me
<mcrod> yeah i know i'm boring
<heat> my router is also what my ISP gave me
* Ermine screams internally
<Ermine> ISP give out literal shit
<heat> boohoo
<mcrod> the literal shit that gives me 1:1 1gbps?
<mcrod> i'll take it
<gog> meow
<sham1> heat: you're literally using shit
<heat> boohooo
<heat> im using the android kernel
<Ermine> gog: may I pet you
<heat> not even a GKI one
<sham1> Friends don't let friends use ISP routers
<gog> Ermine: yes
* Ermine pets gog
<heat> im using a fucking 4.19 series one
<Ermine> My android 13 phone has 4.19 too
<Ermine> So relatively fresh
<heat> wait didn't you have the exact same phone as me?
<heat> or relatively similar?
<Ermine> Idk
<heat> i have a samsung a51 5G
<Ermine> I have s20 fe
<Ermine> (no 5g)
<heat> oh ok so same gen I guess?
<sham1> 5.4.210 here
<heat> GKIs ARE BORING
<heat> "I WANT AN UNMODIFIED KERNEL" - SAID NO ONE EVER
<heat> GIVE ME PATCHES, HARD TO UPSTREAM PATCHES
* gog upstreams
<Ermine> Make sure I cannot run anything else
<heat> [PATCH 0/324] ANDROID KERNEL PATCHES
<gog> running software is usually a msitake anyway
<heat> yes
<heat> use the wheel
<heat> a good solid invention
<zid> I am running 5.15.90.1-microsoft-standard-WSL2+
<heat> fire was also dope
<sham1> zid: that's not a phone
<heat> electricity is ok in trace amounts
<zid> isn't it!?
<zid> I've been scammed
<sham1> We were talking about Android specifically
<heat> no
<sham1> And yes. GKI for life
<heat> you're running the Windoze Subshitstem for Loosers
<heat> 2+
<zid> why can I make calls then? :(
<Ermine> I do :(
<heat> because Windoze Loosers have "Friends"
<heat> whatever that is lol
<Ermine> WSL lags
<mcrod> hm
<sham1> Linux rools, Windows drools
<mcrod> clang crashed
<sham1> Stop feeding clang crap code. Maybe then it won't feel the need to crash
<mjg> i literally crashed clang with *BAD* code
<mcrod> it was... compiling clang
<mjg> i was messing with asm inlines
<sham1> mcrod: as I said, bad code
<mjg> and wrote in bogus constraints i think
<mjg> you need to compile clang with gcc
<mjg> and you need to compile gcc with clang
<heat> gcc is not cross-compilable using clang
<heat> neither is clang
<heat> (cross'ed using gcc)
<mcrod> oh wow
<mcrod> LLVM 17 is almost out
<heat> cool
<mjg> then how did clang come to be? :A
Arthuria has joined #osdev
<mjg> i know they could do clang because gcc was there
<zid> clang crashed because it's made of code
<sham1> Both gcc and clang are convoluted, large and dare I say pessimal. They also don't work, and may Lord forgive me for using this word, without C++
<mjg> and i know they could do gcc because clang was there
* mcrod slap sham1
<zid> should have made it out of something better
<heat> mjg, problem is runtime libs
<zid> heat: what's an SL benfica
<zid> sounds like a medication for a heart condition
<heat> the compilers can be crossed just fine, but libgcc/compiler-rt cannot
<heat> zid, my IRL club
<zid> you own a football club? neat
<mjg> SlackwareLinux benfica? how is that real life
<mcrod> do people even still use slackware
<mjg> OH
<mjg> i'm confident it is still plural
<zid> nobody ever did
<mcrod> so... python3 only came to slackware in 2022
<mjg> brah i had slackware 7 i think
<kof123> sham1: what are your thoughts on objective-c ?
<heat> subjective-c >>
<mjg> biased-c
<zid> I use objectively-better-rust
<sham1> objectively-no
Arthuria has quit [Ping timeout: 248 seconds]
<Ermine> based-c
<mjg> rust is low level programming for peple who don't like low level programming
<mcrod> yay
<mcrod> CLion is working well for me again
<mcrod> turns out, I'm a moron
<sham1> What do I think about objective-c? I don't think about it at all
Nixkernal has quit [Ping timeout: 245 seconds]
<mcrod> apparently you do not need to do clang-format -dump-config -style=google > .clang-format
<sham1> I'm not in the Apple ecosystem
<kof123> yeah, that is kind of why i avoided it
<mcrod> even though.. the first page of the manual tells you to do that
<zid> sham1: that's a fun retort "I don't think you're very smart" "I don't think about you at all"
<kof123> but the core older language seems relatively simple (ignoring actual libraries that actually do anything besides "runtime")
<Ermine> sham1: you don't have to be in Apple ecosystem to use GNUStep
<sham1> The only place where I've really looked into obj-c was with gnustep stuff
<kof123> yeah but now you are back to gcc and clang <runs>
<sham1> But I didn't look all that far into gnustep either
<zid> why not hurd
<sham1> Even though microkernels are the future, Hurd ain't it
<zid> microkernels are the future of.. something, for sure
<sham1> They're the future of computing
<nikolar> Debian/Hurd for the win
<mjg> did you mean Debian GNU/Hurd?
<Ermine> Debian GNU+Hurd ftfy
<gog> what your'e referrring to as Hurd is actually GNU plus Hurd
<heat> no its actually GNU hurd
<heat> checkmate idiots
<mjg> no it's actually SHITE
<sham1> <pedantic>It isn't GNU+Hurd or GNU/Hurd, because it's actually a GNU project</pedantic>
<gog> you're a GNU project
<mjg> did you know one of the few people who kept developing hurd for years
<mjg> wrote a paper about hurdNG
<mjg> pointing out how the original is shite
<mjg> ;X
<sham1> As I said, microkernels are the future of computing, but Hurd ain't it
<mjg> It is with huge pleasure that the Debian GNU/Hurd team announces the release of Debian GNU/Hurd 2023.
<mjg> lmao
<Ermine> infinity times more people than on minix
<gog> what is a microkernel
<zid> it's like a kernel but you wouldn't show it to your friends
<zid> and your gf laughs at you
<heat> sham1, microkernels are not the future of computing
<zid> I bet heat has a microkernel
<heat> no i have a big kernel
<Ermine> Oh shit, 1993 debate goes again
<heat> huuuuuuuuge kernel
<zid> onyx is just your truck-nuts
<heat> girthy kernel
<zid> to compensate
<Ermine> macro kernal
<mjg> everyone thought mcirokernel means more security
<mjg> nobody thought you are already fucked by the cpu
<mjg> lmao
<heat> shit's so macro your c preprocessor blows up
<heat> mjg:
<heat> mjg
<mcrod> i run with mitigations=off
<mcrod> smite me, god
<zid> good
* mjg slaps mcrod
<heat> i run with sneakers and usually shorts
* gog smites mcrod
<mcrod> gog may I give you a hug
<gog> yes
* mcrod hugs gog
<heat> gog: gazump
* gog hug mcrod
<zid> gog doesn't hug me cus of my microkernel
<gog> that's not why
<mjg> brah
<mjg> personally i'm more offended by peple who writing malloc with "message passing"
<mjg> an idea "borrowed from distributed computing"
<heat> oh uh
<heat> i sense some hostilities
<mjg> heat: you are doing good work on linux mm, keep it up
<heat> thank you
<heat> this execve scability work is killing me
* Ermine writes malloc with message passing like in distributed computing
<heat> but i get the job done so it's all worth it in the end
<mjg> Pedro Garret
<Ermine> Idk what is the work you are doing, but it is great
<heat> Mateus Guzique
<heat> mjg, btw lazy pcpu counters always need a cmpxchg right?
<mjg> no
<heat> how so?
<heat> can't you accidentally inc the pointer or some shit?
<mjg> there is a separate field for the "main" value
<mjg> their counters are 32-bit per cpu and 64-bit centralized
<heat> i was imagining some sort of union pcpu_ctr {u64 val; u64* __percpu pcpu_counter; };
<mjg> that would not require it either
<heat> which I think was the idea in that patch jan kara mentioned?
<sham1> I accidentally a pointer. Is that bad?
<mjg> no, he meant you use th existing centralized value
<mjg> and only allocate for ->counters when going per-cpu
<heat> yes
<mjg> the field is untouched otherwise
<mjg> which does make sense, but i'm not super fond of it for the purpose at hand
<bslsk05> ​lore.kernel.org: [PATCH 07/40] Lazy percpu counters - Suren Baghdasaryan
<heat> lazy_percpu_counter_add_slowpath indeed requires a cmpxchg loop
<mjg> first thing to note is that the guy failed to preempt_enable prior to free_percpu
<mjg> and the cmpxchg loop is not a hard requirement, but an artefact of the impemlentation
<mjg> which may or may not make sense here
<mjg> here is how you do it without:
<mjg> rcu_read_lock(); if (we_are_pcpu) .. else ..; rcu_read_unlock();
<mjg> the flipping to pcpu would synchronize_rcu
<mjg> the interesting bit about the submitted patch is that a single thread can pounce on the counter enough to make it transition
<mjg> which may or may not have been intended
<pounce> owo
<mjg> watap
* pounce s on your counter
* mjg notices
<mjg> heat: anyhow, the one interesting bit about the lazy patch is transitioning based on perceived load
<mjg> heat: but i don't think that works for the fork case
<mjg> heat: in that case it is known there is only consumer + one very rare
<mjg> heat: and playing games with maybe transitioning when having multiple threades is very dodgey
heat has quit [Read error: Connection reset by peer]
xenos1984 has quit [Ping timeout: 256 seconds]
heat has joined #osdev
xenos1984 has joined #osdev
heat has quit [Ping timeout: 248 seconds]
alexander has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
alexander has joined #osdev
frkzoid has joined #osdev
Jari-- has joined #osdev
wootehfoot has joined #osdev
sauce has joined #osdev
xenos1984 has quit [Ping timeout: 245 seconds]
<Hammdist> on a typical arm64 soc like rk3328, does DMA operate on physical addresses or virtual addresses? I would have expected the former but trying to make sense of some existing code makes me think it might be the latter
<Hammdist> specifically I'm looking at u-boot code. maybe u-boot uses a 1:1 mapping for most memory and then there is no need to translate to physical address?
<nikolar> that would make sense
gog has quit [Quit: Konversation terminated!]
<geist> yeah i'd say 100% of the dma engines in that case are physical
<geist> really not even on arm socs, even if they wanted to the DMA engines are external to the cpu, and thus can't see through the mmu
<geist> and yeah i bet uboot runs in 1:1
xenos1984 has joined #osdev
<clever> iommu is about the only exception? but those run in a different virtual space
<zid> iommu is just "physical but I tricked you lolol"
<geist> right that's true, iommu is like virtual space, except it's however you define it
Hammdist has quit [Ping timeout: 246 seconds]
gog has joined #osdev
carbonfiber has joined #osdev
flom84 has joined #osdev
leon has joined #osdev
wootehfoot has quit [Ping timeout: 250 seconds]
SGautam has joined #osdev
goliath has quit [Quit: SIGSEGV]
goliath has joined #osdev
leon has quit [Ping timeout: 246 seconds]
wootehfoot has joined #osdev
flom84 has quit [Ping timeout: 246 seconds]
<nikolar> do you also hate giving names to things
<zid> I love it, it's other people that have the problem
<zid> libshitewankcode
<zid> libfuckyashell
<zid> they say the name isn't descriptive, I say it's highly descriptive
<Cindy> libidontgiveafuckidontgiveashitgosuckadickmotherfucker
wootehfoot has quit [Read error: Connection reset by peer]
<nikolar> well there's one problem
<sham1> libno
<nikolar> i can't name it fuckingfs because it's for a dissertation
<zid> libtesttest4
<nikolar> nice
<GeDaMo> libphd
<dzwdz> frickingfs
<geist> i suck at naming things but then i also generally just use whatever comes to mind and move on. no ragrets
<nikolar> well i am using a stupid placeholder which i can just sed later
<nikolar> but i have no idea what to call
<mcrod> hm
<mcrod> clang is crashing hard for some reason on everything
<mcrod> i wouldn't be surprised if it's somehow a kernel bug
<nikolar> kek
<zid> duck moment
<kof123> fn always is plausibly deniable fnfs
<sham1> clangfs
<nikolar> barelyworkingfs
<GeDaMo> sqlitefs
<nikolar> that's actually funny
<nikolar> sqlar
<sham1> mongofs
<sham1> Although tbh "modern" filesystems are kinda like No-SeQueL databases
<nikolar> how so
<immibis> filesystems have always been nosql databases. key-value stores to begin with
<nikolar> guess so
<immibis> a filesystem with directories is a hierarchical key-value store. designed for large values.
<immibis> it's trivial to imagine using the disk in some other way, such as a sqlite database
<immibis> just because directory systems are traditional doesn't mean you have to do one - unless you care about compatibility
<sham1> Right. Which is why database filesystems are an interesting research topic
<nikolar> you could just ignore the directories and treat fs as a key value store :)
<sham1> A relational filesystem would be interesting
<immibis> one thing traditional filesystems do have is a kind of minimalism - if you want a different FS, running it in a file on a traditional FS doesn't add much overhead. The reverse is not necessarily true.
<sham1> Well even with directories it's a key-value store. The directory is part of the key ;)
<sham1> > Dick Pick
* samis pokes the 'single-level store' concept with a stick
<immibis> android runs the big-bag-of-not-really-sorted-items model on top of a traditional FS
<sham1> The poor engineer whose name that is
<sham1> Jeez
<immibis> i see people complain that kids don't learn directories and filenames, but the truth is that directories and filenames are just one tool out of many, and there's nothing fundamental about them.
<immibis> it's like complaining (in an alternate universe) that kids don't learn mongo but jump straight to sql
eddof13 has joined #osdev
<zid> yea I heard that too, that basically any computing course these days has to teach the kids what a heirarchical filesystem is
<immibis> or don't learn svn and jump straight to git
<sham1> Well the problem arises when you need kids to actually understand filesystems
<zid> they're used to "You open the app you made it in, and a fuzzy search exists to show you everything"
<immibis> sure but that's true of everything. Kids not learning mongo is a problem when you have to teach them mongo.
<samis> sham1: re relational system, you might be interested in how important DB2 is in OS/400 and successors
<sham1> Maybe
<zid> heirarchical filesystems isn't exactly a dead or niche concept though, everything *except* phones uses it more or less
<nikolar> kids definitely need to understand how filesystems that they use work
<zid> They just have 0 tech ability
deckard has joined #osdev
<immibis> "everything except phones" is like, 10% of all computers
<immibis> it's like saying everything except microcomputers uses JCL
<sham1> Most computers don't even have filesystems
<immibis> 10% of all general-purpose computers*
<sham1> Do we count phones as general-purpose?
<immibis> yes. You can download a scripting language for your phone as long as it's not Apple.
<immibis> I was at a conference with a badge-related ARG and one of the steps was decoding a 300-baud modem signal; I didn't know what type of signal it was, but I was able to decode it in Python on my phone during one of the talks
<sham1> Programming on a phone sounds horrible
<sham1> Although I could see it being a good use for ed
<immibis> since you're talking about most computers not having filesystems, like dishwasher controllers - those are not general purpose (they may be general purpose microcontrollers, but not once soldered into a dishwasher)
<immibis> (most parts are general purpose until installed into their application)
<zid> they ain't computers, they ain't computin shit, they relay logic but relays are expensive and mcus are cheaper
<zid> relay emulators
<sham1> I dunno, the smart dishwasher does compute loads
<mcrod> hi
<sham1> hi
zxrom has joined #osdev
<nikolar> hello
<immibis> zid: you might be surprised that modern dishwashers and clothes washers and probably other stuff does computation based on sensors to optimize energy efficiency or whatever
<immibis> AIUI that's why older ones have a lot of settings while newer ones have less programs to choose from
<kof123> i thought you teach the fundamentals and everything else comes and goes .oO( stares at design patterns book) oh ...i see...
<sham1> GANG OF FOUR! GANG OF FOUR! GANG OF FOUR! GANG OF FOUR!
<kof123> ruby had tao
<kof123> for all its faults, i still favor tao lol
<kof123> the true programming is not spoken, and so forth
<zid> immibis: you overpaid
<zid> Mine is not like you are describing :p
uzix has joined #osdev
<sortie> I hear your printf debugging and raise you with hlt debugging
uzix is now known as mahk
<sham1> Bluetooth dishwasher, where you can monitor the state and choose the program from your phone
<zid> sortie: while(1); debugging and see if it gets warm
<sortie> Yes it does
<sham1> Just look at the Blinkenlights in the front panel
<immibis> zid: not my one
<zid> so a hypothetical one
<zid> that does do what none of the ones we actually have, do
<immibis> zid: also relevant, that's why they take longer. Apparently it's more energy efficient to run longer with cooler water and gets the dishes just as clean.
<nikolar> sortie: hlt debugging is just printf debuggin for the kernel
<bslsk05> ​www.catb.org: Some AI Koans
danilogondolfo has quit [Quit: Leaving]
<bslsk05> ​thecodelesscode.com: The Codeless Code: Contents
<gog> hi
<zid> goog
<zid> I had chips
<zid> and my left-over donner meat
<sham1> Nicely done zig
vdamewood has joined #osdev
<gog> we're having chikn
<zid> I think I won
<gog> like a whole chikn
<gog> it's in the ovn
<zid> yea I definitely won
<sham1> DÖNER
<zid> An entire chicken << a chicken's worth of good cuts off a chicken
<zid> I'd be the worst chicken wing factory, chicken goes in, 2 wings come out, done.
<zid> $6/ea
<vdamewood> You can get two more 'boneless wings' from the thighs
<gog> boneless pizza
* vdamewood gives gog a boneless fishy
<GeDaMo> "My froot cup has a bone in it" :|
* gog chomp fishy
<sham1> What kind of weird BS is boneless wings
<gog> they dissolve the bone with lye
<immibis> what kind of weird BS is eating chicken
<zid> with lies more like
<zid> I want chicken balls.
<zid> does your chinese have chicken balls?
bauen1 has quit [Ping timeout: 246 seconds]
<gog> i don't think so
<zid> It's a HK thing that british chinese places all sell
<immibis> chicken balls or chicken BALLS
<zid> both, maybe?
<sham1> Balls made of chicken meat or rooster testicles?
<zid> Who knows!
<zid> Taste them both and let me know
<sham1> I do love me a good testicle
<sham1> ...wait
<zid> Rocky Mountain Oysters for sham1, I'll take the Dr Pepper and battered sausae, fishy for gog
<zid> immibis can have some grass
<sham1> moo
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
netbsduser has joined #osdev
eddof13 has joined #osdev
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 256 seconds]
bgs has quit [Remote host closed the connection]
leon has joined #osdev
bauen1 has joined #osdev
terminalpusher has joined #osdev
<gog> fishe
Jari-- has quit [Ping timeout: 246 seconds]
SGautam has quit [Quit: Connection closed for inactivity]
<mcrod> hi
<nikolar> hello
<zid> https://pbs.twimg.com/media/F4YD5neXkAA5LNR.jpg Best tattoo in the world discovered
<mjg> no ragrets
orccoin has quit [Ping timeout: 256 seconds]
<FireFly> heh
<mcrod> god
<mcrod> why doesn't -fuse-ld=lld work on mac
* kof123 .oO( Phil Hartman shows up as Jesus and explains to her that while he hears her prayers he wishes she didn't have so many of them. "Don't Pray So much" )
<sham1> "You've prayed me in order to win the lottery. No"
carbonfiber has quit [Quit: Connection closed for inactivity]
<gog> hi
<zid> gog will you get that tattoo with me
rorx has quit [Ping timeout: 245 seconds]
<gog> yes
stolen has quit [Quit: Connection closed for inactivity]
eddof13 has joined #osdev
[_] is now known as [itchyjunk]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Vercas4 has joined #osdev
Vercas has quit [Quit: Ping timeout (120 seconds)]
Vercas4 is now known as Vercas
terminalpusher has quit [Remote host closed the connection]
troseman has quit [Quit: troseman]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 256 seconds]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 244 seconds]
Left_Turn has quit [Read error: Connection reset by peer]
troseman has joined #osdev
rorx has joined #osdev