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
Left_Turn has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
MiningMarsh has quit [Ping timeout: 268 seconds]
MiningMarsh has joined #osdev
SGautam has quit [Quit: Connection closed for inactivity]
[Kalisto] has quit [Read error: Connection reset by peer]
[Kalisto] has joined #osdev
[Kalisto] has quit [Read error: Connection reset by peer]
[Kalisto] has joined #osdev
[Kalisto] has quit [Read error: Connection reset by peer]
[Kalisto] has joined #osdev
[Kalisto] has quit [Read error: Connection reset by peer]
Matt|home has joined #osdev
dalme has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
oldgalileo has joined #osdev
oldgalileo has quit [Ping timeout: 240 seconds]
Matt|home has quit [Quit: Leaving]
antranigv_ has joined #osdev
antranigv has quit [Ping timeout: 252 seconds]
Arthuria has joined #osdev
rustyy has quit [Ping timeout: 264 seconds]
navi has quit [Ping timeout: 256 seconds]
gog has quit [Quit: byee]
edr has quit [Quit: Leaving]
rustyy has joined #osdev
oldgalileo has joined #osdev
oldgalileo has quit [Ping timeout: 246 seconds]
smeso has quit [Quit: smeso]
smeso has joined #osdev
Arthuria has quit [Ping timeout: 260 seconds]
rustyy has quit [Ping timeout: 260 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
Vercas has joined #osdev
Vercas has quit [Client Quit]
Vercas has joined #osdev
Vercas has quit [Client Quit]
Vercas has joined #osdev
Vercas has quit [Client Quit]
Vercas has joined #osdev
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
pebble has joined #osdev
scaleww has joined #osdev
antranigv_ is now known as antranigv
rustyy has joined #osdev
Yoofie6 has joined #osdev
Yoofie has quit [Ping timeout: 255 seconds]
Yoofie6 has quit [Ping timeout: 268 seconds]
antranigv is now known as antranigv_
antranigv_ is now known as antranigv
scaleww has quit [Quit: Leaving]
antranigv is now known as antranigv_
antranigv_ is now known as antranigv
bradd has quit [Ping timeout: 256 seconds]
bradd has joined #osdev
antranigv is now known as antranigv_
antranigv_ is now known as antranigv
antranigv is now known as antranigv_
goliath has joined #osdev
eschaton_ has quit [*.net *.split]
sham1 has quit [*.net *.split]
xvmt has quit [*.net *.split]
qxz2 has quit [*.net *.split]
mavhq has quit [*.net *.split]
troseman has quit [*.net *.split]
teroshan has quit [*.net *.split]
tomaw has quit [*.net *.split]
woky_ has quit [*.net *.split]
fkrauthan has quit [*.net *.split]
janemba has quit [*.net *.split]
nortti has quit [*.net *.split]
friedy has quit [*.net *.split]
nortti has joined #osdev
xvmt has joined #osdev
003AA1543 has joined #osdev
tomaw has joined #osdev
mavhq has joined #osdev
teroshan has joined #osdev
janemba has joined #osdev
sham1 has joined #osdev
fkrauthan has joined #osdev
eschaton has joined #osdev
duckworld has quit [Ping timeout: 264 seconds]
duckworld has joined #osdev
troseman has joined #osdev
antranigv_ is now known as antranigv
Vercas3 has joined #osdev
teardown has quit [Ping timeout: 260 seconds]
Vercas has quit [Ping timeout: 260 seconds]
gildasio has quit [Ping timeout: 260 seconds]
Vercas3 is now known as Vercas
gildasio has joined #osdev
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
antranigv is now known as antranigv_
antranigv_ is now known as antranigv
antranigv is now known as antranigv_
teardown has joined #osdev
antranigv_ is now known as antranigv
GeDaMo has joined #osdev
kof673 has quit [Ping timeout: 268 seconds]
Left_Turn has joined #osdev
Vercas has quit [Quit: Ping timeout (120 seconds)]
antranigv has quit [Quit: ZNC 1.9.0 - https://znc.in]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
op has joined #osdev
gbowne1 has quit [Read error: Connection reset by peer]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
JTL has quit [Ping timeout: 268 seconds]
pebble has quit [Ping timeout: 246 seconds]
JTL has joined #osdev
oldgalileo has joined #osdev
oldgalileo has quit [Ping timeout: 264 seconds]
nikolapdp has joined #osdev
<nikolapdp> pdp is back
netbsduser has joined #osdev
<zid> shame
<zid> have you considered updating to windows 11
<zid> The premier OS
<nikolapdp> i have not
<nikolapdp> i don't need windows taking screenshots every 5s and feeding those into an "ai"
thaumavorio has quit [Quit: ZNC 1.8.2 - https://znc.in]
foudfou has quit [Remote host closed the connection]
thaumavorio has joined #osdev
foudfou has joined #osdev
pebble has joined #osdev
pebble has quit [Client Quit]
<dostoyevsky2> nikolapdp: pdp?
<bslsk05> ​obsolescence.dev: Computer Replicas as Time Capsules
<nikolapdp> dostoyevsky2: this client is running on a virtual pdp-11
<dostoyevsky2> nikolapdp: oh, wow
<nikolapdp> yeah i ported the client to bsd 2.11 :)
<dostoyevsky2> nikolapdp: was there even a tcp/ip stack in 2.11?
<nikolapdp> yeah
<zid> It's actually a solaris streams -> ipx -> appletalk -> tokenring -> udp/ip -> tcp/ip convertor dongle chain
<nikolapdp> somewhere there is also a native ethernet deqna card
<nikolapdp> virtual native
<zid> archive footage of the network stack
<nikolapdp> very efficient
<dostoyevsky2> nikolapdp: what kind of compilers support the pdp these days?
<nikolapdp> mainline gcc
<nikolapdp> though i didn't use it
rustyy has quit [Ping timeout: 240 seconds]
bauen1 has quit [Ping timeout: 264 seconds]
<dostoyevsky2> > pdp11 | L IC qr b e
<dostoyevsky2> Didn't realize that gcc supports pdp11 :)
rustyy has joined #osdev
<zid> pdp11 is basically just at&t intel asssembly output but with different reg names isn't it? :P
<nikolapdp> kek fewer registers and less ram :P
<zid> assembler doesn't care about how much ram you have
<zid> and that's all gcc cares about, spitting out something an assembler can read
<nikolapdp> not wrong
<dostoyevsky2> once I have my irc client I could try to compile it with gccgo for pdp11
<clever> zid: but gcc doesnt entirely understand segmentation, so early x86 stuff wouldnt play well
<nikolapdp> dostoyevsky2: yeah i wouldn't bt on that wroking lol
<nikolapdp> clever: luckily pdp-11 doesn't use segmentation
<zid> The cpu barely understands its own segmentation :P
<nikolapdp> it's paging with like 8k pages, and there's 64k of address space lol
<zid> 286 and 386 disagree, and then we killed it off by the 586
<zid> nikolapdp: It's a gameboy!
<zid> It also does 8kB bank switching, and 64kB of address space
<nikolapdp> double that if you're lucky, (64k instruction address space, 64k data address space)
<nikolapdp> also the bsd2.11 kernel doesn't fit in the address space, so the linker is genereating cursed remapping code when accessing symbols from certain object files
<dostoyevsky2> nikolapdp: does your irc client on the pdp11 support sasl?
<zid> bank switching woo
<nikolapdp> had to fiddle with that to get the networking kernel to fit kek
<zid> it's literally a gameboy
<clever> but does gcc understand bank switching? :D
<nikolapdp> dostoyevsky2 define sasl
<zid> you can use overlays, clever, in the linker script
<zid> to produce binaries that work correctly with bank switching
<clever> ah
<bslsk05> ​libera.chat: Using SASL | Libera Chat
<zid> it just assigns multiple symbols to the same address range without exploding, and knows that references between them are illegals
<Ermine> oh, valid use for overlays!
<nikolapdp> ah no, but i guess you can pipe in your credentials :P
<clever> zid: neat, i assume then that some other range is allowed to reference each overlay, and is responsible for doing the switch
<nikolapdp> like have a shell script that does :m NickServ IDENTIFY ...
<nikolapdp> clever: the bsd2.11 linker on pdp generates code that does the remapping
<zid> neat
<nikolapdp> pretty fascinating little machine/os combo lol
<zid> never had full tooling support for bank switching
<zid> I've always had to write little thunks
<zid> f: call bankswitch; call _f; ret
<zid> or whatever
<zid> f: call bankswitch; call _f; call bankswitch_back; ret ; Oops
<nikolapdp> yeah well this pdp-11 thing works only for the kernel because it's the only thing that has access to all of ram and can remap it
<zid> psx uses it but doesn't even have a bankswitcher, your thunk has to make the cd-rom deliver fresh sectors
<nikolapdp> so you're still stuck with at most 128k of ram for the processes
<zid> which is why say, the final fantasy VI port, takes about 5 seconds to pause the game
<nikolapdp> heh
<zid> it's unloading the game exe, and loading the menu exe back from the cd-rom
<nikolapdp> is it running the whole time
<zid> with a little bit of shared memory for your saved game
<zid> so that it can restore the state
<zid> FF7 also does this, and has a few bugs you can exploit, where the shared memory region has a 'scratch' space that accidentally gets reused in a couple of places
<zid> think of it like the 6502 zero page
<nikolapdp> kek
<zid> where a subroutine might re-use a 00xx address for its locals/params of another subroutine
<clever> i had also looked into how some of the c64 bank switching works, and it looks like the cpu itself has a couple gpio pins
<clever> which modify how the PAL do the addr decoding
<nikolapdp> 6502 zero page is probably more accurately described as a bunch of registerst than ram
<zid> yea you can conceieve of it that way and it works as an abstraction
<dostoyevsky2> nikolapdp: how large is your irc client, so it fits in the 64kb limit?
<zid> but it's definitely just ram
<nikolapdp> eh i'd have to close it to check
<nikolapdp> kek give me a bit
<nikolapdp> zid: it is ram, but you use it like it's regisrters
<nikolapdp> was my point
nikolapdp has quit [Remote host closed the connection]
<nikolar> dostoyevsky2: 29436 full, 21930 stripped
<nikolar> bytes
netbsduser has quit [Ping timeout: 264 seconds]
<nikolar> that's built by the bsd2.11 compiler
<nikolar> maybe i could get it smaller if i managed to compile with gcc
<nikolar> but i haven't figured out how to link with the libc lol
<nikolar> maybe i'll need to rewrite some of it
<nikolar> to work with gcc
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
<dostoyevsky2> nikolar: how would you download and install gcc on your pdp11? I reckon wget/curl also do not fit in 64kb
<nikolar> oh i wouldn't
<nikolar> there's nothing on this planet that would make gcc run
<nikolar> on the pdp
<dostoyevsky2> oh, so just crosscompiling?
<nikolar> but you can cross compile and then ftp it across
<GeDaMo> Do you have any C compiler on the PDP?
<nikolar> you do, yeah
<nikolar> two actually
<nikolar> dostoyevsky2: yeah
<nikolar> probably more, but two are preinstalled
<bslsk05> ​github.com: bsd2-src/lib/ccom at master · retroprom/bsd2-src · GitHub
<nikolar> yeah something like that
<dostoyevsky2> It seems to me they've split the c compiler into many independent binaries to have them all fit into the 64k limit
<nikolar> looks like it
<nikolar> there's also pcc
netbsduser has joined #osdev
<nikolar> cd
<dostoyevsky2> nikolar: but the 64k limit is for the whole system or just per process?
* Ermine goes to home dir
<nikolar> dostoyevsky2: per process, there are pdp-11s with up to 4mb
<nikolar> though per process you can go up to 128k on some models which allow split instruction and data address spaces
<nikolar> Ermine: ls
<Ermine> there's a lot of shit there, and I don't want to get banned for flooding
osdev199 has joined #osdev
<dostoyevsky2> nikolar: ah, cool... so maybe I could even write a irc client for the pdp11 if I just use exec.Command a lot
navi has joined #osdev
<dostoyevsky2> (in Go that is)
<nikolar> dostoyevsky2: eh yeah but it would be painfully slow
<nikolar> and you'd need to write your own stdlib
<nikolar> (cc is indeed painfully slow when running the emulator at real machine speeds)
<dostoyevsky2> go's stdlib is written in go
<nikolar> yeah, but it certainly wasn't written with bsd2.11 on pdp-11 in mind
<dostoyevsky2> but not sure if gccgo can actually cross compile
<nikolar> yeah wouldn't now
<nikolar> know
scaleww has joined #osdev
[Kalisto] has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
hussein has joined #osdev
<nikolar> is geist around
<Mondenkind> i think geist is ahuman
<GeDaMo> Be alert, we need more lerts :P
<Mondenkind> and also arottingsackofshitwhostolemyhusband (allegedly) but i digress
<nikolar> Mondenkind: i sense some unresolved issues there
<Mondenkind> None.
<nikolar> convincing
bauen1 has joined #osdev
Renfield has quit [Ping timeout: 268 seconds]
netbsduser has quit [Ping timeout: 252 seconds]
Matt|home has joined #osdev
Renfield has joined #osdev
scaleww has quit [Quit: Leaving]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
netbsduser has joined #osdev
osdev199 has quit [Ping timeout: 268 seconds]
nikolapdp has joined #osdev
nikolapdp has quit [Remote host closed the connection]
Turn_Left has joined #osdev
nikolapdp has joined #osdev
<nikolapdp> ello
Left_Turn has quit [Ping timeout: 255 seconds]
<Mutabah> o/
scaleww has joined #osdev
teardown has quit [Ping timeout: 260 seconds]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
joe9 has joined #osdev
dmxvlx has joined #osdev
rustyy has quit [Ping timeout: 268 seconds]
kof673 has joined #osdev
zetef has joined #osdev
edr has joined #osdev
rustyy has joined #osdev
dmxvlx has quit [Quit: Konversation terminated!]
goliath has quit [Quit: SIGSEGV]
dmxvlx has joined #osdev
dmxvlx has quit [Client Quit]
joe9 has quit [Quit: leaving]
dmxvlx_ has joined #osdev
dmxvlx_ has quit [Quit: Konversation terminated!]
bradd has quit [Ping timeout: 252 seconds]
dmxvlx has joined #osdev
zetef has quit [Ping timeout: 268 seconds]
dmxvlx has quit [Quit: Konversation terminated!]
zetef has joined #osdev
osdev199 has joined #osdev
MiningMarsh has quit [Ping timeout: 268 seconds]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
MiningMarsh has joined #osdev
neo has quit [Read error: Connection reset by peer]
neo has joined #osdev
neo has quit [Read error: Connection reset by peer]
neo has joined #osdev
zetef has quit [Ping timeout: 268 seconds]
bauen1 has quit [Ping timeout: 252 seconds]
zetef has joined #osdev
dalme has joined #osdev
op has quit [Remote host closed the connection]
xenos1984 has quit [Ping timeout: 268 seconds]
xenos1984 has joined #osdev
Shaddox404 has joined #osdev
<Shaddox404> Hello
<Shaddox404> Hope its going well for yall
zetef has quit [Remote host closed the connection]
<Shaddox404> A quick question: To develop an operating system in current day and age, would it be wise to start off by writing code in Rust or to use C/C++?
<nortti> what is it exactly that you are aiming to do?
<zid> That's a very nuanced decision
<zid> and not a cut and dry "rust is stupid"
<zid> (rust is stupid, though)
<Ermine> Do you understand you're throwing shit at the fan by asking such a question?
<kof673> "wise" means double in ye olde tongue :D
<Ermine> Also, "C/C++" is blatantly incorrect. C and C++ are two different languages
<Shaddox404> I'm currently learning about OSes and system software. I was curious since Windows and parts of Linux are being (re)written in Rust
<Ermine> that's their decision
<zid> note: parts of
<zid> And was a very complicated decision, and only applies to those parts
<Ermine> you're writing your own os, and there are decisions that are up to you to make
<Shaddox404> As far as what i understand, since an OS is vast and large in size in terms of scope and code, would writing the OS completely in Rust help in the development in terms of ease and speed?
<zid> no, hinder it massively
<nortti> it depends on what you're aiming at
<zid> Rust is hard to write in exchange for more invariants being proveably true
<Ermine> also, nortti's question is a very good one
<zid> C is fast and loose, comparitively
<Mondenkind> reminds me. there was this whole thing about rust vs linux concurrency models. but rust's guarantees are useless for concurrent code, so why not just sidestep the problem and say rust only runs in sequential contexts inside of linux and has to rely on c to do any communication?
<nortti> right, if you're wanting to write the next seL4, it's probably less work with a language where you don't have to built your own verification tooling for *everything*
<Shaddox404> I know my questions may look noob-ish, but I just want to understand more about it, my apologies for that.
<zid> why not
<zid> learn each language then
<zid> Then you can know, and not just have a brief overview from a random person on irc
<Shaddox404> >it depends on what you're aiming at
<Shaddox404> I feel windows is inconsistent
<Ermine> there's nothing to undestand but 1) your goals; 2) the language you're going to use
<Ermine> s/going/considering/
<nortti> Shaddox404: inconsitent how?
<netbsduser> Shaddox404: i asked a windows kernel engineer about this "rewrite in rust" about which everyone is speaking
<netbsduser> he confirmed that there is none
<netbsduser> the only thing being rusticated is win32k, which shouldn't be in the kernel anyway
<Ermine> correct, nobody will rewrite the whole thing in rust
<Ermine> It's extremely costly and risky
<zid> Rust is good as a systems language, it's actually rather poor as a kernel language
<Shaddox404> I see
<zid> So you might want to write the font rasterizer in it, as an example
<zid> which was in the kernel originally, but got moved to userspace because of frequent exploits
<netbsduser> i am inclined to agree
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
<netbsduser> rust has considerable merit for some relatively low-level systems software but inside the kernel, assuming your kernel is trying to be somewhat good, you are going to be hit in the face by the fact that you need things like frightening concurrency
<nortti> there are OSs written fully (fsvo fully, you're always going to need a bit of assembly) in rust which can take advantage of the things the compiler can prove true, e.g. hubris (https://cliffle.com/blog/on-hubris-and-humility/), but those make the tradeoff for reliability vs performance vs developer productivity that makes sense for the specific applications
<bslsk05> ​cliffle.com: On Hubris And Humility - Cliffle
<netbsduser> fearless concurrency won't cut it, you will have to resort to loads of unsafe code if you want to use common idioms used to scale the monstrously shared state of a kernel
<dostoyevsky2> I heard that one of the microsoft engineers actually ported all of windows to Rust over a weekend, but then it was abandoned because it was "too trivial"
<zid> Like, even a video game is really really hard to write in Rust
<zid> enough that it would slow development down to a crawl
<zid> because rapid prototyping and rust do not go hand in hand, you need to extensively allay the compiler's fear that you might be mutating state without having taken exclusive ownership of it
<zid> like, rand() is incredibly difficult to write in rust
<zid> and it doesn't get much more basic than that in say, C#
bauen1 has joined #osdev
<dostoyevsky2> The best thing about the port was that it required only one highly localized unsafe
k_hachig has joined #osdev
<Shaddox404> Got some clarity from this. Appreciate it folks!
Shaddox404 is now known as [AFK]
k_hachig_ has joined #osdev
[AFK] is now known as Shaddox404
Shaddox404 has left #osdev [Connection Terminated!]
k_hachig has quit [Ping timeout: 268 seconds]
k_hachig has joined #osdev
k_hachig_ has quit [Ping timeout: 255 seconds]
k_hachig has quit [Ping timeout: 255 seconds]
k_hachig has joined #osdev
jjuran has quit [Read error: Connection reset by peer]
jjuran has joined #osdev
xenos1984 has quit [Ping timeout: 256 seconds]
gog has joined #osdev
<dinkelhacker> Why would it be hard to rapidly prototype in rust? Couldn't you just use unsafe everywhere to silence the borrow checker and deal with it later?
<zid> why write in rust then
<zid> dealing with it later is called technical debt btw
<zid> and it won't ever happen
k_hachig has quit [Ping timeout: 268 seconds]
gog has quit [Client Quit]
<nortti> also unsafe does not turn off the usual shared xor mutable reference stuff, it just lets you do stuff like dereference pointers and ignore types
<dinkelhacker> I mean chances are that you still have a good portion of your code beeing safe rust. That's a plus imo. And I mean how would an implementation in C be better regarding to tech debt? If the compiler complains it's because he thinks something is potentially unsafe. If it's not, using unsafe is absolutely fine. If it is and you don't deal with it thats bad if no matter what language.
<dinkelhacker> nortti: Ah right, that's true.
<zid> 'most of it being safe' defeats *all* of the guarentees still.
<nortti> it does mean the amount of code the nasal demons are coming from is already narrowed down a lot when you start digging
<zid> doesn't mean the bug isn't in the safe part though :P
gog has joined #osdev
<zid> garbage in garbage out
<Mondenkind> nortti: no because unsafe code can violate the invariants of safe code and cause them ot fail at a great distance
<dinkelhacker> well at least you can rule out some bugs in the safe part, can't you?
<zid> sure, but I can do that in all situations in all languages
<zid> Infact I probably get *more* guarentees in a C program, because of strict TU boundaries and stuff
<zid> that bugs in a specific file are caused by that file
<Mondenkind> ??
<nortti> < Mondenkind> nortti: no because unsafe code can violate the invariants of safe code and cause them ot fail at a great distance ← yes, but you know the part that is the root cause has to be one of the unsafe blocks in such case
<zid> or you don't
<zid> because the unsafe part isn't the part that was supposed to check the valdity of a state
<zid> before the unsafe part saw it
<zid> that's *why* the invariant failed and the unsafe part crashed
<Mondenkind> zid: no that's not how unsafe works
<zid> unsafe function that divides a by b
<zid> I pass it 10 divided by 0
<Mondenkind> unsafe is supposed to check the validity of a state. if it doesn't there's a bug in unsafe
<Mondenkind> because ub
<Mondenkind> (div by 0 is i believe not ub in rust)
<Mondenkind> (so that example doesn't work anyway)
<zid> part of using unsafe is that.. it's unsafe, and if you want it not to crash, someone has to not pass it state configurations that are going to crash
<zid> same as say, free(7);
<zid> or strcpy("bob", "cat");
<Mondenkind> you don't understand how unsafe in rust works at all
<zid> nobody says strcpy should pointer check, and bounds check, they say don't pass crap to strcpy
<zid> or free or anything else
<nortti> ^ that is the difference with rust – if it's callable from safe code, and it's possible to UB, it is *culturally* considered to be a bug inherently
xenos1984 has joined #osdev
Etabeta1 has quit [Ping timeout: 256 seconds]
foudfou has quit [Remote host closed the connection]
<dostoyevsky2> I want to write an OS as a shell script
foudfou has joined #osdev
<dinkelhacker> But in what shell is your OS running then?
<mjg> powershell
gog is now known as pog
<Ermine> hi mjg
<mjg> sup
<dinkelhacker> mjg: I think it should be self hosted
<dostoyevsky2> dinkelhacker: you just `exec $0 --just-the-shell-please'
<dostoyevsky2> otherwise you'd be starting a new kernel/vm I guess
<geist> nikolar: yawn
<Mondenkind> compile sh to asm
<Mondenkind> write memory allocators and device drivers in sh
<Mondenkind> implement the sh compiler in sh too
<pog> a self-hosting sh
<pog> we're reinventing forth
<zid> Smello poog
<mjg> awk is the best assembler
<zid> I went outside today :(
<pog> me too
<pog> proud of you
<zid> I did see an interesting car at least?
* Ermine gives pog a piece of sh
<Mondenkind> i haven't gone otuside yet fuck
<zid> A fuck ugly jaguar SUV, but it had the numberplate G6
<pog> me too, it was a lotus
<zid> Half a million quid numberplate that
<pog> idk what model, it was just the most ostentatious sports car i'd ever seen
<Ermine> I didn't go out today, it's raining
<pog> _the_ sports car
<zid> I see a lot of supercars, but not seen any cool hypercars
<mjg> you into cars dawg
<Mondenkind> it's only 11 here though i still have time gonna go thrifting maybe
<zid> there's a lot of saudi people that attend the college here
<zid> they ask their dad for a car to run-about the city with
<mjg> 11? it's already too late
<zid> and end up with a lambo
<Ermine> but i did continue cleaning up the flat
<mjg> yo wasted the day man
<pog> i know enough about cars to know that the monthly cost of maintaining a supercar is more than my rent
<mjg> get a more expensvie apt
<Mondenkind> ty for your insightful comments mjg
<mjg> problem solved
<pog> working on it
<zid> The joke here is: "Dad, the other kids take the train!" "Fine, I'll buy you an intercity commuter 440"
<mjg> Mondenkind: you are welcome mate, anytime
<Ermine> maintaining a supercar is more expensive than my organs
<zid> supercar maint is cheap.. until anything goes wrong, which it will
<zid> almost all of them you see will be leased for that reason
<zid> they tank in value off the lot and need sending back to the dealer constantly
<mjg> a rust programmer and a c programmer walk into a bar
<mjg> what can i get ya, asks the bartender
<mjg> rust programmer says "soy milk"
<mjg> c programmer says "bleach"
<mjg> it's ok if you don't think it's funny
<Mondenkind> cringe tbh
<mjg> ^^^ genz
* Ermine giggles
<GeDaMo> I don't get it :|
<Ermine> cringe fr
<Mondenkind> ok boomer at least i'm not insecure about eating quiche
<mjg> there has to be a good dad joke regarding fearlezz rust
<Mondenkind> lesbians?
<mjg> idk 2 rust programmers fearlessly walk down the corridor and deadlock
scaleww has quit [Quit: Leaving]
<Ermine> the story should involve losing a child
<FireFly> I mean lesbians and deadlock would track I guess
* mjg checks channel name
<zid> "help I've tribbed and I can't get up"?
Gooberpatrol66 has joined #osdev
<pog> mjg: did you know taht i'm mixing web dev with osdev
<mjg> OH
<mjg> the forbidden art
<pog> i'm disassembling native c# targeting EFI rn
<geist> <can of beans>
<dostoyevsky2> pog: I mean, you could use REST instead of a syscall API, no?
<mjg> do you also mix tabs and spaces?
<Ermine> is it even possible
<pog> it generated an executable of 4KB
<dostoyevsky2> so you could easily do syscalls via curl
<mjg> are you dealing with EFI on your own accord?
<pog> i am the most EFIpilled member of this channel
<Ermine> CLR as efi app?
<pog> i'm GUIDmaxxing
<pog> it's not CLR
<mjg> :O
<pog> it's native aot
<Ermine> :O
<dostoyevsky2> My OS will always use biosboot, so much easier
<Ermine> how do i do aot
<Mondenkind> bootloadermaxxing
<pog> flattened.net
<mjg> at the moment i'm rustmaxxing
<pog> some guy chopped up native aot and made a minimal implementation of c#
<pog> zerolib doesn't even have GC or reflection
<Ermine> i only found bflat
<pog> that's the one
<dostoyevsky2> mjg: couldn't the whole OS kernel just be a monad?
<mjg> i thought linux is a monad
<Ermine> also smolsharp
<Ermine> maybe i should finish learning c# one day
<mjg> :O
<mjg> there is a guy on youtube backporting stuff to windows 95(!)
<mjg> he did some .net
<Ermine> share!!!
<mjg> or whatever other early iteration
<mjg> give me 5
<bslsk05> ​'I ported THOUSANDS of apps to Windows 95' by MattKC (00:51:53)
<mjg> the title is almost a clickbait
<mjg> he means he got asp.net or some shit operational
<mjg> i am not versed in windows tech
<dostoyevsky2> mjg: also once ported 1000 of windows apps with a `winetricks --force xact' --- still one of my proudest achievements
<nikolar> Ello ello geist
<geist> twas some pdp11 chatter earlier and someone pinged me
<nikolar> Yeah I did
netbsduser has quit [Ping timeout: 240 seconds]
<nikolar> I was messing with simh and couldn't get the serial dli lines to spawn a shell
<nikolar> When connecting over telnet
<nikolar> So I was wondering if you had any experience with that
<nikolar> :)
<nikolar> geist ^
<geist> hmm, what are you running?
<geist> on simh that is
<geist> ie, is there something waiting on that port?
<nikolar> bsd2.11
<nikolar> Nope
<geist> hmm, the only thing that really calls it out in the boot.ini i have for mine (from pidp11) is...
<nikolar> It connects successfully and prints that I'm connecting to dli
<nikolar> But the os doesn't recognize the connection
<nikolar> Or the whole card
<bslsk05> ​IRCCloud pastebin | Raw link: https://irccloud.com/pastebin/raw/w5YPTwKD
<nikolar> What changes os wise do I need to make for that to work
<nikolar> Make some device nodes?
<nikolar> Change /dev/ttys
<nikolar> I'm not sure
<Ermine> still looks cool
<Ermine> re video
goliath has joined #osdev
<geist> nikolar: hmmm, good question. i started from the prebuilt image for the pidp11
<geist> i even dded it to a scsi drive and booted it on my real pdp11/53 so i did technically avoid doing an install
<geist> but iirc there's a /etc/ttys or somethingyou configure
<geist> lemme see
netbsduser has joined #osdev
<Ermine> that reminds me of one funny thing i want to do with windows 9x
<dostoyevsky2> nikolar: doesn't the true pdp11 only come about if your only UI is blinkenlights?
<nikolar> I mean you have terminals
<bslsk05> ​IRCCloud pastebin | Raw link: https://irccloud.com/pastebin/raw/qWNDxcN5
<geist> also of course make sure the kernel sees the DZ device, which seems to be the 8 port serial
<geist> i dont have one on my real pdp so i had to edit that file to turn off the extra ports
<nikolar> Hm I think my Getty is in /usr/bin
<nikolar> How do I check of it's seen the devide though
<nikolar> I think it prints devices on boot
<dostoyevsky2> nikolar: I thought the pdpbrogrammers of those days would use this as the terminal: https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Pdp-11-70-panel.jpg/1600px-Pdp-11-70-panel.jpg
<nikolar> Nope, actual teletypes
<geist> right
<bslsk05> ​IRCCloud pastebin | Raw link: https://irccloud.com/pastebin/raw/jaYqRgoZ
<nikolar> And later, crt terminals
<nikolar> Yeah dz
<bslsk05> ​bsdimp.blogspot.com: Warner's Random Hacking Blog: SIMH Setup for 2.11BSD restoration project
<nikolar> Ok I'll try, I'm not at my computer right now
<nikolar> Who knew that finding documentation for a 40 year old os is hard :)
<geist> heres the entire boot.ini for my 211 pidp11
<bslsk05> ​IRCCloud pastebin | Raw link: https://irccloud.com/pastebin/raw/IK1lS3tn
<dostoyevsky2> nikolar: I thought it'd be documented much better because they had all this time to write the documentation
<geist> it's kinda a mess. but i think the only thing that actually has anything to do with it is the set dz stuff
<geist> and there's another thing at the bottom that moves dz to 310 for some reason
<nikolar> dostoyevsky2: yeah all dozen users of it lol
<geist> i dont precisely know what vector is in this context. irq maybe, but it know it doesn't have that many irq levels. only 7
<geist> the CSR when it talks about it is the address of the MMIO registers though, in octal
<nikolar> Eh maybe the mmio address of some kind
<nikolar> Though if I remember correctly, all memory mapped registers are at high addresses
<geist> disks traditionally start at 0172150 for example
<dostoyevsky2> nikolar: fun fact: the spanish intern who wrote the first software documentation was called Manual, which is why it's called that since then
<geist> yeah i think that's high in octal. iirc 0177777 is 4MB-1
<nikolar> Yeah something like that
<geist> and since the address space of the biggest pdp11s ever made is 4MB... that's why that's a high address
<bslsk05> ​<corbet> On the radar: using a large-language model to insert thousands of automatically generated "security checks" into the OpenBSD kernel:https://marc.info/?l=openbsd-tech&m=171810103406609&w=2I'm sure that will be received well...
<nikolar> dostoyevsky2: erm https://en.m.wiktionary.org/wiki/manual
<bslsk05> ​en.m.wiktionary.org: manual - Wiktionary, the free dictionary
<geist> kinda interesting, later on you can put QBUS cards (18 and 22 bit versions) in a VAX
<geist> so there's a bunch of VAX stuff to punch out the hole <4MB to let the mmio registers are in there and do a bunch of DMA bounce buffering
<nikolar> Heh nice
<geist> basically just like ISA and whatnot in the PC world when x86s got > 1MB
<nikolar> Got to love backwards compatibility
<geist> a proper unibus or massbus or whatnot card can address the whole 32bit world, but QBUS was a late, simpler, cost reduced bus used mostly on later LSI versions of PDP and later microvaxen
npc has joined #osdev
<bslsk05> ​gunkies.org: QBUS - Computer History Wiki
<geist> ah "To reduce the number of gates needed on devices to decode their addresses, the QBUS includes a special signal, BBS7, to indicate a reference to the device registers in the 'I/O page' of the bus address space. Devices need to look at only this signal and address lines 0 through 12 to recognize their address(es). (Some QBUS CPUs do not even drive the high address lines during references to the I/O page.)"
<dostoyevsky2> geist: use an llm to port openbsd's source to rust... could probably be done in a couple of hours... might not compile yet because AI predicted what Rust would look like in a couple of years, so you just have to wait until then
<geist> that explains why the CSR configuration is entirely within the computer itself, you're mapping things by slot basically to particular addresses
<geist> dostoyevsky2: eh? what the heck are you talking about?
<dostoyevsky2> mjg: ^^^^
<geist> oh.
<geist> makes more sense
<bslsk05> ​news.ycombinator.com: Lynn Conway Has Died | Hacker News
<kof673> dostoyevsky, > I want to write an OS as a shell script # https://wryun.github.io/es-shell/
<bslsk05> ​wryun.github.io: es - extensible shell
<dostoyevsky2> kof673: so, does the es-shell have a syscall handler, or you would that be part of "extending the shell's builtin services"?
nikolapdp has quit [Remote host closed the connection]
<kof673> i'm just saying it already has metaproperties...but would need whatever dependencies first
<kof673> wings but no runway yet
<dostoyevsky2> I guess one could extends sh's trap syntax, so you could write a syscall handler
<geist> i dunno what path you're goin o here, but building an os in sh is nnot an OS. it's just another shell
<geist> as much as i'm generally all into doing whatever you want, etc and leaning. i can tell you from experience that this idea you have is not the first. i've seen this countless times over the years
<geist> but there's really no point, you're just writing something that kinda looks like a new OS, but thats not an OS
<geist> it's just another shell
<kof673> there is also an old ancient ....16-bit dos mssh i think was the name :D
<geist> think of the shell as a UI for the underlying system. you can change the ui (different text mode shell, graphical, etc) but it is mostly a layer on top of the underlying kernel/system/drivers/etc
<geist> even somethingl ike dos, the shell is logically separate (command.com) on top of an underlying dos system service
Nixkernal has joined #osdev
<nikolar> geist: this mean anything to you?
<nikolar> dz ? csr 160100 vector 310 skipped: No autoconfig routines.
<nikolar> during boot
<geist> hmm, yeah
<geist> there's some sort of device table somewhere in /etc, lemme see
<nikolar> maybe i need the remap thing you had
<nikolar> /etc/dtab maybe?
<geist> yep
<geist> i have a line
<geist> dz? 160100 3105dzrintdzdma# dz11 terminal mux
<kof673> now, you might extend a "shell" to have access to whatever syscalls etc. but what geist said :D
<nikolar> dz ? 160100 310 5 dzrint dzdma # dz11 terminal mux
<dostoyevsky2> Aren't the likes of Smalltalk and LispOSes just large interpreters that run code without any separation between the OS and the user-supplied programs?
<nikolar> yeah seems same
<geist> nikolar: what i dunno is if you're gonna need to rebuild the kernel or not
<nikolar> i mean it looks like it's looking for it
<nikolar> what was the remap vector line again
<nikolar> ah found it
<geist> see above paste. i pasted the whole boot.ini
<geist> what i dunno is exactly *when* dtab is used. it may be used during compilation of the kernel, instead of run time?
edr has quit [Read error: Connection reset by peer]
<dostoyevsky2> > An alternative that is common with operating systems on smaller computers (PCs, workstations) is to execute virtually all OS software in the context of a user process. The view is that the OS is primarily a collection of routines the user calls to perform various functions, executed within the environment of the user’s process. When an interrupt, trap, or supervisor call occurs, the processor is
<geist> or maybe it's run time, but it's just trying to match a CSR/vector with a driver that is supposed to exist
<dostoyevsky2> placed in kernel mode and control is passed to the OS. To pass control from a user program to the OS, the mode context is saved and a mode switch takes place to an operating system routine. However, execution continues within the current user process.
<kof673> > The view is that the OS is primarily a collection of routines the user calls <<<<<<<<<<<<<<<<<<<<
<nikolar> hm added the remap vector thing
<nikolar> same output again
<nikolar> do i need the dli/dlo device too
<nikolar> it's in your config
<geist> try it
<nikolar> oh never mind, it's commented out
<geist> i didn't build that config, came from the pidp11 process
<geist> which is why it's so messy, i'd rearrange if :)
<nikolar> kek
<nikolar> yeah mine's much smaller
<geist> https://www3.ispnet.net/pidp11/systems.tar.gz is the pregenerated systems for the pidp11 if you want to give that a try
<geist> or if you want to do it the hard way (totally understand)
<nikolar> heh thanks
<geist> but that also has some RSX-11 and RSTS-1 and whatnot
<nikolar> i've installed this system and everything so i'd like to give it a try and get it to work
<geist> totes
<nikolar> geist: yeah that'd be fun to try out too
<geist> maybe that CSR autoconfig line matters too?
<nikolar> now that i think about it, it kind of sounds like the kernel isn't compiled with the support for it
<nikolar> maybe?
<nikolar> eh i forgot how to configure this lol
<geist> yah. building the kernel is pretty fun. i did it maybe 10 times or so when i was updating my 2.11 on my real pdp to version 481
<nikolar> nice
<nikolar> though i forgot where the config is
<geist> /usr/src/sys/conf/CONFIGNAME
<geist> then you run config on it and it makes a build dir at /usr/src/sys/CONFIGNAME/
<nikolar> ah thanls
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
<nikolar> hm, looks like it might not be
<nikolar> NDZ 0 # DZ11; NDZ is in units of boards (8 each)
<nikolar> 0 should be 1
<geist> yep
<nikolar> eh
<nikolar> config PDP11
<nikolar> config hasn't been implemented under 2.11BSD.
<geist> hmm, you might have to build it
<geist> there's a config binary on mine
<nikolar> i've definitely modified the config
<geist> is there a ./config binary in your /usr/src/sys/conf?
<nikolar> there's a config shell script
<geist> ah yes thats what i mean
<nikolar> yeah that worked
<geist> yah i dunno what /usr/sbin/config does, aside from say it's not supported
<nikolar> lol probably just that
<nikolar> it's /etc/config for me
<nikolar> 2552 bytes
<nikolar> looks like it does nothing if you ask me
<geist> yah aside from print that, presumably just to have the binary in place, but return an error because its not inplemented
<nikolar> yeah
<geist> anyway, usual stuff, compile it and if it works (it might not in which case you gotta do some makefile hackery that's understood)
osdev199 has quit [Remote host closed the connection]
<nikolar> yeh
<nikolar> lol yup
<geist> you just move /unix out of the way (/unix.old or /ounix or something) and copy unix to / and reboot
<nikolar> ld: too big for type 431
<geist> oh and netnix
<nikolar> lol
<nikolar> i just have unix
<geist> ah yes you're not building the networked version good thats simpler
<nikolar> oh i am
<nikolar> it's got networking
<nikolar> oof i forgot which things i was allowed to move around
<geist> so the trick is... yeah you know about the move around dtuff right
<geist> yeah gotta edit the Makefile to move stuff around the overlays
<nikolar> yeah i member
<geist> since it's dz.o that probably got bigger you can most likely move it to one of the OVs until it works
<nikolar> yeah but i kind of want to do it the right way (tm)
<nikolar> so move the unused or slow stuff
<geist> sure. what i dont remember was there was a trick to see how big the current overlays are so you know what space you have
<geist> but i dont remember what the command was
<nikolar> oh yeah there was
<geist> but alas i gotta get to work
<nikolar> thanks anyway
<geist> good luck! you know about as much as I
<nikolar> :)
<dostoyevsky2> nikolar: what can you do on the pdp11 except irc? Seems difficult to run anything except the things that come with 2.11bsd
<nikolar> well i haven't tried much because the only console i've had until now was taken by the irc client lol
<nikolar> geist: the command is size
<nikolar> as in size unix.o
<nikolar> `size unix.o`
<nikolar> if you were curious :)
<dostoyevsky2> also, the only editor that comes with 2.11 bsd is ex?
<nikolar> nope
<nikolar> vi
<nikolar> *vi's there too
<nikolar> and ed :)
<dostoyevsky2> https://github.com/retroprom/bsd2-src/ <- no vi in there...
<bslsk05> ​retroprom/bsd2-src - Source code of 2.11BSD (0 forks/3 stargazers)
<nikolar> yeah can't remember if i've installed it
<nikolar> i think it came with the os
<bslsk05> ​github.com: bsd2-src/share/learn/vi at master · retroprom/bsd2-src · GitHub
joe9 has joined #osdev
edr has joined #osdev
joe9 has quit [Client Quit]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
gbowne1 has joined #osdev
nick64 has quit [Quit: Connection closed for inactivity]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
chiselfuse has quit [Remote host closed the connection]
frkzoid has joined #osdev
chiselfuse has joined #osdev
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
frkazoid333 has quit [Ping timeout: 256 seconds]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
Matt|home has quit [Ping timeout: 268 seconds]
Matt|home has joined #osdev
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
Matt|home has quit [Ping timeout: 240 seconds]
jjuran has joined #osdev
zxrom has quit [Quit: Leaving]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 252 seconds]
Matt|home has joined #osdev
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
<nortti> dostoyevsky2: vi is a binary that launches the visual mode of ex, originally
<nikolar> ok so enabling the dz device, just causes the whole system to be unbootable
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
npc has quit [Remote host closed the connection]
manawyrm has quit [Quit: Read error: 2.99792458 x 10^8 meters/second (Excessive speed of light)]
manawyrm has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 264 seconds]
Turn_Left has quit [Read error: Connection reset by peer]
heat has joined #osdev
<heat> unix!
<nikolar> eh it was a unibus device and i am running a qbus system (i think)
<nikolar> maybe that's why it died
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
rustyy has quit [Ping timeout: 264 seconds]
<geist> oh hmm. yeah tell simh to emulate a 11/70
<geist> thats what that boot.ini above did
<nikolar> mine's set to 11/94 at the moment
<nikolar> erm, 11/93
rustyy has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
goliath has quit [Quit: SIGSEGV]
voidah has quit [Ping timeout: 255 seconds]
voidah has joined #osdev
netbsduser has quit [Ping timeout: 256 seconds]
dalme has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev