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
gog has joined #osdev
CryptoDavid has quit [Quit: Connection closed for inactivity]
[itchyjunk] has joined #osdev
<[itchyjunk]> Oh didn't know such a channel existed. hello!
<klange> We've existed for decades!
<zid> sadly
<klange> Sadly.
<[itchyjunk]> Ah!
<gog> hi
<[itchyjunk]> OS developing sounds hard! I hadn't internalized how much detail an OS has to handle
<gog> yes
<gog> many little details matter
<zid> Just make a crap one
<gog> ^
<[itchyjunk]> I actually wanted to learn enough to do a hello world for RSIC-V
<klange> Just spend your entire adult life working on your OS and you'll get there eventually.
<[itchyjunk]> But that's been kind of a rabbit hole and realized everything is way more complicated
<[itchyjunk]> Ha, have you written your own OS?
<gog> klange is the og os dev
<vdamewood> [itchyjunk]: Nearly everyone here has had a go at it.
<gog> he's among the proud few that have a spiffy gui
<[itchyjunk]> ohh! i didn't know you did os dev vdamewood !
<klange> I may have dabbled a bit. https://github.com/klange/toaruos
<bslsk05> ​klange/toaruos - A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc. (357 forks/3691 stargazers/NCSA)
<[itchyjunk]> oh yours even has a gui? dang
<vdamewood> [itchyjunk]: I've dabbled in it.
<[itchyjunk]> OS devs would have to be familiar with things are hardware level no? like gate level?
<zid> gates? no
<zid> it's all software
pony has quit [Quit: WeeChat 2.8]
<[itchyjunk]> hmmmmm
<klange> I think it's fun to know that stuff, but that's a very different area.
<klange> Back in my uni days, we had the IEEE and ACM student chapters, and we are war.
<klange> were*
<zid> It's just regular ass embedded programming, until you've made your 'environment' then it's regular ass programming against an API.
<[itchyjunk]> So it's one level of abstraction above where you already have OP codes and such is where you do OS dev?
<[itchyjunk]> I still don't fully grasp how computers work..
<vdamewood> Lightning goes through and and makes beep boop.
<vdamewood> through sand*
<klange> Magic sand.
<gog> boop beep
<klange> Also, don't worry, no one really does, as evidenced by the last decade of issues with Intel, AMD, _and_ ARM CPUs.
* vdamewood gives gog a beeping fish.
<clever> and boot code is literally set in stone
* gog chomps and beeps
<clever> the "mask rom" is just a pattern of defects in a purified slab of sand :P
<vdamewood> And the only reason Risc-V CPUs don't have those problems is because they don't really exist.
Matt|home has joined #osdev
<[itchyjunk]> ahh boot code, that's the magical stuff.
<[itchyjunk]> i understand once that is done, you can use the instruction set for that hardware and store things in register, add substract etc and slowly build computers
<[itchyjunk]> boot code seems to be the glue between hardware and software
<vdamewood> Naw, it's just the instructions that get run when you boot.
<Matt|home> hi [itchyjunk]
<[itchyjunk]> oh hello Matt|home. didn't know you were into os dev
<Matt|home> it depends more on the mode you're operating in and what kernel ring more than anything
<vdamewood> Yeah, all the cool kids are into OS dev.
<Matt|home> i wrote a shitty bootloader but im putting my dev stuff on pause until im finished with my degree
<gog> i'm on pause too
<[itchyjunk]> Are you still working on math degree?
<gog> mostly focusing on my health and trying to find work
<Matt|home> general 2 year college degree. should get it by july of next year. im like 6 classes away
<vdamewood> gog: Also on paws.
<[itchyjunk]> so i looked up `state machine` yesterday and it has a start state. is this the state before boot code or after?
<gog> yes
<klange> A state machine is an abstract concept.
<gog> a state machine is a concept,
<gog> jinx
<[itchyjunk]> my last semester if i pass my classes
<Matt|home> [itchyjunk] : are you trying to get into os dev or computer construction or what? sorry im pretty late to the convo
* vdamewood hand Matt|home a party hat, and slice of cake.
<[itchyjunk]> right, state machine is an abstract concept but that idea is still what modern computer is based on right?
<vdamewood> Not really.
<[itchyjunk]> Matt|home, no i don't think i could handle os dev haha
<[itchyjunk]> i am learning some basic programming for a class though
<Matt|home> cuz you can abstract a lot of that hardware stuff without worrying about it. x86 for example has some boot procedures that aren't super relevant
<Matt|home> here..
System123 has joined #osdev
<vdamewood> x86 also has memory addresses for writing character data directly to the screen.
<[itchyjunk]> Matt|home, i just want some basic understanding of what's going on. it's pretty much magic for me so far
<[itchyjunk]> oh..
<Matt|home> [itchyjunk] : https://github.com/mattaferrero/bootloader/tree/main/bootloader_installer <-- if you click the readme.txt file a paragraph down it covers the boot sequence. that covers a lot of the 'magic' :p
<bslsk05> ​github.com: bootloader/bootloader_installer at main · mattaferrero/bootloader · GitHub
<bslsk05> ​github.com: petrichor/screen.c at master · vdamewood/petrichor · GitHub
<[itchyjunk]> x86 doesn't need to have a driver to print hello world to screen?!
<gog> there are basic interfaces you can use
<klange> Eh, that's a complicated exasperated realization.
<klange> Classically, x86 has text modes where hardware has a text buffer mapped to memory and you stick characters (and attributes) in it and the video card plops them out.
<moon-child> that's 'x86 pc', not x86
<klange> That's technically a PC_specific thing.
<kazinsal> at the simplest and most accurate definition, "x86" doesn't know what the hell a screen is
<clever> thats the job of the video card
<clever> for dos level compatability, there is basically a char[w][h] array in ram, and the video card turns text into an image automatically
<klange> Most modern platforms offer some sort of framebuffer, and very often it's set up by a firmware, and very often you don't have much of a say in the existance of said firmware.
<moon-child> kazinsal: I wonder if the minix build running on the ime includes any video drivers
<Matt|home> basically the tl;dr version is that there are simpler architectures that are better for introductory os dev projects
<Matt|home> cuz they don't have that backwards compatibility insanity mainly
<klange> So at a similar level, most modern stuff also doesn't need a "driver" of any appreciable sort to output 'hello world', but it probably does need a font :)
<clever> and i'm the crazy guy writing firmware that has to first configure that framebuffer :P
sprock has joined #osdev
System123 has quit [Ping timeout: 268 seconds]
<[itchyjunk]> hmmm
<Matt|home> also tl;dr basically modern UEFI makes that whole boot magic irrelevant
<[itchyjunk]> i know of firmware in the context of like an mp3 player. but what would firmware mean in context of regular computer?
<clever> [itchyjunk]: on x86, the firmware would be implementing things like the bios or uefi
<klange> Firmware, as its name implies, is software that is more directly linked to the hardware, less changeable.
<klange> On a PC, firmware is something like the BIOS or the UEFI implementation, possibly even written to a ROM chip.
<[itchyjunk]> hmmm so boot code and firmware are related?
<Matt|home> [itchyjunk] : https://css.csail.mit.edu/6.858/2009/readings/i386.pdf <-- this basically answered 99% of all my under the hood questions. it's 400 ish pages. you can read that on the shitter in a day or two
<gog> yes, firmware typically looks for boot code when it's done with startup
<klange> Matt|home: probably depends on your diet
<[itchyjunk]> ahh firmware -> bootcode -> OS
<klange> No, that's not a valid generalization :)
<[itchyjunk]> ah.. lol
<klange> There's lots of different kinds o' computer out there.
<kazinsal> processor -> microcode -> firmware -> software
<Matt|home> eh.. it's really just all different levels of abstraction.. if you want a clean and clear cut line between them you're not gonna get one
<kazinsal> is a bit more of a realistic generalization
<kazinsal> but then you've got peripherals that aren't really running software of their own but have processors that run firmware
<[itchyjunk]> wait, how do you mean processor? processor has some code that it comes with that must run first?
<clever> [itchyjunk]: some cpu's have their own internal boot rom, that runs first
<[itchyjunk]> wow wth
<kazinsal> modern processors use decoder logic to run sequences of micro-operations for given instructions in the assembly language/ISA they run at the software level
<klange> Even x86, as a plain CPU architecture detached from a platform, just starts executing whatever code is mapped at a particular address (0xFFFFFFF0). Whether that's a ROM chip, flash, or something written by dip switches on a panel.
<kazinsal> this microcode is non-portable between different processors
<gog> it's a black box effectively
<bslsk05> ​doc.coreboot.org: AMD Family 17h in coreboot — coreboot 4.14-1802-g89356d142b documentation
<kazinsal> instructions go in, data comes out, you can't explain that
<gog> lol yes
<[itchyjunk]> lol
<clever> kazinsal: the amd 17h line of chips, run some code from a maskrom, to bring ram up, copy the bios to ram, and then map that bios blob to 0xFFFFFFF0
<clever> klange: oops, ^
<clever> so what you said, happens as more of a step 5, lol
<moon-child> on the amd k8 and k10, ucode was unsigned, and they were able to reverse-engineer it and run their own
<kazinsal> yeah, AMD was kind enough to provide their blobs as BSD licensed "code" too which is rad
<[itchyjunk]> oh ram? is it because it's huge? there is L1 L2 stuff closer by
<clever> [itchyjunk]: because the spi flash is horid slow
<moon-child> kazinsal: well the main thing was it was unsigned and unencrypted
<moon-child> rather than licensing
<clever> even without that secondary cpu, there is also a thing called bios shadowing
pretty_dumm_guy has quit [Quit: WeeChat 3.2.1]
<moon-child> newer cpus it's all signed and encrypted, completely opaque
<kazinsal> moon-child: I meant in the case of Zen/Zen+/Zen2
<clever> where the bios will copy itself to ram, just to make it run faster
<kazinsal> not sure about Zen3
<moon-child> ah, really?
<kazinsal> yeah, it's not "open source" but it's freely redistributable
<[itchyjunk]> oh some code has to come before bios to check if there is a ram connected or not and copy things to ram
<[itchyjunk]> i thought the thing that checked if ram was connected or not was bios.. :S
<gog> yup, DRAM has to be initialized
<gog> and on modern cpus the DRAM controller is in the package
<clever> for some systems, the code from the reset vector at 0xFFFFFFF0 can bring the ram up
<bslsk05> ​coreboot/amd_blobs - Administrator : Marshall.Dawson@amd.com (is fork /2 forks/0 stargazers/NOASSERTION)
<clever> but it depends on the cpu
<kazinsal> looks like `cezanne` is Zen 3 based APUs
<clever> for the systems ive been working on, the maskrom will only initialize the L2 cache, load a .bin file (up to 128kb) into the L2 cache, and then execute it
<clever> everything past that point, is my job
<klange> The plastic piece that keeps the connector in place on the rj45 on my ThinkPad broke off at some point in the far past, and it is making my life difficult.
<[itchyjunk]> does .bin file means it's full of 1's and 0's ?
<zid> Time to epoxy it in
<zid> if you need to change networks, cut the cable in half and splice
<klange> I should probably replace the jack.
<clever> [itchyjunk]: in this context, the .bin is just the raw opcodes, from running objcopy on a compiled binary
* gog fills herself with 2's and 3's
<moon-child> heretic!
<[itchyjunk]> hmm
<zid> to be fair, I bet that file is full of 2s and 3s if you look at it in base 43
<zid> or base 4
<zid> which is like base 43 but has thinner fingers
<clever> lol
FreeFull has quit []
<klange> Other things that have broken on this laptop include the latches that keep the lid closed (because someone forced it open when it was sitting Kensington-locked to a table at a convention), one piece of the fan grill, and the top of the screen is a bit finnicky.
<gog> my space bar and z key are wonky
<gog> i got them fixed good enough but nothing is made like it used to be
<zid> I just replaced my keyboard
<klange> I have a JIS keyboard, which is enough of an issue in its own right, but all the keys work...
<[itchyjunk]> my charging port on my laptop is broken because someone tripped on the cables :(.
<zid> because my previous one was super mega ultra garbage
<[itchyjunk]> So i am stuck on this older laptop
<zid> I looked through like.. 800 keyboards on amazon to find one that VAGUELY didn't suck or cost >£60
<zid> I found one.
<klange> I tried to get a replacement US English keyboard, but originals are no longer available for this model, and I ended up with a third-party clone, and it sucked so bad I just threw it in my closet and put the JIS one back in.
<gog> if i get a new computer i'm buying it from the states because icelandic keyboard layouts have a funky placement and size of the enter key
<gog> and every other key you use in programming for that matter
<zid> ANSI keyboards can rot in hell
<gog> i don't want the iso keyboard
<gog> i don't wan it!
<klange> Very much a matter of what you're used to, and I'm used to ANSI. JIS keyboards also have tiny space bars to accomodate dedicated IME keys I never use.
<zid> I want IME keys
<klange> And I _do_ type plenty of Japanese, it's just that with all my other keyboards being ANSI I'm used to the F-key shortcuts for those functions...
<gog> yeah i just use compose when i need icelandic characters
<gog> ðþ
<zid> windows isn't capable of installing jpJP or whatever the layout is without installing enUS which is fun
<klange> Still need to add keyboard layout configuration to my OS... probably should do that before 2.0...
<zid> yea I need enGB
<zid> it also needs to be layout #42 so that I don't pick the wrong one during the installer
<zid> so you'll need to add 40 other made up layouts first
<nanovad> my 2c is that there's no reason for ISO Enter to be that big
<zid> it isn't big, it's tall, which is correct
<zid> it's less wide than ctrl
<zid> you also get several extra keys to go along with your better enter key
<gog> bigger isn't always better
<nanovad> No other keys are that tall, which bugs me lol
<zid> ANSI one is on the wrong layer because they had to cram in an extra key so they could have a quadruple wide left shift and right shift
<zid> correct place to press enter is with a neutral pinky finger, basically on the icon printed on the key
<zid> ansi one is scrunched up and I hit it constantly going for '
<gog> hm
<zid> I don't actually understand how to fix typos on an ansi keyboard, legtimately, which fingers do you press backspace and enter with? Seems like too much flexion to use two fingers, and pinky twice seems.. awful
<zid> https://i.redd.it/mcjp4eu8kwi11.jpg Correct way to install an ANSI enter key
* moon-child silently plugs thumb clustre
<zid> Hmm I just noticed this keyboard doesn't have a split-level capslock, that might be my first
<moon-child> cluster
<zid> clustre, it's like a cluster but french and thus more expensive to import
<gog> i don't make mistakes
<gog> but idk my right hand just snaps over to the backspace key and i tap it with my pinky
<gog> i don't stretch, i physically lift my hand
<zid> I'll take my extra keys and better ergonomics then I guess
<gog> you get one extra key
* moon-child silently plugs thumb clustre
<zid> two or three!
<zid> alt-gr counts
<gog> do you have a ligma key
<zid> no I only have e10
<gog> lmao
sortie has quit [Ping timeout: 268 seconds]
<junon> I have a split, my space keys are some japanese symbol, and a little old computer icon
<junon> It'd be fun to have more weird keys but alas keyboard hacking is a hobby that can suck away all of your time if you're not careful
zaquest has quit [Quit: Leaving]
<klange> huh, didn't expect that to work... my old checkout of mupdf pretty much just builds with my toolchain with one minor patch... and it seems to be working just fine
mahmutov has joined #osdev
anon16_ has quit [Ping timeout: 265 seconds]
zaquest has joined #osdev
gog has quit []
sortie has joined #osdev
isaacwoods has quit [Quit: WeeChat 3.2]
<zid> Is that a screenshot of enGB, that sounds hard to make
<nanovad> zid: I have really short pinkies so I use ring for ) and anything to the right of it on that row
<nanovad> pinky for vertical
<nanovad> er, vertical bar*
pony has joined #osdev
<zid> I have absolutely no idea where pipe is on enUS lol
<nanovad> Also I don't use right shift (probably because of aforementioned pinkies), so my Lshift I'd be hitting / constantly
<zid> I always press keys on the edges of the keyboards on their outer edges for the most part
<moon-child> nanovad: I used to use exclusively right shift
<nanovad> Mm, I'm inner edge
<zid> I stretch toward the middle, not toward the outsides
<zid> moon-child when did you find out you were a total weirdo
<moon-child> lol
<moon-child> I decided to improve my technique at some point, so I moved shift to the thumbs and I think I do a decent job of alternation now
<zid> shift.. to the thumbs
<zid> excuse me what
<nanovad> Huh, I just realized that if I use pinky for lshift I must use ring for QAZ uppercase... which I do! and ring for Q, which is decidedly Wrong
* moon-child silently plugs thumb clustre
<zid> ring for Q is correct
<nanovad> Oh? :o
<zid> Unless you're like, following that stupid home row touch typing bible, real people sometimes type in uppercase, or above 60wpm
<clever> mxshift: ive fixed the corrupt usb packets, by configuring the usb phy with https://github.com/librerpi/lk-overlay/commit/c57b0229197a9b627a5dc874398dfd68257b94b5
* moon-child silently plugs ortholinearity
<bslsk05> ​github.com: configure usb PHY on startup · librerpi/lk-overlay@c57b022 · GitHub
<nanovad> moon-child: I like the concept but retraining my muscle memory just to have it destroyed on the mandatory keebs at work is unfortunate
<moon-child> you're not allowed to bring your own keyboard to work??
<zid> I have no idea why you'd want one of those tbh
<zid> maybe they do tech support and bounces between 387493 keyboards
<nanovad> zid: right, I'm of the opinion that if you have a layout/style that works, stick with it
<moon-child> nanovad: I think I have pretty similar speeds on my fancy ergo keyboard and a regular flat one
<nanovad> accuracy is more my concern
<zid> I can do 120wpm at 100% accuracy, just give me 3 tries ;)
<nanovad> I do tech support yeah, but also we're not allowed to plug scary outside USB devices into our stuff
<nanovad> we're not even medical/classified :|
<clever> my typing speed/accuracy is just wrecked if i switch to a keyboard i havent used in a few years
<moon-child> ahh :/
<zid> I should typerace on my new keyboard
<moon-child> hm, yeah. I definitely have worse accuracy on a flat keyboard
<nanovad> flat is <3
<moon-child> ._.
<nanovad> observe; this is how wars are started (and why different kinds of keyboards are produced)
mavhq has quit [Ping timeout: 265 seconds]
<moon-child> now time to do vim vs emacs
nanovad has left #osdev [duck!]
<moon-child> or is it now emacs/vim vs vscode? I cannot keep track
nanovad has joined #osdev
* clever gets out the vim flag
<nanovad> vim with emacs keybinds :3
<clever> moon-child: did you see the huge stink when RPF added a MS apt repo into the source.list, so vscode could easily be installed?
<zid> hrmph can only comfortably do 100 atm on this keyboard
<clever> moon-child: from how the community reacted, you would think that it was pre-installing spyware on every pi, lol
<zid> it's still pretty new
<nanovad> Odd, considering you can have OSS VSCode
<nanovad> I think my record high typing speed is 147wpm @ 97% acc, normally I'm somewhere between 90 and 120 98%
<clever> nanovad: and you cant even convince the paranoid people, because every time you `apt-get update`, even without vscode installed, it leaks your IP to the evil MS!!, lol
anon16_ has joined #osdev
<nanovad> clever: and we all know that with your IP, they can launch a ddos packet trace trojan v.v
<clever> nanovad: i have been the victim of a ddos before!
<clever> but the idiots used my own dyndns domain to target it
<zid> My friend used to do it for fun
<clever> so i could freely paint the target on anything i wanted
<zid> "hey zid I got new intern-"
<zid> *connection reset by peer*
<clever> i knew where it was coming from, and just started some friendly fire :P
<nanovad> :D
_whitelogger has joined #osdev
<clever> mxshift: and your right, ethernet checksum accel was enabled, but from how i fixed it, the problem was between the usb controller and usb nic
blockhead has joined #osdev
mavhq has joined #osdev
freakazoid333 has joined #osdev
srjek has quit [Ping timeout: 268 seconds]
gioyik has quit [Ping timeout: 276 seconds]
System123 has joined #osdev
System123 has quit [Ping timeout: 268 seconds]
mahmutov has quit [Ping timeout: 265 seconds]
[itchyjunk] has quit [Remote host closed the connection]
mavhq has quit [Ping timeout: 252 seconds]
zid has quit []
mavhq has joined #osdev
AssKoala has quit [Ping timeout: 240 seconds]
Burgundy has joined #osdev
hbag has joined #osdev
mavhq has quit [Ping timeout: 265 seconds]
mavhq has joined #osdev
vai has joined #osdev
gioyik has joined #osdev
pony has quit [Quit: WeeChat 2.8]
pony has joined #osdev
pony has quit [Client Quit]
pony has joined #osdev
MarchHare has joined #osdev
emoney has quit [Ping timeout: 240 seconds]
pony has quit [Quit: WeeChat 2.8]
pony has joined #osdev
gioyik has quit [Quit: WeeChat 3.1]
elderK has quit [Quit: Connection closed for inactivity]
dude12312414 has joined #osdev
ElectronApps has joined #osdev
chordtoll has joined #osdev
dude12312414 has quit [Ping timeout: 276 seconds]
<klange> Since 3.6, threads were made mandatory in Python, so having a bit of a headache figure out what I need from them...
<klange> Ideally I want to make all of my patches on my end here, outside of the requisite build script changes.
<klange> I should really try to get upstreamed in autotools as well, feels like I've missed a boat on that.
nostalgia has quit [Remote host closed the connection]
<Affliction> hm, but cpython still has the GIL, so you could probably get away with faking it
<klange> The GIL is the problem, it's built on pthread condition variables!
<klange> Lookin' at the config.sub and I see sortix, glidix, rdos, something called 'moxiebox' that appears to be a sandbox execution environment project with a whopping *8* stars on github...
tacco has joined #osdev
dude12312414 has joined #osdev
<sortie> klange: No better time than today to get your OS added to GNU config.
<sortie> This applies to everyone here that expect to be around in two years.
<sortie> Then five years from now you can enjoy a majority of programs knowing about your OS in those two config.sub and config.guess files
grange_c5 has joined #osdev
grange_c has quit [Read error: Connection reset by peer]
grange_c5 is now known as grange_c
zid has joined #osdev
pony has quit [Quit: WeeChat 2.8]
scaleww has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
MarchHare has quit [Ping timeout: 260 seconds]
ravish0007 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
ravish0007 has joined #osdev
diamondbond has joined #osdev
GeDaMo has joined #osdev
dormito has quit [Quit: WeeChat 3.1]
diamondbond has quit [Read error: No route to host]
dennis95 has joined #osdev
CryptoDavid has joined #osdev
klys has quit [Remote host closed the connection]
klys has joined #osdev
AssKoala has joined #osdev
gog has joined #osdev
melonia has joined #osdev
<klange> Always a touch nostalgic to boot things in Bochs for testing. Wanted to make sure this works before I go rebuild my _port_ of bochs... https://klange.dev/s/Screenshot%20from%202021-09-15%2020-35-04.png
<klange> Time is completely borked, though, due to my use of TSC as sole clock source after boot - I calculate 16ish MHz at startup with realtime + rtc sync, but ironically I tend to get 30ish at runtime, so the seconds tick away at double time.
<zid> bochs has always had funky time
<klange> I've never understood how its RTC works without rtc-sync enabled. Really straightforward RTC code suggests it's ticking that click ridiculously fast, so bootloaders and stuff - including their own packaged SeaBIOS firmware - skip any timeouts.
X-Scale` has joined #osdev
<klange> Also for some reason I had my QEMU BGA driver labeled as bochs but bochs doesn't support QEMU's MMIO version of the interface, so that was wrong. Went in and juggled the names. Now that's the 'qemu' driver, and the one that was called 'vbox' is now called 'bochs' (vbox also does BGA without the MMIO interface)
<klange> VGA text mode is reasonable usable, GUI is very much not but it's not so glacial that I can't get to a shell and take a screenshot.
<klange> SMP appears to be working as well.
<melonia> so when the moment you keep bus open or closed (which ever way to look at it), the potential is ground on the wire, electrons are loaded in a following way, if positive to negative is potential like in case of ground, first electron will be taken from the atom, and given back to the end of the wire to change the potential or resistance a little less to program the next atoms current by pushing the current next to positively charged atom, then when some
<melonia> polarity changing signal comes we have two positive atoms which are reversed to 0 levels, i.e electrons line up without current reversing the stuff, if we had 1 and 1 i.e 10v worth of load, that means 0 and 0 replaced with GND , so reversing the polarity on the bus replaces 1s with zeros, and same polarity chancges 0s to ones, but only the ones that were not loaded with current allready
X-Scale has quit [Ping timeout: 268 seconds]
X-Scale` is now known as X-Scale
<melonia> anything could be constructed with playing with the bus like this, so the phases are address and data on the bus
melonia was banned on #osdev by klange [*!*sides1@218.148.171.*]
melonia was kicked from #osdev by klange [melonia]
<klange> Sorry, wasn't totally sure, but crosschecked IPs.
<gog> what happens if you do clock: sync=realtime in config?
<klange> My usual setup is `clock: sync=realtime, time0=utc, rtc_sync=1`
<gog> ah ok
<klange> That'll generally make my timeouts work, but there's no config option for a consistent TSC source and I really don't want to fix my runtime clock just for bochs...
isaacwoods has joined #osdev
dude12312414 has joined #osdev
perimo has joined #osdev
<perimo> you have caused so much heartpain and soulpain to me, that apologise in front of the god about your stupidity, maybe you can avoid hell, but don't ever bother me again.
perimo has quit [Client Quit]
AssKoala has quit [Ping timeout: 252 seconds]
<gog> what if you had pluggable time sources?
<gog> like linux
<gog> idk how that would fit in to the way you do it tho, it's just a thought :p
ahalaney has joined #osdev
scaleww has quit [Quit: Leaving]
brynet has quit [Ping timeout: 252 seconds]
amj has quit [Ping timeout: 252 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<klange> Wish I could travel as much as our friend's connection. Never been to Cambodia, and only ever transferred through South Korea.
dormito has joined #osdev
[itchyjunk] has joined #osdev
<sortie> So rude that the good Mr. Mart shows up and doesn't say hi to me :(
[itchyjunk] has quit [Remote host closed the connection]
[itchyjunk] has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
System123 has joined #osdev
blockhead has quit []
perimeter1 has joined #osdev
<perimeter1> so this much looks like 1 in the target and 0 feed after opening the tcp to the wire, totals 0 as if the carry was was propagated from the target 1, the other way around the same, until the carries polarity is changing, if two same polarity generate or propagates come , addition due to repelling happens, truth table is 0 mux 1 = 1, 1 muc 0 =1 1 mux 11=11 1 mux 00=00 1 mux 10=01 0 mux 0 1=10 etc.
perimeter1 was kicked from #osdev by sortie [nope]
pelmeen has joined #osdev
pelmeen was kicked from #osdev by sortie [nope]
Izem has joined #osdev
brynet has joined #osdev
sprock has quit [Ping timeout: 252 seconds]
srjek has joined #osdev
<junon> It looks like a markov chain trained on some intro to CS textbook
System123 has quit [Remote host closed the connection]
MarchHare has joined #osdev
Izem has quit [Ping timeout: 268 seconds]
Izem has joined #osdev
freakazoid333 has quit [Ping timeout: 252 seconds]
ElectronApps has quit [Remote host closed the connection]
AssKoala has joined #osdev
rorx has quit [Ping timeout: 260 seconds]
[itchyjunk] has quit [Remote host closed the connection]
freakazoid343 has joined #osdev
dennis95 has quit [Remote host closed the connection]
Izem has quit [Ping timeout: 252 seconds]
transistor has quit [Ping timeout: 265 seconds]
sprock has joined #osdev
LostFrog has quit [Quit: ZNC 1.7.2+deb3 - https://znc.in]
PapaFrog has joined #osdev
pretty_dumm_guy has joined #osdev
<Bitweasil> ARM coprocessor 10 is... performance monitoring?
sprock has quit [Ping timeout: 252 seconds]
rorx has joined #osdev
medicalproc1 has joined #osdev
gog has quit [Remote host closed the connection]
<medicalproc1> There is no complexity involved , it is just some jokes do not understand much more than hello and kick, such accuse all others cause of their farts and feces. How can i really explain to anyone who ever respects me that a chimp like this kicks me for fun, sortie you are a complete joke with your pals here.
<medicalproc1> you do not also understand how adder with carry works in electronics also not the table with partly accomodated wires
medicalproc1 has quit [Ping timeout: 268 seconds]
tux3 has quit [Ping timeout: 252 seconds]
gog has joined #osdev
dbana has joined #osdev
dutch has quit [Quit: WeeChat 3.2.1]
sprock has joined #osdev
dutch has joined #osdev
h4zel has joined #osdev
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<geist> Bitweasil: i thought 9 and 10 were float and double fp?
<geist> 15 is where all the control bits go
<geist> maybe it's 8 and 9 for FP stuff
<Bitweasil> I think you're right on that.
<geist> it's mentioned somewhere, but historically CP 8-15 are owned by ARM, and if you wanted to add a CP on your soc you can use 0-7
<geist> i've seen vendors use CP 4 or whatnot for various extensions
<mjg> geist: re nics, i was about to shit on old drivers but got afked
<geist> heh
<Bitweasil> Yeah, looks like performance monitoring is cp15, c12 or so.
<mjg> looks like there is a discussion going so maybe another time ;)
<geist> mjg: heh yeah, the drivers will wait
<geist> THEY LIVE FOEVER
sprock has quit [Ping timeout: 268 seconds]
<geist> Bitweasil: also the arm64 ISA doesn't have CP instructions per se, i believe, but if you look at how they're constructed it's similar
<geist> they dont call them coprocessors but it's more like an expansion space in the ISA that has the same internal structure
<Bitweasil> Yeah, haven't gotten that far this year. :(
<Bitweasil> Probably won't get to v8 until next year at the earliest, if not later.
<Bitweasil> The stuff of interest is v7.
<geist> yeah
<Bitweasil> Pays the bills. :)
<geist> it's mostly of interest if you're trapping instructions in arm64
fedorafan_altern has joined #osdev
<geist> for hypervisor stuff etc. IIRC arm64 and arm32 coprocessor instructions are similarly enough decoded that when it traps one it delivers into the ESR register a decoded version of it
<geist> with the fields brought out, and i *think* it's the same independent of which bitness the instruction was
<geist> that might be the same in v7 with virtualization, since the v7 virtualization spec is very similar to v8 in how exceptions are delivered
<geist> essentially it was a bit of a backport of the v8 general exception model, but only used in virtualization cases on v7
<Bitweasil> I am very explicitly ignoring the horror that is v7 virtualization. :)
<geist> oh i thought that's what you were doing?
<Bitweasil> We have it stubbed in, but there are an awful lot of "TODO..." comments in there.
<geist> i guess i forget what everyone is working on
<Bitweasil> Er.
<Bitweasil> Yes, I'm writing an ARMv7 emulator.
<geist> ah an emulator, not a hypervisor
<Bitweasil> But while it claims to support ARMv7 virtualization, we don't actually support it.
<Bitweasil> We only fully support the secure mode stuff.
<Bitweasil> You can bounce through hyp mode all you want and it works.
<geist> got it. that's sound, because AFAIK nothing really used and uses v7
<Bitweasil> But if you try to set traps, they won't ever fire.
<geist> v7 virt i mean
<Bitweasil> That was our analysis. Secure mode stuff, commonly used. v7 virt, "If you really want it, let us know."
<geist> someone else here was working on a v7 hypervisor at some point
<Bitweasil> *twitch*
<geist> years ago i wrote an armv4 emulator. learned a lot that way
<geist> it's a solid way to really learn an ISA
<geist> i dragged it somewhat into v6 and v7. basicaly adding enough istructions that it'd basically run plain code
<geist> but the difference in the number of random instructions between v4 and v7 is astonishing
<geist> there are so many little fiddly edge things in ther
<geist> that plus thumb2 which is more or less mandatory for v7 code
* Bitweasil whistles quietly in "Nope, not supporting that yet either."
sprock has joined #osdev
<geist> depends on if you intend to run existing code or something that you can compile for it
<geist> if the latter, sure, there's no reason to do thumb2 for a pure emulator
<Bitweasil> We need it eventually.
<Bitweasil> Just stuck in the quagmire.
<geist> OTOH, my experience with thumb/thumb2 emulator writing is it's much less regular, but the instructions are smaller and there are just less of them
srjek has quit [Ping timeout: 260 seconds]
<geist> so at least the pure decode stage is much simpler, less decisions to make
<geist> and arm32 is particularly messy. nothing like x86 of course, but there are lots of things crammed into nooks and crannies
<Bitweasil> Once the rest of the crap is done, Thumb should be pretty simple.
<Bitweasil> It's the decoder and a few new instructions.
<Bitweasil> That's about it.
<Bitweasil> Same MMU, coprocessor regs, etc.
<Bitweasil> Oh, not sure if you saw the resolution to my problem yesterday, TLB invalidates were being dropped.
<Bitweasil> Turns out, 32-bit kernels use "mapping window" pages a lot. :)
<geist> yeah makes sense
<Bitweasil> Also, turns out, the TLB tests I wrote were failing.
<Bitweasil> I'd just not actually run them. :/
<Bitweasil> My test suite OS needs some work.
<geist> at least with an emulator you can usually safely overflush
<geist> take all the lesser TLB flush instructions and elevate to a full flush, etc
<geist> a multithreaded SMP emulator might be complex though, with the broadcast flushes and whatnot
<Bitweasil> I wrote a pretty solid TLB, it supports all the stuff actually, supports split I/D micro-TLBs, etc.
<Bitweasil> You can #define your way to *most* of the ARMv7 TLB implementations without much hassle.
<Bitweasil> There are one or two really weird ones, but it's easy enough to plug your own implementation in anyway.
<geist> neat
<geist> yeah i had some sort of simple translation cache on my emulator too. that was pretty fun hackin
<Bitweasil> Yeah, it's been interesting, diving back into CprE 300 stuff.
<Bitweasil> "... ok, wait, how does a TLB *work*? Not what the interfaces are, but how it's actually implemented?"
<Bitweasil> Fortunately, I'm writing them in C, not Verilog/VHDL :)
<geist> yep! it really teaches you a lot
<Bitweasil> ... unfortunately, some aspects are one of those "Easy in hardware, rough in C" areas.
<j`ey> C is still pretty unfortunate :P
<geist> i did a bunh of this work 15 years ago or so and sealed in a bunch of knowledge then
<Bitweasil> *nods*
<Bitweasil> It's fun to learn, useful for work, not of much value outside that.
<geist> i'm sue it's not a real serious trick, but what i did for my little cheezy TLB was keep N of them, each for different permissions
<Bitweasil> brb
<geist> ie, instruction/data/read/write/execute/etc
<geist> different permutations. since the instruction fetching knows precisely which access it is, it only consults the hash table and can skip additional perm tests
anon16_ has quit [Ping timeout: 268 seconds]
<bslsk05> ​github.com: armemu/mmu.c at master · travisg/armemu · GitHub
<geist> but the idea was to really unload the amount of work done for every TLB lookup
<geist> the final access also uses a word stored in the TLB that acts as a signed delta between the virtual and host memory address
<bslsk05> ​github.com: armemu/mmu.c at master · travisg/armemu · GitHub
<geist> anyway, real amateur hour emulator hackery, but fun nonetheless. learned a lot writing that looks like..... 16 years ago?
h4zel has quit [Ping timeout: 268 seconds]
AssKoala has quit [Ping timeout: 252 seconds]
fedorafan_altern has quit [Quit: Textual IRC Client: www.textualapp.com]
<Bitweasil> Hey, I'd love to see more stuff like that in college classes.
<Bitweasil> "Here's a crappy TLB implementation. Optimize it. Performance above X will get full credit (assuming correct behavior in all cases), best performance gets 10 bonus points."
<Bitweasil> Or maybe have some bonuses for compiled code size or such.
<Bitweasil> I'd love to teach a course like that, I just... don't have anywhere to teach, and homeschool coops aren't exactly rigorous places, academically.
<Bitweasil> ... so, entirely seriously, anyone in the US interested in a M1 Mini, 16GB/256GB? I'm no longer using it, going to toss it on The Bay of E if I don't get it sold soon, would let it go for about $700 shipped.
<Bitweasil> I've got some other goodies that go with it too, just monitors are a pain to ship.
<gog> i would be if i could afford :(
<gog> and in the S
<gog> US*
<Bitweasil> Shipping might not be terribly cheap for that either. :/
<gog> yep and then customs would hold it in hock for 18% declared value
<zid> That's why all my electronics have been books
anon16_ has joined #osdev
<gog> ah so you can indeed click book
<zid> (books are 0 rated to the UK)
sprock has quit [Ping timeout: 265 seconds]
sprock has joined #osdev
AssKoala has joined #osdev
gog has quit [Ping timeout: 252 seconds]
Starfoxxes has joined #osdev
Brnocrist has quit [Ping timeout: 252 seconds]
Brnocrist has joined #osdev
GeDaMo has quit [Quit: Leaving.]
dormito has quit [Quit: WeeChat 3.1]
medicalproc1 has joined #osdev
sprock has quit [Ping timeout: 268 seconds]
h4zel has joined #osdev
<medicalproc1> Everything about wire based conductors was allready explained in the link i provided, if the wire had no transistor based logic load on it, due to closed circuit trapping the previous load, the current gets trapped, in case of - to + currents electron movements, the following would happen infinitely when the load comes available, electron on the atomic shell will be lost to make netcharge of it positive, now + to - will go through i.e neutral or
<medicalproc1> when it changes back to negative charge by gainint electron + to - polarity would be the one reprogramming the bit so only the same bit sequences would push only, changing sequence would repel and push both i.e replace not add to the available allready and act like adder without carry on a result, there is nothing in it, the tcp hack is easy the defense is also possible, but wise man beats the defense also, it really depends on how many units of
<medicalproc1> compute you put to the task to just bypass the timing code, if you have way more resources than available for the victim the blackhat wins/beats the defense also, so it is like outrun for the win. tell me if there is something again that you do not understand? they will not get away with killing people without interference from world citizens, if first degree murders are committed by government or some ltd companies or both, they are made
<medicalproc1> responsible of those murders and that is what will happen
<moon-child> halp
dormito has joined #osdev
medicalproc1 was banned on #osdev by klange [*!*lebokas@219.248.174.*]
medicalproc1 was kicked from #osdev by klange [medicalproc1]
<clever> [root@nixos:~]# uptime 21:59:34 up 18885 days 21:59, 1 user, load average: 0.00, 0.00, 0.00
<clever> Bitweasil: ok, i definitely broke something! lol
<clever> according to /proc/uptime, its only 15 hours
<Bitweasil> lol whoops.
<kazinsal> forgot to subtract the actual system start time from your uptime timestamp
<clever> i'm guessing its a side-effect of ntp fixing the clock rather late
<kazinsal> 18885 days is approximately the time since unix 0
<clever> `last` claims every bootup was on jan 1st
<clever> yep
<clever> i'm a bit surprised that linux is handling it so poorly
<clever> you have an uptime number right in /proc/uptime
<clever> why is it diffing the wall clock?
gog has joined #osdev
<zid> kernel is right, uname isn't
<zid> blame uname
<clever> zid: but i ran `uptime`, not uname
gog has quit [Client Quit]
Burgundy has quit [Ping timeout: 252 seconds]
gog has joined #osdev
<zid> oh uptime then
<zid> gotta adjust for those leap seconds though
<clever> currently, i'm getting side-tracked, porting LUA to my firmware
ahalaney has quit [Quit: Leaving]
sprock has joined #osdev
tacco has quit []
<clever> ] lua_init
<clever> Fatal VPU Exception: Misaligned
<clever> ok, definitely doesnt work yet, lol
<klange> dump lua and port my Python knock-off instead :3
<clever> klange: i think the trouble i had with micropython, was a lack of a foundation, exception handlers and everything, but i'm also running into issues like setjmp is missing
<klange> I don't need setjmp.
<clever> definitely got color!
<klange> This is the extent of libc stuff I needed to provide under EFI (plus a malloc): https://github.com/kuroko-lang/kuroko-efi/blob/master/src/stubs.c
<bslsk05> ​github.com: kuroko-efi/stubs.c at master · kuroko-lang/kuroko-efi · GitHub
<clever> the issue i'm trying to solve, is one of config
<clever> i can boot linux on a pi2 now, but i have zero config
<clever> if you want to change anything, edit the source, recompile
<kazinsal> I need to start working on my OS project again.
<clever> my rough ideas are: dtb file, sqlite, lua, plain .ini file
<gog> same
<clever> dtb and sqlite are simpler to parse, but more complex for the user to manage
<clever> .ini is boring and limiting
<klys> kazinsal, where is your OS project?
<kazinsal> Finish the scheduler/ASMP rewrite, then port kuroko as a user task
<clever> lua, just slap the whole lib in there, and the user can do anything!
<kazinsal> klys: On my build server ;)
<klange> clever: ha, that was my entire thought process with that EFI port... "what if... Kuroko scripts for boot config?"
<kazinsal> I haven't released anything yet because I don't want to release until there's something worth using
<klys> ah.
<klange> kazinsal: Looking at the vast landscape of operating systems out there, the safe estimtae then would be never?
<kazinsal> Haha, oof
<gog> ooof
<kazinsal> I'm sure *somebody* wants a homebrewed router/firewall OS.
<klys> if it's any consolation, I got a job in may-jun and stopped working on my stuff too.
<kazinsal> I'm not sure who that somebody *is* but...
<gog> it's me
<klange> Meanwhile I'm trying to finalize a new release without feature creeping it to oblivion...
<clever> kazinsal: i once ran LFS as my router
<j`ey> someone is working on an aarch64 port of Serenity, cool
<clever> klange: also, my current bootloader lacks netboot support, so i implemented xmodem, to shove over a whole .elf of the next stage
<klange> I don't like Serenity.
<clever> klange: but if i can shove over a .lua script instead, and reuse existing logic...
<klange> Primarily because no one involved in it spends any time here or on the forum or the wiki.
<klange> And also because it makes me feel like a worthless piece of shit.
<kazinsal> I'm with klange, Serenity is an exercise in Unix purist masturbation and technical gatekeeping
<kazinsal> The whole ideology of "if you can't build it yourself you're not smart enough to use it" is ridiculous.
<klys> in other news, spent 100 on logic chips, sockets, and wire. mostly quad 2-input gates. my dip socket collection will be replete. some sram, shift register, and counter too.
<moon-child> I will say, it is cool that they managed to get a bunch of people to collaborate on a hobby os. But yeah, no real interest in the project itself
<klange> If Serenity's done anything for me, it's made more staunch in my position that I don't want contributors anymore.
<klange> Which is really a negative...
<sortie> Curiously at this point I'm actually training some contributor that is skilled enough and gets what my project is about
<sortie> Kinda wanting my OS to be more contributable
<sortie> But absolutely what klange is saying .. if it's not done right it can suck
<sortie> Like it means there's incoming code reviews. Do you trust those to contributors if you got enough? Because otherwise you're stuck doing those and there's a bit resentment maybe if you're super slow
<sortie> And there's the question about whether you actually want to do the whole OS yourself. Makes sense if you want that. I'm trying to let go a bit on that
<sortie> Obviously there's also the problem with lots of beginners wanting to help which is fine but it also means a LOT of hand holding and training that takes a long time to pay off, if they even stick around that long
<sortie> Like I'd definitely want someone experienced that really gets stuff any day, rather than some beginner. I don't have that bandwidth for that as a project lead. But a senior contributor would reasonably be expected to train juniors
<kazinsal> I've been cynically broken by the industry I work in and now I don't really want to produce an OS unless it's also a feasible product.
srjek has joined #osdev
<klange> It's not even the management aspect of collaboration, it's that I look at a project like Serenity or Redox or Haiku and I think... there's a point where if you have enough contributors, you're not a hobbyist OS anymore, you're just an OS that no one uses, and the whole idea loses its mystique and attraction.
<j`ey> sortie: a senior contributor mihght not have bandwidth for it either :p
<sortie> Also about Serenity not releasing builds. You know what's the easiest way to build my OS? On it self. Shipping builds really makes it easier to not worry about people's crappy local Linux installs or whatever
<j`ey> klange: where do you draw the line?
<sortie> j`ey, that would be a part of the role if someone is to get that title.
<j`ey> and I think that it's still a hobby OS since people are doing it for fun and not as a job et
<j`ey> c
<kazinsal> It would be a lark to one day try to port clang et al to ARE but not only is that extremely outside the scope of the project (and defined parameters) but it's not really feasible.
<sortie> j`ey, like contributors don't have to contribute code, they can also contribute code reviews and training.
<sortie> Not that I actually have any policies around this, but just thinking about how I can scale beyond myself, you know?
<sortie> Cuz I become a bottleneck real fast. I already am.
<j`ey> merge sortix and taoruousous
<j`ey> :P
<gog> toaru kernel on sortix userland
<gog> or vice vers
<kazinsal> sortie: Having the OS be its own self-hosting environment out of the box with no modification or fiddling needed is definitely a bonus for training up new contributors. The onboarding process is "grab the latest ISO then pull down the git repo and punch in `make`"
<sortie> It has been attempted and it was prohibited per antitrust laws because we'd be too powerful
<sortie> kazinsal, boom exactly
<clever> kazinsal: thats one of my side-goals, to get the vc4 compiler working on arm
<sortie> kazinsal, like another day we had someone pop in here asking for an OS that's easy to build and play with, well, what do you know
<clever> kazinsal: so if you boot my disk image, you can then recompile any part of the system, from the firmware all the way up to userland
<klange> Sortix kernel and core utilities, ToaruOS desktop experience, we'd be unstoppable.
<kazinsal> Linux Foundation folds the next day
<sortie> https://pub.sortix.org/sortix/screenshots/sortix-yutani-vim-prototype.png ← So about that. This was September of 2016
gioyik has joined #osdev
<sortie> This whole thing was pretty unstable due to shoddy shared memory tho
<clever> kazinsal: for unknown reasons, the cross-compiler for vc4, only works on x86, so you cant build the firmware on an rpi
<clever> i believe its a limitation of my package design
<sortie> Hmm yeah I really like this thing where I make the senior dev role and those people can contribute the real good stuff and I review their stuff, but they also get push access to the repo (if really trusted) and are expected to handle the loose junior contributions and loose rando contributions
<sortie> ... if I really can let go of the control that I have to personally oversee everything going into the official git repo, for security reasons (cuz they can hack my whole infra with a bad sortix)
<moon-child> sortie: watch out, you'll turn into linus torvalds
<moon-child> cultivating lieutenants...
<sortie> Having contributors know they're empowered to make changes to Sortix without me being involved is a powerful thing, assuming they can get a code review from another trusted dev
<sortie> moon-child: Why yes the Sortix cult is looking for
<sortie> I'll think about this when I get back to osdev
<gog> i'd pledge my fealty to a based foss king if he wasn't a j-hole like linus
<moon-child> hmm. How about theo de ra--no, definitely not. Dan ber--hmm, no hits there. Bryan ca--seriously, what is it with these people? :P
<gog> they think that honesty means belittiling people for no good reason
<kazinsal> At least de Raadt knows how his system works
<gog> true
<j`ey> sortie: you need some junior devs before you get some senior ones!
<kazinsal> Suddenly, all of the #osdev regulars find a "you have been invited to contribute to Sortix!" message in their inboxes...
<moon-child> hehe
<sortie> j`ey: Oh that's def not how you hire for a new org
<gog> that's how you get people like me working for you
<sortie> Like I should just hire e.g. kazinsal as a senior dev that I'm sure has all the qualifications for the task
<kazinsal> Oh no
<sortie> Wink wink
<kazinsal> Three months from now Sortix has a routing engine
<gog> you'd read the mailing list while i'm back on my bullshit and just shake your head and go "god this bitch again" :p
gioyik has quit [Ping timeout: 276 seconds]
<j`ey> sortie: well hopefully someone turns up then!