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> yeah, thats kind of a delta compression scheme, being decoded on the fly, as it draws
<clever> the vertex data on the rpi can also be in a similar delta format
<mrvn> So Amigas had 4096 color graphics when PCs where running 16 color VGA.
Matt|home has joined #osdev
[itchyjunk] has quit [Ping timeout: 260 seconds]
[itchyjunk] has joined #osdev
yuriko has joined #osdev
bradd has quit [Ping timeout: 265 seconds]
nyah has quit [Quit: leaving]
<epony> and remained with that much
<epony> note those "brands" are (actually were) PCs too
<epony> home computers were "closed architecture" embedded or graphics+audio (mutlimedia) oriented for the TV screen
<bslsk05> ​'Building a Video Toaster. No, not that one' by Cathode Ray Dude [CRD] (01:02:36)
gog has quit [Ping timeout: 265 seconds]
heat has quit [Ping timeout: 248 seconds]
vdamewood has quit [Quit: Life beckons]
elderK has joined #osdev
slidercrank has quit [Ping timeout: 246 seconds]
smeso has quit [Quit: smeso]
FreeFull has quit []
<zid> Am I the only one who thinks objdump should do what objcopy does, name wise
<zid> and ends up doing objdump -j.t "wait" objcopy -j .t..
smeso has joined #osdev
fedorafan has quit [Quit: Textual IRC Client: www.textualapp.com]
[itchyjunk] has quit [Remote host closed the connection]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
Burgundy has quit [Ping timeout: 252 seconds]
<moon-child> yes
<geist> piddling with this Allwinner D1 based riscv board that just came in today
<geist> it's nicer than i thought. seems reasonably snappy considering it's a single core relatively old cpu
<geist> probably a result of having a decent EMMC and ethernet controller
bradd has joined #osdev
wand has quit [Remote host closed the connection]
wand has joined #osdev
_xor has quit [Quit: bbiab]
GreaseMonkey has quit [Remote host closed the connection]
<kazinsal> geist: https://browser.geekbench.com/v5/cpu/compare/20491626 -- geekbench results for my mostly stock 7700X machine for reference
<bslsk05> ​browser.geekbench.com: ASUS System Product Name - Geekbench Browser
<geist> noice
<kazinsal> probably could squeeze some more oomph out because apparently my RAM is running at 4800 MHz instead of the rated 5600
<immibis> allwinner makes relatively old RISCV CPUs?
<geist> the D1 is pretty old at this point, though to be fair it was probably one of the first you could really get
<immibis> mrvn: I think that's why they used bitplanes. All R bits packed together, then all G bits, then all B bits
<geist> i'm reasonably impressed with its speed, considering it's a single issue classic 5 stage pipeline design. i think running like 1ghz
<kazinsal> I like that sifive still lets you just design a funky core for fun on their website without even needing to log in
<immibis> if you compute a status flag 5 cycles before a branch can an in-order core zoom through the branch without any stalling?
<immibis> I'm accustomed to thinking of branches as always expensive
<moon-child> wait, I thought riscv has no flags?
k0valski18891 has quit [Remote host closed the connection]
<immibis> whatever it does have, then
k0valski18891 has joined #osdev
<geist> the only real conditional branch it has is 'branch on comparison of these two registers'
<geist> so it's fairly standard case of if there is a forwarding path for the registers involved, then it can do it on the next cycle
<kazinsal> iirc it's similar to MIPS in that regard
<moon-child> mips has delay slots, hasn't it?
<geist> yah riscv does not
ThinkT510 has quit [Quit: WeeChat 3.8]
<immibis> I was thinking if you designed a processor with the status flags tightly coupled to the fetch stage you could have branches with very low latency provided that you computed the status in advance. Forcing a register comparison to happen between fetching the branch instruction and branching makes that impossible
<immibis> without speculation that is forcing a pipeline stall on every brancg
<immibis> or bubble. not sure if stall is the right word
<geist> i thknk that was generally the strategy with powerpc
ThinkT510 has joined #osdev
<geist> it has a few slightly different choices there, and i think it was an optimization to try to get some of the branch logic away from the main register file
<geist> notably when you indirected in PPC, you could only do it through a few special registers, which were set aside for precisely this purpose
<geist> IIRC, been a while since i looked at it
<geist> the condition bits in PPC are a little different too
<moon-child> I would simply make a beefy ooo cpu with a branch predictor and efficient bypass network
acharles has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 248 seconds]
Goodbye_Vincent has quit [Read error: Connection reset by peer]
Goodbye_Vincent has joined #osdev
fedorafan has joined #osdev
danilogondolfo has joined #osdev
Burgundy has joined #osdev
craigo has quit [Ping timeout: 248 seconds]
<immibis> well that would be a different market segment moon-child
<immibis> high power, high performance, but I don't think low performance should necessarily include wasting some cycles at every conditional branch
gog has joined #osdev
GeDaMo has joined #osdev
fedorafan has quit [Ping timeout: 248 seconds]
fedorafan has joined #osdev
bgs has joined #osdev
gog has quit [Quit: byee]
fedorafan has quit [Ping timeout: 246 seconds]
fedorafan has joined #osdev
<kof123> mrvn: what's a #pragma? kof: only what you take with you mrvn: i'm not afraid kof: you will be. you....will...be.....
gog has joined #osdev
les has quit [Quit: Adios]
les has joined #osdev
Burgundy has quit [Ping timeout: 252 seconds]
bnchs has quit [Remote host closed the connection]
dutch has quit [Quit: WeeChat 3.8]
<kof123> i think i saw c89 #define 63_SIGNIFICANT_CHARS so i will have to shorten some, but not high priority atm
<kof123> more is allowed, but that is all that is "guaranteed" IIRC
spikeheron has joined #osdev
immibis has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
bradd has quit [Ping timeout: 252 seconds]
nyah has joined #osdev
elderK has quit [Quit: Connection closed for inactivity]
craigo has joined #osdev
slidercrank has joined #osdev
craigo has quit [Quit: Leaving]
craigo has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 246 seconds]
fkrauthan has quit [Quit: ZNC - https://znc.in]
fkrauthan has joined #osdev
MiningMarsh has quit [Read error: Connection reset by peer]
epony has quit [Quit: QUIT]
k0valski18891 has quit [Remote host closed the connection]
k0valski18891 has joined #osdev
<mrvn> Branching on a status bit has the advantage that you can compute the status ahead of time so branch has no delay. The problem is usually that you can't do that because too many opcodes will destroy the status so you have to compute it right before the jump. Some archs have a "affects status" bit in the opcode. Or ppc has 4 status register. Alpha simply branches on the condition stored in a register, no status
<mrvn> register itself. Which is more the RISC way.
<mrvn> You could also just not have a conditional jump and compute an indirect address to jump to.
<nikolar> doesn't that destroy any prediction opportunities
<mrvn> why? you can predict (or already know) the value loaded into the register
<mrvn> so s/any/some/
<mrvn> As we have seen with all the recent exploits prediction is probably a bad idea anyway.
<sham1> It's also the thing that makes things fast alongside aggressive caching
<mrvn> damn those thight loops and branch trees with nothing to do between the condition and the jump.
MiningMarsh has joined #osdev
<nikolar> jumps do force a pipline flush on mispredictions
<mrvn> kof123: I hate N2346/ "If two identifiers differ only in nonsignificant characters, the behavior is undefined."
<mrvn> nikolar: you could predict both branches interleaved if you are unsure. Then you only (but always) have to throw away half the work.
<nikolar> so you basically have two pipelines for both possibilities?
<mrvn> or threads
<nikolar> interesting idea
<mrvn> I don't think anyone does it. Unless the chance is exactly 50% you are better off predicting the right outcome.
<nikolar> yeah makes sense
<mrvn> and if you have 2 branches you would need to fork again or stall.
<nikolar> if you have a short pipeline maybe it's not that bad
<nikolar> seems like an interesting research topic
<mrvn> How much out-of-order execution do modern CPUs do? Can they prioritize computations that are needed for a branch?
<nikolar> good questions
<zid> nikolar: You can actually write real code that way
<zid> such that you just compute both sides of the branch and mux the final answer at the end
<zid> bonus points: threads :P
<nikolar> What would that look
<nikolar> *look like
<zid> if(a) { r = f(); } else { r = g(); } -> r1 = f(); r2 = g(); return a ? r1 : r2;
<zid> but obviously.. with more stuff
<zid> bonus points: interleaving the instructions of f and g instead
<zid> it stops it stalling or mispredicting undoing a lot of work, because the 'if' is at the end
<nikolar> Huh interesting
<kof123> saw the other day, in another channel, IIRC a certain child of the moon linked "CDR coding" wikipedia, follow the "CADR" link to: "ran the tests in parallel with the more conventional single instruction additions. If the simultaneous tests failed, then the result was discarded and recomputed; this meant in many cases a speed increase by several factors."
Turn_Left has joined #osdev
<x8dcc> zid: in your example you think the 2nd would be better?
<zid> you mean, in general? absolutely not
<zid> it's a very specific technique that must be matched to a very specific load
<x8dcc> okay, okay
<zid> I've seen it used effectively in avx a few times
<x8dcc> well its interesting
Left_Turn has quit [Ping timeout: 252 seconds]
<zid> where instead of if(a) blah *= 1.7; else blah *= 2.0; etc it just puts blah into a bigger register then multiples by 2.0 2.0 2.0 2.0 1.7 1.7 1.7 1.7 etc etc
<zid> then just plucks the final answer out at the end
<zid> given it was a combination of common and unique steps
<zid> it removed a lot of if()s
<x8dcc> yeah
[itchyjunk] has joined #osdev
<mrvn> zid/nikolar: That is exactly how you write crypto code. You can not branch, all computations must take the same time or you are vulnerable to timing attacks.
<mrvn> The hard part is that in the example from zid the compiler will generate the same code if it can see f() and g().
<nikolar> How do you do that when you have variable input length
<mrvn> nikolar: that's not a problem. A longer input can take longer. What you can't do is be faster if the key has a bit = 0 than bit = 1 and such.
<nikolar> Fair
<mrvn> GNU gpg had such a bug and they fixed it like zid did and release a security update. Then someone looked at the compiler output and saw the assembly is just the same as before.
<x8dcc> lol
<mrvn> But here is an interesting idea: You guess that f() will be taken most of the time. Can you interleave g() into f() whever there are unused execution units and when you get to "a ?" and see f() isn't taken you have part of g() already computred?
<clever> that sounds kinda like what ive seen gcc do before with conditional execution
<clever> both branches of an if statement, where just tagged with .e or .ne, and there was no conditional jump
<mrvn> gcc/clang sometimes do that for simple things ending in a conditional move.
wootehfoot has joined #osdev
JerryXiao has quit [Ping timeout: 252 seconds]
JerryXiao has joined #osdev
heat has joined #osdev
<heat> clever, for various reasons I don't understand cmov (the x86 variant of that idea) can be slower than a branch at times
<nikolar> Well isn't that lovely
<zid> heat: For various reasons, magic.
<zid> branch predictor smarter than instruction scheduler or something
<heat> yeah its due to speculative execution, but I didn't understand why exactly
<heat> chandler carruth did a whole talk on that and speculation, etc
<heat> then someone asked a really conspicuous question about "what happens if it doesn't get the correct result?" which essentially spawned spectre not long after
<heat> ... and then the year after he had to do a whole talk on the speculative side channel attacks
<zid> If the branch predictor gets it right, we've already decoded extra stuff into uop cache
<zid> rather than having to wait for cmov to retire
<zid> imo
<zid> so it's just faster to hit a well predicted branch, than cmov stuff
<bslsk05> ​www.reddit.com: Reddit - Dive into anything
<heat> why post talks from 2004
<zid> I'm finding it hard to explain to someone why they can't just give tap0 and ip and expect it to talk to eth0
<zid> it doesn't strike them as *nearly* as fucking creepy and weird to them as it does to me to just dump tap0's ethernet frames into eth0's very real ethernet layer
Arthuria has joined #osdev
demindiro has joined #osdev
Burgundy has joined #osdev
fedorafan has quit [Ping timeout: 248 seconds]
fedorafan has joined #osdev
<clever> heat: i would think that with a modern out-of-order cpu, and register renaming, it could just run both variants, and track that there are 2 possible values of r0, but i dont want to try and design such a nightmare, lol
demindiro has quit [Ping timeout: 260 seconds]
<geist> i think there was a period where running both sides of a branch was a solution, but now the defacto solution is to have really good branch predictors based on history, etc
<geist> and just go all in on what it predicts
<geist> if it does a pretty good job (say 80-90%) then that's anet win than trying both paths
nyah has quit [Quit: leaving]
bnchs has joined #osdev
nyah has joined #osdev
fedorafansuper has joined #osdev
fedorafan has quit [Ping timeout: 252 seconds]
ptrc has quit [Remote host closed the connection]
ptrc has joined #osdev
BusConscious has joined #osdev
Arthuria has quit [Remote host closed the connection]
danilogondolfo has quit [Remote host closed the connection]
BusConscious has quit [Quit: Lost terminal]
Arthuria has joined #osdev
Arthuria has quit [Remote host closed the connection]
<qookie> does anyone have any clues for figuring out why an xhci address device command fails with an usb transaction error for high speed devices (not low speed/full speed) that are plugged into a high speed hub (the internal usb2 hub on the raspberry pi 4)
<qookie> the xhci spec says it's because the SET_ADDRESS request failed with a stall error but that doesn't really help in figuring out why that happens
xenos1984 has quit [Read error: Connection reset by peer]
<qookie> one of the devices i tried is an usb 3 ssd, which works fine if i plug it into the usb 3 port on the pi, but fails if plugged into the usb 2 port, and the only difference apart from the speed diff is that usb 3 ports are connected to xhci root ports while the usb 2 ports go through the integrated hub
<clever> qookie: how does it behave with usb1 or usb2 devices?
<clever> are the usb2 pins on the usb3 socket, connected to the same integrated hub?
heat has quit [Remote host closed the connection]
<qookie> the xhci controller has 1 usb2 root port and 4 usb3 root ports, and an integrated usb2 4 port hub, so i assume each port gets it's usb2 lanes from the hub, and the two usb3 ports have their usb3 lanes connected directly to the root ports
<qookie> usb 1 devices (i tried one keyboard and one mouse) work fine, or at least get addressed correctly, while usb2 devices (or usb3 plugged into the usb2 port as mentioned above) fail on the address device command
Arthuria has joined #osdev
xenos1984 has joined #osdev
epony has joined #osdev
ZipCPU_ has joined #osdev
ZipCPU has quit [Ping timeout: 260 seconds]
ZipCPU_ is now known as ZipCPU
Arthuria has quit [Remote host closed the connection]
<clever> qookie: i assume youve delt with firmware loading already?
<qookie> i've a pi with the flash chip with the vl805 firmware
<clever> the model with 2 spi flash chips?
<qookie> yeah
<clever> then it should auto-load, and only depend on xhci scratch space
<qookie> yeah and scratch space is set up since it's also needed by some controllers on pcs
<qookie> speaking of which i should test how it behaves on a pc with an external usb hub
<clever> the vl805 can even be found on a pcie card, and functions exactly like that on pc
<clever> and the pcie card form, has all 4 usb3 ports wired up
fedorafan has joined #osdev
<clever> you could also try qemu xhci, and see how that behaves
<qookie> it works fine in qemu, i've tried that when i originally added hub support
fedorafansuper has quit [Ping timeout: 252 seconds]
<clever> i still havent really stepped into usb-host territory yet
ilovethinking has joined #osdev
<ilovethinking> Hey, how do I replicate QEMU logs? Specifically, I want the PC field that gets extracted whenever an exception occurs.
<zid> replicate?
<ilovethinking> Well
<zid> do you mean.. grep?
<ilovethinking> No
<ilovethinking> I mean *where* does QEMU get the PC field from
<zid> from where the exception happened
<ilovethinking> v=08 e=0000 i=0 cpl=0 IP=0008:00000000000efbee pc=00000000000efbee SP=0010:0000000000000fc8 env->regs[R_EAX]=0000000000000006
<clever> qookie: is the problem when assigning an address to the usb hub, or when assigning an address to a device on a single port of the hub?
<qookie> assigning an address to a device behind a hub
<ilovethinking> How do I get the PC field in my kernel?
<qookie> the hub itself is set up fine
<zid> ??? it's the program counter
<zid> RSP
<zid> err RIP*
<zid> or EIP
<zid> or IP
<zid> depending on cpu mode
<ilovethinking> i need
<ilovethinking> 00000000000efbee
<zid> okay, what's stopping you?
<ilovethinking> i don;t know where to retrieve it from
<zid> do you need it when the exception happens?
<ilovethinking> yes
<ilovethinking> in my interrupt handler
<zid> it's on the stack
<qookie> clever: these logs dont mean too much without the code but they show what's going on https://uwu.foundation/9cgqpLd.png
<zid> like all other function calls
<ilovethinking> ah okay
<ilovethinking> thank you
<qookie> the route vs port number differ by 1 since the code tracks ports as a 0-based index but xhci wants them as 1-based
<clever> qookie: max packet size of 1, that feels wrong?
<qookie> iirc that lines up with lsusb -vv output on linux
<qookie> lemme dig that out
<qookie> wMaxPacketSize 0x0001 1x 1 bytes
<clever> ah, on an endpoint descriptor
<clever> i was thinking the device descriptor
<clever> about all i can offer for help, is a way to log set-address commands from the device side, that might work even for sniffing
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<zid> what do I put the glue for that
<bslsk05> ​github.com: lk/dwc2.c at vc4 · librerpi/lk · GitHub
<clever> this code lets an rpi0 emulate a usb device, and it has to handle things like set-address in software
<clever> so it could log what is reaching the device
<clever> but there is also a less known mode that i think i saw in the docs, where the dwc will act more like a sniffer
<clever> it will decode all usb packets, but not respond to them
<clever> so you can wire it in parallel with another usb1/2 device, and get a trace
<qookie> yeah i unfortunately don't really have any device that i can use to sniff usb hs
<clever> the dwc in a pi0 might be able to, but ive not gotten HS mode to work right yet
<qookie> yeah but i don't have one :^)
<clever> a pi4 might also be able to do it, if you have a second
<clever> or maybe have the pi4 sniff itself, lol
<qookie> hmm
<clever> i think if you do dtoverlay=dwc2, then the dwc will be enabled, and show up in device-tree
<clever> its routed to the usb-c port
<clever> if you can configure it to sniffing mode, and wire its D+/D- to the vl805's usb sockets....
<qookie> hm i wonder what happens if i plug in a second usb2 hub into one of the usb2 ports
<qookie> oh right the other hub i have calls itself an usb 2 hub but is in actuality an usb 1 hub
<qookie> although after plugging it in, it didn't get detected as a hub itself
craigo has quit [Ping timeout: 255 seconds]
TaiAurori[m] has joined #osdev
ilovethinking has quit [Remote host closed the connection]
\Test_User has quit [Ping timeout: 255 seconds]
<geist> heh fired up an old machine with gentoo on it and none of the password logins work. i think PAM is broken somehow
<geist> i can log in via ssh via a pre-shared ssh key, but can't sudo or su or passwd change anything
<zid> or you -L'd everything?
<geist> i bet there was a bad PAM update last i had fiddled with it and didn't notice
<zid> actually -L doesn't block login shells like that I don't think
<geist> this is possiby why i hadn't futzed with it in a while
<geist> but i dont remember this problem
wootehfoot has quit [Read error: Connection reset by peer]
<geist> i think i'm just hosed. if you can't get root or sudo i can't really do anything with it
<clever> geist: edit the bootloader config, set init=/bin/sh
<clever> boom, root shell, edit things, like adding your ssh key to root, and enabling root ssh
<clever> then `exec /sbin/init` to resume booting normally
<geist> possibly, lets see
<qookie> or pull the disk out and chroot
<geist> yah that i dont want to do
<geist> but yeah thatd be the ultimate fallback
<zid> gentoo has a maint mode anyway
<zid> I trigger it accidntally trying to shut the machine down constantly
\Test_User has joined #osdev
<zid> 'shutdown now' rather than 'shutdown -t now'
<geist> yah i gotta go find a ps2 keyboard in this pile
<zid> -h? see, I forget
<geist> since usb keyboard doesn't seem to work pre linux
<zid> well if you can type shutdown now into a ssh and have it work
<zid> oh hmm sshd won't restart then will it nevermind I see the problem
<geist> i cant, because no root
<zid> ah it's not blocked by root on mine, because I am in wheel
<zid> which is the group shutdown perms are in
<geist> yeah, i'm not in wheel here
<geist> i mean i dont *really* care here, but more of a fun task to break into this install
<zid> livecd is probably ultimately easiest
<zid> as it will definitely work and definitely be able to fix it
<geist> yah, though i dont have a cdrom in this machine and it wont boot on usb :)
<zid> pull its drive and hotplug it into yours :P
<geist> the former of which i can fix. about the same amount of annoyance as pulling the drive out though
<geist> it's an IDE drive so i have to go find a usb IDE adaptor i know is floating around
<zid> ah fuck
<geist> it's an old dual p3 500. i fire it up every once in a while and spend a weekend updating the gentoo install
<geist> which is really creaking along on such an old machine
<geist> it's busywork when i dont really want to do anything else
<zid> how do you update it, distcc?
<zid> cus.. that ain't compiling gcc
<geist> the hard way
<zid> it doesn't have enough address space :P
<geist> possibly
<geist> updated last time, has gcc 11.2 on it right now
<zid> wow that's incredible
<geist> last time i updated it was looks like about a year ago
<zid> lots of swap and it just barely didn't use 3GB of total ram inside gcc/ld process maybe
<geist> i dont think gcc is *that* hard to compile on. last i remember it was a good 500-600MB gcc instance compiling
<geist> but enough that this machine (1GB physical) can get by
<geist> it's also x86-32 which probably helps
<zid> my final link uses several gb, but it's amd64 with optimizations and stuff
<zid> so uses a bit more
<geist> but i do remember fiddling with whether or not -j2 was a good idea for that copile, since it was starting to swap on a 1GB machine
<geist> llvm is probably a bear to compile, or rustc
<qookie> llvm+clang is a great pain for me
<geist> first time something in gentoo requires rust i think i'm hosed there
<geist> since that'll force llvm + the rust compiler
<zid> rust hoses me
<qookie> it takes 2x the time to compile vs the gcc package while providing the same functionality
<zid> because it wants 30GB of disk space
<qookie> for rust you at least have the rust-bin package in the gentoo repos
<qookie> if you don't want to compile it for like 1 package
<geist> oh that's fair. i'm thinking *only* using source. i'm not sure i've ever even used any gentoo bin packages
<zid> I might have to do that
<zid> I have rust for like, 1 package
<geist> i do have a big amd64 gentoo VM that i update frequently, so i kinda have a preview of whats to come
<qookie> i have rust-bin, libreoffice-bin and firefox-bin installed, first two because i don't care that much, firefox because it gets updates quite often on the rapid slot
<zid> firefox-bin is the only bin I've ever used
<geist> yah that makes sense for sure
<zid> they use pgo and stuff and make good binaries
<geist> how does the -bin packages work with libs? you still have to build the libs they are linked against i assume?
<zid> so it's less of a benefit, and more of a ballache
* samis remembers once having mutli-hour llvm compiles
<zid> it's just an alternate thing that can fill a depedency
<zid> like openssh/libressh
<zid> can provide "ssh"
<zid> same files end up in the same places (/usr/bin/firefox or /lib64/libssh.so.6 symlink, or whatever) so it's happy
<zid> it can't really tell whether it was a binary package or source package, it's just running .ebuild scripts
<geist> makes sense
<geist> okay so cant get into recovery mode since that wants a root password
<zid> and it won't take it?
<geist> right
<zid> that's rude
<geist> thats the apparent bug: something is broken such that password validation is ont working
<zid> what kernel version, maybe there's a CVE :P
<geist> nah i searched the net and there was some big switch to PAM a few years ago, about when i touched this probably
<geist> and there was a possiblity of a bad emerge, etc
<qookie> bit rot that ate /etc/shadow? :^)
<zid> you were the person that eselect news read was talking about
<clever> geist: thats what init=/bin/sh bypasses, the entire init system and any safeties the distro had setup, just vanish, and thats why you lock the bootloader or luks the rootfs if you want real security
GreaseMonkey has joined #osdev
<geist> yep
<geist> i see part of it now, trying to set root password is asing for all sorts of extra stuff
<zid> this is 2023 geist, you're supposed to be livestreaming this
<geist> 11 charcters min, upper cases and symbols, etc
<geist> haha
<zid> yea I fucked those rules right off
<geist> yah wonder if there was some sort of 'everyone must reset their password' thing i didn't read that this is basically a result of
<zid> I remember editing /etc/security/passwdqc.conf
<zid> not liking the format
<zid> then disabling where it loads that file
<zid> password required pam_passwdqc.so min=8,8,8,8,8 retry=3 -> #password re..
<geist> oh also / is mounted ro
<zid> you can remount it yourself
<geist> tryin
<zid> it's so you can fsck, mainly tbh
<geist> ah there we go
fedorafan has quit [Ping timeout: 252 seconds]
<zid> /etc/pam.d/system-auth is the file you wanna mess with if the password complexity rules bother you
<zid> my password was too simple for it but I didn't care because it was just a VM behind NAT so nobody but me could log in anyway
xenos1984 has quit [Ping timeout: 252 seconds]
<zid> possibly the `password requird pam_unix.so try_first_pass use_authok nullok sha512 shadow` line changed on you
<zid> and the sha length changed and now it can't read the old file right
<geist> guessing something like that maybe
fedorafan has joined #osdev
<geist> am in like flynn
<zid> check the garbage file
<geist> first time i hd forgotten to exec /sbin/init, the kernel immediately pancied and i dont think i had written back ghe new password file
<zid> now check eselect news read
<geist> yep already doing it
<geist> nothing major. a notice about pam getting updated in 2020 but says there's not much you have to do except a specific thing
<geist> now i just have to remember how amazingly slow this all is
<geist> emerge being in python means most of the emerge commands literally take a minimum of 3 minutes to run
<geist> 100% cpu time in python
<zid> They're barely faster on a real machine due to how much i/o it needs to churn through
<zid> (rather than a million times faster like they should be)
<zid> emerge --sync takes like 10 mins because it verifies it all now, so that's fun
<geist> i think there's a way to turn that off too
<geist> and/or if you use the git back end it doesn' thave to
<geist> but i aint using git on this machine
<zid> IDE drive is the fun part cus that shit can't be like a 7200rpm with 32MB cache
<zid> 5400 with 4MB hype
xenos1984 has joined #osdev
c2a2 has joined #osdev
<geist> yup, been verifying for the last 8 minutes
<c2a2> I had an idea for a pseudo programming competition right now
<zid> That's handy, I am a psuedo-programmer
<zid> I sharpen my tools, make sure they work
<zid> then put them away again
<zid> I spent all of yesterday messing around with the networking setup on my VM, so that I could do some programming
<c2a2> Making an OS with limited(bare bones) multiuser support, self compileability and serial io and forwarding it to a public internet port
<c2a2> with restricted access of course
<c2a2> and beforehand a small VM/vps that could bs used to develop the early stages
<geist> alas i've done that from time to time, opening up telnet ports to my stuff
<geist> and zero people ever logged in :(
* gog logs in
<c2a2> dang.
<gog> $ meow
gildasio1 has quit [Ping timeout: 255 seconds]
<c2a2> geist: what about doing it from the ground up
<geist> hmm, what do yo umean?
<c2a2> and seeing what becomes of it. sounds like it could be a bad idea to me(nobody putting in actual effort) but wanted input from people who have actually written an os
<c2a2> geist: shared unix/linux vps and build environment and inviting people to make it
<geist> oh you mean let other people develop via this mechanism? yeah i dont think that's a thing
<geist> i've seen the notion of 'everyone lets get together a make a thing' brought up countless times over the last 20 something years
<geist> zero times has anyone wanted to do it
<geist> sounds great on paper but really no one wants to work with anyone else because most of the point is doing it yourself
<c2a2> yeah i've seen it happen on 4chan when i used that site
<geist> and/or thats exactly why folks like Linus or whatnot actually get ahead, because they actually have the desire/skill/etc to herd a bunch of cats
<c2a2> emulating vorporate hierarchies on the internet doesnt seem to be a thing when noone gets paid. this is especially true for foss in general.
<c2a2> *corporate
gildasio1 has joined #osdev
<c2a2> how linux os structured i have no idea
<c2a2> i had a book on its design years ago and it was beyond my scope
<c2a2> bsd seems easier for me to understand
<c2a2> it's like it was designed when operating systems were a relatively new concept and its designers experimented with it from the ground up
<zid> What you have to do if you want something like that
<c2a2> linux on the other hand had little r&d in its beginnings and was created more for availability purposes imo
<zid> is desperately beg a close personal friend to be involved
<zid> and then maybe after a while you grow to 3 people and then more
<zid> or you don't
<c2a2> yeah well how often does that even happen
<c2a2> werent linux's early devs strangers
terminalpusher has joined #osdev
<c2a2> i wonder if home pcs will cease to be a thing
bgs has quit [Remote host closed the connection]
<c2a2> it looks like the tablet is killing off its marketshare and the higher end components have returned to mid 90s pricing
<zid> linux was filling a desperate need so got users
<zid> users in those days were all also developers
<c2a2> yep
<zid> not so much the case for osdev any more
<c2a2> i wonder how many of bsd's devs got paid. it looks like ucb licensed it in the manner of a corporate entity
<c2a2> like an actual board of regents was a major player in the software world
<zid> describing bsd as major is a little optimistic :P
selve has quit [Read error: Connection reset by peer]
selve_ has joined #osdev
<c2a2> zid, well in the 70s and 80s it was
<c2a2> unix dominated mid range computers, the precursor to the server
<zid> only because the industry was near non-existant comparitively
<zid> google is major, IBM was major, BSD? notsomuch
selve_ is now known as selve
<c2a2> compared to mainframes at the time?
<c2a2> how many companies used those
<zid> like, solaris much more important than bsd, and solaris also basically a footnote :P
<c2a2> if the us government and military used unix i would say it was pretty major
<c2a2> and the medical industry
<c2a2> zid, bsd itself was never a popular os
<c2a2> only its licensed forms
<zid> hence non-major
<c2a2> and its licensed components in system v
<zid> not saying they didn't have any cool patents to troll with
<c2a2> well still major if ucb was licensing it
<c2a2> just because my saw handles arent a complete product doesnt mean they arent major if home depot sells complete saws using them
<zid> except we're talking about the complete opposite
<c2a2> which was true for a lot of bsd's software. bsd 1 was literally just a collection of stuff made at ucb. the kernel came later
<zid> I'm saying black and decker saws are non-major, regardless of if they sell microswitches to hitachi, milwakee, bosch, etc, etc
<c2a2> like a lisp imterpreter and other stuff that was lost/superceded
<c2a2> zid, for the number of total computers in existence it was pretty major imo
<zid> king of the kiddie pool? :P
<c2a2> independent software developers numbered few for unix and bsd filled the void
<c2a2> zid, i'm actually trying to determine its actual business uses
<c2a2> it seemed to be lacking in vital stuff like a word processor and didn't compete with mainframes the same way servers did in the 90s
<c2a2> what were those people doing with those 10k workstations even
<c2a2> maybe a lot of businesses just didn't use computers
<c2a2> or maybe people just unix as a file storage medium in the same way linux is used for servers
<c2a2> *just used
<c2a2> unix users from that time seem to be pretty invisible. many of them also kind of have engineering personalities so i guess they just used unix for scientific purposes and soforth.
fedorafan has quit [Ping timeout: 248 seconds]
<c2a2> like how often did people translate lotus 123 spreadsheets into ibm datasets
<c2a2> https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/4/897/ENUS290-104/index.html&lang=en&request_locale=en wow
<bslsk05> ​www.ibm.com: LOTUS 1-2-3/M
duthils has joined #osdev
fedorafan has joined #osdev
<kof123> i would like to use keys or something so a hypothetical contributor would not have to do anything. but really, that would probably make you tinier (other than individuals, noone would want to touch code of questionable provenance). it would not be to avoid any legalities, but that's the user's problem to choose who they trust :D
<kof123> meaning, i would accept anonymous contributions, just give me a key
<kof123> "this key claims he wrote all this" other than that your on your own :D
<kof123> so i would require it, so if there was a problem, to weed things out
gildasio1 has quit [Ping timeout: 255 seconds]
gildasio1 has joined #osdev