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
<moon-child> mrvn: so like umonitor/umwait?
<moon-child> wake one is not really feasible
<moon-child> as the rfo goes out indiscriminately. It's infeasible to find out if you were the 'first' to get it
wolfshappen has joined #osdev
wolfshappen has quit [Client Quit]
Matt|home has quit [Ping timeout: 260 seconds]
nyah has quit [Quit: leaving]
gog has quit [Ping timeout: 250 seconds]
vdamewood has joined #osdev
m3a has joined #osdev
<qxz2> are sparc processors used anymore?
<bnchs> are m68k processors used anymore?
<qxz2> i don't know
<Mutabah> Likely somewhere, but not in general user/datacenter usage as far as I know
<qxz2> legacy solaris systems, i suppose
<Mutabah> I think m68k might be semi-common in older embedded contexts?
<qxz2> the older lower-end ciscos used m68k, iirc.
<qxz2> so did some telecommunications hardware, like circuit switches, e.g. dms-100
<qxz2> manufactured by the now defunct northern telecom
<qxz2> i think they're still in use. i guess someone acquired the IP.
<qxz2> they ran an operating system called SOS
<heat> weird trivia question: what happens to open(name, O_CREAT) when name refers to a broken symlink
<qxz2> the file that the symlink points to is created?
<heat> yep
<heat> this does not happen with mkdir
<heat> intensely stupid UNIX path walking semantics
<Mutabah> There's definitely hardware still being made/shipped with those architectures...
<Mutabah> but, do you as a general os/kernel developer need to care? Not really.
<qxz2> do you think x86_64 has a promising future?
<heat> yes
<Mutabah> It has massive inertia, it'll keep going
<heat> anyone that thinks any alternative is any close to taking over is really on the apple koolaid
<qxz2> kind of upset that apple switched to arm, probably because i'm biased in favor of x86_64
<qxz2> like x86 assembly
<qxz2> and hence am a fan of x86_64, its successor
<Mutabah> As much as I have a soft spot for intel assembly, it's nice seeing ARM have some use in the desktop space.
<qxz2> why is it nice?
<qxz2> (i don't know much about it)
[itchyjunk] has quit [Ping timeout: 250 seconds]
<heat> because why not
<qxz2> change is good? hah i thought there might be more technical reasons
<heat> well, arm64 is less disgusting legacy-wise
<klange> Architectural competition is good for the same reason there being multiple x86 vendors is good, for the same reason having multiple compiler implementations in regular use is good.
<heat> ^^
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
[itchyjunk] has joined #osdev
<qxz2> so it's a competitive market, as opposed to a stagnant one.
<Mutabah> Yep. Monocultures lead to stagnation.
<qxz2> anybody do embedded systems development professionally?
<Mutabah> And the longer there's a lack of variety, the harder it is for a new player to enter (as they have more inertia to overcome)
<Mutabah> qxz2: I did for a while, albeit in an ancillary role (I'm primarily a higher-level software engineer, but I did some firmware work for a while)
<qxz2> higher-level as in what?
<qxz2> language used?
<Mutabah> Professiionally I use C++, I tend to work on "business logic" (which is image analysis and 3D maths for us)
<qxz2> very cool
<qxz2> what kind of math? linear alg and multivar calc?
zaquest has quit [Remote host closed the connection]
<Mutabah> Getting offtopic: But I work for a company that makes equipment to measure rail infrastrucutre. The software takes sensor inputs (mostly images) and transforms them into measurements of components.
<qxz2> nice!
<klange> I, for one, am quite happy with Apple's architectural decisions. Makes things more fun. https://klange.dev/s/Screenshot%202023-03-13%20at%2011.52.19.png
<Mutabah> :)
<qxz2> what is ToaruOS?
<Mutabah> There is a selfish side - Apple are making desktop ARM a thing
<Mutabah> thus making it easier for hobbists to develop for
<qxz2> nevermind! i found a description
<klange> Hopefully one I wrote and not some rando's take on it.
<qxz2> yes, one you wrote
<heat> just a sec let me write a bad review for toaru
<klange> "needs more anime waifus" is not a valid criticism
<qxz2> you've done some pretty cool work
zaquest has joined #osdev
<sakasama> klange: Are you claiming you supply sufficient anime waifus?
<kazinsal> package manager has insufficient waifu packages in the main distribution, OS unusable
<klange> Yes, I find zero is sufficient for an OS.
<heat> this is exactly why you need a web browser
<heat> infinte waifus
<klange> Even for one named after an anime franchise. Perhaps especially, as obviously the only appropriate waifus would be ones from that series, and that runs afoul of many things.
<klange> heat: working on it, slowly, eventually
<moon-child> huh? Aren't you the anime waifu of toaruos?
<klange> Unfortunately, my background was in compositors, not web browsers.
<sakasama> You may be in a position to provide a bundled AI-powered waifu generator.
<heat> pull a serenityOS and do a web browser full time
<klange> That's what I'm referring to when I say my background is not in web browsers.
<klange> Kling's background was in web browsers. The whole of Serenity was a backdoor project to kick off a web browser.
<heat> ah, i had no idea
<heat> makes sense
<heat> they really should scrap the OS and just do it on linux or something
<klange> I do intend to write a browser, I have written prototypes in the past. I even have a character name reserved for it already.
<kazinsal> considering serenityOS was designed to be user hostile for non-grognards I would hate to see how unusable a serenity browser is for anyone who doesn't have a degree in applied unix greybearding
<heat> htmld | cssd | jsd > /dev/fb0
[itchyjunk] has quit [Remote host closed the connection]
<klange> Originally my plan was to write a browser engine in Python, knowing full well it would be slow as shit, but it would be fun. This was several years ago. The prototype exists in the form of the old Toaru 1.2.x "Help Browser" program that can be made to load from URLs.
<klange> At one point I thought maybe continuing that but with Kuroko would be a good idea.
<klange> I'm in a tough spot as obviously my main goal here is to have a browser for my OS, but that has implied requirements around language and use of third-party stuff, and I'm not going to attract any contributors with "let's write a borwser engine in C with no external deps!"
<heat> i mean
<klange> Much less for "let's write a browser engine in a language you've never heard of that is just as slow as CPython but with none of the standard library!"
<heat> they did that with C++
<klange> "Modern C++" is a bit of an easier sell.
<moon-child> you could make kuroko faster; lots of literature on the topic
<moon-child> more importantly, if the browser itself and the js can share an object model and runtime, a lot of nice stuff pops out
<moon-child> implementation wise
<klange> The main way to make Kuroko faster would be writing a JIT, which I kind of don't want to do - I like that Kuroko is plain stupid C that can run on anything without me doing more work on it.
<klange> And all of the work towards writing a codegen for an in-house JIT would be equally applicable to writing a compiler backend for something targeting native machine code.
<moon-child> weren't you planning to do the latter anyway?
<klange> There's a gradient here, and "native-compiled language" is farther towards the "vague idea" side than "browser". "Browser" is much more in the realm of real planning.
<klange> Really, if I could get off my ass and write a box layout engine I would be farther ahead than I was with the previous Python prototype, and I am in dire need of one of those anyway for general text layout.
<moon-child> hmmm how does the box layout thingy actually work? I did a hacky thing in my old ui lib, but not sure if there's a 'proper' solution
<klange> I wish Matt had gone further with this: https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html
<bslsk05> ​limpet.net: Let's build a browser engine! Part 1: Getting started
<klange> https://github.com/litehtml/litehtml is also inspiring in its size:capability ratio
<bslsk05> ​litehtml/litehtml - Fast and lightweight HTML/CSS rendering engine (198 forks/1507 stargazers/BSD-3-Clause)
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bradd has joined #osdev
vdamewood has joined #osdev
linearcannon has joined #osdev
linear_cannon has quit [Ping timeout: 250 seconds]
elderK has joined #osdev
linearcannon_ has joined #osdev
linearcannon has quit [Ping timeout: 246 seconds]
<geist> heat: just discovered this
<geist> with all of your memcpy optimizations, have you considered what it does to the audio? think about the damage
<bslsk05> ​www.audioasylum.com: RE: A revolution in audio rendering - SBGK - Computer Audio Asylum
bgs has joined #osdev
<heat> lol
<heat> BYTE *sound_buffer = new BYTE [sizeof(BYTE) * nBytesInFile]; <- lol2
<geist> make sure your memcpy doesn't introduce any hard edges to the audio
<heat> use avx512 stringops and watch memcpy hard edge all over your audio
slidercrank has joined #osdev
warlock has quit [Ping timeout: 268 seconds]
<sham1> > sizeof(BYTE)
<sham1> It's just 1
<heat> and new[] operates with element counts, not bytes
<heat> so new BYTE[nBytes] is the correct form
<sakasama> "I have found the best sound is an infinite goto loop with it throwing an exception after it reads beyond the end of the buffer, I set exceptions off so it doesn't crash the program."
<sakasama> WTF am I even reading?
<sham1> heat: Must have been copied from a malloc
<bslsk05> ​www.audioasylum.com: RE: Linux Build? - SBGK - Computer Audio Asylum
linear_cannon has joined #osdev
linearcannon_ has quit [Ping timeout: 250 seconds]
<mrvn> geist: do you also buy $400 digital audio cable because they sound better?
<sakasama> I am slightly curious about what msvc does for codegen when given an otherwise infinite loop throwing exceptions but exceptions are disabled.
<mrvn> Normaly I would say fails to build but we are talking msvc here. They also catch, ignore and somehow continue on nullpointer exceptions in java unless it's a debug build.
<heat> terminate
<heat> it's the only compliant behavior
<heat> std::terminate()
<mrvn> "I'll be back"
<sakasama> Well, clearly in this case its producing superior audio.
<mrvn> std::terminate() produces a sharp clack in the audio.
<mrvn> (hence the need to disable exceptions)
<sakasama> (Hence the question about what that even does.)
<heat> i assume he's either never triggering the exception or he's catching it
<sakasama> "I set exceptions off so it doesn't crash the program" implies that neither is the case.
<sakasama> ... unless maybe he botched something in the catch statement and that's what was crashing it.
* sakasama doesn't have enough narcotics to contemplate this further.
linearcannon has joined #osdev
linear_cannon has quit [Ping timeout: 255 seconds]
linearcannon_ has joined #osdev
linearcannon has quit [Ping timeout: 250 seconds]
<mrvn> heat: he's just totally trolling
<sakasama> mrvn: Never attribute to malice that which is adequately explained by stupidity.
warlock has joined #osdev
leon has quit [Quit: see you later, alligator]
leon has joined #osdev
leon has quit [Quit: see you later, alligator]
leon has joined #osdev
GeDaMo has joined #osdev
gog has joined #osdev
gog has quit [Read error: Connection reset by peer]
gog has joined #osdev
skipwich_ has joined #osdev
skipwich has quit [Ping timeout: 248 seconds]
nyah has joined #osdev
kivikakk has quit [Remote host closed the connection]
kivikakk has joined #osdev
<mrvn> sakasama: it sounds better when you use "new" instead of "malloc"? You think that's serious?
Jari-- has quit [Ping timeout: 255 seconds]
<sakasama> mrvn: It's too many posts of mostly nonsense for me to take it seriously; either way, it's a special brand of stupidity.
ptrc has quit [Remote host closed the connection]
ptrc has joined #osdev
<FireFly> it's probably honest but by someone who doesn't really know anything by programming and with some lack of critical thinking (but yeah, same reasoning that leads to $400 gold-plated HDMI cables or whatever
<gog> they make sure all the bits get to the monitor
<GeDaMo> Not just ordinary bits, gold-plated bits :P
<kof123> i remember decades ago on winamp forums, someone saying they swore some plugin version sounded better, and to revert. the author IIRC said he was a professional, and programmed soundforge IIRC. and was telling them "its the same damn bits! something changed in your setup!"
<FireFly> every bit is sacred
<zid> gog: I use special cables that randomize the phase of my bits
<zid> I wouldn't want them to all be polarized in the same way, and wear a groove into my cable
<moon-child> lmao
<gog> yes
<gog> increase the longevity of your $400 investment
SpikeHeron is now known as dutch
<netbsduser> writing a web browser strikes me as a promethean punishment
<netbsduser> drag your rock all the way up the hill to standards conformance then it rolls back down again as yet another new thing is added
<gog> just fork chrome
<gog> don't even try
<bslsk05> ​drewdevault.com: The reckless, infinite scope of web browsers
<gog> unless you're some kind of serious masochist who really, really enjoys that kind of punishment
<netbsduser> i think it would actually be a fun exercise to do a minimal browser with no pretences of supporting the full web
<gog> or
<gog> only the latest standard
<gog> or the most useful subset
<netbsduser> it's definitely a project from which i would learn a lot about a problem domain i've never tackled
<gog> i just think web dev is a disaster in general
<gog> from both sides
<zid> you can't write a web browser
<zid> Like, it's not possible
<netbsduser> gog: i think it's a tragedy in the greek sense of it
<zid> "The number of W3C specifications grows at an average rate of 200 new specs per year, or about 4 million words, or about one POSIX every 4 to 6 months."
<Ermine> Drew's obligatory post
<netbsduser> the web was a fantastic invention and i fundamentally like the concept of it, it's a lot like sun's news
<Ermine> gog: may I pet you
<zid> web browsers develop at the exact speed that chrome can write whitepapers about shit they already wrote
<netbsduser> but the web as it is today is basically impossible for a single person to implement (even msft gave up)
<zid> so you need a bigger team than chrome's, good luck
<GeDaMo> Web standards have been distorted to benefit commercial interests
<zid> GeDaMo: web standards are literally just "write down what chrome did"
<gog> Ermine: yes
<zid> oh, squardle time
* Ermine pets gog
<netbsduser> it doesn't have to be so. you could have something which is a lot like the web (i.e. not some regression to gopher like some advocate) but without requiring 25 manyears to read all the specs (let alone implement them)
<GeDaMo> The special appears to be the British spelling one
<GeDaMo> At least, that's the one I'm doing :P
<zid> bad vowels
<zid> is yours bad vowels
<zid> 23 words
<GeDaMo> Yeah, that's today's one
<zid> done done
danilogondolfo has joined #osdev
<kof123> quoth the link "But WebVR is cool, right? Right?"
* kof123 points at VRML corpse
<zid> I think express took me about as long
<GeDaMo> VRML was cool ... for a brief period in the 90s :P
<GeDaMo> I was at uni at the time and they has some SGI machines
<kof123> i dont know the details on either...just makes one wonder how much is nih
<corecode> heh is it possible that this embedded sdk/examples never use their initial stack after starting the RTOS? i think so... 3000 bytes (out of 8192) just unusable
craigo has joined #osdev
<corecode> ah no i have 32KB RAM, still
craigo has quit [Remote host closed the connection]
zxrom_ has joined #osdev
zxrom has quit [Ping timeout: 250 seconds]
Matt|home has joined #osdev
bradd has quit [Ping timeout: 246 seconds]
Left_Turn has joined #osdev
zxrom_ is now known as zxrom
lovenot has joined #osdev
<lovenot> Hello
<GeDaMo> Hi lovenot :)
<lovenot> Hi
<lovenot> Is the bot invasion over yet?
<GeDaMo> I didn't notice one :|
<lovenot> Oh, alright.
<lovenot> I remember there was one and someone left the quote "No matter how good you build your systems, someone will build an even stronger idiot." or something.
<GeDaMo> "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
<lovenot> Yeah, I think that quote.
[itchyjunk] has joined #osdev
<mjg> that's giving may too much redit to programmers
<gog> i'm mostly trying to me-proof my programs
<gog> and i'm something more than an idiot
<gog> i'm a fuckup on a cosmic scale
<zid> The problem is just that it isn't zero-sum
<zid> You get LTO or fancy error messages, pick
<Ermine> gog: compared to me you're genius
* Ermine wonders which tex distribution sets pdf title to dvi absolute file name meanwhile
kivikakk has quit [Ping timeout: 250 seconds]
AmyMalik has quit [Remote host closed the connection]
Ellenor has joined #osdev
kkd has quit [Ping timeout: 250 seconds]
ggherdov has quit [Ping timeout: 250 seconds]
kkd has joined #osdev
ggherdov has joined #osdev
kivikakk has joined #osdev
kivikakk has quit [Ping timeout: 250 seconds]
kivikakk has joined #osdev
innnegatives has joined #osdev
slidercrank has quit [Ping timeout: 252 seconds]
Left_Turn has quit [Ping timeout: 264 seconds]
Left_Turn has joined #osdev
<corecode> who would not use pdftex directly
<zid> is this a quiz, sane people?
<zid> did I get it right?
<lovenot> [ yes ]
Ellenor is now known as AmyMalik
innnegatives has quit [Quit: Client closed]
<mrvn> Does uboot have a feature that can check a GPIO pin on a SoC and then use one of two kernels depening on if the pin is high or low?
<marshmallow> could we expect the linux kernel to enable DVFS / adjust the cpu frequency when the battery saver mode is turned on on an android device?
innnegatives has joined #osdev
theboringkid has joined #osdev
<mrvn> isn't that what android does?
theboringkid has quit [Quit: Bye]
minout has joined #osdev
minout is now known as stop
stop is now known as stopPING
linearcannon has joined #osdev
linearcannon_ has quit [Ping timeout: 250 seconds]
slidercrank has joined #osdev
slidercrank has quit [Read error: Connection reset by peer]
slidercrank has joined #osdev
<bslsk05> ​community.toradex.com: How to get GPIO value from u-boot for futher processing - Technical Support - Toradex Community
gabi-250_ has quit [Ping timeout: 255 seconds]
gabi-250_ has joined #osdev
<heat> gog, ur not a fuck up
<heat> you can do it
<gog> i can't
<zid> what can't we do?
<gog> i'm gonna let the void reclaim me
<zid> become a crab
<gog> yes
<gog> become crab, have crab rave
<zid> it's what nature wants
<gog> nature is cruel but just
<heat> gog, why cant
<gog> heat: i mean i can i just would rather be doing sometihng else rn
<gog> rather than once again working with this fucking API backend
<gog> which is totally not congruent with our product model so i keep having to do weird things to make it work right
<sakasama> zid: Why is she disappointed? It's evolution!
<gog> and now it's my top priority to finalize it
genpaku has quit [Read error: Connection reset by peer]
genpaku has joined #osdev
<gog> my boss got a new computr and he's having a Good Time setting it up
<gog> (he's not having a good time at all and it's kinda funny)
<heat> joder esto hijo de puta ordenador eres una mierda
<heat> gog viene ayudarme
<gog> yes that's basically how it's going
<gog> except he didn't ask for my help
<zid> like, he's failing the lego step?
<stopPING> yeahhh
<gog> no, like he's having an issue installing some stuff
<zid> ah okay
<zid> My lego step was really boring this time around
<stopPING> "(
<gog> :(
<stopPING> .(
<zid> I opened the manual to see whether it wanted A1+A2 or A1+B1 for dual channel
<zid> click click click, done
<stopPING> fdom
<stopPING> don don
leon has quit [Ping timeout: 264 seconds]
<stopPING> dom do do do don
<stopPING> fck ebable russian music
<gog> wha
<stopPING> is playing in my occupated by nazi's head s
<zid> Didn't even get to do the really annoying mounting procedure for my 212 because of the stupid AM4 clip mount being too easy :P
<stopPING> wall hack a yeah man you're RIGHT.
* stopPING eruns away
* stopPING runs e back
<gog> it's time to go home
<stopPING> WARNING WARNING ROCKIT Atag :: WARNBI:N WADFGSHThfdgfgh fck is this it this bnutton
gog has quit [Quit: Konversation terminated!]
<stopPING> ok ok destroy in g
* stopPING ejects
<stopPING> Quit: Konver
* stopPING ejects twice (first time forgot about ESC press twice algo)
* stopPING <empty>
<heat> geist sortie Mutabah klange
<stopPING> ihure amigo L=-C masstard e
<stopPING> fitblade
* stopPING <emptiest>(100%)
* stopPING is not runnin g (110%)
<stopPING> ah this is osdev
<stopPING> sry guys i really miss the fucking theme in adirc
<stopPING> we have another channles
<stopPING> i have red title with white font:P
leon has joined #osdev
gdd has quit [Ping timeout: 276 seconds]
xenos1984 has quit [Ping timeout: 246 seconds]
theboringkid has joined #osdev
xenos1984 has joined #osdev
innnegatives has quit [Ping timeout: 260 seconds]
Gooberpatrol66 has joined #osdev
innnegatives has joined #osdev
theboringkid has quit [Ping timeout: 264 seconds]
innnegatives has quit [Quit: Client closed]
danilogondolfo has quit [Remote host closed the connection]
gog has joined #osdev
wootehfoot has joined #osdev
slidercrank has quit [Ping timeout: 265 seconds]
<corecode> what is going on
dude12312414 has joined #osdev
<gog> many things
<zid> gog is here, for one
<zid> we're undecided if this is good or bad yet. gog did you bring bread?
<gog> já ég er með brauð
<nortti> huh, do you say "I am with …" for "I have …" in icelandic(?)?
* geist yawns
<gog> yes
<gog> well
<gog> it depends on context that i don't fully understand
stopPING was kicked from #osdev by sortie [nope]
stopPING has joined #osdev
<nortti> reminds me of how it works in finnish
stopPING was banned on #osdev by sortie [*!*@]
stopPING was kicked from #osdev by sortie [STOP]
<nortti> minulla on leipää, lit. 'on-me is [some-]bread'
<gog> when you're telling a receptionist like "i have an appointment with..." you say "ég á tima hjá"
Gooberpatrol66 has quit [Ping timeout: 246 seconds]
<gog> or "i have gone" would be "ég hefa farið"
johngammerson has joined #osdev
<johngammerson> hey guys
<nortti> right, though that is a bit of a different kind of 'have'
<gog> yes
<gog> it's not like the english adverb
<gog> yes
<zid> For when one verb isn't enough and you need to verb your verb to add aspect and tense
<gog> english is a disaster like that
<nortti> (in finnish you use olla 'to be' for that. finnish tense marking on verbs is quite germanic-influenced)
<zid> finish has 37483 inflections
<zid> disregard finnish
<zid> I only accept plurality
<johngammerson> https://paste.sh/Jgcxi-b3#9g1yfe6aMj4pq3Bbu5TCPp9C is something wrong with this header
<johngammerson> (multiboot)
<zid> Presumably you're asking this because grub won't boot it?
<johngammerson> qemu -kernel won't boot it, yes
<zid> is it within the first 64kb or 16kb or whatever of the final image?
<nortti> < zid> I only accept plurality ← rip english then with its oblique case marking on pronouns huh
<gog> yes there is something wrong with it
* zid finds his own github, having lost all his browser history
<zid> yea looks grand, probably an issue with how you have it in the binary, like I thought
<zid> https://github.com/zid/bootstrap/blob/master/boot/boot.asm I have near on the identical thing just with a different flag
<bslsk05> ​github.com: bootstrap/boot.asm at master · zid/bootstrap · GitHub
xenos1984 has quit [Ping timeout: 256 seconds]
<johngammerson> oh wait i just realized i have . = 1M in my linkerscript
<zid> ah looks like qemu checks up to 8kB
<johngammerson> i'll change that to 16kb
<zid> why not have it like, 100 bytes in?
<johngammerson> so at which point should i start my kernel
<zid> just after the program headers is a personal favourite of mine
<zid> 1MB is correct
<zid> but that's the VMA
<zid> not the offset of this structure into the file
<zid> that's controlled via the LMA
<johngammerson> oh so how do i see the offset
<zid> which is why you don't have a 1MB + 4kB image in the first place
<zid> linker script
<zid> AT() or > it or : 0x400 or such
<gog> yeah
<johngammerson> linker script
<gog> just like put it after your PHDHRs
<bslsk05> ​github.com: bootstrap/linker.ld at master · zid/bootstrap · GitHub
<zid> I just have it first in .text and the way the file is organized, .text is first
<zid> so it goes ELF headers, program haeders, .text, .rodata, .data, .bss, .shtrtab .symtab etc
<zid> johngammerson: readelf -a output'd be useful
<gog> yes
<gog> read your elves
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid> I am making chili, it tastes good, I think
<zid> it's hard to tell because my face dissolved
<johngammerson> no readelf on mac wtf
wootehfoot has quit [Read error: Connection reset by peer]
<zid> your binutils is broken :(
<johngammerson> wdym
<zid> readelf is part of binutils
<zid> your binutils does not have readelf, ergo your binutils is broken
<gog> because it's mac
<zid> qed mac
<gog> it doesn't have ELF
<gog> it has MACHO
<zid> his x86 cross compiler should have come with binutils
<gog> oh
<zid> The one he definitely made, right?
<gog> idk what he does
Gooberpatrol66 has joined #osdev
<gog> ¯\_(ツ)_/¯
<zid> Absolutely started by making a cross compiler like a good boy
<gog> the goodest boy
<zid> not like the rest of us savages that just use x86_64-linux-pc from their desktop and force all the -fno-PIE etc things to make it work
<johngammerson> realized i reset my pc a few weeks ago and since haven't installed binutils
<johngammerson> nice
<zid> yea I installed this PC fresh 2 days ago
<gog> i use PIC
<zid> so I am missing absolutely everything
<gog> because i need it
<zid> I find out every 4 hours I am missing some random utility or bookmark that I need
* geist yawns
<gog> i have my computer just how i want it now so it'll be an opportune time for my SSD to reveal itself as defective
<geist> wheres the kitty
<geist> oh there's the kitty
* geist pets gog
<zid> that's what I just did gog
* gog prrr
<zid> PC died, I finally revive it on new hw, I'm just getting done setting up my shit how I want it
<zid> chmod windows.old/ so I can copy my Users/zid/AppData/Roaming
<zid> SSD dies
<johngammerson> readelf -a output
<geist> johngammerson: wait are you the one asking about multiboot on mac the other day?
johngammerson is now known as ilovethinking
<ilovethinking> yes
<zid> okay so you have .boot and .text in program header [1], at 0x1b offset in the file, loads to 0x100000, seems good
<geist> ah yes. please try to use the same nick if you can. helps us track who is who
<ilovethinking> yes im sorry
<zid> oh now I have to unignore one sec
<geist> no worries
<ilovethinking> wtf zid
<zid> I've never seen align 0x10 before
<zid> but qemu only wants align 4 so whatever
Gooberpatrol66 has quit [Ping timeout: 250 seconds]
<zid> I'd go with a hex editor at this point cus it all... seems fine to me
<gog> lmao
<zid> I like a hex editor
<zid> fuck, I need to install a hex editor.
<geist> or at least a hex dump
<geist> like `hexdump -Cv`
<mrvn> zid: multiboot header must be in the first 8k
<zid> yea hexdump -C is legit
<ilovethinking> i should compile boot.asm with elf64 right?
<geist> in the first 8k is why i always do that trick of jmping around it and putting it in the .text.boot section
<ilovethinking> or wait
<ilovethinking> no
<geist> and then make sure that links at the front of the binary
<geist> ilovethinking: i thought you weren't doing 64bit yet?
<mrvn> zid: your linker script only works by accident.
<ilovethinking> wdym? im gonna jump to long mode after
<ilovethinking> but for now im reptty sure i should do elf32?
<geist> oh. yeah no yu need to link boot.asm as elf64 if you want to link it with the rest of it
<geist> since you can't really mix elf32 and elf64 in the linker
<zid> k I has hex workshop, love that guy
<mrvn> zid: but don't worry, 99% or people do it like that.
<ilovethinking> maybe smth is wrong w my procedure? i link with ld.lld -n -o kernel.bin -z max-page-size=0x1000 -T src/linker.ld src/boot.o
xenos1984 has joined #osdev
<geist> the lld part may be more difficult, but aside from that
<geist> is there a reason you are using lld vs binutils ld?
<mrvn> ilovethinking: 1. ld normaly outputs elf, not bin. 2) your kernel only consists of boot.S?
<ilovethinking> yes
<ilovethinking> for now
<geist> okay
<mrvn> 3) link with $(CC)
<mrvn> 4) follow the barebones example in the wiki
<geist> which compiler are you using? clang or gcc?
<geist> #3 is not required, i wouldn't mess with that yet
<ilovethinking> the barebones is for a 32 bit kernel tho
<geist> yeah
<geist> and i kinda thought your point was to steer away from the tutorials
<ilovethinking> yes
<ilovethinking> but fuck man it's hard to get the start done
<geist> anyway. re lld vs binutils. what toolchains are you using?
<ilovethinking> :cry:
<gog> clang clang clang went the compiler
<gog> ding ding ding went the linker
<ilovethinking> geist: x86_64
dutch has quit [Quit: WeeChat 3.8]
<geist> ilovethinking: yes. what toolchain? clang? gcc?
<ilovethinking> clang
<geist> okay, thats why you're using ld.lld then?
<ilovethinking> but for now none cuz no c files
<ilovethinking> yes
<geist> what assembler are you using then? (gcc and clang are perfectly good assembler front ends)
<gog> you can assemble .S files with clang
<ilovethinking> nasm
<geist> oh hrm. suggestion, move to using clang and/or gcc for that
<gog> you can assemble .S files in intel syntax with clang
<geist> but nasm should work i guess. but part of the probelm is you're starting to use more and more generally nonstandard tooling for a lot of us
<geist> since most folks here dont use clang, AFAICT (me included)
ilovethinking_ has joined #osdev
<geist> and dont use lld (though some do)
<ilovethinking_> lld is fine
<geist> well.... you say that.
<gog> are you looking at its output
<gog> i have a feeling it's not sane
<geist> when you have trouble it'll be a little harder for folks to help, because what they suggest may not be exactly applicatable to lld (vs binutils or gold)
<geist> exactly
<gog> but i'd need to readelf it and maybe (probably) objdump it
<geist> not saying you can't make clang/lld/nasm/etc all work, it's just more variables outside of our control
<geist> which clang toolchain are you using? the built in mac one?
<geist> does that generate and link ELF files?
<gog> UwU
<ilovethinking_> no i generate a an elf file with lld
<gog> the elf file is probably wrong
<gog> in some way
<gog> do you have an entry point
ilovethinking has quit [Ping timeout: 246 seconds]
ilovethinking_ is now known as ilovethinking
<geist> can you paste a readelf -a of it?
<gog> and will it hang and loop or smth
<ilovethinking> ues?
<ilovethinking> geist: i did
<gog> he doesn't have a readelf
<geist> do it again
<ilovethinking> zid said it looks fine
<ilovethinking> sec
<gog> o
<gog> o i see
<geist> along with dissassembly via objdump -d
<zid> I said the align 0x10 was odd, but qemu only needs align 4 so no matter, but otherwise I don't see a problem
<zid> and to just hexdump it
<zid> either the magic is there or it ain't
<gog> ok can you objdump -D it
<geist> yeah so probaby i'd call the .boot something like .text.boot
<geist> it's not getting the X bits for it, and the alignment isn't merged with .text
<gog> oh you did
<geist> usually i do .text.boot and then make the linker script sort it first as it merges with .text
<gog> oh wait no i want capital D
<zid> as usual
<mrvn> ilovethinking: grub won't boot ELF64
<ilovethinking> i’m using qemu -kernel
<geist> nor will qemu
<geist> that's okay, you can flatten it into a binary. but get the objdump -D first
<ilovethinking> ?
<geist> qemu doesn't do elf64, iirc. that's okay
<ilovethinking> geist: check the link again
<ilovethinking> did capital D
<geist> ah well then that's your problem
<geist> somehow there's no multiboot anywhere. -D shold have shown it
<gog> yeah
<geist> since it's saying 'dissassemble *everything*'
<geist> vs regular -d
<mrvn> ilovethinking: your .boot is 1 byte alined, that can go wrong
<gog> it's helpful when you're just looking at bytes in file
<geist> oh wait, they repasted it
<geist> hang on. look at the link again
<zid> 02 b0 ad 1b 00 00 01 00 ee 28 52 e4
<gog> oh i see
<gog> ok it's there
<geist> there's a multiboot there now.
<geist> so try to flatten this thing to bin first, then -kernel that
<geist> qemu -kernel x86-64 IIRC doesn't understand elf64 (though it does elf32)
<zid> can someone add 0xe45228ee to 0x100000 and 0x1BADB002 for me
<geist> but it'll always take a flat binary with or without multiboot
<geist> if it's a flat binary i think it just loads it to a known spot and branches into it, so *really* multiboot isn't required
<mrvn> geist: arguably an ELF64 should load as raw binary image but that's broken in qemu.
<geist> mrvn: yes. but that's specific to x86-64. it just is that no one bothered to add that support because linux doesn't need it
<mrvn> geist: as raw binary the multiboot header gets found in the first 8k.
<geist> and really the purpose of -kernel is to load links
<zid> it looks for a linux header then if it doesn't find it it looks for a multiboot header
<geist> mrvn: yes i know, but if it doesn't have th eheader it just falls back to 'load to fixed spot, branch into it'
<geist> hence why multiboot is technically unnecessary
<mrvn> geist: maybe. but then you really need your .boot to start with a "jmp _start"
<ilovethinking> wait so what do i do now
<geist> yes. that's why i'm not recommending it right now. multiboot also gets you the memory map, etc
<zid> what was that thing it always used to print
<zid> EMRS OUT OF CHEESE or whatever
<geist> ilovethinking: flatten to a binary with objcopy -O binary
<geist> load that
<zid> because it'd detect multiboot wrong
* gog does a dark ritual for dark firmware
<geist> create an elf, then create a .bin from it, -kernel that
<mrvn> ilovethinking: did you use the grub tool to check if your image is multiboot2? Don't know what it's called but grub has a tool for it.
<geist> also has the advantage that you can use hexump -C on the binary to validate that it precisely looks as you expect
<geist> mrvn: not using multiboot 2 because qemu
<mrvn> same with multiboot1
<ilovethinking> ok i flattened it out
<geist> hexdump -Cv that and pastebin it (if it's not too large)
<mrvn> ilovethinking: hd kernel.bin | head --lines 100
<zid> flat bin has the issue of needing to jump over the header
<zid> but it'll work for verifying it isn't trying to load it as the wrong image type
<geist> zid: not if the multiboot header has the appropriate entry, but yes the jmp is a good idea anyway
<zid> ah yea you can do the extendo one
<geist> which i think they're asking for, but not filling in, if theyre using flags[16]
<zid> this is honestly the worst part of x86, booting
<geist> since thats the bit that says 'read the additional fields that describe the binary'
<geist> so i think theyre wrong currenctly, but we can work on that next
<mrvn> geist: maybe instead of flat binary just objcopy to ELF32.
<geist> mrvn: possibly, but i have no idea if the llvm tools can do that, which they're using
<geist> and i really dont want to debug that
<mrvn> me neigther. I know GNU can and that's how you should od it.
<geist> i have much less experience with the llvm equivalents to binutils, except in general they're not as polished
johngammerson has joined #osdev
<geist> good.
<geist> now just have to debug that multiboot header, which i think may be incorrect
johngammerson is now known as ilovethinking_
<geist> but alas i have to get to work
<geist> note the flag 16 is set, which i think says 'look for extended fields after it' which you're not providing
<geist> sinc ei think in that case it makes the multiboot header at least 0x20 bytes long
<bslsk05> ​github.com: lk/start.S at master · littlekernel/lk · GitHub
dutch has joined #osdev
<geist> the flag is MULTIBOOT_AOUT_KLUDGE (which is bit 16)
<ilovethinking> what other flag doni set then
<ilovethinking> do i*
<geist> bit 16
<geist> we had a whole discussion about it. you set it so you can provide more data as to how to load it
<geist> either you do that and you provide the data to the loader, or you dont set the flag and then it loads it whereever it does
<geist> you are currently setting it, but not providing the data
<geist> alas i really need to get going and do some work
<geist> good luck! gettig close. it's annoying, but this is also really annoying. welcomg to early osdev nonsense hell
_xor has joined #osdev
linearcannon_ has joined #osdev
<geist> you're dealing with the result of a 40 year old computer architecture with endless backwards compatibility. if commodore 64s had survived to this day and were the dominant thing you'd just have to put in some other silly nonsense to bootstrap from 6502 to some 64bit mode by constructing an audio tape digital image or some other shit
<ilovethinking> thanks geist
<ilovethinking> can i just set the flags to 0?
<ilovethinking> so that at least i can get the kernel to boot
<zid> ooh that's a good idea
<zid> bootstrap my PC over a cassette
<geist> zid: if you had a old IBM PC 5150 you could load stuff over the cassette port sure. i dot think any emulator bothers emulating that functionalty since zero people used it
linearcannon has quit [Ping timeout: 250 seconds]
<mrvn> ilovethinking: your checksum is also wrong I think: 0x1badb002 + 0x001000 + 0xe45228ee == 0xffffe8f0
<mrvn> 0x1badb002 + 0x00010000 + 0xe45228ee = 0x0000d8f0 I mean
<mrvn> geist: now there is an interesting idea. a 64bit 6502 variant CPU :)
<geist> mrvn: right? imagine if that somehow became the dominant thing
<geist> or of 68k had. though motorola wasn't able to succeed in their later designs, so i suspect what would happen is more folks would be using PPC
<geist> zid: iirc there was some sort of diagnostic mode on the original IBM PCs where you could load code over the keyboard port. folks figured this out later
<geist> basically factory diags, a way to get code onto the motherboard
<zid> geist: How long do you think a bios will wait for a floppy sector before giving up? :P
<zid> tape is kind fast though
<mrvn> zid: That's actually in the specs. Reading an non existing IO port is how you wait a fixed time on x86.
<geist> yah and a floppy i think you can kinda detect fairly quickly that it's not responding
<mrvn> geist: nope. there is no way to see if a floppy is connect unless it responds.
<geist> right, but i think on Pc you can at least see data moving under the head
<mrvn> I think the idea was to use a tape on the floppy controller. While rewinding the tape to the right sector you will run into the IO port timeout.
Gooberpatrol66 has joined #osdev
Left_Turn has quit [Ping timeout: 268 seconds]
<mrvn> .oO(How good will a WiFi card work without the antenna?)
Gooberpatrol66 has quit [Remote host closed the connection]
Gooberpatrol66 has joined #osdev
<gog> not good
<mrvn> gog: 30cm from my phone to the SoC?
<gog> hmm
<gog> idk
<mrvn> Maybe I will just put it off for tonight and wait for the antennas to arrive tomorrow.
<gog> if it has a backup little fractal antenna it might work fine
<gog> but idk what kind of card
<mrvn> M2 E-key module
<sakasama> It might work fine at that distance anyways as long as the lead is long enough.
<sakasama> If it's in the 5GHz band or thereabouts odds are good.
<mrvn> the connector is right next to the shielded enclosure for the chip. not much lead there.
<zid> Anyway, I bet I could play a recording of a floppy disk into the head of a floppy controller
<zid> might need to underclock the floppy drive a lot though
<mrvn> zid: like those CD players for cars that only have tape decks that have a fake tape with a magnet that triggers the tapes reader?
<zid> (I'm back, with a weird sort of burrito thing I made)
ilovethinking_ has quit [Ping timeout: 260 seconds]
<heat> hello it me onyx operating system developer
* mrvn has some Chicken Korma in the microwave
Left_Turn has joined #osdev
<heat> geist, is there a need to write-barrier on riscv when doing page table modifications?
<heat> or better yet, on what archs do you need to do that?
<heat> I would assume arm needs it ofc
<mrvn> heat: wouldn't you have to do that on all archs that have caches that aren't snooped by the TLB?
Left_Turn has quit [Ping timeout: 246 seconds]
<danlarkin> heat: yes you need to fence after modifying page tables
air has quit [Ping timeout: 252 seconds]
theboringkid has joined #osdev
<mrvn> danlarkin: on guard
<danlarkin> en garde
<nortti> skipped over etes vous pretes smh
<nortti> or wait, no, that was after en garde, before allez
Left_Turn has joined #osdev
slidercrank has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
Left_Turn has joined #osdev
air has joined #osdev
brunothedev has joined #osdev
theboringkid has quit [Ping timeout: 250 seconds]
gdd 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!]
<zid> oh thanks american DST being on a silly day, honzuki an hour early
<sham1> Ugh, thanks for reminding me that the Euro DST is in over a week from now. Now I'm annoyed
Left_Turn has quit [Quit: Leaving]
<brunothedev> i am so angry at kde and wlroots that i want to write my own compositor from the ground up on the tty
<brunothedev> pwd
<geist> heat: i dont think so, but there's some talk about it
<geist> i forget where. newer versions of the priviledged spec, etc
<geist> re arches that do. ARM
<geist> that's all i know about
<geist> it's because the TLB is cache coherent on ARM, it's just an 'external observer' from a weakly ordeed memory model
<geist> so it's the same rules as 'do you want another cpu to see this write *now* and in order'
<geist> think of the TLB as just being another cpu
<gog> daylight? what's that?
<sham1> That thing that occurs outside
<gog> oh
<gog> never been
<sham1> At day
<gog> also what's a good cheap vps
<sham1> This OSDev channel is sponsored by ExpressVPN
* sham1 runs
* brunothedev throw rocks at sham1
<gog> VP _SSSS_
* CompanionCube wonders what brunothedev is angry about
<CompanionCube> inb4 'use x11 instead'
<brunothedev> CompanionCube: i dont have a bif problem with the x11 protocol, but XOrg SUCKS
<gog> idk i have this TNAhosting offer for $15/yearly, it's not a lot and i don't need much
<CompanionCube> isn't xorg sucking a direct result of the former, though?
<gog> i'm about to pull the trigger but if there's anything better i'm open to it
<mrvn> geist: so the TLB is snooping the caches but not e.g. the write back buffer in the cpu?
<brunothedev> CompanionCube: gonna do what, write a x11 server?
<gog> this is about the cheapest i've seen
<CompanionCube> lol
<brunothedev> wayland looks cool
<sham1> gog: Oh, seems like I misread you. VUltr?
* CompanionCube hasn't yet gone wayland, awesomewm doesn't do it and there's no direct replacement.
<lav> vultr's cheapest is $5/month
<brunothedev> CompanionCube: the irony is that i used awesomewm with gentoo
<gog> it's a little more for about 4x the price
<sham1> I nowadays use Xfce and it doesn't have a wayland compositor. Although it might in the future, exciting stuff
<gog> the worst that happens is it's not enough and i spent $15
<gog> that's like 3 things at the grocery store
<lav> what's your use case? :)
<gog> computing is cheaper than food now
<sham1> Apparently the 4.20 (i.e. the blaze-it patch) might bring a WL compositor. Which would once again mean a broken firefox
<CompanionCube> (i have looked for replacements, and it's saying something that the most likely one is KDE Neon)
<CompanionCube> s/neon//
<brunothedev> 3 things? Lol in brazil that is like 3 good meals
<gog> everything is ridiculously expensive in iceland
<CompanionCube> (though Neon would be a good method of trying the whole thing with minimal effort)
<brunothedev> gog: Know your awful food, that is a thanks
<brunothedev> norway && faroe > iceland
<gog> ¯\_(ツ)_/¯
<gog> i'm not icelandic
<brunothedev> gog: immigrant?
<gog> yes
<gog> i'm american
<gog> worse than an icelander
<brunothedev> the urban and suburban part of the us sucks, but the rural regions looks cool
<gog> i'm from the rural midwest
<zid> gog: zero to hero more like
<gog> i don't have good feelings about it
<gog> great now the hercules song is gonna be stuck in my head
<brunothedev> why dont u like rural midwest?
<heat> texas >>>>>>>>>>>>>>>>>>>>>>>>> other states
Amorphia is now known as Amor-Faye
theboringkid has joined #osdev
<gog> i'm happier here
<sakasama> =
<heat> <CompanionCube> isn't xorg sucking a direct result of the former, though? <-- yes and no?
<heat> the X11 protocol sucks AND XOrg is a large project with a LOT of history running on very heterogeneous systems
Amor-Faye is now known as ah-mor-FEE-a
<sham1> X11 protocol is fine for what it was meant for, which was basically to transfer simple graphics over the wire to dumb graphical terminals, akin to using something like telnet to bring your shell to you
<heat> gog, what state are you from and do you have a kickass accent
ah-mor-FEE-a is now known as Morphy
<bnchs> hi
<sakasama> brunothedev: Red states really suck for anyone who's not neuro/gender/hetero-normal... oh, and male and mostly white.
<mrvn> sham1: simple graphics like an elipse arc with dashed lines and beveled corners?
<sham1> From what I can tell they suck for the last groups as well
<sham1> mrvn: yes. It's the client's problem to display them
<sham1> They're also described in very little data
<gog> heat: i'm from wisconsin i have a boring accent
<mrvn> and have maybe been used once outside the X11 perf test.
<sakasama> sham1: Yes, but they don't have to purchase the *really* part.
<heat> gog, aw, sucks
<mrvn> sham1: they are pretty hard to render
<sakasama> bnchs: Hello. My brain is mush.
<sham1> Oh for sure
<bnchs> sakasama: my brain is more mushier than you
<bnchs> it is practically dumber than anyone here
<sham1> It's not like X doesn't have problems. I mean, the way the base protocol does fonts? Dreadful
<mrvn> bnchs: if you say so
* gog patpatpat bnchs
<mrvn> sham1: you don't have a local fint server on your client?
<gog> ok i did it i bought hosting
* Ermine 's eyes bleed because of x core fonts
<sham1> mrvn: no, not really
<brunothedev> what is the best for git: ssh or gnupg
<mrvn> the font protocol was fine when you had like 20 font variants. Not 1000.
<heat> what
* bnchs pats gog
<heat> ... both?
<mrvn> sham1: most terminals had at least some core font.
<sham1> Ermine: oi, you don't get to badmouth the fonts themselves though. They're nice bitmap fonts
<sakasama> bnchs: Practically? That's debatable. I only leave my apartment when coerced by horrible events. My fridge only contains condiments and vitamins.
<sakasama> I'd immigrate to Iceland too but I'm pretty sure they'd reject me.
<brunothedev> god, i hate gentoo approach to de's, they are SOO minimal, but sorry, i dont know why da hell does "kde-amongus" crashed and why does it makes kwin crash too, in a wm, you know everything about your system, not the same with KDE/Gnome/Xfce/Mate
<sham1> I actually went though a phase where I used some of the X core fonts on my terminal emulators back when I did the whole "minimalism for every aspect of computing"
<brunothedev> sham1: did you watch luke smith and want to live in the woods too?
<sakasama> bnchs: Oh, and I'm American but I sound like I'm English.
theboringkid has quit [Quit: Bye]
<sham1> brunothedev: I did watch Luke, but I didn't want to live in the woods
slidercrank has quit [Remote host closed the connection]
<heat> oi govna bruv lets watch tha footie lads
<brunothedev> sakasama: oi chap do u got a loicense to develoop
slidercrank has joined #osdev
<heat> oi dem tories innit
theboringkid has joined #osdev
* sakasama weeps.
theboringkid has quit [Client Quit]
<heat> <insert generic snarky sarcastic remark about UK politics>
<sham1> <insert snark about Brexit by a mainland European>
* sakasama contemplates living in the woods.
<brunothedev> <insert joke about the falklands as a South American>
<gog> amogus
<heat> agogus
<gog> SUS
<brunothedev> sussy wussy :S
<Ermine> sham1: my eyes *objectively* bleed. No badmouthing here
* lav vents
<sham1> Well in that case I'd see a doctor
<sakasama> Yep, dem woods be lookin pretty good bout now.
<brunothedev> the woods? DA WOODS? You are not a true minimalist until you live in the mountainous bahia/minas arid nature, no trees, only D I R T
<heat> https://www.inp.nsk.su/~bolkhov/files/fonts/univga/ is this shiz a decent unicode bitmap font?
<bslsk05> ​www.inp.nsk.su: Unicode VGA font homepage
<brunothedev> and M O U N T A I N S
<brunothedev> and i can say that sinc my grandma farmed self-sufficiently
<CompanionCube> heat: doesn't seem very complete?
<brunothedev> if only suckless was invented in the 1960's D:
<sham1> I do personally find the generic VGA font very nice
<brunothedev> sham1: it is sad that text-mode died
<sham1> Yes, but also understandable
<brunothedev> now we need complicated drivers to say hello world
<sham1> To emulate it with modern display hardware was (and is) certainly a lot of work
<heat> CompanionCube, seems to have most of the "main" codepoints?
<brunothedev> i am on the tty and this chatroom is my only entertainmend
<heat> i don't know, just curious. would love to test my unicode on this stuff, my current font only has the fuckin ASCII codepoints
<lav> brunothedev: why no emacs tetris
<CompanionCube> probably better then
<lav> unifont?
<heat> getting a proper font is hard
<heat> I don't like unifont
<brunothedev> lav: em*cs
<lav> v*m
<brunothedev> vim is based
<heat> fr**B*D
<sham1> You take that back
<sham1> ZFS for lyf
<heat> aw hell nah
<sham1> Sun's legacy lives on!
<brunothedev> freebsd devs after using their own ose instead of macos: :O
<heat> give me the boomer filesystems all day
<brunothedev> btrfs go brrr
theboringkid has joined #osdev
theboringkid has quit [Client Quit]
<brunothedev> fun fact: the maintainer of the freebsd os, literally SOYJACKED of the og macs so much that he worked from then own for apple
theboringkid has joined #osdev
<heat> mjg, we found THE maintainer of the freebsd
<brunothedev> mjg be like: ONG NEW APPOU MEECBOOK MUS BYE
<sham1> Sadly solaris died and Oracle looted its corpse
<gog> i want alpha and hp-ux
<brunothedev> oracle trying not ruin any software %any: S 00.2
<gog> that's right i was going to but an itanium server
<gog> as my first vintage computing purchase
<heat> im starting to understand why you were +q'd
<heat> gog, pls do
<heat> lets write an OS for it
<brunothedev> heat: why?
<gog> ok
* brunothedev runs crying
<heat> sophia is directly portable to itanium through EFI
<heat> we're already on the right path
<gog> yessssss
<brunothedev> wtf is sophia
<sham1> Oracle does have some slight redeeming qualities, but hot damn, they're Nestlé levels of evil at times
<gog> sophia is my project
<brunothedev> it is sad that ubuntu is the that it is, videos of ubuntu introduced me to linux. I never runned ubuntu tho
<gog> what's wrong with ubuntu?
<gog> linux is linux
<gog> all distributions suffer equally because they're linux
<brunothedev> gog: snaps, abandoning old (cool) looks
<sham1> Not all of them have all the snappage
<gog> you can use the old cool looks
<brunothedev> gog: unity?
<gog> you can get rid of it
<gog> if you were a real linux OG you'd know that
<gog> linux is linux
<gog> also i don'
<gog> t think unity was v cool
<brunothedev> gog: not really an og, when i said videos, i meant specifically an old ubuntu install video by diolinux(look him up)
<gog> i only watch one linux youtuber sorry
<brunothedev> oh, and also a video by fabio akita
<brunothedev> gog: what is the only one and this is a lusophone channel
<gog> veronica explains
<brunothedev> the only one i never watch
dude12312414 has joined #osdev
<brunothedev> i mostly watch brodie robertson, really cool channel
<brunothedev> he aways has a video after i go home after school
<heat> would rather rot than consume linux youtube videos
<gog> heat heat heat
<heat> gog
<brunothedev> heat: dt: Danmit why no ones make a distro with only appimages and fish shell?
<gog> because that's a really inefficient distro honestly
<CompanionCube> my first linux was
<CompanionCube> an ubuntu 9.04 live cd
<gog> nice
<brunothedev> linux mint xfce
<gog> my first linux was red hat 8
<heat> gog are you a RHEL person
<gog> no
<sham1> Oh, a pre-RHEL
<heat> you're probably a RHEL person
<gog> i mean
<gog> red hat 8
<gog> lel
<bnchs> sakasama: really, i would like to compete in the dumb olymptics
<brunothedev> my fist linux distro was android 4.4
<heat> i thought mjg was definitely a RHEL guy but apparently its ubuntu
<brunothedev> literally fist
<gog> i use manjaro
<gog> it works fine
<bnchs> for memory management, i used the WORST system for it
<gog> yeah everybdoy hates manjaro
<bnchs> a memory pool instead of a memory map
<brunothedev> gog: M*njaro
* brunothedev died of cringe
dude12312414 has quit [Remote host closed the connection]
<sham1> gog: how often do you end up resetting your clock to get updates because the Manjaro team once again cocked up the TLS certs
<gog> never because i don't update
<gog> updating is for chumps
<heat> gog tell the manjaro developers to fix their packaging, they're DDoSing the AUR again
<gog> it's cool and funny to DDoS the AUR
<brunothedev> ALL OF US IS CHRONICALLY "pkgman update" people
<bnchs> brunothedev: shut up please
<gog> but also i don't use AUR
dude12312414 has joined #osdev
<bnchs> you are outdumbing me
<bnchs> i'm supposed to be the dumbest here
<brunothedev> bnchs: i would if i could get how to configure hikari compositor
<gog> now now bnchs
<sham1> One could use a good distro like Fedora
<brunothedev> my brain is smoother than a gumball
<heat> i rate fedora
<heat> solid
<bnchs> brunothedev: my brain is smoother and reflects tons of light
<gog> it's linux
<gog> linux is linux is linux
<heat> i'm going to install DragonflyBSD
<bnchs> it's not for thinking, it's for being dumb at things
<gog> me too
<sakasama> Oh no, bnchs has competition? They're even self-deprecating.
<heat> BSD for hipsters
<sham1> As a hipster, I resent that
<bnchs> sakasama: i will self-deprecate to oblivion for 1st place
<sham1> HAMMER2 is interesting. Too bad it doesn't actually exist
<bnchs> but it probably shouldn't be here
<heat> NetBSD if you're old, OpenBSD if you're <expletive>, FreeBSD if you have a ponytail, DragonflyBSD if you have a ponytail on your neckbeard
<sakasama> What's a hipster? To me, those are a type of underwear.
<heat> regular people that don't want to use computers just use linux instead of going to the trouble of installing a BSD
<heat> actual normal people use windows
<brunothedev> bsd people pls dont gentrify this chatroom
<brunothedev> i like here it is cozy and cheap :)
<heat> i wish i could fucking use windows instead of studying the art of the BSD vfs path resolution
<heat> I don't get it
<sakasama> bnchs: Will you consider dropping this horrible hobby in favour of helping me build a bioengineering laboratory so I can rewrite myself and aid other noble causes?
<heat> not that linux path resolution is any nicer, both look to have been untouched for the last 20 years
<brunothedev> i would rather die than using windows
<bnchs> sakasama: i'm uhhhh
<bnchs> i don't think uhhh
<bnchs> that's above my extremely low intelligence
* brunothedev started singing yankee doodle with a musket
<sakasama> bnchs: Have you actually taken any intelligence tests?
<bnchs> no
<sakasama> See, that's just bad science.
<brunothedev> i am dumber than you
<brunothedev> i am a santa-denier
<bnchs> brunothedev: you are just annoying not dumb
<brunothedev> bnchs: that it is when you dont do something rewarding and the only form of entertainmend is #osdev
<brunothedev> (no, seriously, please hikari develop a better configuration documentation )
<bnchs> who's this hikari, are they in the room with you?
<bnchs> are they apart of your schizo delusions?
<brunothedev> hikari is a wayland compositor
<mjg> heat: rhel does not work for shit
<mjg> it is all maintained by people who don't even use unix
<mjg> want something maintained by people who use it, try debian or derivatives
<heat> I need a real UNIX by people who use UNIX
<brunothedev> heat: netbsd
<heat> actual fucking UNIX, none of that communist UNIX GPLv2 LGPL GNU FSF bullshit
<bnchs> sakasama: science can determine one thing, and that is i'm worthless to anyone
<heat> enterprise is back baby
ilovethinking has quit [Quit: Connection closed for inactivity]
<brunothedev> "COMMIE, COMMIE WEE" - eisenhower, propably
<sham1> UNIX but it's exposed as a REST API
<brunothedev> aslo, macos is a certified UNIX
<brunothedev> except the init system is using .xml files
<sakasama> bnchs: Create a matrix account and call me. I'll verify your claim.
<bnchs> i don't think that'll be necessary
theboringkid has quit [Quit: Bye]
<brunothedev> ok but: is ssh or gnupg better for git
<gog> those are two different things
<gog> do you mean
<gog> ssh keys or gpg keys
<brunothedev> keys
<gog> because you can use gpg to generate ssh keys
<gog> or keys compatible with ssh
<gog> so it's your pick
<brunothedev> gog: what is the easier one
<gog> ssh
<brunothedev> now i need to find a guide that is compatible with pure html, THANKS HIKARI
<brunothedev> and you too, kde, for kde-sussy-dectector making wayland unusable
<bnchs> and i thought i was annoying
<bnchs> maybe we're both equally annoying
<brunothedev> oh sowwy just going through on a rant
<sakasama> bnchs: Not yet. You're currently losing the competition, but the moral here is the same as with a nice game of global thermonuclear war.
<zid> The only winning move is to nuke the other guy harder.
<bnchs> okay uhhh
<brunothedev> except thermonuclear war make cools games
<zid> see: ender's game
* brunothedev looks at HOI4 TNO and fallout
<zid> do kids know about wargames
<klange> bnchs: very carefully
<zid> and who matthew broderick is
<brunothedev> zid: wdym?
<zid> Sounds like that's a no then
<brunothedev> zid: are you talking about boardgames or paradox-like games?
<bnchs> zid: sounds like that game called citizaliations
<bnchs> where gandi nukes you
<klange> brunothedev: It's a film.
<bnchs> (i literally don't know how to spell)
<zid> that's an incredible way to spell civilization, yea
<brunothedev> you cant recruit most of the chinese population in civ
slidercrank has quit [Read error: Connection reset by peer]
<bnchs> zid: i unironically can't spell civilization
<bnchs> i should be back at preschool
slidercrank has joined #osdev
<brunothedev> i cant spell probaply, we are the same :D]
<bnchs> jesus christ, is there no limit to you?
<heat> all praise gentoo ops
<brunothedev> bnchs: yes
<bnchs> gentoo ops please save me from this hell, and end my existance
slidercrank has quit [Read error: Connection reset by peer]
<sakasama> This is the worst burlesque show I've ever seen.
<zid> heat when do I get more benchmarks
* sakasama demands a refund.
slidercrank has joined #osdev
<zid> I ran a factorio benchmark earlier at least
<heat> when I stop fixing my bad UNIX and/or stop writing this bdf2c
<zid> we could test onyx in vmware 17 too
<heat> which is remarkably easy if I half-ass it
brunothedev has left #osdev [j'aime d onion frite a huile! (pls gib fried onion)]
brunothedev has joined #osdev
<heat> BDF is a stupid simple format lol
<heat> ez
<bnchs> sakasama: i'm sorry for being a retard here
<sakasama> bnchs: Really, it'd help a great deal if you'd stop insisting on your uselessness and instead actually do something.
<bnchs> like what?
<sakasama> Even I make an effort to do useful things and my entire life has been a disaster for longer than you've existed.
* brunothedev picks up popcorn
<sakasama> That bioengineering laboratory would be a very nice start. Alternatively, how about something you actually care about?
<bnchs> i failed at it
<sakasama> What was it?
<bnchs> reverse engineering
<sakasama> Failure is a learning opportunity.
<bnchs> my brain was too burnt-out from staring at m68k code all day
<bnchs> and trying to see what they do
<brunothedev> fun fact: If devote enough of it on something u can do everything
<bnchs> brunothedev: you sound like a quote from a NES game
<sakasama> Great. Reverse engineer DNA instead. I'll send you some slugs you can torment for science.
<sakasama> We get signal. Main screen turn on.
<bnchs> reverse engineer is torture for me
<brunothedev> open source slug
<bnchs> it's a necessary evil
slidercrank has quit [Quit: Why not ask me about Sevastopol's safety protocols?]
<brunothedev> slidercrank: tell me about it
slidercrank has joined #osdev
<brunothedev> slidercrank: what about sevastopol safety protocol?
<slidercrank> brunothedev, I'm afraid no one is safe :) But my quit message is from the game "Alien: Isolation"
<brunothedev> quit messages are funny, you can say anything
<nortti> heh, forgot mine was "Anthropologa se non exstare reperit. Solum exstat pyramis ingens mechanica."
<heat> deep
<heat> gog, bazinga quit message?
heat has quit [Remote host closed the connection]
heat has joined #osdev
<brunothedev> nortti: i read this mentally listening to "merck toe hoe sterck"
<heat> cheers the irc client crashed
<brunothedev> heat: what client?
<heat> the offtopic client
<gog> ????
<zid> porn client?
<gog> hi i'm trying to install arch on my vnc
<gog> it's going poorly
<gog> basically i can't type /
<zid> typing / is overrated
<brunothedev> OFFTOPIC [ TOPIC IS OFF ] ** I KILLED TOPIC AND YOU CAN`T DO NOTHING ABOUT IT **: heat: what client?
<gog> maybe so
<zid> why is there a backtick between N and T
<bnchs> brunothedev: i so dearly wish for a +q
<brunothedev> before i switch to abnt2 ";" is "/"
<sakasama> gog: Go Windows, so you only need backslashes.
<bnchs> quiet flag any%
<zid> onyx has that issue, I can't type anything
<zid> because it uses raw scancodes + portuguese layout
<brunothedev> bnchs: making unfunny jokes is my persona
<heat> ok can shutting up be your persona now
<brunothedev> yes
<zid> oh sorry heat
<heat> no problem zid
<heat> love you
<zid> heat when will onyx let me type
* bnchs imagines heat kissing zid, after hearing "love you"
<heat> never
<bnchs> i'm gay
<sakasama> Define gay.
<heat> zid, I actually need/want a good keyboard description database
<bnchs> gay = happy
<heat> because that would solve any issue
brunothedev has left #osdev [the-industrial-revolution-and-its-consequences-was-a-disaster-for-the-human-society-,-causing-mental-pain-in-the-first-world-and-physical-pain-in-the-third-world]
brunothedev has joined #osdev
<klange> You can have spaces in your quit message, just so you know.
zid has left #osdev [Test balls]
zid has joined #osdev
<zid> did it work
<FireFly> something they presumably alerady know since they've used spaces in part messages before
brunothedev has left #osdev [no-seriously,-i-dont-know-what-am-i-doing,-i-am-making-eveyone-miserable-because-i-dont-have-entertainmend. peace]
<zid> am I seriously going to have to disable part messages for the first time in 30 years
<zid> cus of one fucker bypassing ignore using it
<klange> imma kick all y'all unless some osdeving happens soon
<sakasama> I'm busy reinventing basic data structures. That qualifies, in a futile way.
<heat> i wrote a pseudo bdf2c in python
<zid> have you used a zidlist yet today
brunothedev has joined #osdev
<sakasama> No. That sounds obscure and prone to malfunctioning.
<zid> wow, blasted
<heat> something I *dont* handle is UTF-8 through write calls, i.e if you write a unicode codepoint with multiple write()s, you get multiple bad characters instead of a unicode codepoint
<zid> neat
<gog> i got ssh going
brunothedev has left #osdev [gonna-install-voidbtw]
<gog> now i can install arch
<zid> I had that issue with telnet
<heat> which is like, mildly incorrect and annoying, but who tf does this anyway
<heat> answer: bash on Onyx, for some reason
<zid> I really didn't wanna like.. strdup the packet and recombine it with the incoming one
<sakasama> heat: Why not write the raw bytes?
<zid> if someone sent me a bunch of data a character at a time
<heat> sakasama, write the raw bytes where?
<sakasama> ... wherever they were going to be written anyways?
<heat> this is all part of the VT console code, so I'm parsing bytes and storing stuff to "console cells"
<zid> they were going to be looked up in an array and turned into a column of bitmap
<zid> ultimately
<heat> which means I need a single codepoint instead of UTF-8 bytes which will end up in multiple cells
<zid> but you need all of the bytes at the same time to do that
<zid> so you'd need a client buffer that can be partially filled
slidercrank has quit [Read error: Connection reset by peer]
<zid> and to memmove the unparseable shit back to the start
<zid> or set it up as a ring buffer
<klange> either tell bash you're using a single-byte encoding, or join the 21st century and implement utf-8
slidercrank has joined #osdev
<zid> that's what we're talking about
<klange> smdh having a bash port but not bothering with utf-8
<heat> yeah so I think the correct impl is to just keep some utf8-to-32 conversion state
<zid> implementing people sending you utf-8 codepoints with a gap between the writes
<heat> but this is obviously prone to weird races with other writers? fucking weird man
<zid> I'd just add a small buffer to the 'client' state somehow
<klange> stateful parser
<zid> the question is which struct you hang it off
<heat> let me check linux
<heat> I bet 10 on how it's the global struct
<heat> so multiple writers will fuck it up
<zid> are 10 geese money worth anything
<zid> heat: telnet is worse because there's no limit to the length
<heat> yes it is
<heat> it's in the global console struct
<zid> I'm guessing just because that's the only vaiable place to hang it off
<zid> even though it isn't ideal
<heat> i mean, in theory you could hang it off the fd struct
<zid> they don't want an intermediate struct to lifetime manage that only handles buffering one character between the fd and the console
<heat> in fact it's probably a superior solution
<zid> yea but then you clutter the fd struct for everyone
<zid> and fds do not care about codepoints
<zid> do fds have any internal buffering?
<heat> well, the fd struct already has something like a void *helper; for the fs impl
<zid> If they did you could probably just set the watermark to 3 bytes and left 3 bytes in ti I guess?
<klange> The only thing that should ever care about this is the thing that's processing it, which is to say the terminal emulator itself.
<zid> leave* it*
<klange> None of this belongs in file descriptor code. None of this belongs anywhere near file streams.
<heat> so you can totally pack your utf32 codepoint there I guess, unless not 64-bit, in which case you probably can-ish but it still sucks
<zid> that's a good point, if you make it transparent then the terminal emulator is the thing that cares
<zid> and that's 100% clean
<heat> klange, this would not be in file descriptor code
<klange> you already presumably have some ANSI escape parser that is stateful; you throw another layer of state above that for parsing UTF-8.
<heat> yes
<heat> pretty much
<heat> but the fd-private utf8 stuff would be like: <searching for patch>
<zid> this just punts the question to the terminal though
<zid> how do you deal with multiple writers to the terminal emulator
<bslsk05> ​lore.kernel.org: [PATCH] ACPI: Make custom_method use per-open state - Pedro Falcato
<zid> line buffering?
<heat> in this case I really wanted per-fd context tracking so I hang the state off struct file
<zid> Well, thanks for the patch, but yes, they have. Sorry.
<heat> yeah it's Not That Simple and he reverted the removal patch
<heat> afaik this feature is still upstream and broken because he didnt take my patch yet (AFAIK)
Ram-Z has quit [Ping timeout: 260 seconds]
<klange> The terminal itself should have no concept of "multiple writers". It has a single TTY fd it reads from.
Ram-Z has joined #osdev
<heat> oh right
<heat> good point, the terminal never sees any struct file stuff
<geist> haven't watched all of it but https://youtu.be/3E5Hog5OnIM looks like it might be interesting
<klange> And the TTY layer shouldn't care about these things. Intermixed UTF-8 bytes is the least of your problems - what if one writer is trying to write an escape sequence and another writer writes at the same time? Are you going to have a whole escape parser in your TTY layer so it can keep them atomic?
<heat> yeah, no good alternative to global state there
<klange> (I suspect the answer is "no", and if the answer to that is "no" then that should also be your answer to whether you should do that to handle UTF-8 byte sequences)
<heat> klange, I think the TTY has some UTF8 options for Some Reason (which I haven't figured out yet)
<klange> (However, if your answer to that is "yes", then by all means, do the same for UTF-8)
<heat> #define IUTF8 0040000
<klange> heat: In Linux? Only to understand when backspacing that it should continue to delete on continuation bytes.
<heat> ah no, I see
<heat> this is used in linux as an indicator from the vt to the tty users that the terminal does support UTF8
<heat> it always does the correct thing on continuation bytes
<heat> ah wait no, it does not
<heat> it's also used for continuation byte stuff
<heat> but that's as far as special handling goes
<klange> It shouldn't, without IUTF8 it should only delete one byte from the input buffer on backspace, so that it can correctly support older single-byte encodings, particularly with real physical serial terminals.
<heat> yep, checks out
<heat> they had a macro I wasn't searching for
<klange> I don't support this myself :( but also I expect most things to be using my fancy readline replacement that understands not just UTF-8 but cell widths
<heat> one day i'll figure out tab backspacing
<heat> which is nuts although linux does seem to have it mostly figured out
<heat> I remember I did test on FreeBSD at the time and the results were slightly broken
<klange> there's some magic internal x cursor tracking thing, it's pretty crazy; I just cheated and made the canon buffer print tab as ^I (and then I support it like other control sequences that are easy to detect and backspace two cells for)
<klange> s/x cursor/cursor x/
<heat> yep
<klange> I think the cursor x tracking is extra dumb and goes by bytes, so a three-byte utf-8 sequence that is actually 2 cells wide appears to be 3 cells wide for the x tracking, and backspacing a tab after that puts the cursor one cell to the right of where it should be.
elderK has quit [Quit: Connection closed for inactivity]
slidercrank has quit [Ping timeout: 276 seconds]
<heat> oh yeah, have you handled like fancy console rendering for "exotic" languages
<klange> oh wait I don't have iutf8 on