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
<clever> klange: *!*@175.121.245.* might be better, he keeps changing the ident portion as well
<clever> ~redis@175.121.245.34 vs ~complemen@175.121.245.34
<[itchyjunk]> Is that a bot of some sort?
<kazinsal> mentally ill spammer
<[itchyjunk]> ah
<klange> With access to a vast network of IP addresses in east Asia.
<kazinsal> at first I thought they were tor exit nodes but they're not
<kazinsal> probably just compromised VPSes or whatever
<clever> i'm reminded of a time many years ago, when i was trying to dispute an unjust ban on a random irc network
<clever> and i just kept reconnecting the dsl modem to get new IP's
<clever> they got tired of it, and filed a false complaint against my isp, claiming i was spreading a virus
<clever> then my name/pw ceased to function!
<[itchyjunk]> Is any of what they say sensible / true?
<kazinsal> in the "a stopped clock is right twice a day" sense
<[itchyjunk]> ah
<clever> 2021-09-16 20:53:54 < jundertwo> the microsoft DNA memory was developed by me anyways
<clever> i seriously doubt this claim
<klange> Its rare that anything they say is syntactically or semantically correct, before even getting into whether it's factually correct.
<kazinsal> kind of like a twitter markov bot that can respond to mentions
<kazinsal> except it's loaded with bizarre google translated insults
ElectronApps has joined #osdev
<[itchyjunk]> turns out i have to make `qemu-system-riscv*` thingy myself but i kept complaining about ninja and other stuff and when i finally installed all it wanted it gives me this :: https://bpa.st/PBAA
<bslsk05> ​bpa.st: View paste PBAA
<[itchyjunk]> #qemu is dead i think
<zid> it's on a diff network
<[itchyjunk]> oh :(
<zid> but the error is fairly explanatory
<zid> you need pixman-1
<[itchyjunk]> i tried `sudo apt install pixman-1`, couldn't find anything as such
<zid> try.. pixman
<zid> or a search
<zid> or google
<zid> or literally anything lol
<clever> [itchyjunk]: #qemu is on oftc
<klange> ^ yup, I'm idling there
<geist> yeah you have to install some number of things to build qemu, but just keep going through the list
<geist> `apt search pixman` is good for this sort of stuff
<geist> sometimes things like that are called libpixman or pixman1 or libpixman1-dev or whatnot. lots of variants, but usually can find it with search
<[itchyjunk]> right i was missing the `libpixman-1-dev` apparently
<kazinsal> welcome to dependency hell
<kazinsal> aka building modern software from source
CryptoDavid has quit [Quit: Connection closed for inactivity]
<[itchyjunk]> Yes i have generally avoided building. last thing i build was an ircd
ephemer0l is now known as GeneralDiscourse
<zid> gentoo <3
<kazinsal> if I wanted to have to fight with a bunch of makefiles and dependencies just to do a thing I'd write my own oper-- oh
<geist> that being said, qemu is generally retty easy to build
<geist> i've been building it more or less without issues for 5-10 years. only thing that's recent is the switching to the new build system, but it seems pretty seamless
<[itchyjunk]> Apparently needing ninja is new
<geist> yah like 6.0
<[itchyjunk]> some of the google results don't work because of these changes
<geist> it switched from a traditional configure to a build system that i forgot the name that generates ninja
<[itchyjunk]> and apparently ubuntu20.04 is too old because newer ubuntu has all of this included in apt and i would be done by now
<[itchyjunk]> can't seem to win
<geist> meson
<geist> no. not at all
<kazinsal> computers are a zero sum game
<geist> well, or more to the point: 'worlds smallest violin'
<geist> qmeu has deps, you just install them until it builds. easy easy
<[itchyjunk]> well it's been `make`ing, 400 out of .. 10k!
<[itchyjunk]> didn't realize it takes such a long time to make stuff
<zid> did you -j it
<[itchyjunk]> no :s
<kazinsal> MOAR CORES
gog has joined #osdev
<[itchyjunk]> followed the first 5 instructions here : https://www.qemu.org/download/
<bslsk05> ​www.qemu.org: Download QEMU - QEMU
<[itchyjunk]> ah i am building on my free oracle vps thing for now to see how it works. i think i get only 2 cores anyways
<klange> RIP Sir Clive Sinclair
<kazinsal> heard about that, damn shame
jimbzy has joined #osdev
<geist> ninja by default -js
<geist> but yeah it's a fairly large build if you dont trim it. if you do a default configure it'll build qemu for like 30 different arches
<geist> and it generally recompiles the whole thing for each
<zid> oh right yea I forgot about that
<zid> I built qemu 6 by hand recently and yea, I immediately noticed it was building bullshit
<zid> trimmed it down to x86_64-system and it took 10 mins
xenos1984 has quit [Read error: Connection reset by peer]
<kazinsal> good ol' qemu-system-eniac
<klange> qemu-system-analytical-engine
<klange> An analytical engine emulator built with a physics simulation would be neat...
<kazinsal> someone's probably done one in Tabletop Simulator
<[itchyjunk]> ahhh
<[itchyjunk]> i should have told it i only wanted riscv
<[itchyjunk]> Not sure if it's stopping the make and telling it to only do riscv still. its at 1.5k out 10k
isaacwoods has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
<geist> protip, set NINJA_STATUS="%es [%f(+%r)/%t(+%u)] " in your environment and you can see more of what its doing
<geist> shows you number of completed vs to do, time spent, and how many current jobs its running
<[itchyjunk]> hopefully this is the first and last custom build i do for the rest of my life. doesn't seem like something one does often :s
dragestil has quit [Ping timeout: 252 seconds]
dragestil_ is now known as dragestil
dragestil_ has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.2.1]
marmelade2 has joined #osdev
<zid> It helps to have a cpu from the modern era
* gog fires up her analytical engine
<gog> imagine if ada lovelace didn't die of cancer and she and babbage actually made the machine
<zid> k I imagined it, now what
<gog> idk
<gog> world peace?
<[itchyjunk]> poor analytical engine, lost its job
<marmelade2> the compression is also very easy cause i developed it, first there is an index to the memory, there are two methods , depending if the underlying isa has fast multiplier or not, so indexing is 2m spots with 1024 contiguously growing and start at 1024 there is bank two, so 1024*1024 is the last address of bank 1, 1025 is the address of bank2 and element 1 etc. if you do not have multiplier or bitshifts like for some gpu, you use adder and bitmasks, but
<marmelade2> the registers need to be stored also then consistentnly, so you convert from another isa on the start up or bootup or whatever, and repin the memory. This turns out as carries in the mask indexer from register index placed correctly.
marmelade2 was banned on #osdev by klange [*!*marmelade@1.55.138.*]
marmelade2 was kicked from #osdev by klange [marmelade2]
<[itchyjunk]> Maybe this is like deep learning bot
<[itchyjunk]> GPT-3
<moon-child> at some point there's gonna be a collision with one of those banned IPs
<moon-child> somebody's gonna try to join and won't be able to
<klange> I clear them out every so often.
<clever> chanserv usually has a timed ban option, to expire them after a set number of hours
<klange> yeah but I don't have the time to use those options, much like how I don't have the time to bother with removing the username from the ban
<klange> I fire off my client's /kickban command
freakazoid343 has quit [Ping timeout: 252 seconds]
dragestil_ has quit [Ping timeout: 268 seconds]
Izem has joined #osdev
System123 has joined #osdev
<travisg> yah for a while there they were banning entire /64 blocks of ipv6 and it kept hoovering up my linode
dragestil_ has joined #osdev
System123 has quit [Ping timeout: 268 seconds]
<[itchyjunk]> damn that make crashed the server
gog has quit [Ping timeout: 265 seconds]
Izem has quit [Quit: Going offline, see ya! (www.adiirc.com)]
sts-q has joined #osdev
ZetItUp has quit []
PapaFrog has quit [Read error: Connection reset by peer]
PapaFrog has joined #osdev
<klange> I should... probably implement a futex. I need to flesh out my pthread implementation, and the locks in it are using spin-yield locks...
<klange> Struggling with placing things on my roadmap and figuring out what really needs to be there to land 2.0
vdamewood has quit [Quit: Life beckons]
<klange> Even with my own Python, it would be a shame not to release with a working CPython build in the repos, and while I could almost definitely just rebuild the 3.6 I have from last time, I should try to build something newer, but the stronger thread requirements are biting me.
vdamewood has joined #osdev
diamondbond has joined #osdev
[itchyjunk] has quit [Quit: Leaving]
freakazoid333 has joined #osdev
dragestil_ has quit [Ping timeout: 265 seconds]
srjek has quit [Ping timeout: 268 seconds]
dragestil_ has joined #osdev
mahmutov has joined #osdev
mahmutov has quit [Ping timeout: 260 seconds]
<zid> oh hey it loaded fast this time
<klange> I checked my VPS's speed to various places and it's fine on its end, my own connection to it is actually dreadfully slow
<zid> Isn't it self hosted?
<klange> In what respect?
<klange> It is neither my own hardware, nor does it run ToaruOS.
<zid> ah lame
<zid> when that
<klange> It's a Digital Ocean-hosted VPS running Linux, and it is imaged from a server that looooong predates ToaruOS.
<klange> A server that is so old it was once an AMD Athlon 2000+.
<klange> Then for a while it was an embedded "low-power server" Atom board, then it finally moved to The Cloud.
<klange> zid: Needs at least listening TCP sockets so I can host my little webserver, but we'll get there eventually. 'toaruos.org' won't ever be self-hosted in that respect, I run too much important stuff on it, but I'll have a box somewhere serving traffic natively.
<klange> Possibly a VM on that VPS.
<klange> 255 ttl in that screenshot is because SLIRP resets the counter.
AssKoala has quit [Ping timeout: 265 seconds]
<zid> I never liked the idea of slirp I just use a really annoying bridge setup, hoorah
MarchHare has quit [Remote host closed the connection]
<klange> I use SLIPR in QEMU and VirtualBox for minimal setup, VMware I keep on its native bridge thing, and of course I have the real hardware actually attached to the network.
<zid> I just do -netdev type=bridge -device e1000 for qemu
<zid> brctl add eth0; brctl add tap0
<zid> which gives you what vmware does
<zid> qemu has an up/downscript you can give it for commands to run and you can put the bridge add/remove into it
<zid> but that's all this VM is for so I don't actually bother with it
<superleaf1995> qemu is an amazing VM when it comes to networking
brettgilio has quit [Quit: Ping timeout (120 seconds)]
brettgilio has joined #osdev
superleaf1995 has quit [Quit: leaving]
ecs has quit [Remote host closed the connection]
ecs has joined #osdev
gmodena has joined #osdev
Burgundy has joined #osdev
hanzlu has joined #osdev
diamondbond has quit [Ping timeout: 265 seconds]
chartreuse has quit [Read error: Connection reset by peer]
hanzlu has quit [Ping timeout: 268 seconds]
[itchyjunk] has joined #osdev
gerrard3 has joined #osdev
<gerrard3> You are just idiots incredible outsiders, that is how that shit started to happen, scum like you talked about trash about a wrong man, and people got annoyed that such garbage even talks about me, and they fucked them up entirely, as i said, you organise whatever encoding of bits, by just appending a mask to that bit in another register or memory element of size 32bit, and set the read out carries for that location correctly, what are you fucktards
<gerrard3> even do in life to talk about me, don't you have your own life to live fuckers to bother mine? sure you do not abortion leftovers setting up your gang group conspiration again on another network, you trash will be again entirely owned perhaps even killed.
gerrard3 was banned on #osdev by klange [*!*marmelade@112.171.89.*]
gerrard3 was kicked from #osdev by klange [gerrard3]
<moon-child> klange: perhaps ban marmelade@*
<klange> As if that even helps. Every new endpoint he uses a different username.
<moon-child> used marmelade twice in a row now
<moon-child> might slow him down a few seconds...¯\_(ツ)_/¯
<kazinsal> bizarrely estonia has a well funded universal healthcare system
<kazinsal> this one just slipped through the system I guess
<clever> moon-child: you can do `/mode #osdev +b` even if your not joined, to list every ban, and then know what to do to evade them
chartreuse has joined #osdev
<kazinsal> wonder if it's worth writing a shadowban extension for whatever ircd is in use and then trying to convince the libera staff to backport it
<kazinsal> then again this channel is publicly logged so that's off the table now
<Mutabah> Pretty sure he reads the logs
<Affliction> You could kinda emulate a shadowban: +q and +z with an opped logger bot
<kazinsal> libera's registration service disallows throwaway services but +r is I guess considered a drastic option
<kazinsal> though I'm also of the opinion that if someone can't figure out how to work nickserv they're probably not capable of operating systems development
<kazinsal> but obviously I'm not an op or halfop or buttons-holder of any sort, just a local
<klange> We did +r on The Other Network for a while, and it worked _okay_, but wasn't foolproof.
dormito has joined #osdev
ElectronApps has quit [Remote host closed the connection]
ElectronApps has joined #osdev
<Matt|home> anyone familiar with how difficult it is to get on something like the free or openbsd projects? or smaller os projects that aren't linux?
<kazinsal> for OpenBSD, write a good diff and submit it to the openbsd-tech mailing list.
<Matt|home> im gonna go out on a limb and assume that anything bigger than a two person project is going to be about as strict as applying for a normal engineering position
<kazinsal> if it fixes something and matches the coding style etc. then it'll likely get merged
<kazinsal> don't know much for other projects
<Matt|home> that's cool. but they have core devs right?
<kazinsal> yeah, there are a number of "approvers" so to speak
<kazinsal> I think most of them are members of the OpenBSD Foundation
<kazinsal> which is a legal not-for-profit corporation under Canadian jurisdiction
<kazinsal> same organization that maintains and holds the copyrights to OpenSSH, OpenNTPD, OpenBGPD, LibreSSL...
<Matt|home> any idea how hard it actually is to get on a core dev team?
<Matt|home> or is it like
<Matt|home> don't even bother trying
<kazinsal> you'd have to be a regular contributor with a bunch of notable work on the project to your name
<j`ey> Matt|home: I wouldnt try to have that as a goal
<j`ey> at first
<kazinsal> it is better to just set out trying to do good than to set out trying to become a figure
<Matt|home> my goal is getting a decent paying job, but right now i am 100000% trying to figure out what to focus on :\ should i go back to finishing my own little os project, or work on a bunch of smaller ones or do some open source project or what..
<Matt|home> i was looking at my github repo.. its been close to a year since i did any commit
<j`ey> working on a big existing project is hard, as you have to find something to fix
<Matt|home> yeah
<kazinsal> I chose the option of not getting a programming job on the grounds that if I wrote code for a living I'd probably hate doing it as a hobby
<kazinsal> so now I work on datacenter deployments and the like from 9 to 5 and can enjoy whatever the hell I want to for the rest of my waking hours
<Matt|home> glad you can afford that :p im actually at a really important crossroads now. i know this is super off topic, and i'll try not to do this in the future.. but im debating about going back to minimum wage or focusing on trying to get something better. software's basically the only marketable skill i kinda have (not really) that won't net me min wage. if i go back to wave slave jobs then that's all i'll be doing, i won't have time for hob
<Matt|home> bies. but jesus.. it's like impossible for me to get a software job
<Matt|home> the last tech job i applied to did not care about my bootloader cuz it was tech support :<
<j`ey> I would say that OS dev stuff isnt the best thing to focus on for most jobs
<kazinsal> yeah I'm fairly lucky in that I landed my current job out of university by having the rare and important skill of being able to communicate with other humans
<Matt|home> sure i agree. my thought process was find an open source project.. but i can't think of any really big name recognition ones apart from like, OS teams, mozilla, google (chrome's open source right?) etc
<Matt|home> but i dunno if that's wasting time or not
<kazinsal> story time: I went to Cisco's western Canada offices to interview with a number of different companies in 2016, since I had baaaaaaaarely made the cutoff of top 30% of people in my program
<kazinsal> of the six or so companies that were there I interviewed with four of them
<kazinsal> near the end of the day I heard that one of them still had some time left and snuck my ass in there for an interview
<j`ey> Matt|home: you dont need to contibute to those big ones though
<j`ey> Matt|home: most software jobs arent in big name projects like that
<Matt|home> .. i guess cisco is pretty huge..
<kazinsal> I got in and talked to the first person there, who wanted to know about my willingness to relocate for work and I said "yeah, sure, why not"
<kazinsal> then got punted over to another room where a scary looking bald dude and his enforcer-looking long haired dreadlocked guy were waiting
<kazinsal> and the first thing he asked was "why do we need spanning tree"
<kazinsal> so I launched into a spiel about what the purpose of spanning tree protocol is in networks and what it does
<kazinsal> and he said "okay, that's good, but why do we *need* spanning tree"
<kazinsal> and all I could come up with was "because cheap gear doesn't know how it works and will happily let you cause loops"
<Matt|home> to prevent bridge loop :D
<kazinsal> and the bald guy looked at me and said "yeah, because users are stupid"
<kazinsal> I have been working for that company since 2016
<Matt|home> cheers mate. im thinking of pursuing my cisco networking cert again. i'll blame you if it doesn't work out :p
<kazinsal> the moral of the story: knowing your technical shit is important. being able to effectively communicate it dwarfs the knowledge in importance.
<kazinsal> there were dozens of people ahead of me in grades, in paper smarts.
<Matt|home> yeah i bungled an interview question so hard.. i wouldn't have gotten the job anyway
<Matt|home> but it was embarassing
<kazinsal> but if none of those people can relate on the human level it doesn't matter
<Matt|home> something to do with explaining how SMTP works i think
<kazinsal> I take a similar approach to osdev -- it's all well and good if your OS is technically competent and if you've got a brilliant scheduling algorithm, but if you can't justify it at a human level it's wothless
ElectronApps has quit [Remote host closed the connection]
<j`ey> idk what justify it at a human level means
<kazinsal> and if an application is literally disruptive to the market but you can't make it *usable* by the layperson whose life you improve in the process, it's not worth a god damned thing
<Matt|home> like market yourself
<Matt|home> i think
<j`ey> having a crazy scheduler but no proper UI is probably fine for hobby os dev
<Matt|home> who needs a UI .. you got a magnet and a needle right? just write to disk :D
<kazinsal> for 20 years now I've been involved in unixes and have had people go "oh yeah man this linux stuff is so good I don't know why people use windows, fucking noobs" but ninety nine times out of a hundred they can't *justify* why it's better in a manner that actually meaningfully affects the everyman
<Matt|home> oh i guess people use solid state more now.. a soldering iron and some arduino chips :D
<j`ey> my justification is that I prefer it!
<kazinsal> Jimbo Q. Zivojinovich does not give a shit about what a scheduler is
<Matt|home> this is just my personal observation but most windows OSes are pretty big memory hogs over time :\ i don't see that problem with my ubuntu desktop. may be observation bias, my desktop is better objectively than the other windows comps ive used
<Matt|home> although one thing i will say is that my linux desktop tends to freeze waaaaaaay more than it should
<kazinsal> if your "superior" software is interfaced by a bizarre arcane text interface from 1973 then it's not superior at all in the eyes of the people who are actually consuming the technology on a massive scale
<kazinsal> meanwhile 90% of the issues I see people have with modern windows are caused directly by those people trying to janitor it like it's a linux
<kazinsal> it's not a linux. stop janitoring it like it is.
aejsmith has quit [Remote host closed the connection]
<kazinsal> WSL may be the 2017 Year of Linux on the Desktop come to fruition but that doesn't mean the actual OS needs to be fucked with through a bunch of inscrutable powershell scripts pulled down from github because /u/StallmanDidNothingWrong told you it was a good idea
aejsmith has joined #osdev
<kazinsal> I see people all the time going AAAARGH WINDOWS UPDATE BROKE MY MACHINE and it's like maybe if you didn't do the PS equivalent of piping curl into bash to "decrapify" your windows install maybe it wouldn't explode
jjuran has quit [Ping timeout: 268 seconds]
jjuran has joined #osdev
<Matt|home> speaking of awful design choices..
<Matt|home> i have to manually erase every single individual voicemail message on my phone. its backed up to 47. no delete all :\
<Matt|home> button
ElectronApps has joined #osdev
GeDaMo has joined #osdev
<junon> Matt|home (I'm reading the backlog, forgive me for being late) asking to be a core contributor to anything has rarely gotten anyone in the position to be a core contributor. That's usually something earned, regardless of project.
<junon> My advice, get a job, make your life stable. Hobby OS dev won't do that for you unless you're extremely lucky, determined, or a good marketer of yourself/your project - probably all three to an extent.
<Matt|home> thanks junon
<junon> If you have problems getting a development job, being a regular and good-faith contributor of open source on a public profile (e.g. Github) is a great resume builder. I can tell you definitively that many places look for a GH username or link on your resume and ignore the rest.
<junon> That's not a rule, of course. Just illustrating how much it helps.
<Matt|home> yeah i figured it's difficult, im just wondering if getting hired by like the bsd team is equivalent to applying to a fortune 500 company or something
<junon> And yes, they see through the ol' "fork 100 projects to make it look like I'm busy" trick. There is a setting for the repositories filter that shows your own code. It's something you build up over time, not overnight.
<j`ey> and they wont only be lookin for 'chrome' and that kinda thing
<Matt|home> or less rigorous
<junon> Exactly
<j`ey> Matt|home: just rigorous in a diff way
<Matt|home> i gotcha
<Matt|home> well im looking for projects to work on right now
<junon> Big projects don't really change much IMO. Many of my smaller repositories have made more of a difference in the hiring process than my big projects.
<Matt|home> specifically for my github page
<j`ey> Matt|home: btw being on the core bsd team.. isnt a hired position in the same way
<junon> Matt|home: look for "good for beginners" tagged issues on github.
<Matt|home> just nothing catches my eye right now
<Matt|home> like my sister wrote a neat little app for her medication half life so she can keep track of her doses .. that's useful and interesting
<Matt|home> all i can think of is 'irc bot'
<junon> Having a project != contributing to open source btw
<Matt|home> oh yeah i know
<junon> You don't need to build some grandiose app just to have activity on github
<Matt|home> im not in a position to contribute right now. let's see what projects i have..
<junon> People care about team players when hiring, not people who can build from scratch
<Matt|home> garbage garbage and garbage :p well that was easy
<junon> "im not in a position to contribute right now" why
<Matt|home> because i can't code for s*** :p
<junon> But you're looking for development positions?
<kazinsal> in fairness, most enterprise developers can't code for shit
<junon> Seems like you've already figured out step 1
<junon> Depends on the place.
<kazinsal> class EventLogWriterFactoryFactory implements EventLogWriterFactory
<Matt|home> junon : i just finished applying to slave wage jobs. i had one dev job, got canned from it (laid off). im seeing what projects i can work on where i can get to a point where applying to a dev job isn't a waste of time
<j`ey> thats writing code :P
* kazinsal begins whistling like Private Pyle
<GeDaMo> kazinsal: at least it's not subclassing :P
<junon> Matt|home the more you sit around deciding what to do, the more time you waste not doing something.
<junon> When you're starting out, doing *anything* will teach you something.
<Matt|home> if you have any suggestions let me know, because my projects right now that i haven't erased out of depression and/or desperation are some random process handler in C i forgot why i even bothered with it, an android weather app that i haven't started on, and my bootloader
<kazinsal> therapy
<junon> ^
<Matt|home> recently i was suggested to do a python project. seriously if you have suggestions let me know
<junon> nobody is going to have an idea you like
<GeDaMo> RISC-V is hot right now, maybe something to do with that
<Matt|home> thank you :p
<junon> gonna be real
<kazinsal> alternative: therapy *and* weed
<junon> You need to figure out what kind of coding you like.
<junon> Get good at it, find jobs that fit that.
<junon> OS Dev is not going to be a hotspot for someone just starting out
<junon> So bootloaders and the like aren't likely to impress the majority of places you apply for
<Matt|home> lotsa low level stuff, but that's really niche. i know. the stuff i really am interested in is super complex :\
<kazinsal> if anything you want to use osdev as a pivot
<kazinsal> not as a core
pretty_dumm_guy has joined #osdev
<kazinsal> it's the thing you do as an "extracurricular" to score points
<Matt|home> like i was doing research into worm propogation.. and lol, not even close to the skillset required for that
<kazinsal> not the thing you do as a reason you should have the job
<junon> At least in my experience not having a uni degree but still having coded since 8 and working professionally for 11 years, the lower level you go, the higher the education/background/relevant professional experience requirements go
<Matt|home> ideally i want to do _something_ related to os dev work. like it looks like my process handler was supposed to be a clone for linux's proc handler but infinitely worse. im guessing those projects are bad ideas
<GeDaMo> Not if you're learning
<junon> Yes, they are, because they will not get you hired.
<kazinsal> step one: know your shit. step two: know how to explain the shit you know. step three: be able to work through other shit you don't necessarily know with other humans. step four: have other shit you know that isn't directly related as proof you know how to solve problems
dormito has quit [Quit: WeeChat 3.1]
<junon> ^^^^^^^^^
<Matt|home> whatever happens i refuse to work on web dev. i just don't dislike it, i actively hate it :\
<kazinsal> enjoy poverty I guess
<junon> yeah idk what to tell you then
<junon> entry level these days is almost entirely web.
<Matt|home> i know that's where the money is.. i know
<junon> That's where the jobs* are.
<junon> Money is everywhere.
<kazinsal> I don't like JS either but I'll take JS over walmart
<junon> yes
[itchyjunk] has quit [Remote host closed the connection]
<junon> If you want something that will teach you more about OS Dev as a hobby but still land you a job, learn distributed systems.
<junon> High demand, there are entry level positions, pays well, teaches you stuff relevant to OS Dev
<Matt|home> uh.. like cloud services? or wrong thing im thinking of
<junon> Yes, same ballpark
<kazinsal> worst case, bullshit your way through an interview doing something you don't want to do but are competent enough to actually do, and use that to pay the bills while you find something you actually want to do
<junon> Node.JS/typescript are hot, as is Go (I don't personally rec it though), Rust, Erlang/Elixir
<junon> Learn databases (not just admin but also design)
<junon> Learn about consensus algorithms, build a few distributed services
<Matt|home> i was once told that there's no such thing as a C programmer or a python developer. any good coder can pick up any language and learn it in a week or two and use it for whatever they need to
<Matt|home> i.. have an issue with that statement honestly
<Matt|home> but i guess it sounds nice
<kazinsal> yeah learn how indexing and multiple keys work and how to work with windows in queries and you'll be miles ahead of the average database mangler
<junon> ^
<junon> The quote is accurate, if not a bit of an overgeneralization, but I don't see how it's relevant
<bslsk05> ​use-the-index-luke.com: SQL Indexing and Tuning e-Book for developers: Use The Index, Luke covers Oracle, MySQL, PostgreSQL, SQL Server, ...
<junon> It also kind of misses the point a bit. Good developers know how to utilize a tool regardless of if it has a flashy exterior.
<kazinsal> any good coder can pick up a language, yes
<Matt|home> semi troll question.. so.. i'll never get to work on that worm then :p j/k
<kazinsal> I do not know python. if you told me to learn python for work, I'd probably figure it out
<kazinsal> I wouldn't like it, but I could figure it out.
<GeDaMo> There are a few languages that may not apply to, Prolog comes to mind
<Matt|home> eh i just tend to take much longer on average to pick up stuff. wondering if that means i should avoid development
<junon> I don't know of a single non-government company that is developing a worm, no.
<junon> I mean, non-government(-contractor) company.
<Matt|home> anyway, that's enough job woes for today. im gonna look at my projects list and pick one things to focus on today
<junon> It could mean that, yes. But if you like it, legitimately, and aren't just out for money, then you should do it.
<kazinsal> GeDaMo: fair, if you told me to learn a logic language or a functional language I'll ask for tuition money ;)
<junon> GeDaMo good example, yes
<kazinsal> twenty-odd years of computer touchin' and I still haven't learned a crumb of functional programming
<Matt|home> im doing okay in german :p
<junon> I'm an american ex-pat in germany, there are a lot of opportunities here and terrible companies that don't know tech
<junon> Always an option I suppose.
<Matt|home> is functional programming something like marketing speak like full stack developer or a legit thing
<junon> It's a legit thing that has been kind of paraded around a bit
<GeDaMo> It's a thing but it's often poorly defined
<junon> ^
<GeDaMo> You can write C in a functional style
<Matt|home> reading the wiki page says it's not a sequence of imperative statements
<Matt|home> which.. im not aware of how that works at all
<Matt|home> since you konw.. everything boils down to opcodes and compiler optimization anyway
<GeDaMo> At the bottom, it will still use machine code instructions
<kazinsal> it's programming for math majors
<Matt|home> oh
<kazinsal> *hides*
<Matt|home> for like calc and stuff? that's cool
<junon> english and german both use greek/latin roots but have wildly different grammar, but it roughly boils down to the same script and meaning
<GeDaMo> I like this from Haskell: fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
<GeDaMo> It defines an infinite list of the Fibonacci sequence
<kazinsal> a funny one-liner to me, because as someone who knows the definition of the fibonacci sequence it sort of breaks down into working components in my head
<kazinsal> but not sufficiently in a manner for me to understand the syntax
<GeDaMo> : is the list constructor, zipWith applies a function ( + in this case ) elementwise to two lists
gog has joined #osdev
dennis95 has joined #osdev
zaquest has quit [Quit: Leaving]
zaquest has joined #osdev
<kingoffrance> "like i was doing research into worm propogation.. and lol, not even close to the skillset required for that" hey, thats not a problem. wormos ...just make some security researcher os.
<kingoffrance> " my projects right now that i haven't erased out of depression and/or desperation" not that i am a good example of anything i am pure hobbyist somewhat avoid goals ......however, not to tell you what to do, but i kind of have a masochastic "make it work" "cant throw it away" .....not saying you should do that, but you get different results depending on mindset.
Burgundy has quit [Ping timeout: 265 seconds]
<kingoffrance> depending on what you are doing, that is an asset or liability "never throw it away, force your way to refactor"
<kingoffrance> i am NIH person, so thats good for that...
dormito has joined #osdev
AssKoala has joined #osdev
<kingoffrance> i view my hobbyist "os" stuff as a neverending project, so there is never lack of things to do, just about priorities
[X-Scale] has joined #osdev
X-Scale has quit [Ping timeout: 260 seconds]
[X-Scale] is now known as X-Scale
AssKoala has quit [Ping timeout: 260 seconds]
hanzlu has joined #osdev
ahalaney has joined #osdev
<klange> Figured out why my thinkpad's nic was so slow, which would have been obvious if I looked at the port: it wasn't set to gigabit. I seem to be missing some config stuff for the PHY if I reset it, so it's not doing autonegotation properly.
<klange> With the right bit flipping I can get it to do gigabit, though everything remains pretty slow and I can at best get a hundred or so mbps, which is roughly what I get in the VMs anyway.
<klange> Spent a bunch of time retooling the whole thing... now I think I'm running into transmit issues in my TCP stack due to, well, lack of anything that really resembles a TCP stack.
<klange> It's supposed to rain this weekend, so I guess that's what I'll be doing...
<klange> I'm looking at freebsd's approach to network interfaces, I took at least one idea from that of doing next to nothing in the interrupt handler and having it just immediately queue up another process to handle the receive side, and that seems to resolved some issues I was having, but hasn't really made things faster.
<j`ey> 'threaded' interrupt handler is what linux calls that
<klange> I was already partially doing it, I was just doing too much in the interrupt before handing off _and_ I as relying on a fairly slow half-assed semaphore to schedule the thread.
<klange> The next week has a couple of holidays and is known as "silver week". Which is a joke - one of the holidays is "respect for the aged day", and silver = old.
<klange> (It's a play on the April/May holiday-filled week called Golden Week)
<klange> And while I'm hoping for some good weather so I can go outside, I suspect I'll still have lots of time for a little hackathon on the network stack.
<klange> Who knows, we might even get the TCP stuff shaped up enough to host a server of some sort!
<j`ey> nice. I have a 3 day work week next week, taking an extra day off to meet a friend, who i havent seen for 2 years now :o
<klange> You say that it's like surprising or long, but that's pretty much everyone right now.
<klange> like it's*
<j`ey> yeah :(
<j`ey> win 43
<j`ey> woops
<klange> /win 43
<j`ey> i really should delete some windows and move stuff around :P
<klange> If they don't all fit on keybinds, you have too many.
<j`ey> I have 88 lol
<klange> I have 26, but the tail of those are private convos and loose chanserv/nickserv windows
<klange> A couple of these are Twitch chats I idle in to maintain logs.
<j`ey> yeah i have far too many random PMs that were used for a short time but never closed
<j`ey> but now I know what window is on 43, and if i close some.. it'll move about D:
<klange> Speaking of which, one thing I should do is rewrite my IRC client...
<klange> The current one is a silly hacked-together thing that is mostly just a series of printfs, I would love to write one with the infrastructure from my text editor and have scrolling buffers...
<klange> Need to write a telnet client, add more features to my HTTP client, maybe set that up so you don't need to download an entirely different build of it for TLS support (but, ugh, don't want think too much about trying to interface with mbedTLS as a loaded lib)...
chartreuse has quit [Ping timeout: 265 seconds]
kkd is now known as Kartikeya
isaacwoods has joined #osdev
hanzlu has quit [Quit: Konversation terminated!]
srjek has joined #osdev
[itchyjunk] has joined #osdev
doppler has quit [Read error: Connection reset by peer]
ZetItUp has joined #osdev
doppler has joined #osdev
Burgundy has joined #osdev
AssKoala has joined #osdev
Elbeeo has joined #osdev
AssKoala has quit [Ping timeout: 260 seconds]
Elbeeo is now known as AssKoala
Izem has joined #osdev
isaacwoods has quit [Read error: Connection reset by peer]
fedorafan_altern has joined #osdev
dutch has quit [Quit: WeeChat 3.0.1]
dutch has joined #osdev
rwb has quit [Excess Flood]
rwb has joined #osdev
Elbeeo has joined #osdev
AssKoala has quit [Ping timeout: 252 seconds]
[itchyjunk] has quit [Read error: Connection reset by peer]
Elbeeo is now known as AssKoala
ElectronApps has quit [Remote host closed the connection]
Izem has quit [Quit: Going offline, see ya! (www.adiirc.com)]
dennis95 has quit [Quit: Leaving]
<Griwes> I really like how Zircon does syscalls and vdso (including how they are defined in tree) and I really hate that I like it, because it involves silly amounts of code generation, which (a) is unfriendly to clangd, at least to an extend, and (b) would send me on a wild "now I need a protocol syntax and a compiler for it" side project when I just want to print text :'D
<Griwes> also, geist: the way zircon pretends to not know ELF by making a simpler ELF out of the first usermode process image is... clever, and I can't tell if it's the good clever or the bad clever
<Griwes> geist: is there a specific reason for making userboot also obey the vdso regime completely, other than "this way everyone has to"?
superleaf1995 has joined #osdev
System123 has joined #osdev
archenoth has joined #osdev
Oshawott has quit [Ping timeout: 260 seconds]
AssKoala has quit [Ping timeout: 265 seconds]
AssKoala has joined #osdev
doppler has quit [Read error: Connection reset by peer]
<geist> Griwes: yeah, there's a lot of things that can be done in a fancy way in zircon because we have a lot of folks on the team to do the work
<geist> things like writing tools to generate stuff doesn't seem to be a problem for us, someone will happily do it
<geist> whereas for hobby stuff that can easily turn into a huge time sink
<geist> re: obeying the vdso, it's because everyone has to
<geist> even more so the syscall path itself actually validates that syscalls come out of the vdso, so it'd have to make a special case for userboot, etc
doppler has joined #osdev
<geist> also kinda subtle, but one of the aspects of the fact that the vdso is generated at the same time the kernel is and thus is guaranteed to be 100% in sync is the actual low level call doesn't *have* to be standard
<geist> the vdso code generator is free to pick an arbitrary syscall #, pack args, use whatever scheme it wants to since it makes code for both sides
AssKoala has quit [Ping timeout: 252 seconds]
<superleaf1995> oh no
superleaf1995 has quit [Quit: exit]
srjek has quit [Ping timeout: 240 seconds]
jimbzy has quit [Ping timeout: 268 seconds]
jimbzy has joined #osdev
jimbzy has quit [Ping timeout: 268 seconds]
jimbzy has joined #osdev
fedorafan_altern has quit [Quit: Textual IRC Client: www.textualapp.com]
<Griwes> geist: how does the kernel do the validation? Does it look up the mapping for the vdso vmo for the process and check if the address is inside, or something fancier?
<geist> correct. more so it checks that the address is precisely the right offset within the vdso
<geist> it's not that expensive, as part of the vdso compile it builds a table of syscall # -> offset, and then in the process structure it records the vdso load address (which is random)
<Griwes> It does require the kernel to be more strictly tied into the build prodc
<Griwes> Process* of the vdso
<Griwes> Than I've been thinking so far
<geist> 100%
<geist> the vdso is totally paired with the kernel, built at the same time
<Griwes> Oh sure, I mean even beyond that
<geist> currently the vdso itself is a payload of the kernel. on boot the kernel builds a VMO for it and passes it on to user space for it to map
<Griwes> It's no longer two components built at the same time
<Griwes> It's actually the same component
<Griwes> I've been thinking along the lines of having the vdso be a normal ELF file within the initrd
<geist> can do that
<j`ey> lolwut, some powerpc CPUs have 256K page sizes?
<geist> j`ey: sure. that's not particularly odd
<Griwes> But while it avoids the kernel dealing with even the smallest bits of elf manipulation
<geist> ARM has a bunch of intermediate stages
<bslsk05> ​en.wikipedia.org: Page (computer memory) - Wikipedia
<j`ey> well yeah, but i think this means as the smallest granule
<geist> Griwes: yeah in the case of zircon there's a vdso in the kernelm but it's totally just a payload. it doesn't interpret it
<Griwes> It necessarily makes the user space boot process not have it immediately
<geist> the main downside with that is in general the kernel doesn't force a particular ABI on user space *except* that the vdso is ELF and it's assumed that whatever user space is doing will understand ELF
<geist> so if you wanted to build say a win32 runtime on top of te kernel you'd need to atl east grok ELF enough to deal with linking with the vdso
<Griwes> geist: but how does the userboot resolve the symbols then?
<geist> or there'd need to be a second, PE based vdso. which would also be totally doable
<Griwes> Does it also know the offsets like the kernel?
<geist> no. it understands elf
<geist> enough to link with it
<Griwes> So it can't make a syscall if there's an issue with the vdso?
<geist> sre. if there's an issue with the vdso you're not going to space that day
<Griwes> Like, something went wrong somewhere, and it can't link itself with it
<Griwes> It just has no way to report that?
<Griwes> That's actually why I started looking at how zircon does things there
<Griwes> Because I wanted to log when the initrd that is supposed to contain the vdso is invalid
<Griwes> But that clearly doesn't work if you _must_ go through the vdso ;>
<geist> think of userboot as the user half of the last stage of the kernel, and not init
<Griwes> Right
<geist> it does just enough to bridge the gap to get a real process working
<Griwes> Yeah, that's my frame of reference
<geist> but yeah what you say does make sense. if the initrd has a bad vdso, is corrupt, etc then you're going to have problems. one of the reasons we dont put the vdso in the initrd
<geist> it's part of the kernel so there's literally no way for it to be out of sync
<Griwes> It's just weird that you end up in this halfway state that suddenly has _less_ error reporting capabilities
<geist> and in some future we'll probably have multiple vdsos for various purposes
<Griwes> Right, but even in the kernel it could be corrupted
<geist> yah bootstrapping µkernels are always a fun Jenga thing
<geist> well, if it's crrupted in the kernel that falls into 'everything is fucked' situation
<geist> i wouldn't worry too much about that
<Griwes> Well, the best you could do is try to print "hey things are fucked"
<Griwes> Which is better than silently dying
<geist> well, sure but there are certain catastrophic failures that probably aren't worth stressing over and/or addin code paths
<Griwes> Tho I guess I could let the boot process reuse, say, int3 for that
<geist> make it fail catastrophically (it would) and you wouldn't really have much trouble
<geist> but yes, early printfs in userboot is a problem when initially implementing it
<Griwes> And when I see an early int3, just print "bootinit couldn't obtain syscalls, dying"
<geist> note the vdso though it is ELF is also designed to be 100% PIC, i think we have some code to ensure that
<geist> so you can i think blat it anywhere and branch itno it, if you know the entry point offsets
<Griwes> Oh yeah that's a given
<geist> so it stands to reason you could help things out by also passing to userboot (or equivalent) an offset for 'here's the emergency printf syscall'
<geist> then within a few instructions you could blat some debug text
<Griwes> Oooh
<Griwes> You mean the kernel knows the offsets
<geist> when zircon starts userboot it hands it a fairly large bundle of resources, since in a lot of cases it's the one place that some handles were minted to be passed on
<Griwes> But the userland image doesn't need to
<Griwes> Okay, that's not awful
<geist> sure kernel knows the offsets because of the syscall # -> offset table
<geist> the key is the whole thing is tightly coupled so you can easily extend that. it's the main reason userboot exists and this wasn't just tossed into the proper init process
<Griwes> Btw finding the code for userboot is somewhat... hard ;D
<Griwes> I ended up just cloning the repo and grepping for it lol
<geist> it's like an adaptor that converts from the unfriendly kernel world to a more functional user space. and userboot is basicaly runtime agnostic
<Griwes> Yeah
<geist> indeed. the code tree is always getting refactored for this or that. i ceased to get worked up about it since it's a losing battle
<geist> to most folks at work placement of code is almost irrelevant. you're supposed to use tools to find stuff, etc etc. so there's this constant churn of moving things around, build system work, refactoring, reformatting, etc
<Griwes> I made the same distinction, proper init will be a proper file, the initial user process is just a flat binary
<geist> kinda annoying until you just Let It Go
<Griwes> Alright, cool. Thanks for the ideas
<geist> sure thing!
<geist> also there's a fuchsia discord if you have some other questions
<Griwes> It's really interesting to me how many things I want to do differently than zircon, especially when every time I look I find something else I want to do similarly
<geist> lots of folks will ge tyou answers i fyou're interested in things like the component system and how drivers are loaded, etc
<geist> haha yeah there's the 'cant be unseen' thing that's totally real
<geist> i tend to avoid digging *too* much into other designs until i've decided more or less what i want to do
<Griwes> But I sure do feel vindicated when I independently come up with an idea lol
<geist> otherwise you'll get tainted with previously good or at least interesting ideas
<Griwes> And then find it in zircon
<geist> right!
<Griwes> Alright, back to hiking the bryce canyon rim :D
<geist> haha are you out on a cliff somewhere typing on a phone?
Vercas has quit [Remote host closed the connection]
<geist> mayb eyou are, you're capitalizing things, seems like a phone may be autocorrecting
Vercas has joined #osdev
<Griwes> Yep :D
AssKoala has joined #osdev
GeDaMo has quit [Quit: Leaving.]
dormito has quit [Quit: WeeChat 3.1]
System12_ has joined #osdev
System123 has quit [Ping timeout: 252 seconds]
shan has left #osdev [WeeChat 3.2]
jimbzy has quit [Ping timeout: 252 seconds]
jimbzy has joined #osdev
srjek has joined #osdev
dormito has joined #osdev
gog has quit []
System12_ has quit [Ping timeout: 268 seconds]
System123 has joined #osdev
System12_ has joined #osdev
System123 has quit [Ping timeout: 260 seconds]
<raggi> :-)
amine has quit [Quit: The Lounge - https://thelounge.github.io]
<Griwes> ...lol my midday food package is mocking me... "don't text and hike", as if it knew *exactly* what I've been doing earlier
<klange> Typhoon rolling through.
<kazinsal> Pretty nasty wind and rain here as well
<kazinsal> Wind's mostly subsided for now but it's still coming down in sheets
amine has joined #osdev
System12_ has quit [Remote host closed the connection]
System123 has joined #osdev
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
srjek has quit [Ping timeout: 240 seconds]
System123 has quit [Ping timeout: 265 seconds]
Izem has joined #osdev
[itchyjunk] has joined #osdev
h4zel has joined #osdev
gog has joined #osdev
merineid has joined #osdev
<merineid> I gave you lot of chanches to change your attitude you born illies mental and sex expert fake deluded minds and programmers, no more warnings will be generated towards you, and next thing over you mindless bot parrots will be taken to the field and executed in a row, cause UN says 2.7degree celsius global warming was the result of your sick residents in the world. https://patents.google.com/patent/US6393579B1/en https://en.wikipedia.org/wiki/Clock_domai
<bslsk05> ​patents.google.com: US6393579B1 - Method and apparatus for saving power and improving performance in a collapsable pipeline using gated clocks - Google Patents
<merineid> n_crossing
<bslsk05> ​en.wikipedia.org: Clock domai - Wikipedia
merineid was banned on #osdev by klange [*!*lemonade@121.158.203.*]
merineid was kicked from #osdev by klange [merineid]
Izem has quit [Ping timeout: 252 seconds]
chartreuse has joined #osdev
Burgundy has quit [Ping timeout: 265 seconds]
AssKoala has quit [Ping timeout: 252 seconds]
<Matt|home> that patent reminds me of the netbsd toaster. i.. still want one.
<bslsk05> ​www.embeddedarm.com: NetBSD Toaster Powered by the TS-7200 ARM9 SBC | Technologic Systems Blog
<[itchyjunk]> Hm, i had issue just making eqmu. Does anyone happen to know how to how to `make` it for just riscv's by any chance? (I've also asked in the qemu channel in oftc. asked earlier today and no luck)
<zid> ./configure --help
<zid> probably named something like targets
<klange> [itchyjunk]: heh, I think you asked when no one was there due to a netsplit :D
<[itchyjunk]> oh..
<klange> 06:23:44 -!- Netsplit charon.oftc.net <-> liquid.oftc.net quits: cbaines, minus, malevolent_, qyliss, epilys, cpaelzer_, kolla, Liexei, plonk-, niteesh[m], (+85 more, use /NETSPLIT to show all of them)
<klange> ha
<zid> option three :p
<klange> --target-list=riscv64-softmmu
<[itchyjunk]> ah ! wait can i do multiple things? --target-list=riscv64-softmmu,riscv32-softmmu or somesuch?
<zid> yes
<zid> hence -list
<[itchyjunk]> ah
<[itchyjunk]> Hurrah only 2.4k stuff to make as opposed to 10k when building everything!
h4zel has quit [Ping timeout: 265 seconds]