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]
thinkpol has joined #osdev
<moon-child> c++ is a big pile of hacks piled on top of another pile of hacks that was recently forced to play fair with yet a third pile of hacks
<zid> Hey some of those hacks are innovative hacks
eddof13 has joined #osdev
nyah has quit [Quit: leaving]
<moon-child> indeed. I never would have thought there were so many ways to shoot one's foot off, but there you go!
<zid> C++ is the language that decided the phrase "combinatorial explosion" was a personal challenge
Valeria22 has quit [Remote host closed the connection]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #osdev
wblue has joined #osdev
zxrom has quit [Quit: Leaving]
[itchyjunk] has quit [Ping timeout: 246 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #osdev
[itchyjunk] has joined #osdev
Valeria22 has joined #osdev
wblue has quit [Quit: wblue]
Valeria22 has quit [Quit: Konversation terminated!]
Valeria22 has joined #osdev
<mcrod> i still say there are good features of C++, but I'm no longer in the OO camp
<mcrod> I never really was
<mcrod> but... I've been in corporate land too long
<mcrod> I've seen what happens
<moon-child> there are lots of good features of c++!
<moon-child> for example, c++ allows you to declare variables
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<moon-child> wait...bad example. All sorts of horrible things happen when you declare variables
<moon-child> uhmmm
eddof13 has joined #osdev
<mcrod> extra stuff available at compile-time is extremely useful
<moon-child> c++ allows you to call functions! No ... c++ allows you to allocate memory! ...hrm
<mcrod> non-crazy template usage is useful too
<mcrod> namespaces are useful
<moon-child> c++ metaprogramming and compile-time is awful
<mcrod> let me give you an example
<mcrod> there is an segmented display, and it cannot display certain characters
<mcrod> so you say `show_on_display("XY");`, and one or both of those characters cannot be represented on the display
<mcrod> compile-time error, not run-time anything
CaCode_ has joined #osdev
<moon-child> I'm not denying that expressive types or metaprogramming or compile-time computation or what have you are valuable
<moon-child> I'm just saying that c++'s execution of those things is horrible
<mcrod> oh you're just saying that C++ does it badly
<mcrod> yeah agreed then
MiningMarsh has quit [Ping timeout: 256 seconds]
CaCode has quit [Ping timeout: 246 seconds]
<moon-child> just like variables. Variables are great, but for some reason in c++ the idiomatic way to acquire a lock is to declare a variable
<moon-child> because that's the most concise interface which statically ensures some weak safety properties
CaCode_ is now known as CaCode
<mcrod> i also don't like that it removed features (e.g., restrict, designated initalizers until C++20) that were in C
<mcrod> also they STILL, STILL haven't reimplemented the array initialization syntax from C
<mcrod> i.e. int a[] = { [3] = 4, [5] = 7 };
<mcrod> there are points I think about C++ and am in a constant conflict of mind between both
<mcrod> but there are features of C that arguably make shit more maintainable, readable, more efficient
<mcrod> but it's a tradeoff
<mcrod> with C you'd lose RAII, which is arguably actually useful
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<mcrod> and some shit is essentially hostile to C; try using directx with C
<mcrod> won't be a fun time
netbsduser` has quit [Ping timeout: 248 seconds]
CaCode has quit [Quit: Leaving]
CaCode has joined #osdev
stolen has joined #osdev
frkazoid333 has joined #osdev
eddof13 has joined #osdev
netbsduser` has joined #osdev
heat has quit [Ping timeout: 246 seconds]
netbsduser` has quit [Ping timeout: 246 seconds]
CaCode has quit [Quit: Leaving]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #osdev
Valeria22 has quit [Quit: Konversation terminated!]
[itchyjunk] has quit [Read error: Connection reset by peer]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
netbsduser` has joined #osdev
netbsduser` has quit [Ping timeout: 246 seconds]
netbsduser` has joined #osdev
Yoofie5 has joined #osdev
Yoofie has quit [Ping timeout: 240 seconds]
Yoofie5 is now known as Yoofie
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #osdev
netbsduser` has quit [Ping timeout: 246 seconds]
stolen has quit [Quit: Connection closed for inactivity]
m3a has joined #osdev
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
netbsduser` has joined #osdev
air has joined #osdev
dormito has quit [Ping timeout: 240 seconds]
goliath has joined #osdev
netbsduser` has quit [Ping timeout: 246 seconds]
SGautam has joined #osdev
m3a has quit [Ping timeout: 240 seconds]
dormito has joined #osdev
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
eddof13 has joined #osdev
eddof13 has quit [Client Quit]
eddof13 has joined #osdev
antranigv has joined #osdev
zxrom has joined #osdev
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #osdev
eddof13 has quit [Client Quit]
eddof13 has joined #osdev
antranigv has joined #osdev
[itchyjunk] has joined #osdev
GeDaMo has joined #osdev
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
danilogondolfo has joined #osdev
Burgundy has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
antranigv has joined #osdev
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
node1 has joined #osdev
node1 is now known as chu-chu
<chu-chu> Hi
<chu-chu> I have question https://pastebin.com/raw/nYN81xHQ
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<bslsk05> ​plbrault.com: I Created the Nerdiest Game Ever | Pier-Luc Brault - Personal Website
antranigv has joined #osdev
nyah has joined #osdev
chu-chu has quit [Ping timeout: 246 seconds]
SGautam has quit [Quit: Connection closed for inactivity]
<bslsk05> ​drfreckles42.itch.io: You're the OS! by drfreckles42
phoooo has joined #osdev
phoooo has quit [Client Quit]
phoooo has joined #osdev
joe9 has quit [Quit: leaving]
CaCode has joined #osdev
<phoooo> hi, are there some good resources for qemu's mmio virtio?
Left_Turn has joined #osdev
CaCode has quit [Quit: Leaving]
phoooo has quit [Quit: Client closed]
bgs has joined #osdev
netbsduser` has joined #osdev
CaCode has joined #osdev
Brainzman has joined #osdev
phoooo has joined #osdev
MiningMarsh has joined #osdev
bauen1 has quit [Ping timeout: 260 seconds]
CaCode has quit [Quit: Leaving]
heat has joined #osdev
<heat> phoooo, the spec
<phoooo> the virtio spec?
<zid> Also you know, qemu itself
<zid> I'm a big fan of randomly adding printfs to qemu
<zid> because I am too lazy to implement an entire -d for it
<heat> yes
<heat> also what zid said, can be useful to find bugs in your drivers
<heat> works for anything qemu emulates
<heat> also FWIW -trace can give you nice debug output out of the box
<zid> I got sort of far into writing a virtio network card
<zid> but needed msis or whatever and never bothered to hook those up
<heat> you don't
<zid> https://github.com/zid/boros/blob/master/virtio.c was the only part I committed it seems
<bslsk05> ​github.com: boros/virtio.c at master · zid/boros · GitHub
kaitsh has joined #osdev
<sham1> > u8
<zid> Yes.
<heat> yes.
<zid> unsigned char is hard to type
<heat> uint8_t is a bruh moment
<heat> unsignedintegerof8bits_type
<zid> also makes you need -std=c99 for no reason
<zid> all of this code is C89
<heat> WG14 mofos were this close to that
<sham1> > c89
<heat> > sham1
<zid> Yea found the cringe part
<zid> > sham1
<sham1> Nah, I think the cringe part is using C90
<Ermine> what's wrong with uint9_t
<zid> github now having a caret is the cringe part of this
<sham1> It's pessimal
<Ermine> uint8_t*
<zid> die ermine
<sham1> And yeah, GitHub is also cringe
<sham1> The Ermine
<phoooo> oh, okay thanks!
<heat> np
<zid> also github megacringe
<zid> [class] virtio_pci_cap
<heat> CLASS??? IN MY C CODE??
<zid> 100% sure I don't have any fucking classes, github
<zid> it means [type] struct virtio_pci_cap
<heat> what git web interface isn't cringe?
<heat> gitiles?
<Ermine> zid: one day your request will be fullfilled?
<zid> gititties?
<heat> im not sure gititties exists
<heat> yet
<zid> Ermine: I'm patient, I can wait, see you in 2080
kaitsh has quit [Client Quit]
<Ermine> see you too
<sham1> heat: souecehut
<heat> sourcehut is mega cringe
<zid> This code needs co-routines but I refuse to dirty it up by using them
<heat> there's literally no git web interface cringier than sourcehut
<sham1> GitHub
<Ermine> srht is fine
<Ermine> yes
<heat> im a google shill
<heat> give me gitiles and gerrit
<qookie> zid: RIIC++20 and use the new language-provided coroutines :^)
<Ermine> heat: join minix, we have gerrit
<qookie> they're great
<sham1> The meme is RIIR
<heat> Ermine, we?
<heat> are you a minix now?
<zid> qookie: what the fuck is a RIIC
<zid> or a ++20
<sham1> Rewrite it in C++20
<zid> why would I do that
<sham1> Coroutines, obviously
<heat> C++20 has coroutines if you feel like randomly allocating things on the heap
<Ermine> heat: I send patches there from time to tume
<zid> hire someone to rewrite my own code, in a language I can't maintain, to make the code less good?
<zid> Not sold
<heat> mjg, motherfucker minix patchen when
<sham1> Anyway, C++ is pessimal
<Ermine> Last time was well before idea of bootloader
<heat> C++ and the p in plus means pessimal
<sham1> Anyway, C90. Imagine having to declare variables at the top of the scope
<sham1> Smh my head,
<sham1> What is this, Pascal?
<heat> no one is using C90 here
<heat> why would you use an ISO C standard?
<heat> ANSI >>
<sham1> ISO >> ANSI
<sham1> Does ANSI have a standard for brewing tea?
<Ermine> I used to hate having to declare variables at the top, but now I used to do like this
<sham1> I thought not
<mcrod> hi
<zid> ISO is infact > ANSI
<zid> maybe I will switch to C90
<heat> mcrod, hi rich american husband
<heat> ANSI > ISO right
* mcrod hug heat
<Ermine> sham1: IETF has coffeepot management protocol
<mcrod> i thought we could go to japan for our honeymoon
<heat> > weeb
<zid> Ermine: I vastly prefer it, imo it's just bad code if you feel the need to suddenly declare some random variable later on, means you meant to write two functions but crammed them into one.
<heat> goodbye rich american husband
<mcrod> :(
<zid> I'd rather die than use an ANSI keyboard for example
<sham1> Yeah, I can't use an ANSI layout keyboard. Just feels weird
<heat> how many of yall use dvorak
<zid> it
<zid> 's great
<heat> i bet there are some dvorak users here
<zid> you never ever hit enter instead of apostrophe, because you can
<zid> 't make your fingers adapt
<sham1> Dvorak? I don't fall for scams, sorry
<mcrod> i can never use anything other than qwerty
<Ermine> heat: it's the part of making super secure computer, since only you will be able to use it
<zid> I got to like, 1wpm on dvorak
<zid> in 15 mins
<zid> My friend had a DAS KEYBOARD (no letters printed on the keys) with his layout set to dvorak
<zid> the police were so annoyed that it was reported in the press
<zid> when he was arrested
<mcrod> I used to have a keyboard with no letters printed
<mcrod> but then everyone got mad at me when they needed to use it
<mcrod> so, i stopped that.
<sham1> Why would you need letters on the keys
[itchyjunk] has joined #osdev
<zid> My keys are slowly turning white
<heat> btw linkdd cool game
<zid> because I couldn't find a keyboard without *any* RGB
<heat> kernal job hard :(
<zid> I linked it first heat
<Ermine> linkdd
<zid> he copied me and he gets the rewards, fml
<Ermine> ?
<heat> btw zid cool game
<zid> thanks heat
<mcrod> of course you would want a keyboard without RGB
<mcrod> you don't like anything fun
<sham1> I've just given up on getting stuff without RGB. My keeb has them but I don't have them on
<heat> RGB is cringe, not fun
<mcrod> et tu, sham1?
<zid> because I couldn't find a keyboard without *any* RGB. It has white transparent keys, with black paint, and a hole in the paint for the letter, so the light goes through.
<zid> Which just mean the paint slowly rubs off
<heat> it's like MSI GAMING EPIC MEGA GAMER GAMING DRAGON GAMER motherboards
<mcrod> i like rgb :(
<heat> GAMING OPTIMISED USB 3
<linkdd> heat: :)
<zid> but now they all look like kirby
<sham1> mcrod: I like RGB as well. My problem is that my KB would run out of battery faster were I to have it on
<mjg> heat: lol @ minix
<mjg> but now that you mention it, maybe i should bench it
<sham1> Kirby!
<linkdd> zid: i haven't seen you paste it
<bslsk05> ​plbrault.com: I Created the Nerdiest Game Ever | Pier-Luc Brault - Personal Website
<bslsk05> ​drfreckles42.itch.io: You're the OS! by drfreckles42
<linkdd> i did not say you didn't
<linkdd> i said i did not see it
<zid> You m issed it by 3-
<zid> yea okay
<zid> calm down
<zid> I was mad at heat not you
<linkdd> i'm calm :)
<zid> heat is always an awful person
<bslsk05> ​github.com: running stress-ng on Minix 3.4.0-RC6 on amd64 assert in vm/region.c:313 · Issue #333 · Stichting-MINIX-Research-Foundation/minix · GitHub
<zid> you get the benefit of the doubt
<mcrod> i have a ducky keyboard
<mcrod> and I was told they were the best keyboards money could buy
<mcrod> the most important key to me, the left ctrl key, is janky
<linkdd> zid: i saw the game because a coworker gave me the link
<mjg> Ermine: :p
<linkdd> i did not bother to backlog the channel
<zid> I also type in morse using ctrl, mcrod
<mjg> Ermine: lmao
<linkdd> my bad
<zid> I said it's fine
<zid> I just wanted to punish heat
<linkdd> :)
<zid> for his blatent disregard for me
<mcrod> do you realize how annoying it is to copy and paste or open a new tab or anything
<zid> I think 'e' being broken would be the worst.
<zid> mcrod: I use shift-insert for paste
<mcrod> wtf
<mcrod> well I guess it's not a big deal
<kof123> i use c89 because i need it to rot and become reflective: for all corruption is generation, and therefore ought blackness to be much disired; for that is the black sail with the which the Ship of Theseus came back victorious from Crete, which was the cause of the death of his Father; so must this father die, to the intent, that from the ashes of this Phoenix another may spring, and that the son may be King.
<zid> shift-insert's kinda nice
<mcrod> right shift and insert are close enough
<zid> eww right shift
<zid> I've never pressed right shift ever
<mcrod> you use left shift for that?
<mcrod> okay now you're just weird
<zid> ISO keyboard means you hover top right of right hand side
<zid> not middle right
<heat> i dont use right shift either
<linkdd> i use "select text with mouse" + "middle click" to copy/paste
<zid> on the line between backspace and enter
<zid> ANSI has a fucking # in the way
<zid> or / or whatever it is
<linkdd> or in windows terminal, select+right click = copy, right click again to paste
<heat> portugeese keyboard better than whatever garbage you type in
<heat> çççççççççççççç
<zid> ééééééééééééé
<heat> º
<zid> windows' uk layout is gastly, the linux one is decent
<zid> altgr+letters gives you greek/whatever versions
<zid> on windows only like, 4 keys do anything with altgr
<heat> i've complained about this a bunch of times before but macs have a different unified portugeese layout so i cant use their hardware
<zid> you can buy ANSI macs in the UK
<zid> WHY IS THIS A THING
<heat> i also cannot type with any other layouts (US included)
<sham1> Because Apple is, you guessed it, pessimal
<zid> I don't mind other layouts as much as I mind other physical layouts
<zid> I physically cannot do ANSI
<heat> Apple and the p stands for pessimal
<zid> wrong keys and in the wrong spots
phoooo has quit [Quit: Client closed]
<zid> I can't just learn to type lik`e this or whatever as though it were portugal
<zid> I have to type using different fingers
<zid> sort of like, I don't care how many gears as long as it's a manual, vs having to change gear with your chin
<heat> línúx
<Ermine> compose ftw
<heat> emacs ftw
<zid> can emacs move the keys on an ansi keyboard
<mjg> Ermine: lmao that's on top of 1 cpu
<Ermine> mjg: smp is still not supported, yes
<mjg> :DD
<mjg> lol
<mjg> ok
<heat> see mjg
<heat> it scales perfectly
gildasio has joined #osdev
<heat> 1:1 to the number of CPUs enabled
bauen1 has joined #osdev
<zid> I only support AMP
<mjg> heat: MINIX IS WINNER
<zid> If your cores are the same speed I don't want them
<mjg> my search is finished
<zid> My OS requires a z80 and an i9
<zid> on the same bus
<mjg> z80 being the high perf core
<heat> SAPPHIRE SLOWS
<zid> basically, a modern intel
<zid> z80 + i9 = i7 12th gen
<mjg> heat: do you know abut big rig racing
<nortti> i9 being an abbreviation for intel i9601;5D
<heat> yes
<mjg> aight
<nortti> what the fuck happenend there
<mjg> WHERE KURW^W
<zid> i810 is the only intel product worth using.
<heat> nortti, terminal escape codes getting escaped!
<heat> mjg, why did you ask me if i was similar with a racing type and then just "aight"ed the fuck out
<heat> am i some sort of social genz test subject
<sham1> Yes
<mjg> heat: that was just after i said MINIX IS WINNER
<mjg> heat: would you reevaluate being familiar with big rig racing
<mjg> one of the worst games ever made
<heat> oh, the video game
<heat> yes
<heat> i am also familiar with that big rig racing
<mjg> sounds like minix is the big rig racing of systems innit
<mjg> eh heh
<mjg> do you beat minix in single-threaded perf tho mofer
<heat> probably
<heat> its a fucking microkernel
<heat> hard not to
<mcrod> when i was like 14
<mjg> heat: obsd likely does not
<mjg> :d
<mcrod> i watched an ast video
<mcrod> and i was convinced that microkernels were the future
<mcrod> then i grew up
<mjg> who told you that, Tod Roller?
<mcrod> not saying that they don't have their place certainly, but
<mcrod> who the hell is that
<mjg> a known troller
<heat> i dont know if microkernels are the future
<mcrod> i don't believe they are
<linkdd> the future was yesterday
<heat> but you can probably get a fast microkernel if you so try
<mcrod> it entirely depends on the use case
<heat> the thing is that no one gets into microkernels for speed
<mcrod> safety-critical, high security oriented shit? microkernels
<heat> so no one ends up trying
<mcrod> isn't zircon a microkernel
<heat> but like, the switch is a microkernel and works fine, high perf stuff
<heat> yes
<heat> the switch's kernel is also one
<mcrod> ah neat
<heat> while PS4 and 5 are bastardized FreeBSD, xbox is bastardized windoze
<mcrod> i'm still in the camp of monolithic kernels
<sham1> Microkernels are the future
<mcrod> despite the legitimate security issues with them
<linkdd> what about nanokernels?
<mcrod> but, I want speed
<mcrod> speed is all I care about
<heat> nano is too small
<linkdd> or picokernels
<mjg> are microkernelz a sensible choice if you were to rewrite stuff in RUST
<sham1> Well nanokernels
<heat> even smaller pal
<mjg> (not a joek qustion)
<heat> mjg, yes
<heat> rust still crashes
<mjg> well ofc
<heat> rust did not fix crashing
<sham1> I'd ideally have nothing in kernel space
<heat> nor bugs
<linkdd> mjg: the real question is, is rust a sensible choice if you were to make a microkernel?
<heat> the real question is
<heat> is rust
<linkdd> sham1: emptykernel?
<mjg> linkdd: mate i'm not going to rant about rust
<sham1> Yes. Voidkernel
<heat> Linuxkernel
<sham1> Is rust a sensible choice? No
<heat> no thats not the question
<heat> my question is: is rust?
<sham1> No
<mjg> i'm saying, unless you are aiming for maximum reliability, it may be something like rust moves the line between making micro vs mono
<linkdd> heat: only if you apply water on metal long enough
<mcrod> i think rust would help if you were writing a monolithic kernel if only to reduce some types of bugs
<mcrod> but nothing beyond that
<nortti> < sham1> I'd ideally have nothing in kernel space ← iirc the amigaos kernel mostly ran in user mode, though that is a more reasonable setup when you don't have memory protection
<mcrod> i don't believe in the whole promise of rust at all
<mcrod> no language is going to stop you from being stupid
<linkdd> mjg: the language should have nothing to do with the architecture design
<linkdd> it's an implementation detail
<heat> mcrod, boring ass embedded dev take
<mcrod> eat me
<heat> you're just sad your AVR chip doesn't have rust
<heat> else you'd be importing all sorts of shit crates
<mcrod> pfffff
<heat> tokio
<sham1> Well, in some sense I'd say that it's less that there's nothing in kernel space, but that there'd be no difference between the kernel and any other program
<mcrod> i remember when AVR was hot shit
<mcrod> before ARM killed them
<mcrod> as it should have
<linkdd> sham1: a unikernel then
<sham1> Well not that either
<heat> linkdd, wrong
<mjg> linkdd: if the argument for micrkernels is that *C* monolithic kernels can crash too easily, and a claim is that rust makes crashing less likely, it very much is an argument
<heat> microkernels are only relevant cuz 1) C is unsafe af 2) bugs
<linkdd> mjg: badly written C can crash too easily
<mcrod> I really really want to play with INTEGRITY
<nortti> what's up with seL4 nowadays actually? can they do SMP now?
<mjg> so you are in the "just write good c bro" camp
<sham1> Like you could do "single address space" stuff, especially if you used something like Lisp or whatever, but for C stuff? Eh
<linkdd> you can write safe C, we have sanitizers, formal verification, etc...
<heat> no one does SMP except onyx and linux
<mcrod> linkdd: sanitizers don't catch everything
<heat> C formal verification is LULZ
<linkdd> where do you think rust came from if not from the work on "safe C" that has been done in the last 40 years ?
<nortti> outside of seL4, are there "big" formally verified C codebases?
<sham1> Mozilla having NIH syndrome and not having heard of Ada
<nortti> I'd guess possibly in proprietary space
<bslsk05> ​github.com: ASAN not reporting out of bounds access in a global array · Issue #1553 · google/sanitizers · GitHub
<heat> nortti, my friend has a formally verified PE loader for UEFI firmware
<heat> but thats about all I know
<nortti> nice
<linkdd> mjg: point is, the language, being safe or not, is an implementation detail
<linkdd> rust is not more suited for microkernels than C
<heat> and ofc not many people use it because the borked unsafe crap is needed for random garbage and vendors dont want to risk it nor do they care
<linkdd> nor C is more suited for it than rust
<heat> no
<mcrod> i don't believe that
<zid> mainly because it isn't true
<mjg> i'm bailing frmo this convo
<linkdd> mcrod: facts don't need you to believe in them :)
<heat> anyway VIM VS EMACS
<mjg> TABS VS SPACES
<mcrod> 2 space indentation
<mcrod> that is the holy grail
<heat> SOLARIS VS LINUX SPARC
<mjg> what
<mjg> SOLARIS
<mjg> there is no competition
<nortti> teco is pretty nice editor, and indentation should use record separator
<heat> DAVE MILLER VS BRYAN CANTRILL
<mcrod> have you ever kissed a girl?
<linkdd> you could argue there are safer languages than rust, then why not considering them for your microkernel?
<sham1> Why would you need to make it a microkernel for those languages
<sham1> You could just run in one address space and let the language handle the safety
<linkdd> answer: because it's an implementation detail that have very little to do with the architecture design
<sham1> You'd also get the benefit of stuff like your "system calls" being the same as any other function call
<heat> mjg, BSD open-source class traitors vs GNU proletariat software
<mcrod> sham1: that's what I'm saying
<heat> AT&T vs University of California
<sham1> It's not really an implementation detail in that sense. Some languages don't let you express unsafe stuff as such
<mcrod> if the language can natively guarantee things, your requirements for security/safety that you have to implement go down
<mcrod> read: that does not mean that you don't think about those things
<linkdd> mcrod: it's still an implementation detail. yes you can have better tools to build your house, but the tools you use do not define "the house"
<sham1> For example, if I'm implementing a kernel in Lisp, I'd need some unsafety, but I can hide that such that the other programs don't need to see it, and then I could just run the programs next to the kernel
<mcrod> linkdd: i never said it wasn't an implementation detail
<heat> >I'm implementing a kernel in Lisp,
<heat> found the bug
<mjg> OOH
<mcrod> i'm simply saying that some languages have better traits than others; while C is an extraordinarily powerful language it is also easily prone to writing buggy code
<linkdd> mcrod: the question was "should i make a microkernel if i'm doing osdev in rust"
<linkdd> which is irrelevant
<linkdd> should i make a house if i have a hammer?
<heat> if FreeBSD were GPLv2 we'd have access to glorious upstreamed sony PS4 system calls
<heat> automatic eyebleach
<sham1> More like Sony would have implemented their own stuff
<linkdd> choose the design, then the tools.
<heat> what no
<sham1> Copyfree > copyright
Brainzman has quit [Quit: Brainzman]
<sham1> And with copyright I even include copyleft
<heat> do you realize how hard it is to write a good operating system?
<sham1> I know
<sham1> And I'm sure sony knows
<heat> there's a reason why most companies do not try
<mjg> it is super easy, barely an inconvenience
<sham1> Since they've done it
<heat> it's a money pit
<heat> no they have not
<mcrod> the playstation 1 kernel might've been licensed from someone else
<nortti> what kernel?
<heat> whatever shitsoftware was in older sony products has nothing to do with mega entertainment high performance gaming software thing for many threads and high powered gpus
<mcrod> well I wouldn't call it a kernel
<mcrod> but it sorta kinda has POSIX interfaces kinda barely
<gog> we love a unix
<heat> believe it or not, the problem with upstreaming things is that its hard and sometimes legally costly
<gog> or a thing pretending to be unix and implementing its system calls
<heat> if linux is cheaper, people generally use linux
<mcrod> we use FREERTOS
<mcrod> embedded linux would make absolutely zero sense for what we do at work
<mcrod> z e r o
<heat> this is so embedded its making me sick
<mcrod> it's beautiful
<Ermine> gog: may I pet you
<heat> anyway sony uses freebsd because then sony does not have to even try to release the code
<gog> yse
gildasio has quit [Remote host closed the connection]
<nortti> < mcrod> but it sorta kinda has POSIX interfaces kinda barely ← are you talking of the libraries you get with the SDK that are included on your game disk?
* Ermine pets gog
* gog prr
<heat> not that anyone wants to see that shit
<mcrod> nortti: besides those
<Ermine> Minix could support smp if there was anyone to put effort in this
<gog> freebsd freebsd freebsd
<sham1> Open
<heat> netbsd!!!
<mcrod> I could be totally wrong and talking straight bullshit but I seem to recall the BIOS having a unix like interface - one sec
<nortti> honestly I did not realize there was anything that stayed resident pre-ps3 once the game booted up
<Ermine> dragonfly dragonfly dragonfily
<gog> i think kernel is a cool guy eh implements system calls and doesn't afraid of anything
<mcrod> most games often patch BIOS functions because that BIOS is an incredibly inefficient unstable piece of shit
<heat> kernel was invented by mr. linus kernel
<sham1> gog: get your 2000s memes out of here
<mjg> there is only one kenrel
<mjg> kernel.org
<gog> sham1: no u
<heat> good point mjg
<mjg> everyone else is trying to run on the hype
<Ermine> There's only KERNAL
<mcrod> ok yes I'm wrong, the BIOS basically just implements a buggy libc
<heat> if freebsd kernel so kernelw hy not kernel.org but freebsd.org
<heat> are you hiding something
<gog> linux is _the_ kernel
<mcrod> among other things
<mcrod> see here for some sadness: https://psx-spx.consoledev.net/kernelbios/
<bslsk05> ​psx-spx.consoledev.net: Kernel (BIOS) - PlayStation Specifications - psx-spx
<gog> i'm a buggy libc
<heat> gog, i use FreeBSD/Linux
<mjg> heat: the freebsd project is hiding that the full name is in fact BSD/kLinux
<Ermine> Windows is _the_ krnl
<gog> gnu/kfreebsd
<heat> or as ive recently taken to call it, FreeBSD + linux
<mcrod> gog: may I hug you
<gog> mcrod: yes
* mcrod hugs gog
* gog hug
<sham1> kernel.dll
<gog> kernel32.dll
<heat> mjg, sys/ is a false flag
<heat> it's not even compiled
<heat> make buildworld just downloads the RHEL kernel
<Ermine> Windows is still 32bit because there's no kernel64.dll
<gog> kernel69.dll
<mjg> heat: dude i don't even have the directory
gildasio has joined #osdev
<mjg> heat: and i'm developing the system
<sham1> RHEL bas
<heat> yes "developing" the "system" haha
<sham1> Bad
<mjg> feels == hurt
<mjg> :(
<sham1> Frick it. Write the kernel in Java
<heat> fun fact: bmake is not a thing
<heat> it's actually a symlink to GNU make
<sham1> Revive JavaOS
<mjg> bmake is gmake with intentinally fucked syntax
<mjg> no there is a change so that you can write bmake files which don't worth with gmake
<mjg> but it can be disabled with LOL_DONT_PRETEND=1
<heat> GNUIXLY_CORRECT=1
<sham1> OS DEVELOPMENT CUM MAVEN
<mjg> LOL_SHIM_TOO_SLOW_JUST_RUN_STOCK_GLIBC=1
<mjg> i have it in my .profile
<Ermine> I was surprised the first time when make didn't work with my makefile on minix
<zid> Ermine: It is, you have to boot a linux livecd and rename system32 to system64
<zid> then reboot into windows
<Ermine> I genuinely want to try it
<zid> 100% guarenteed to make your system much faster
<Ermine> But it still will have kernal32.dll
<zid> you can rename that too
<zid> but you have to do system64 first else it won't work
<Ermine> Is there some find one-liner to rename all the files like this?
zxrom has quit [Ping timeout: 248 seconds]
<zid> It's only two
<Ermine> Ah ok
<zid> unless you want 64bit gdi as well
<Ermine> Want
<zid> but imo 64bit gdi is a mistake
<zid> all the lines end up too long by 4 pixels
<Ermine> Wow that really worked, thank you zid! Now my windows boots faster than linux!!!
<heat> LOSERinux
<mjg> lmao i don't even reboot my linux
<mjg> so i tried TRINITY on linux, old school fuzzer
<mjg> it crashes :s
<heat> oh really?
<heat> the fuck did you find?
<mjg> the fuzzer crashes
<mjg> almosti nstantly
<heat> Trinity: Linux system call fuzzer.
<heat> "After the initial euphoria of witnessing the explosion had passed, test
<heat> director Kenneth Bainbridge commented to Los Alamos director J. Robert
<heat> that while watching the test he was reminded of a line from the Hindu
<heat> Oppenheimer, "Now we are all sons of bitches." Oppenheimer later stated
<heat> scripture the Bhagavad Gita:
<heat> Now I am become Death, the destroyer of worlds."
<heat> omg they quoted the movie i cant believe it
<heat> i'll write a fuzzer and quote barbie
<heat> "hi barbie!" - barbie 2023
<mjg> epic foreshadowing for existence of the movie innit
<mcrod> god i'm hungry
<linkdd> eat
<mcrod> but what to eat
<mcrod> i feel like pancakes
<linkdd> food
<Ermine> föd
<Ermine> Citing anime is a better idea
Matt|home has joined #osdev
<mjg> so i tried another fuzzer, iknowthis by taviso
<mjg> after some finessing it compiles but also crashes
<mjg> [92998.826066] traps: iknowthis[18021] trap int3 ip:7f6a1cd177d7 sp:7ffd03d20d30 error:0 in libglib-2.0.so.0.7400.6[7f6a1ccd9000+8d000]
<mjg> loller
<Ermine> glib lmao
<mjg> for curious why even bother. things liek syzkaller are NOT exhaustive and short of writing your own fuzzer, it is a cheap shot to try and old one
<mjg> as for why bother with any of this, for lulz, that's why
<zid> There is only one anime worth citing ofc
<zid> actually make that two
<mjg> > anime
<mjg> > worth citing
<zid> May your journey overflow with curses and blessing.
<heat> mjg, syzkaller is a lot more exhaustive than those shit fuzzers
<heat> shtizzers
<mjg> wold you like to restart your life
<heat> yes
<zid> Let's eradicate them all, sosu.
<mjg> heat: of course it is. the point is the hsitters may happen to be doing something syzkaller is not
SGautam has joined #osdev
<heat> well, yes, the shitters will be more direct to certain problem points
<heat> like bad pointers, etc
<mjg> back in the day it was a classic that you would tweak a fuzzer
<mjg> and suddenly bugs come out
<mjg> even tho the kernel seemed rock solid
<mjg> that's after years of already fuzzing
<heat> no kernel is solid
<heat> except onyx
<heat> onyx kern good
<sham1> Gpl
<sham1> Not even on e
<heat> genunix > vmonyx > vmlinux > bsd kernel
<mjg> you don't give justice to genunix
<mjg> also you may want to insert minix before vmonyx
<heat> genuni >> vmonyx
<heat> x
<heat> no microkernel is good
<mjg> geunix > NOTHING FOR IN THE OBSERVABLE UNIVERSE > minix > vmonyx
<mjg> i would use minix every day over onyx
nvmd has joined #osdev
<heat> bad choice
<mjg> 1:1 scalability
<heat> ...
nvmd has quit [Max SendQ exceeded]
<heat> good point
<heat> i cant beat that
<mjg> fucking linear scalability up to 1 cpu
<mjg> literally can't do better
<heat> O(1) scalability
<heat> it's always FAST no matter how many cpus you throw at it
nvmd has joined #osdev
<heat> Ermine, http://gerrit.minix3.org/q/status:open looks dead?
<bslsk05> ​gerrit.minix3.org: Gerrit Code Review
<mjg> click merged
<mjg> glorious
<Ermine> heat: yes
<bslsk05> ​gerrit.minix3.org: Gerrit Code Review
<heat> microkernel supremacy
<Ermine> I didn't learn how to use gerrit yet, so I send patches to github mirror
<Ermine> heat: this is from netbsd afaik
<mjg> so they don't even have typos to fix
<heat> yeah dh last touched it and everything
<Ermine> And last time netbsd stuff was imported it was netbsd 6.x or 7.x, i don't remember
<Ermine> dh == dholland?
<heat> yes
<heat> the fuck
<heat> is worm just a less challenging snake?
<heat> yep
<heat> also gotta love bsd cruft macros and cdefs.h
<mjg> so it was June 1983, I was cocked up like a businessman in a period-accurate movie
<Ermine> I totally love them too heat
<Ermine> minix/* stuff is clearer imo
<heat> also macros that are literally words
<sham1> WINDOW
<heat> void lint() { int linux = 0; }
<mjg> heat: maybe it was pretty fucked on an actual terminal
<Ermine> Which ones?
<heat> fuckin lint
<heat> and old school compiler macros like linux
<heat> i don't know if the BSDs still have those though
<mjg> /* NOTREACHED */
<mjg> int loller = 0; /* shut up gcc */
<heat> int
<heat> main(int argc, char *argv[])
<heat> return ls_main(argc, argv);
<heat> {
<heat> /* NOTREACHED */
<heat> }
<heat> literally just saw that
<heat> thank god that comment is there
<Ermine> netbsd is the most old school of them all I guess
<mjg> rust foreshadowing
<mjg> Ermine in what sense
<heat> static analysis but in C comment parsing
<zid> That's a archaic of writing /* [[unreachable]] */
<zid> sorry
<Ermine> heat: ksh is full of K&R function definitions
<mjg> bro ksh source code is so shit
<mjg> e
<zid> [[std::namespace::features::namespace::parser::hints::unreachable]]
<Ermine> s/k//
<heat> s/ksh//
<heat> reject source code
<Ermine> rm -rf src
<sham1> Does ksh sources have those weird Pascal-like BEGIN and END macros like the original sh did
<heat> oh ew
<heat> you know what's horrendous?
<heat> programs that exit() in fucking main
<sham1> return(0);
xenos1984 has quit [Read error: Connection reset by peer]
<Ermine> better yet, _exit()
<Ermine> or _Exit()
<sham1> At least _exit and _Exit do it fast
<heat> return(); is peak BSD
<Ermine> and sizeof without ()
<Ermine> heat: more shit like this is available at netbsd.org
<sham1> sizeof without parentheses disgusts me
<sham1> Like yeah, I *know* it's not a function, but still
<heat> if (ferror(stdout))
<heat> exit(1);
<heat> exit(0);
<heat> /* NOTREACHED */
<heat> IN FUCKING MAIN
<sham1> Back when they didn't have _Noreturn in exit
<heat> WHY ARE YOU EXITING
<sham1> Plan9 influence, clearly
zxrom has joined #osdev
<Ermine> heat: if you want to ridicule over minix code, please go to minix subdir. Everything else is literally netbsd code
<heat> static bit_t alloc_inode_bit(sp, parent, is_dir)
<heat> struct super_block *sp; /* the filesystem to allocate from */
<heat> int is_dir;/* inode will be a directory if it is TRUE */
<heat> struct inode *parent;/* parent of newly allocated inode */
<heat> nope nope nope nope nope nope nope
<zid> will be? not is?
<zid> oh, alloc_, yea, will be
<Ermine> Is it ext2?
<heat> yes
<sham1> It's K&R C. Frick
<heat> construct_tree(struct inode * dir, struct file * files)
<zid> K&R C is bad, sosu
<Ermine> Iirc i converted the definitions to modern in my repo
<heat> FUCK FUCK FUCK FUCK FUCK
<zid> so is the space before and after the *, sosu
<sham1> Damn fence sitters
<heat> EVERYBODY GANGSTA UNTIL MIDDLE ASTERISK POPS UP
<zid> sham1: they should make up their minds, sosu.
<sham1> PICK A SIDE
<sham1> > sosu
<zid> The correct side, preferably, sosu.
<bslsk05> ​github.com: Cleanup: convert K&R-style definitions to ANSI-style in minix/fs by petershh · Pull Request #321 · Stichting-MINIX-Research-Foundation/minix · GitHub
<sham1> Stop weebing at me
<zid> NO, sosu.
<heat> Ermine, oh thats you, cool
m3a has joined #osdev
<heat> Ermine, btw WHAT THE FUCK IS UP WITH THE FUNCTION HEADERS
<sham1> heat: show us
<bslsk05> ​github.com: minix/minix/fs/mfs/read.c at master · Stichting-MINIX-Research-Foundation/minix · GitHub
<sham1> I want to see this
<heat> literally does nothing
<heat> it is nothing
<heat> says nothing
<Ermine> Outdated file system anyway
<Ermine> With very limited file name length
<zid> https://www.youtube.com/watch?v=R8FKoYB570U faputa best girl, sham1.
<bslsk05> ​'Faputa gets a Head Pat' by TheSteamMachine (00:00:30)
<bslsk05> ​www.lysator.liu.se: Rob Pike: Notes on Programming in C
<Ermine> heat: wdym function headers?
<sham1> It discusses a somewhat similar commenting style
<zid> what's a function header
<zid> is heat making things up again
<heat> fuckin doxygen shit
<sham1> > Don't laugh now, wait until you see it in real life.
<heat> or javadoc or kernel-doc or whatever
<sham1> That ain't no javadoc
<sham1> Javadoc is good
<Ermine> that /*==* * funcname * *==*/ stuff ?
<zid> is that an ascii art train
<heat> yes
<zid> good to know
<heat> it says *nothing*
<Ermine> Yes
<Ermine> I'd remove them too
<heat> no shit *funcname*, i can read the line right below
<heat> also i can see the linux in minix and that's funny
<Ermine> ?
<Ermine> linux macro?
<heat> struct super_block, struct inode, struct buf *bp
<heat> *many* bps in linux fs/ext2
<sham1> See, comments are a code smell. And bad comments smell twice as badly
<zid> /* THIS IS A FUNCTION */ int f(void){...}
<zid> orly
<Ermine> heat: is it bad?
<sham1> Probably more amusing
<heat> yeah not bad just amusing
<heat> linux (at least these vfs bits) were clearly inspired by minix
<heat> also getdents
<sham1> It manipulates teeth?
<zid> yep
<Ermine> getdents is everywhere
<Ermine> Yet nonportable
<bslsk05> ​github.com: minix/minix/kernel/smp.c at master · Stichting-MINIX-Research-Foundation/minix · GitHub
<sham1> > u32_t
<sham1> I hate that even more than u32
<Ermine> wow, cool
<zid> unsigned_integer_32_bits_t
<sham1> Also, is that a bloody `volatile` I see in a struct!?
<heat> mjg, the game is on, minix has SMP
<Ermine> what's wrong u32
<zid> I've never considered putting volatile on every member of a struct
<zid> rather than making the struct pointer volatile
<zid> I am learning good things here
<sham1> Why Tanenbaum, why
<heat> void smp_schedule_sync(struct proc * p
<heat> MIDDLE STAR
<heat> MIDDLE STAR
<heat> MIDDLE STAR
<sham1> > wait_for_APs_to_finish_booting
<sham1> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
<Ermine> heck
<Ermine> lmao
<sham1> NO CAPITALS ON SNEKCASE
<heat> oh god middle star is everywhere
xenos1984 has joined #osdev
<sham1> DANGER NOODLE NAMING NO CAPS
<sham1> And it's not even consistent!
<heat> i've seen return(EINVAL); and return EINVAL; in the same func
<mjg> #define barrier()do { mfence(); } while(0)
<heat> PE
<heat> SS
<heat> IM
<heat> AL
<Ermine> heat: where?
<sham1> That typing was pessimal
<heat> Ermine, do_fork.c
<Ermine> I'll note that one
<Ermine> Will fix one eternity later
<heat> anyway enough shitting on minix
<Ermine> That's fine
<heat> horrendous code but whatever
<mjg> wait i have not seen their spinlokkkz yet
<heat> its just running on EVERY INTEL COMPUTER
<mjg> wow they even have build.sh
<mjg> it is a netbsd project
<Ermine> mjg: as I said, everything besides minix subdir is from netbsd
<Ermine> I hate build.sh too
<mjg> netbsd is winner
<Ermine> One reason they chose netbsd is RUMP, which supposedly will ease porting netbsd drivers
<heat> netbsd is wiener
<Ermine> wiener process
<sham1> Well since make sucks, might as well sh
<sham1> At least there you have conditionals worth a damn
<heat> if the best make is bmake, the best sh is bash
<mjg> they 'make' a lot mate
<mjg> but need to bottstrap it first
<mjg> bootstrap even
<heat> mjg, have you found the spinnies
<heat> they're cursed
<sham1> Well yeah, how would you make make without make
<mjg> not by browsing the webb
<mjg> downloading the repo now
<Ermine> You need bottstrap minix first, which means fixing shitty code which doesn't build with modern toolchains
<Ermine> heat: how cursed?
<mjg> giv url
<Ermine> nvmd although
<heat> full memory fence
<bslsk05> ​github.com: minix/minix/kernel/arch/i386/klib.S at 4db99f4012570a577414fe2a43697b2f239b699e · Stichting-MINIX-Research-Foundation/minix · GitHub
<heat> also bespoke algorithm variation?
<mjg> lol after xchg
<mjg> at least they pause
<heat> i dont get what they're going for there with the 1 << 16 stuff
<mjg> now unlock is a fucking crime
<sham1> It even does the ASCII function name box even in assembly
<sham1> amazing
<mjg> mm, actually i'm not 100% confident of guarantees of i386 here
<Ermine> mjg: because mfence? I know nothing about spinlocks
<heat> you dont need mfence
<heat> heck you don't even need a fence
<sham1> En garde!
<mjg> Ermine: normally xchg with a memory operand has an implied lock prefix and provides a full fence on its own
<mjg> https://pdos.csail.mit.edu/6.828/2005/readings/i386/XCHG.htm this docs says this is also true on i386
<bslsk05> ​pdos.csail.mit.edu: 80386 Programmer's Reference Manual -- Opcode XCHG
<mjg> which i'm not particularly surprised by
<heat> mov $0, (%eax) on unlock would be much better
<mjg> then the remaining q is if they can get away with fenceless unlock
<mjg> again i don't know if that arch guarantees sstuff
<heat> note: maybe their spinlocks have assholeish semantics
<Ermine> You people make me interested in fixing those spinlocks
<mjg> what
<heat> i know some pthreads stuff require full memory barriers
<heat> i.e acquire release isn't enough
zxrom has quit [Ping timeout: 260 seconds]
<Ermine> heat: I guess onyx has fine spinlocks?
<mjg> Ermine: i can't stress enough they are not necessarily directly portable to i386
<Ermine> minix is i386
<heat> Ermine, "fine" but not great
<Ermine> (and arm, but not aarch64)
<mjg> yes and onyx is amd64
<heat> ticket spinlocks would be an improvement on onyx, mcs locks maybe too
<Ermine> Ah
<heat> i use a test-and-test-and-set with normal instructions and a good codegen
<mjg> i like how their asm is not the same as c code
<heat> all of the theoretical improvements would require some good testing with low core counts and high core counts
<heat> and NUMA, etc
<mjg> maybe you could ask some of your users
<heat> heat: mind testing mate
<heat> heat: no fuck off your OS sucks
<heat> no dice
<Ermine> Anyway, thx for comments, now I should return to writing equally pessimal python code
<mjg> fucking heat amirite
<sham1> heat be flaming
m3a has quit [Ping timeout: 250 seconds]
<heat> everyone fucks heat but no one asks for consent first
<heat> did yall know __sync_ primitives are part of the itanium ABI
<sham1> Yes
<heat> ok
<sham1> Also
<sham1> ITANIUM MY BELOVED
<mjg> how to trigger heat
<mjg> 1. mention sortix
<mjg> or
<mjg> 2. suggest removing itanium support
<heat> how does sortix trigger me
<sham1> Easily
<mjg> ask the guy insecure about onyx
<heat> im not insecure
<sham1> uhu
<heat> i have flamegraphs and fancy traces and rcu
<heat> other hobby oses do not
<mjg> dick measuring much
<heat> as such, i win
<mjg> ok buddy
<heat> look who's talking
<sham1> But yours is not a nanokernel
<heat> mr dick measuring
<mjg> no secure person tries to convince peole how secure they are
<sham1> I like measuring dicks
<Ermine> Also stuff not being merged doesn't encourage
<heat> doesn't encourage what
<Ermine> contributing
<heat> yeah
<zid> If you contribute you're part of the problem
<Ermine> I _am_ the problem
<zid> "I'll join with them and slowly make them better from the inside!" is how you end up at neuremburg
<heat> lol
<Ermine> Nice comparison
<sham1> Contributing is literally nazi. Did I get that right?
<Ermine> Thx for comparing with nazis
<sham1> Don't blame me bby
Valeria22 has joined #osdev
<heat> anyway don't care about your shit unixes or code or operating systems
<heat> football manager is cool i want to be a football manager
<zid> Contributing is how you end up part of an evil organization after it heel turns (or doesn't) and ends up against the wall.
<zid> The real power play is to live in a hut in the woods, never contributing to anything.
<sham1> Okay Ted Kaczynski
<sham1> "Technology bad" - Uncle Ted
<Ermine> ok ok ok
Ermine has left #osdev [WeeChat 4.0.2]
<zid> You're not allowed to contribute bombs sham1, I checked
<zid> freebsd's lawyers would be all over me
<sham1> Probably makes sense
<zid> in their twisted freebsd way it makes sense
<zid> not to me
<heat> my team cannot fucking score wtf
<zid> blame the manager imo
<heat> i am the manager
<zid> that was the joke
<heat> https://i.imgur.com/c4Ko5fC.png i told him i was angry he was sucking this game
<bslsk05> ​i.imgur.com <no title>
<zid> tamagotchi football
<sham1> No make fun of tamagochi
<heat> LFG GOAL WOOOOOOOOOOOOOOOOOOOOOO
<zid> looking for group goal?
<heat> lonely manager looking for a group goal around lisbon
troseman has quit [Ping timeout: 252 seconds]
eddof13 has joined #osdev
zxrom has joined #osdev
dude12312414 has joined #osdev
bauen1 has quit [Ping timeout: 245 seconds]
phoooo has joined #osdev
Brainzman has joined #osdev
phoooo has quit [Ping timeout: 246 seconds]
phoooo has joined #osdev
phoooo has quit [Client Quit]
phoooo has joined #osdev
phoooo has quit [Quit: Client closed]
<mcrod> hi
<mcrod> i'm going to have a talk with stmicroelectronics tomorrow
* mcrod dance
<zid> stm icroelectronics? neat.
<mcrod> by the way zid
<mcrod> for audio bullshit, ring buffers are indeed useful but
<mcrod> consider SDL audio pull mode
<mcrod> what if content is overwritten in the ring buffer before the pull mode callback is called
<heat> it skips
SGautam has quit [Quit: Connection closed for inactivity]
<mcrod> thanks.
<mcrod> i figured that much
<mcrod> _but_
<heat> that's how a ring buffer works hubby
<mcrod> i... i get that
stolen has joined #osdev
<mcrod> I guess my question is why would I not always want to use push mode
<mcrod> also, I could be overthinking this but I don't want a thread
<mcrod> because what will happen is the `gen_sound()` function might take a while, and the audio callback is going to be called
<heat> push method requires a thread right?
frkazoid333 has quit [Ping timeout: 248 seconds]
<heat> or at least you need to actively push data semi-regularly
<mcrod> i don't know what it requires
<mcrod> all I know is that I do SDL_QueueAudio and let it fuck around
<mcrod> so basically I would do
<mcrod> float samples[some_amount]; gen_sound(&samples); SDL_QueueAudio(samples); or some shit like that
<mcrod> however, if I'm using the pull model
<zid> yea audio either works by push and you block, or pull and you get a callback
<mcrod> this would look like: gen_sound(); void callback(uint8_t* samples) { get_shit_from_ringbuffer; }
<gog> hi
<mcrod> but it won't get to the callback ever if gen_sound takes fucking forever
<zid> so basically write(10 seconds); and 10 seconds later the write ends, or callback(void *data){ memcpy(data, 1 second of data); } and it happens every second but the buffer is 100ms long so you have some wiggle room
<mcrod> hm I see
<mcrod> because basically, I have... let's see
<mcrod> need to switch to lemix
<zid> more realistically these buffer sizes will be like 200ms and every 100ms you get a callback to top it back up to 200ms from 100ms remaining
<zid> which is why audio dropouts happen during lag
<zid> smaller buffer sizes are harder to keep full, but give lower latency (for things like sound effects)
<zid> internally that 200ms buffer is probably a ring buffer, once the head and tail are within 100ms it'll fire off a callback interrupt to get more data to play before it's too late
<mcrod> i'm calculating the worst case size
<mcrod> as in, how many samples will be generated at max
<mcrod> one sec
<zid> samples should be generated monotonically..
<zid> less or more samples makes the sound effect longer or shorter only
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 245 seconds]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 240 seconds]
<mcrod> well I'm thinking in terms of the maximum theoretical size
<mcrod> otherwise I would've just thrown all of this into a simple array
<mcrod> which I know I can't do
<mcrod> and it looks like in the worst case ~1.3MB worth of samples will be generated
<heat> thats so cute
<heat> so little data
<heat> very kawaii desu
<sham1> no
<mcrod> i wonder how big the ring buffer should be...
<zid> you don't need a ring buffer, the hw audio needs one
<mcrod> i don't know what you've been suggesting to me this entire time then
<zid> you need a static one that's the same size as the audio hw asks for
<zid> I haven't been suggesting anything
<zid> I explained how audio works
<zid> however large the audio buffer on the hw is set to, you can do fine with a static buffer no larger than that, you have 100ms or whatever to load the samples and hand them over, it /should/ tell you how many samples it wants
<zid> if the interface is non stupid
<mcrod> well i'm thinking in terms of bare metal
<zid> so was I
<zid> because the only difference is whether you're in an irq or a callback
<zid> between bare metal and hosted
<mcrod> ok I see what you're saying
<sham1> An irq is a hardware-accelerated callback
<zid> yup
Jari-- has joined #osdev
<zid> a software callback is an emulated irq ;p
<sham1> Well more signals, but those are also callbacks
xenos1984 has quit [Ping timeout: 245 seconds]
<zid> what are signals
<zid> are they one of those awful unix things
<zid> that I am too high minded to understand
<Jari--> zid i.e. sigsegfault
xenos1984 has joined #osdev
<gog> hi
<zid> goog I am having chicken
<zid> dw, it deserved it
<gog> we're having bratvurst und sauerkraut
<zid> sauerkraut is the most disgusting thing I've ever seen passed off as food
<zid> that wasn't rancid fish
<zid> rancid cabbage, woo
<gog> delicious rancid cabbage
<mcrod> sauerkraut is amazing
<gog> i suppose you hate kimchi too
<mcrod> reubens are life
<gog> yes
<zid> "What if I filled a carrier bag with discarded AA batteries, left it in a damp cellar for a month, then drained the juice into a glass?"
<zid> germans, trying to find ways to improve sauerkraut
m3a has joined #osdev
<sham1> Hakal Vs sauerkraut, go
<zid> is hakal some disgusting found fish dish?
<sham1> Icelandic fermented shark
<zid> so yes
<zid> lose fish, find it 8 months later, rotten, decide to eat it anyway
<bslsk05> ​redirect -> www.reddit.com: Reddit - Dive into anything
<zid> heat: 'Ate guide dogs, not ableist jus' don't accept 'em
<zid> Simple as
xenos1984 has quit [Ping timeout: 246 seconds]
danilogondolfo has quit [Quit: Leaving]
sortie has joined #osdev
<kof123> i thought mcrod was going with anubis: In the hieroglyphics a headless dog is a Khen, a conductor without exterior vision, therefore a type of interior perception are you mocking his logo?
xenos1984 has joined #osdev
<mcrod> wut
<mcrod> i named my cat anubis because anubis was also the weigher of souls
<mcrod> even though anubis has the head of a jackel
Brainzman has quit [Ping timeout: 256 seconds]
m3a has quit [Ping timeout: 246 seconds]
<kof123> you still need a logo, just throwing that out there
<sham1> Also a cute animal mascof
<sham1> Mascof
<sham1> MASCOT
<sham1> Stupid pessimal keyboard
<sham1> This is why phones suck
phoooo has joined #osdev
<Jari--> sham1 its trying to be "intelligent"
phoooo has quit [Client Quit]
phoooo has joined #osdev
<sham1> Well, it fails
<phoooo> hi! what is the usual way of loading a ramdisk in riscv, assuming there's no bootloader? virtio?
<zid> memcpy
<zid> it's a ramdisk, specifically *not* a device filesystem
<Jari--> phoooo you cant use tmpfs?
<phoooo> well, how can I load the ramdisk file?
<phoooo> assuming it's, say, a tarball
<zid> usually the bootloader does it
<zid> because it knows about the filesystem enough to get the kernel off
<zid> so it either gets the ramdisk off too, or you do a gross and concat the kernel to the ramdisk
<Jari--> phoooo mount -o size=1G -t tmpfs none /mnt/tmpfs
<Jari--> add at start up
<zid> initrd (hd0,0)/initrd in grub, etc
<phoooo> forgot to mention that I'm using the qemu virt board
<phoooo> for my osdev project
<zid> pretty sure qemu just has -kernel and -initrd
<phoooo> will look into it
<zid> failing that, cat and just -kernel
<zid> failing that that, -device blah.iso and install a bootlaoder that can do it
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid> failing that that that, cry
<phoooo> or just write a normal disk driver
<phoooo> tbh
<zid> I'd prefer cry.
<phoooo> or treat a tar file as a disk
<gog> hi
<phoooo> and read it using virtio block
<phoooo> hi gog
<gog> hi gog
<zid> bloog
gildasio has quit [Ping timeout: 246 seconds]
gildasio has joined #osdev
phoooo has quit [Quit: Ping timeout (120 seconds)]
<mcrod> hi gog
<gog> hi mcrod
* gog pets mcrod
gildasio has quit [Remote host closed the connection]
* mcrod prr
gildasio has joined #osdev
<jimbzy> Check this out. A friend of mine printed me a Handsome Squidward for my desk. XD https://i.imgur.com/VFCUiEC.jpg
<bslsk05> ​i.imgur.com <no title>
<gog> jimbzy: omg amazing+
<sham1> Oooh, that's handsome
<jimbzy> Yeah, he's a good egg.
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<zid> It bugs me that nobody tried to explain mario 64 "PU"s using car wheels.
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
stolen has quit [Quit: Connection closed for inactivity]
<jimbzy> Nice. My DIP-40 IC sockets arrived today and the seller included a small spool of Vector wire.
<zid> Is that for recharging a vector display
<zid> so that it doesn't run out of vectors
<jimbzy> Vector Electronics. 30 gauge for wire wrapping.
<zid> oh that's less fun
<zid> what about your vector display
<zid> Speaking of which, I need to go back behind my router and pick up all the discarded wrappers and dropped packets at some point
<jimbzy> Raster or bust.
frkazoid333 has joined #osdev
<sham1> Busts!
<zid> yea I also pick busts
<zid> https://www.amazon.co.uk/dp/B0C38Z7MPD Failing a full bust, I'd accept this nice and cheap PVC figurine
<bslsk05> ​www.amazon.co.uk: WENCY 21cm Anime Made in Abyss Figure Faputa PVC Action Figure Collectible Model Toys Kid Gift : Amazon.co.uk: Toys & Games
<bslsk05> ​udger.com: MINIX 3 <- UA listOS detail :: udger.com
<bslsk05> ​www.minix3.org: Minix3
dude12312414 has joined #osdev
heat has joined #osdev
heat_ has quit [Ping timeout: 246 seconds]
<sham1> Running on every Intel CPU
sebonirc has quit [Ping timeout: 248 seconds]
bgs has quit [Remote host closed the connection]
childlikempress has joined #osdev
moon-child has quit [Remote host closed the connection]
bauen1 has joined #osdev
heat has quit [Ping timeout: 246 seconds]
sebonirc has joined #osdev
heat has joined #osdev
eddof13 has joined #osdev
<gog> jimbzy: i'm eating sosig
<gog> bratwurst to be specific
stolen has joined #osdev
<jimbzy> Nice
<geist> mmm sosig
<jimbzy> I'm taking the joke to the next level.
<jimbzy> I'm going to build an 8-bit computer to share the meme.
<jimbzy> XD
<geist> (i'd never seen sosig the word before, but it is for the moment my favorite dumb spelling word)
<Jari--> gog I finished my wok
<geist> sosig xl
<gog> sosig
<geist> need moar sosig
<gog> it's fucking raaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawwwww
<geist> not sure i've had real bratwurst before
<jimbzy> geist, I hacked together my arm64 kernel just to display an ASCII rendition of this https://i.kym-cdn.com/entries/icons/original/000/020/978/13664722_1118435051549227_802492048_n.png
<jimbzy> Even named it after the meme.
<geist> sosig64
<geist> ssosig64
<geist> FEAT_YUM
<jimbzy> My goal for my 6502-based computer is to display this on a VGA monitor.
<Jari--> personally I cant eat the white sausage
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<jimbzy> Gonna wire wrap it and everything.
<zid> full 30khz?
<jimbzy> ?
<zid> I really need to get a 15kHz display some day
<zid> jimbzy: 480 +vblank * 60 = 30kHz, it's the vertical retrace freq, anything that supports more than one vertical res is a 'multisync' monitor etc
<jimbzy> I misread it and thought you said 15hz.
<zid> CGA was 15kHz, it's hard to find 15kHz displays at all for things like arcade games and old computers :(
<zid> they tend to be 30-96kHz or whatever
<jimbzy> I'll find something.
<jimbzy> I'm pretty sure my old TV game books have schematics to implement RF, too.
<zid> i'd rather mod the display for composite :P
<zid> usually it's not any harder than snipping the output of the demodulator for the RF
<jimbzy> yeah
<jimbzy> I'll have to pull them down off the shelf and have a look.
<mcrod> i hate moving.
<mcrod> i'm a programmer, not a mover
<jimbzy> You never realize how much crap you own until you have to box it up. :p
<gog> you're moving again?
<mcrod> no
<mcrod> I haven't moved yet
<gog> oh
<mcrod> this friday
<mcrod> :D
<mcrod> first time moving
<jimbzy> zid, I could do something like this. https://github.com/LIV2/VGA-6502
<bslsk05> ​LIV2/VGA-6502 - A VGA card for my homebrew 65C02 based computer (3 forks/18 stargazers/MIT)
<gog> no you and jimbzy have the same nick color and visually the same length of name because i'm not using a monospace font
<gog> i thought you were jimbzyu
<gog> :P
<gog> i'm veery tired today
<mcrod> i'm exhausted.
<sham1> mcrod: but are you a mover
<sham1> "mov"er
<mcrod> if I was a good one
<mcrod> i'd be mov eliminating
<jimbzy> Yeah, I'm not going anywhere for a while. ;)
<zid> 40 minutes until bookworm alert
<gog> meow
elderK has joined #osdev
Ermine has joined #osdev
<heat> Zicauwjadi
<heat> also known as a new riscv feature
<mcrod> heat
<heat> hi
<mcrod> help me move
<mcrod> thanks
<heat> no
<mcrod> :(
<Ermine> What about helping with MOV?
<heat> sorry i only speak in riscv extensions now
<nortti> Ermine: what's MOV?
<heat> Zbrenamemvtomov
SGautam has joined #osdev
<zid> isn't that a football player
CaCode has joined #osdev
terminalpusher has joined #osdev
<kazinsal> oh man tech youtuber fight, get your popcorn
<kazinsal> linus tech tips went after gamers nexus for some stupid reason and gamers nexus fired back with a goddamn expose
<heat> jayz two cents 4life
<zid> Anyone who *wasn't* aware that LTT was like this was asleep, so it's nice to see them being *professionally* called out for being bad at their job
<zid> (but good at being youtubers)
<zid> quirk, dirty, incorrect
wblue has joined #osdev
<kazinsal> pretty much anyone who ever bought PC parts in the late 2000s/early 2010s in vancouver knew the kind of dude he was, what with having been the face of NCIX for a while
<kazinsal> the retailer so shady that when it went bankrupt they abandoned their leases and liquidated servers that still had employee PII on them before their CEO disappeared into the aether never to be heard from again
<geist> yeah i have to admit i occasionally watch some of the secondary LTT vids, but anything with Linus in it just comes across as pure clickbait
<childlikempress> does it even count as clickbait? I feel like the whole point is to be vapid infotainment
<zid> I liked the scrapyard wars thing, suddenly they were like "5 year old i7 second hand? more than plenty for gaming" etc
<zid> it was both more factual *and* more entertaining than everything else
<zid> the rest of the channel was actually superfluous :P
childlikempress is now known as Mondenkind
<Ermine> gog: may I pet you
guideX has left #osdev [Leaving]
<Ermine> nortti: x86 instruction?
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<gog> Ermine: yes
heat has quit [Ping timeout: 246 seconds]
<mcrod> i'm building qt
<mcrod> and cmake appears to be hung at 100% CPU
<mcrod> to be clear, I'm just _configuring_
heat has joined #osdev
* Ermine pets gog
* heat ermines gog
* mcrod mcrod's heat
<heat> thanks mcrod
<heat> i feel blessed
<mcrod> no, thank YOU
<mcrod> holy shit
<mcrod> it looks like the qt cmake scripts are just appending every fucking translation file it can fucking find in all directories?
<mcrod> to a list
<mcrod> according to cmake --trace
elderK has quit [Quit: Connection closed for inactivity]
<zid> gog: you like sport, who's going to win alliance tournament XIX?
<mcrod> this is unbelievable. LLVM didn't even fucking take this long to configure
<zid> > compiles C++
<zid> > complains that it's s low
<mcrod> what'd I say
<mcrod> i'm not even COMPILING yet
<mcrod> this is CMake
<mcrod> it took 15 minutes to configure
* gog prr
<gog> zid: i'm not heat
<zid> no but you are iceland, it should be a point of national pride :p
<zid> they're flying sleipnirs, my favourite ship
<zid> in match 1
<gog> who
<zid> CCP, gog, CCP's tournament.
<gog> i'm not a tankie i don't support china
<zid> Communist-gamer Control-and-flying-spaceships Party of Iceland, wrong socialists
<gog> breh i play factorio
<zid> smh, deported from iceland is always sad to see
<Ermine> Why I begin figuring out how to do stuff only at 2 AM
<zid> You have to support THE PARTY
<kazinsal> sleips are great
<zid> sleipnir <3
<kazinsal> recently we've been using sleips/HFIs as a mainline doctrine
<zid> neat
<zid> nobody flew sleips and I had nobody to fly one with, last time I played
<zid> I just really liked the ship
<kazinsal> until someone escalates then it's DREADBOMBDREADBOMBDREADBOMB
<zid> so much so I was doing missions with it just to get to fly it
<zid> you can make it craaazy tanky and still do dps
<gog> smh tankies
<zid> people undocking fed navies to do L4s in all day out of dodixie and there's me in a sleip
dutch has quit [Quit: WeeChat 4.0.2]
dutch has joined #osdev
<Burgundy> marauders, always marauders!
<zid> I tried the kronos andreally didn't like it
<kazinsal> the kronos has fitting issues unless you go with bonkers implant sets
<kazinsal> or go blaster kronos, and the bronos is kind of a meme
<zid> I owned a vargur but never flew it, might not have had the skills for it at the time
<zid> I was much better with drones than guns anyway
<kazinsal> vargur and paladin are probably tied for best marauder
<Burgundy> I'm old school, missiles for pve, guns (read projectiles) for pvp :)
<zid> when I was playing nobody used missles for anything ever :P
<kazinsal> but recently one of my favourite ships has been the redeemer
<Burgundy> but yeah, specialists would swear on the paladin for pve
<zid> what was the sentry ship I loved?
<zid> quickly guys
<Burgundy> gotta the the dominix, can't resist the looks
<zid> the badly mauled potato
<zid> what's the t2 vexor called, the hull shape may have been that..
goliath has quit [Quit: SIGSEGV]
Left_Turn has quit [Read error: Connection reset by peer]
<Burgundy> well, I don't fly it, but dominix's got a special place there for me, first bs ever built, first bs I ever encountered :)
<zid> ishtar
<kazinsal> ishtar ultimate ratting boat
stolen has quit [Quit: Connection closed for inactivity]
<kazinsal> also 90% of ishtars you see are bots
<zid> yea I was super sad when they made rats target sentries
<zid> err ogres*
<kazinsal> why yes I will happily drop a whole blops fleet on a single ratting ishtar
<zid> so I switched to an ishtar
<kazinsal> because I am a dickhead
<zid> I undocked a dominix in 'safe space' and it was titan dropped within 20 minutes, I am still salty
<zid> people have too much money
<zid> must have cost em 10x what the ship was worth to do that, and collectively tens of hours of time
<Burgundy> hey, causing a titan drop is something to be proud of :)
<zid> I didn't really cause it, I just happened to be what they found, I get the feeling they'd have done it to a rifter
<zid> if I play eve again I will just fit up an ishtar or sleipnir and do L4s to get my isk back
<zid> for the plex
<zid> just to derust and get some blat in
<Burgundy> don't get to play it often enough myself
<Burgundy> they do have a 10 plex for 10 days of omega thing for a few more days, iirc
<zid> I have a moros parked somewhere I can sell if I want a plex and start playing again
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<zid> oh, and 14B in plex apparently
<kazinsal> join goosefleet
<Burgundy> well, you know how it goes, just wanna log in for a bit and then you're hooked full time :)
<kazinsal> shoot your foes and honk in local
<zid> how do plex work now
<zid> they multiplied them by 100 or something
<zid> do I still have to redeem 30 days worth
<kazinsal> 1 old plex = 500 new plex
<zid> oh I can buy 10 days for 10 centiplex cus of XIX it seems? maybe I will go shoot some rats
<kazinsal> yeah
<zid> so I had 6 plex and they're over 2B each now, ouch
<Burgundy> the "official" ratio was 500:1, but there are way too often offers these days
<Burgundy> as of right now, 10 plex for 10 days going on
<zid> when I was actively playing they were 300M and rose to 500M over the duration
<zid> maybe shooting rats won't be enough lol
<kazinsal> moongoo is where the real money is at
<Burgundy> much more expensive nowadays, around 5M for the deluted PLEX, so around 2.5B for a month
<kazinsal> but the LP -> faction mods -> ISK pipeline is still good
<Burgundy> diluted*
<zid> Burgundy: you're about 40 seconds slow on everything you just said :P
<kazinsal> a lot of LP items that sell frequently are around 1200LP/ISK conversion rate
<Burgundy> zid: I am? you know how it goes, time and space bend together
<zid> boo, I can't even fly an ishtar anymore
eddof13 has joined #osdev
<zid> kazinsal: where do I see my LP now?
<kazinsal> it's a tab under wallet now
<zid> nice, my fits are still saved
eddof13 has quit [Client Quit]
<zid> That's a couple hundred mil
<zid> desired*
<Burgundy> looks proper to me!
<zid> those lows are 400M apparently, I like a pimped ishtar it seems
<kazinsal> yep those are solid deadspace mods
<zid> afiak that was like a 900dps ominitank or something dumb
<zid> I could just undock and do any L4 with it
<zid> the ishtar I would swap plates for explo
<zid> I can track whenever I last played eve, because I remember paying AN ENTIRE BITCOIN for a plex
<zid> so, when were plex $35000 each
<Burgundy> :)
<zid> OMG I REMEMBERED MY OTHER SHIP I LOVED
<Burgundy> well, them TZs having their ways, gotta split
<zid> Can't believe I forgot my main ratter
<Burgundy> have fun and fly safe!
Burgundy has left #osdev [#osdev]
<zid> kazinsal: take a guess
<kazinsal> drake
<zid> very close
<kazinsal> yeah those are nice
<zid> fucking adored the rattlesnake, such a badass hull, and that's a shipyard custom one so it has a BUNNY ON IT
<zid> I think drake was doctrine when I played
<zid> which was odd, cus everybody hated missiles, I guess that's what webs are for..
<kazinsal> missiles are fine, you just gotta actually put some damage application mods on
<kazinsal> going full HMs or HAMs and full BCS and not doing anything like putting some damn guidance computers with tracking scripts on means you have high DPS against stationary targets and zero DPS against anything smaller than a battleship
<zid> people hated them cus they just didn't apply any of their damage
<zid> you could just fit medium autocannons and kill whatever you wanted
<zid> it was explosion_velocity-ship_velocity as a factor in the damage
<zid> so they did approximately 0.4 dps to anything moving over 200m/s
<zid> and there wasn't much you could do to fix it, with guns you can always get further out, or counter-rotate them, to lower the rotational velocity
<zid> angular