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
thinkpol has quit [Remote host closed the connection]
aethlas has quit [Quit: bye]
thinkpol has joined #osdev
aethlas has joined #osdev
<heat> so i looked at sqlite and found out they use posix advisory locks
<heat> i would like to unsee that
<nikolar> lol well you've got to coordinate separate processes somehow i guess
<heat> yeah but... posix advisory locks, really?
<nikolar> lol
<nikolar> i guess it works :)
<heat> posix advisory locks have crackpot semantics
<heat> i've implemented flock() and it's quite pleasant
<nikolar> why crackpot
<bslsk05> ​github.com: sqlite/src/os_unix.c at master · sqlite/sqlite · GitHub
<heat> they don't even like them!
<nikolar> kek didn't know that having threads messes with them
<heat> If a process closes any file descriptor referring to a file,
<heat> then all of the process's locks on that file are released,
<heat> obtained
<heat> regardless of the file descriptor(s) on which the locks were
<nikolar> fun stuff
<kof673> there is a second part to that: > This is bad: it means that a process can lose its locks on a file such as /etc/passwd or /etc/mtab when for some reason a library function decides to open, read, and close the same file.
<kof673> "this is bad" lol
levitating has quit [Remote host closed the connection]
<kof673> so code doesn't even have to itself directly do this
levitating has joined #osdev
the_oz_ has joined #osdev
Dead_Bush_Sanpai has joined #osdev
the_oz has quit [Ping timeout: 248 seconds]
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
obrien has quit [Remote host closed the connection]
mavhq has joined #osdev
edr has quit [Ping timeout: 246 seconds]
levitating has quit [Read error: Connection reset by peer]
gog has quit [Quit: byee]
levitating has joined #osdev
levitating_ has joined #osdev
levitating has quit [Read error: Connection reset by peer]
aethlas_ has joined #osdev
aethlas has quit [Read error: Connection reset by peer]
fedaykin has quit [Quit: leaving]
cross has quit [Ping timeout: 244 seconds]
fedaykin has joined #osdev
qxz2 has quit [Ping timeout: 276 seconds]
levitating_ has quit [Read error: Connection reset by peer]
levitating_ has joined #osdev
cross has joined #osdev
X-Scale has joined #osdev
qubasa has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
heat_ has joined #osdev
Arthuria has joined #osdev
craigo has quit [Quit: Leaving]
levitating_ has quit [Ping timeout: 248 seconds]
KitsuWhooa has quit [Quit: Unable to handle kernel NULL pointer dereference at null]
KitsuWhooa has joined #osdev
X-Scale has quit [Quit: Client closed]
X-Scale has joined #osdev
pounce has quit [Ping timeout: 248 seconds]
Arthuria has quit [Ping timeout: 276 seconds]
heat_ has quit [Read error: Connection reset by peer]
heat_ has joined #osdev
X-Scale has quit [Quit: Client closed]
clever has quit [Ping timeout: 260 seconds]
agent314759 has quit [Quit: The Lounge - https://thelounge.chat]
agent314759 has joined #osdev
agent314759 has quit [Client Quit]
pounce has joined #osdev
Irvise has quit [Ping timeout: 272 seconds]
Irvise has joined #osdev
GeDaMo has joined #osdev
levitating_ has joined #osdev
jedesa has quit [Remote host closed the connection]
jedesa has joined #osdev
levitating_ has quit [Ping timeout: 246 seconds]
levitating_ has joined #osdev
levitating_ has quit [Remote host closed the connection]
levitating_ has joined #osdev
graphitemaster has quit [Ping timeout: 260 seconds]
Gooberpatrol_66 has joined #osdev
Gooberpatrol66 has quit [Ping timeout: 260 seconds]
cheapie has quit [Ping timeout: 260 seconds]
kitaleth has quit [Ping timeout: 260 seconds]
dzwdz has quit [Ping timeout: 260 seconds]
dennisschagt has quit [Ping timeout: 260 seconds]
dennisschagt has joined #osdev
listentolist has joined #osdev
cheapie_ has joined #osdev
Left_Turn has joined #osdev
kitaleth has joined #osdev
goliath has joined #osdev
Turn_Left has joined #osdev
_ngn has joined #osdev
Left_Turn has quit [Ping timeout: 246 seconds]
Turn_Left has quit [Ping timeout: 246 seconds]
Left_Turn has joined #osdev
levitating_ has quit [Ping timeout: 248 seconds]
graphitemaster has joined #osdev
dzwdz has joined #osdev
levitating_ has joined #osdev
mrkajetanp has joined #osdev
levitating__ has joined #osdev
levitating_ has quit [Ping timeout: 246 seconds]
levitating__ has quit [Ping timeout: 255 seconds]
froggey has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
X-Scale has joined #osdev
froggey has joined #osdev
netbsduser has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
heat_ has joined #osdev
air has quit [Quit: cria 0.2.9cvs17 -- http://cria.sf.net]
air has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
heat_ has joined #osdev
mrkajetanp has quit [Ping timeout: 255 seconds]
mrkajetanp has joined #osdev
antranigv has quit [Ping timeout: 255 seconds]
Turn_Left has joined #osdev
mrkajetanp has quit [Ping timeout: 248 seconds]
Left_Turn has quit [Ping timeout: 272 seconds]
k4m1 has quit [Quit: leaving]
k4m1 has joined #osdev
mrkajetanp has joined #osdev
heat_ has quit [Remote host closed the connection]
heat_ has joined #osdev
antranigv has joined #osdev
mrkajetanp has quit [Ping timeout: 260 seconds]
<bslsk05> ​reddit.com <no title>
<netbsduser> REVOLUTIONARY change to the KERNEL
<nikolar> that's a joke, right??
<zid`> revolutionary :o
<GeDaMo> radically different!
<nikolar> why's he posting in r/freebsd lol
<the_oz_> oh dear
<zid`> I mean, it's pretty obvious why
<zid`> it starts with forgot to take and ends with his meds
<nikolar> lol
<the_oz_> this thing is rasdically different, cannot be specified by interface, patented, and changes how you use everything else NOT it
<_ngn> what is he even tryna do i dont understand
<the_oz_> Surely that sounds like FreeBSD
<zid`> If you could understand, it wouldn't be in the DSM
<GeDaMo> Programs are dangerous so they're not allowed to run :|
<the_oz_> >inb4 suckless clone
<the_oz_> johntaves
<the_oz_> OP
<the_oz_> •
<the_oz_> The GPL difference between Linux and XXBSD is the issue. The stake holders are doing this for profit, so we can't use the Linux GPL. I am not familiar with the variations of BSD, so I didn't select FreeBSD over XXXBSD. I just found this reddit and thought I would get responses.
<the_oz_> 15h ago
<the_oz_> oops, markup shitty
<the_oz_> OH COOL so you aren't familiar with BSDs at all and think they give a shift of your proposed antiRMS problems
<netbsduser> you don't understand, it's secretly amazing but you won't be seeing it unless you sign his NDA, oh no
<_ngn> op: you cant use linux to make profit
<_ngn> lol
<nikolar> lol
<the_oz_> at first I was like what is this, capsicum?
<the_oz_> ah, delusion. Excellent
<the_oz_> OH GOD
<bslsk05> ​old.reddit.com: Blocked
<the_oz_> >make the db sqlite file >no mention of GEOM at all
<the_oz_> wait till he finds out why sqlite is so simple. >no lock contention by defining multiple writers out of existence
<_ngn> no worries he'll probably come up with a revolutionary solution to make it radically work
<the_oz_> other apps beware, he's gonna change how you open files
<the_oz_> he's gonna ... *throw dart* access *throw another* entities
<heat_> why is he using sqlite when mongodb exists and is webscale
MiningMarsh has quit [Quit: ZNC 1.9.1 - https://znc.in]
the_oz_ has quit [Remote host closed the connection]
the_oz_ has joined #osdev
nur has joined #osdev
heat_ is now known as heat
<nikolar> true dat heat
<heat> average posix advisory locks fan i guess
MiningMarsh has joined #osdev
FreeFull has quit [Quit: Rebooting]
FreeFull has joined #osdev
obrien has joined #osdev
mrkajetanp has joined #osdev
<heat> i want to note how remarkably fucked it seems to be to bootstrap a package manager
<heat> if nothing because inevitably python gets in the dependency chain and thats a PITA
<heat> i tried bootstrapping muon to dodge that but the bootstrap is also slightly screwed so i'm just cross compiling all of these things
<nikolar> what package manager are you bootstrapping
<sortie> heat: I have python, no problems, would you like assistance?
<heat> i was trying rpm
<heat> hence the sqlite
<heat> sortie, i also have python but it's inevitably not easy to bootstrap
<sortie> heat: I am a bit confused, can you clarify what you mean?
<heat> i'm not sure if its even possible or likely without fucking around
<heat> python is big and has a bunch of dependencies
<sortie> But you already have those dependencies?
<sortie> Since you have python
<heat> and those dependencies have build systems, etc. but meson is literally python :)
<heat> well i'm talking about bootstrapping
<heat> from basically bash + gcc
<netbsduser> the_oz_: yes, much as i like sqlite, everyone forgets it's wholly serialised
<netbsduser> that simplifies life considerably
<sortie> heat: Yeah you gotta drop that thinking
<heat> not necessarily, i think it's possible, i just can't be arsed
<heat> like, muon exists and probably kinda works-ish, and that's c89
<sortie> You need to bootstrap from a system that has the 'core dependencies' (the set of dependencies that need each other to build)
<netbsduser> muon will hopefully improve in time
<netbsduser> it has no cross compilation support yet
<kazinsal> I wish I had the compiler knowledge to do such a thing from scratch
<heat> muon's bootstrap is fucked and errors out on a function named accept()
<sortie> You heard me talk so much about the Sortix 1.0 -> 1.1 bootstrap over time and the big trick/issue is that 1.0 has slightly broken ports, but actually has all of the core ports (enough to bootstrap the rest)
<netbsduser> if they add that i can gladly ditch meson and its oPiNiOnS
<kazinsal> take one time machine, add in one solid level of compiler and kernel knowledge, shake until viscous, decant into alternate universe
<heat> BECOME KERNIGHAN *AND* RICHIE
<sortie> A lot of stuff needs things like perl to build
<heat> i haven't found perl yet
<sortie> But perl needs those things
<kazinsal> perl is a bootstrap of its own
<kazinsal> the perl I was taught 30 years ago by my uncle as an intro to unix is a different perl to the perl you get today
<heat> in any case i was trying to bootstrap this from my OS because i kinda want to ditch cross compiling, at least for packages
<sortie> heat: The big question is why? Why bootstrap from such a minimal system? Just bootstrap from a Linux that already has everything, or from an older Onyx that also has the core deps
<nikolar> that's reasonable
<nikolar> cross compiling packages sucks
<heat> and my OS is perfectly cromulent and performance-acceptable
<sortie> In that case, why not just use fully-port-equippped Onyx version X to build version X+1? Like I do
<sortie> Starting from bash + gcc is entirely artificial
<nikolar> because he presumably doesn't have that
<heat> i was using fully port equipped onyx
<nikolar> never mind
<kazinsal> I should probably write a new OS at some point...
<heat> but i'm still missing e.g cmake and meson
<sortie> There's no reason to go to that length unless you want to want to do true bootstrap from like idk 512 bytes and what people do
<heat> bash + gcc is probably not much harder than my current situation, where i'm still missing a bunch of packages like build systems and shit
<heat> GNU make should be easy enough to bootstrap with gcc + bash
<nikolar> good look with autotools though :P
<sortie> If you wanna go full native build, I encourage that
<sortie> autotools is easy to port
<nikolar> just kidding, no clue if it's a pain or not
<nikolar> there we go
<sortie> m4 too
<sortie> Those are not bootstrap issues really
<heat> make bootstrap sidesteps autotools
<zid`> It's called m4 because it makes you want to shoot it
<sortie> cheers m8
<sortie> heat: It took me a lot of work to get to a full native build but it was doable. I just had to port everything in the core port set and fix the bugs in the ports
<sortie> I still fully support the cross-build of Sortix as a bootstrap
<sortie> The nightly builds are all done on Sortix itself
<heat> yesterday i fucking died fighting with libtool for ages
<heat> i love autotools
<netbsduser> cross compiling packages is a big problem
<netbsduser> a lot of software can't even do it
<heat> yep. which is why i wanted to sidestep it eventually
<kazinsal> my main project will never be self hosting. that's a problem for the half million linux dorks out there to solve.
<heat> particularly when i've dedicated so much time to making it go faaaaast
<netbsduser> in the longer term i really want to get away from it as well
<sortie> netbsduser: It's pretty solved by me tbh. I just have a bunch of patches to upstream. If you need any help, talk to me, I can hook you up with how I do it for 90 ports
<sortie> Cross-compilation has gotten _a lot better_ in the past decade
<netbsduser> for practicality's sake (and because these aren't too much hassle) i have no objection to carrying on cross compiling gcc, bash, coreutils, and other essentials
<netbsduser> sortie: i will say that i have done alright so far piggybacking on the work done by managram
<netbsduser> but then i run into packages which are totally hostile to cross compilation, like gnu smalltalk
<sortie> All you need is to cross-compile the core ports that can bootstrap everything else
<sortie> Then native compile the rest
<sortie> Extra credit if you make everything cross-compialble
<nikolar> netbsduser: what did you need smalltalk for
<netbsduser> not "need" per se, i just like it
<nikolar> apparently void linux supports aarch64 by cross compiling everything
<nikolar> netbsduser: fair enough, i thought you ran into a package that required it heh
<heat> AFAIK fedora when bringing up new architectures just cross-compiles the minimal shit and recompiles the whole base system under qemu tcg
<nikolar> that's slooow but i guess they have plenty of build servers
<nikolar> arch does it (is trying to at least) by letting the community do it and then integrating it upstream (that's the plan at least) :P
<heat> arch does it?
<heat> arch only supports x86_64, the rest is for dorks lol
<nikolar> they have plans for cross platform
<nikolar> i had a link somewhere :/
<heat> i have plans for dating michelle obama
<heat> they are equally likely
<bslsk05> ​rfc.archlinux.page: 0032 Arch Linux Ports | Arch Linux RFCs
<nikolar> finally found it
<heat> some neckbeard will take care of recompiling arch for the sparc
<_ngn> "This integration is meant to provide infrastructure and community-based support for architectures until they are fully supported by the main distribution"
<_ngn> theres no community support tho
<nikolar> what do you mean
<_ngn> ive tried archlinux32 once on my old 32 bit laptop
<nikolar> there are arch ports to arm and ppc at least
<_ngn> i couldnt even complete the install
<nikolar> meh, arm arch and powerpc arch is apparently fine
<nikolar> i am not surprised that stuff doesn't work on i686
<nikolar> also didn't know that was a riscv port either
<heat> yep and it seems to have almost all of the packages built, pretty cool
<nikolar> those are just the core packages mind yuo
<heat> nah, see extra
<heat> 87% of packages
<nikolar> oh i am dumb, never mind
<nikolar> that's impressive
<nikolar> better than aarch64 somehow
<heat> funnily enough it's managed by an arch developer :)
<nikolar> lol yeah that would help
<nikolar> i assume those must be cross compiled
<nikolar> imagine building anything on riscv
<heat> the fedora people did
<heat> i assume it's 100x more palatable if you have real hardware for it
<nikolar> there isn't much good hardware though
<nikolar> i have a visionfive 2 and it's dog slow
<heat> how dog slow?
<nikolar> well, the kernel took over an hour
<nikolar> and it was quite stripped down, didn't even have tun
<nikolar> or tap
<nikolar> forget which is which
<heat> tun is protocol-level, tap is link-level
<heat> tbf that's not entirely terrible
<heat> could you build binutils?
<nikolar> didn't try, but yeah, presumably
hwpplayer1 has joined #osdev
<nikolar> i'll give it a go at some point i guess
<heat> it's the easier way to derive build speed, it's what LFS uses
<nikolar> eh sure, i guess i'll give it a go
<bslsk05> ​www.linuxfromscratch.org: 5.2. Binutils-2.43.1 - Pass 1
<nikolar> i imagine this board would make a killer router though
<nikolar> can saturate a gigabit connection without issue
<zid`> but can it do it while checking if any packets contain "poop"
<nikolar> good question
<heat> it might struggle, i dont think it has SIMD
<nikolar> it doesn't
<zid`> so gigabit but only for dumb zero copy transfers
<zid`> I can do that *without* a cpu
<nikolar> wonder how i could test that
<heat> how much did you pay for it?
<nikolar> less than a raspi :P
<nikolar> something like 60 euro
<heat> what
<heat> now that's insane
<nikolar> lol
<heat> vf2 on US amazon is $99
<nikolar> let me check, might be misremembering
<acidx> even $99 is a good price for a board with a cpu that's not as mass produced as anything else
<nikolar> it's about 80 dollars with shipping
<nikolar> i guess it's pretty much the same
<acidx> fwiw, for routers, those business-class mini PCs often sell for $60 used (with ssd, case, psu, CPU with SIMD, etc)
<nikolar> fair enough
<nikolar> heat, is 1 SBU without parallelizing
<nikolar> (ie make -j1)
<heat> i would expect it to be "use -j $(nproc)" and whatever you get remains roughly consistent between different builds
<nikolar> (asking for comparison's sake)
<nikolar> that is what i did anyway
<nikolar> heat: real 5m38.617s
X-Scale has quit [Quit: Client closed]
<nikolar> lol my pc: real 0m23.742s
eschaton has quit [Read error: Connection reset by peer]
ghostbusters2 has quit [Ping timeout: 252 seconds]
eschaton_ has joined #osdev
ghostbusters2 has joined #osdev
[Kalisto] has quit [Read error: Connection reset by peer]
[Kalisto] has joined #osdev
edr has joined #osdev
craigo has joined #osdev
X-Scale has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.9.1 - https://znc.in]
MiningMarsh has joined #osdev
mrkajetanp has quit [Ping timeout: 252 seconds]
mrkajetanp has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.9.1 - https://znc.in]
MiningMarsh has joined #osdev
_ngn has quit [Quit: WeeChat 4.4.1]
<heat> 5m is not terrible
_ngn has joined #osdev
<nikolar> sure i guess
<heat> my SBU is _roughly_ 1m28s
<heat> my rpi i'm pretty sure can't complete a build of any kind, but that might be due to the sd card
<nikolar> kek
<the_oz_> Do implementors of MMU paging memory usually keep the implementing tables only in the physical memory layer, or represented in the virtual layer as well?
<heat> what
<heat> can you rephrase the question in a way that makes more sense
<the_oz_> virtual -> physical, then create paging table mappings in the virtual layer
<the_oz_> can you help me provide the missing information you require by delineating what I'm failing to reach you on this?
<heat> please explain what you mean by: 1) implementor 2) implementing tables 3) physical memory layer 4) virtual memory layer
<zid`> virtual memory is an integer mapping, and if anybody 'implements' it, it's the cpu.
<zid`> I assume you mean something to do with memory allocation, but who knows
<Mutabah> I assume it was "do kernels keep the page tables mapped as data pages"?
<Mutabah> in which case, the answer is usually yes - because that way the kernel can update the mappings as needed
<the_oz_> 1) writing paging structures to take advantage of the MMU hardware on x86_64 only for now. 2 from the perspective of a bootloader bootstrapping from physical memory only, though the question has further implications about os design than that. in particular setting up the 512 quadwords to get the minimal required state necessary to kickstart maybe a few working pages. 3: physical memory is what it is. no paging, flat segmentation but that's because I
<the_oz_> have to set that up first
<the_oz_> 4: virtual is the layer you set up with the paging working
<the_oz_> So yes the cpu is a part of the implementation, but just so much is the design of the user of the cpu
mrkajetanp has quit [Ping timeout: 246 seconds]
<the_oz_> Mutabah, I see.
mrkajetanp has joined #osdev
Matt|home has joined #osdev
levitating__ has joined #osdev
Matt|home has quit [Quit: Client closed]
Matt|home has joined #osdev
<netbsduser> yes, most of a virtual memory system is usually portable ever since mach proved it was doable
Matt|home has quit [Quit: Client closed]
<netbsduser> the_oz_: i manipulate the tables through a direct map, some kernels (targeting platforms with a dearth of virtual address space) use a virtually linear mapping
levitating__ has quit [Remote host closed the connection]
levitating has joined #osdev
Matt|home has joined #osdev
<heat> >kopensolaris-gnu
<heat> is there something i don' know about?
Arthuria has joined #osdev
nadja has quit [Quit: bye!]
Matt|home has quit [Ping timeout: 256 seconds]
nadja has joined #osdev
<netbsduser> heat: that'll be os-dyson
<netbsduser> or maybe what-was-it-called
<netbsduser> nexenta?
Arthuria has quit [Ping timeout: 260 seconds]
voidah has joined #osdev
mrkajetanp has quit [Ping timeout: 265 seconds]
X-Scale has quit [Quit: Client closed]
xenos1984 has quit [Ping timeout: 246 seconds]
jedesa has quit [Remote host closed the connection]
jedesa has joined #osdev
xenos1984 has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.9.1 - https://znc.in]
MiningMarsh has joined #osdev
Matt|home has joined #osdev
geist has quit [Ping timeout: 252 seconds]
geist has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 260 seconds]
stolen has joined #osdev
Benjojo has quit [Ping timeout: 252 seconds]
[[R]] has joined #osdev
rbox has quit [Ping timeout: 252 seconds]
voidah has quit [Remote host closed the connection]
[[R]] is now known as rbox
Benjojo has joined #osdev
hwpplayer1 has quit [Read error: Connection reset by peer]
marcopolo2 has joined #osdev
hwpplayer1 has joined #osdev
voidah has joined #osdev
voidah has quit [Ping timeout: 252 seconds]
gog has joined #osdev
xenos1984 has quit [Ping timeout: 252 seconds]
hwpplayer1 has quit [Read error: Connection reset by peer]
voidah has joined #osdev
<kof673> > The GPL difference between Linux and XXBSD is the issue. The stake holders # well even that is a funny word > A third person, chosen by two or more persons, to keep in deposit property, the right or possession of which is contested between them and to be delivered to the one who shall establish his right to it
<kof673> which is not to say anything but SNAFU
mrkajetanp has joined #osdev
xenos1984 has joined #osdev
mrkajetanp has quit [Ping timeout: 246 seconds]
<kof673> noone ever thinks "who is actually holding the beer?" another word is, the dealer, ok that's enough :)
<heat> RPM version 4.19.1.1
<heat> yeehaw
* mjg burps
<mjg> what's up pieces of sh^W^W^W^W^Whello
<heat> i'm porting rpm
<mjg> lol
<nikolar> oi
<heat> did you know they use posix advisory locks
<mjg> i regert looking
<mjg> yes
<heat> sqlite that is
<mjg> there used to be a massive adjacent luller
<mjg> idk what happens there now, but dnf used to have hand-rolled locking which DID NOT FUCKING WORK (lol)
<mjg> and things were mostly fine only because apart from that there was locking stemming from rpm
<mjg> :dd
<heat> i haven't looked at dnf yet
<heat> all i know is that i'm BASED and REDHATPILLED
<mjg> it used to be an exemplary redhatware
<mjg> basically stupid shit written by someone who only ever adminsitered their laptop
<mjg> idk today
<nikolar> loller
<heat> error: sqlite failure: PRAGMA journal_mode = WAL: disk I/O error
<heat> ahh this is concerning isn't it
<nikolar> yup
<mjg> is it
<mjg> for all i know error prop is fucked there
<mjg> ey heat, maybe there is a rust crate which implements a filesystem
<mjg> so you can't just dodge the problem
<mjg> just sayin
<mjg> $ cargo add rust-fucking-fs
<mjg> replace with the right name
<mjg> yer welcome
<heat> fwiw i don't think it's the fs going bananas
<heat> rather i have something subtly wrong and sqlite poops itself
* mjg burps
<mjg> hello, i am agreed
<nikolar> i wonder why setting the journal_mode would do that
<mjg> idk try bullet points mode
<mjg> i randomly found out about "bullet journalling" as a way of organizing your daily life
<mjg> i was DEEPLY SHOCKED to find majority of people who do that in fact don't do anything useful
<nikolar> loller
<mjg> instead they are RICING their notepads
<nikolar> is all they do writing bullet points
<mjg> liek doodling on pages, chosing covers 'n shit
<nikolar> lol
<mjg> fucking lol
<mjg> reminds me of people who collect books for decorative purposes
<heat> ah its posix advisory locks
<mjg> heat: hey it's advisory!
<heat> poor person's dtrace: if (!strcmp(get_current_process()->comm, "rpm"))
<mjg> 's how i add low level debug
<mjg> except i normally check for magic uid
<nikolar> lel
<mjg> anyhow
<mjg> form over function
<mjg> remember kids
levitating has quit [Ping timeout: 255 seconds]
beto has quit [Read error: Connection reset by peer]
kilic has joined #osdev
beto has joined #osdev
<geist> interesting random youtube video recommendation this morning https://youtu.be/9vQ0T1fOvIA
<geist> the first half is basics of transitor stuff, though a good refresh on finned transitors
hwpplayer1 has joined #osdev
<heat> mjg, mon if rpm is so bad, what package manager do you sanction
<mjg> heat: i don't know of any which does not suck
<mjg> there are however *usable* packaging systems
<mjg> admittedly apt
<heat> they're usable because you haven't spent enough time with them :)
<mjg> i had spent quite some time with pkg building and it's pure evil
voidah has quit [Ping timeout: 264 seconds]
<geist> as a consumer, i find apt/dpkg to be pretty fine, but yeah it's probably heck to build it
<heat> i find apt slow
<heat> that's the extent at which i'm familiar with it all
<mjg> there are plugins which supposedly speed it up
<heat> dnf is admittedly pretty fast and seems nice, and rpm didn't drop the ball on file updating
<mjg> check the locking
<mjg> i suspect it remains unfixed
<geist> i also tend to run it through `eatmydata`
<geist> since i think dpkg does a fsync every time it installs something
<mjg> oh?
<heat> yes, that's what rpm does too
<mjg> lame
<mjg> af
<heat> data safety is PESSIMAL
<mjg> i believe i already described how you can provide data safety
<mjg> and not fucking fsync every time
<geist> eatmydata is fun, basically does one of those LD injections that overrides fsync/sync/etc
<mjg> ye i heard of peole using that on mail servers (lol)
<bslsk05> ​i.imgur.com <no title>
<heat> ez clap
<nikolar> mjg: and how's that
<heat> mjg has some grand idea of calling sync()
<mjg> snap-fucking-shots on civilized systems
<nikolar> lol fair enough
<mjg> but yes, on some piece of shit linux you could have a partition for apt-modifiable files
<sortie> heat Oh cool you're running Linux
<mjg> and sync that
<mjg> fucking SOLARIS creates a zfs snapshot it boots into
<mjg> on pkg updates
<sortie> The uppercase letter in your default hostname pains me, heat
<mjg> A+ stamp of approval, no fsync needed for every file sperately
<mjg> also note it provides atomic updates
hwpplayer1 has quit [Remote host closed the connection]
<sortie> Real men upgrade using tar(1)
<mjg> if something went to shit in the middle you just end up booting to the stable state
<sortie> tar -xf and it's fine don't worry about it
<nikolar> i agree, snapshots for the win
<mjg> so there, no fsync for each file needed after all
<nikolar> yeah, just creating a snapshot
bencevans has joined #osdev
<heat> consider this: i'm not using one of your btree bsd-land pony filesystems
<sortie> bsdtree
<heat> we use blocks baby, we use blocks with block groups and INODES and JOURNALS and EXTENT TREES and INDIRECT BLOCK TREES
<heat> none of that pansy ass smile for the filesystem bullshit
<mjg> L. F. Mao
<nikolar> loller
<mjg> "so i was eating shit with a fork, should i use a spoon?"
<nikolar> kek
<mjg> no heat, don't heat shit
<nikolar> ZFS ZFS ZFS
<mjg> jokeren aside
<mjg> suppose you have this lol fs
<mjg> i described what to do about it
<mjg> with 2 dir trees
<mjg> and some hardlinken
<mjg> you can still get atomic updates
<mjg> and not need to fsync separately
<mjg> it does require a dedicated setup tho, not arbitrarily fucked up dir tree
hwpplayer1 has joined #osdev
<geist> btree ftw. i've been slowly working on my btree lib. its pretty fascinating how much fan out you can get with large blocks
<geist> with 4k blocks i can dump about a mil nodes in and the depth of the tree is like 4
<geist> with 16k blocks it's like 2
<heat> you're doing your own fs?
<geist> iirc btrfs uses 16k blocks in its tree
<geist> well, i dunno, but btrees are fascinating. and there's not really any good BSD/MIT licensed generic btree libs
<mjg> hm
<geist> could use it for other things inside a VM or whatnot too
<mjg> that would be surprising
<mjg> i guess the biggest real-world btrees happen to be gpl
<geist> basically
<mjg> of the os stuff
<mjg> (oepnsource i mean)
<geist> as part of some thing, tuned for the specific thing it does
<heat> maple is insane and great
<mjg> maple syroup
<geist> syzurp
<heat> legitimately 8000 lines of code
<heat> for a single data structure
<mjg> i had a choice what to do: learn more about queueing theory, more about compilers or more about chess
<geist> last thing i used called maple was a math program in college
<mjg> i decided to procrastinate on youtube
<geist> basically a easier and lightweight matlab
<nikolar> mjg: lol go with queueing theory
<nikolar> it's simple enough
<mjg> there is a guy who is a massive ASS
<mjg> in the area
<mjg> guy seems like me, except he knows *that* stuff
<mjg> google for neil gunther
<mjg> anyway dude has a bunch of books and whatnot on the matter
<mjg> i mean general perf analysis & capacity planning, which necessarily comes with some queueing theory
<nikolar> yeah we had some queueing theory at uni
<nikolar> pretty simple to start with
<mjg> dawg i'm talking some seroius stuff, not lol exercises simulating a barber shop
<geist> i seemed to remember being pretty dissapoint with OS class in college. seemed to spend most of its time on theoretical stuff
<geist> queues, scheduling, etc
<geist> all in the abstract. boring.
<heat> msdos
<heat> segmentation
<kof673> you weren't joking lol > For example, the bullet journal may be used for its functionality, and organization, or as an outlet for creativity
<heat> dining philosophers
<geist> msdos and segmentation would be interesting at the time. it was all abstract
<mjg> dawg academia is genuinely a bad place if you want to learn stuff, even theoretical
<mjg> :d
<geist> all our homework was like 'in this pre-made C project, fill in the scheduler algorithm function'
<heat> if you want to LEARN STUFF work at RED HAT
<geist> on SOLARIS
<mjg> heat: FACTS
<mjg> even in my shite college everyone good worked in the industry
<mjg> and was teaching on the side
<geist> actually ire embmer it being kinda annoying, because their OS class homework all involved linking with some .a lib that simulated something, and it was only available on solaris
<geist> so you couldn't work on your personal linux box
<heat> hahaha
<mjg> lol
obrien has left #osdev [#osdev]
<heat> wait, linux box?
<heat> when was this?
<geist> well this was like 1997
<mjg> so for example our physics lab department was running novell networking on dos
<heat> linux was already that popular in 97?
<mjg> in 2006
<mjg> :D
<mjg> i mean
<mjg> fuck me
<mjg> guy doing operating system lectures had a laptop with windows 98
<geist> linux was not that popular in 97. but lots of CS folks had one. so having a 'personal linux box' was a treat that let you work faster than others
<mjg> again in 2006
<mjg> meanwhlie his TAs were all on linux
<mjg> one was pretty good too
<heat> one has to hope he had the nt subsystem installed
<geist> except situations like this where you had to work on school computers
<heat> wait, 98 wasn't even NT :(
<GeDaMo> I first installed Linux in 1994 so I could work on a Unix and C course at home
<geist> sure it was. my windos machine was NT since about 1996
<geist> NT 4.0 was 96
<mjg> he says windows 98 was not nt-based
<heat> windows 98 wasnt nt
<geist> oh i see, win 98. not the year 98
<mjg> not about date of release
<mjg> so
<mjg> it should give you an idea how much of a red flag it was in 2006
<mjg> :d
<mjg> dude was a fossil which could not have been retired due to politics
<geist> prolly just had an ancient laptop that could't run anything newer
<mjg> which is 90% of academia
<geist> and was using the same ol lectures from 10 years prior
<mjg> nope
<geist> i think it's cute he had a laptop in the class. wasn't using an overhead projector
<geist> like back in My Day
<mjg> the standard issue was some mid corp laptop with windows xp
<mjg> that 98 shit was deliberate choice
<nikolar> he could've probably ran linux on it :P
<mjg> geist: i know for a fact there were lecturers using physical slides and an overhead projector at least until 2012
<mjg> :d
<mjg> nikolar: yes, but suppose it was a microsoft guy
<nikolar> kek
<geist> or just suppose that was against the rules
<geist> that being said in late 90s/early 2000s i wouldn't really want to run linux on a laptop
<mjg> that was not the case tho, i know the IT people over there and they are very much linux-friendly
<geist> was still in the era of lots of unsupported devices due to lack of drivers
<nikolar> i mean one guy is hosting arch linux repos at my uni
<kof673> 98 may have ran some dos thing better, but .....
<heat> did you know openbsd supports s0ix
<nikolar> (i mean one IT guy)
<nikolar> s0ix?
<heat> it's a new way of suspending your system, basically instead of S3 it pops into a special idle mode
<heat> new systems can't do S3, only s0ix
<mjg> supports as in probably tested in all 3 laptop modules used by the dev base
<heat> which _at least_ up to 2022 was still majorly fucked on linux
<nikolar> ah cool
<nikolar> wasn't aware of that
<mjg> they probably suspend better than linux on those specific laptops
<mjg> and much worse on everything else
<nikolar> what was wrong with s3, i though it was fine (tm)
<heat> you'd close your laptop's lid and put it in your backpack, then take it out 30min later and it's scorching hot
<nikolar> i don't run windows
<heat> s3 is slow and massive tech debt
<mjg> :d
<geist> heh yeah i remember someone had that problem years ago. laptop would more or less catch on fire in their backpack
<mjg> which part of hw is not
<mjg> ouch
<geist> for what it's worth it's why i've been pretty much mac laptop only since about 2003
<mjg> i had the laptop overhead once
<mjg> it suddenly woke up for fuck all reason
<mjg> in my backpack
<geist> FWIW they have always been rock solid laptops as far as not fucking up suspend and having good battery life
<nikolar> i've never had those issues either
<heat> nikolar, basically S3 is just a fancy way of shutting down your laptop while remembering where it was when it starts up again
<heat> it goes through all the normal boot paths but then slightly deviates mid path
<geist> yah we're dealing with proper suspend/resume in fuchsia right now and it's a PITA
<mjg> for what hw
<geist> µkernels and suspend are very annoying
<heat> executes a problematic boot script, then pops you right where you were
<geist> mostly !x86. where it's far more wild west
<nikolar> heat: oh right
<mjg> so you are deviating past bespoke hw?
<geist> hmm?
<mjg> i mean supporting suspend/resume on a dedicated product is one thing
<mjg> trying to support it in general is another
<nikolar> heat: so what does s0ix do better
<geist> yes and no. we have to do the latter because µkernel. most of the work is in the distributed driver stuff
<geist> which you have to do no matter what
<geist> the actually going into suspend part at the end is pretty small amout of per hardware logic
<heat> nikolar, it leaves you in normal operation, in the middle of the kernel, just in a _really_ idle power state
<mjg> but if you only support one appliance you don't need to work around hw-specific problems other than for that appliance
<kof673> yes, old hw has the advantage of being dead
<geist> but where we didn't really get thigns right and should have done suspend earlier is notion of clock timelines and whatnot
<kof673> if it is documented, hopefully is frozen in time
<geist> which is difficult to retrofit
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
<nikolar> heat: fair enough
<geist> you can see a large discussion at https://fuchsia-review.googlesource.com/c/fuchsia/+/1102437
<bslsk05> ​fuchsia-review.googlesource.com <no title>
<geist> it's about modifying the notion of the boot timeline since having the clock tick through suspend is not a given
<heat> you forgot to cc mjg
X-Scale has joined #osdev
<geist> anyone is free to comment, tat's why the RFCs are all public
<mjg> heat: dawg no #mm jokes
<geist> for better or worse one of the details that makes things a little complicated on fuchsia is everything is absolute time based. i think it fixes a tremendous amount of issues across the board
<geist> but it means all sleeps/suspends/timeouts/etc are all absolute time
<geist> no relative time in any of the syscall layer
<geist> also there's an object for time and timers you can create that lets you do more complex things
<heat> i'm doing absolute time internally in the kernel's timers
<heat> but it's totally changeable
<heat> and ofc the posix api in general does not deal in absolute timeouts
<geist> right, that's the general issue
<geist> though can usually be emulated reasonably well, except for high resolution repeatable things that dont pick up skew
<geist> that's one of the reasons we have a Timer object that you can create that will generate ticks or whatnot based on how you set it up
vdamewood has joined #osdev
wgrant has quit [Ping timeout: 260 seconds]
pabs3 has quit [Ping timeout: 246 seconds]
levitating has joined #osdev
kilic has quit [Quit: Leaving]
levitating_ has joined #osdev
levitating has quit [Ping timeout: 252 seconds]
pabs3 has joined #osdev
<heat> my rpm expands my %{_arch} to... %{_arch}
<heat> it's a little fucked isn't it
<nikolar> why would it .. not report errors
<nikolar> or is that a bug in your libc or something
dslaveone has joined #osdev
dslaveone has quit [Quit: Konversation terminated!]
<heat> i think it's supposed to be defined in another file
<mjg> the spec format is a joke
<mjg> my favourite part is rm -rf which you have to execute on your own
<mjg> lmao
<mjg> i find it particularly cute when sme of the the spec files empty-check the var used for rm -rf before issuing it :D
goliath has quit [Quit: SIGSEGV]
<heat> yep, that was it, %{_arch} was fucking up the makefile
stolen has quit [Quit: Connection closed for inactivity]
MarianG has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
xvmt has quit [Read error: Connection reset by peer]
xvmt has joined #osdev
aethlas_ has quit [Quit: bye]
aethlas has joined #osdev
_ngn has quit [Quit: WeeChat 4.4.1]
levitating__ has joined #osdev
<heat> rpmbuild is DOOR STUCK DOOR STUCK and i'm slightly concerned
levitating_ has quit [Ping timeout: 260 seconds]
<heat> it's looping on a pselect6 :(
<nikolar> :)
<heat> oooh i found a select bug!
<nikolar> nice
<heat> yeah turns out i wasn't properly reporting POLLHUPs and the sort, so it was looping for a condition it never got
<netbsduser> what was it waiting on?
levitating__ has quit [Ping timeout: 260 seconds]
<heat> a pipe which got disconnected from the writer's side
voidah has joined #osdev
cheapie_ is now known as cheapie
<heat> >Build Host : Onyx
<heat> oh fuck yeah
<nikolar> cursed
<nikolar> :P
levitating__ has joined #osdev
<netbsduser> oh aye
<netbsduser> that will do something
hwpplayer1 has quit [Quit: be right back]
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
levitating__ is now known as levitating
<heat> i'm really fuckin happy i can build software and install it and uninstall it
* the_oz_ logs on, installs npm
<the_oz_> you're welcome
<heat> you're in luck, i have a v8 port on my hard drive
<mjg> linux could already do that 30 years ago
<mjg> yer late to the game mon
<heat> if i really wanted to i could get node working
<mjg> lol
<mjg> don't
<heat> yes
<the_oz_> file i/o is now
<the_oz_> web scale
<heat> yeah i do need MONGODB WEB SCALE actually
<the_oz_> *claps hands together*
<nikolar> heat: please no node
<Ermine> chromeos/onyx
<nikolar> no node sounds like a feature to me
<heat> node is actually decent software
<heat> what people pull off with node is disgusting
<nikolar> loller
<heat> it's different
<nikolar> it's really not, it's a memory hog
<the_oz_> I can count to ten
<Ermine> nikolar: nobody forces you to have node installed
<the_oz_> 1.0, 2.0, 3.0..
<nikolar> my employer does Ermine
<heat> v8 goes to extreme lengths to make shit code less shit
vdamewood has joined #osdev
<Ermine> nikolar: you're free to retire from that
<heat> v8 and the jvm have basically the job of making a bad language and terrible code actually tractable
<nikolar> lol sure
mavhq has joined #osdev
<nikolar> java is way less bad than javascript
<heat> and it's really impressive they pull it off as well as they do
<Ermine> I made firefox crash recently
edr has quit [Ping timeout: 248 seconds]
wgrant has joined #osdev
<nikolar> fancy
<the_oz_> mom's spaghetti
<gog> webscale elastic cloud dynamodb
<mjg> is onyx webscale?
voidah has quit [Ping timeout: 245 seconds]
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
<heat> not yet
<heat> i need mongodb first
<gog> she mongodb on my elastic until i cloud
mavhq has joined #osdev
<heat> let me elasticsearch that booty
<gog> waow
<heat> waow
<the_oz_> we upgraded your speed by
<the_oz_> ... putting it in RAM
<the_oz_> fucking brilliant
<heat> isn't that how it always goes? :)
<the_oz_> what about sharing issues by - RAM< STFU RAM RAM
<the_oz_> omg it's brilliant
chiselfuse has quit [Ping timeout: 260 seconds]
* vdamewood gives gog a fishy
mavhq has quit [Ping timeout: 246 seconds]
chiselfuse has joined #osdev
mavhq has joined #osdev
* gog chomp fishy