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
<klange> apparently it affects that as well, in addition to normal backspace stuff :)
<heat> like right-to-left or merging two codepoints into one? (or however that works for arabic, etc)
<heat> i'm fully aware there are a good couple of languages that don't really fit into typical "monospace, each character in a single console cell" way
<heat> which, erm, makes me wonder if they can actually be fully supported anyway
vinleod has joined #osdev
<heat> as far as I understand the typical VT stuff really is latin centric
<klange> Since the tty layer isn't really aware of things like cursor positioning or even cell widths, there's no good way to do it for the canon buffer - just best-effort improvements like the things Linux does with IUTF8 or its attempts to handle tabs.
vdamewood has quit [Read error: Connection reset by peer]
<klange> But for something more integrated with the terminal you can do better - which is why readline or vim can support this stuff much better. And then at the terminal end of things, VTE has all sorts of complicated support for RTL text, and various other terminal emulators have fancy ligature support and whatnot.
<heat> ah really?
termin has joined #osdev
<klange> At the most basic level, VTE (and I imagine most other terminal emulator engines that support RTL text) detects spans of RTL text and flips them. VTE also then does all the fancy combined shaping to support Arabic.
<klange> So to output some Hewbrew text, for example, you just spit it out in encoding order, and in a naive terminal it would show up backwards to how it should be written - and then VTE will flip it for the continuous range of RTL text on a single line.
nyah has quit [Quit: leaving]
<heat> hmm yeah
heat has quit [Ping timeout: 250 seconds]
brunothedev has joined #osdev
brunothedev has quit [Quit: WeeChat 3.8]
[itchyjunk] has quit [Ping timeout: 256 seconds]
zaquest has quit [Remote host closed the connection]
[itchyjunk] has joined #osdev
xenos1984 has quit [Ping timeout: 256 seconds]
foudfou_ has joined #osdev
foudfou has quit [Ping timeout: 255 seconds]
foudfou_ has quit [Remote host closed the connection]
foudfou has joined #osdev
xenos1984 has joined #osdev
<geist> heh just reading this i randomly searched the net for rendering arabic fonts, and just reading bug reports of rendering engines is really interesting
<zid> they've bricked iphones a few times
gog has quit [Quit: byee]
elastic_dog has quit [Read error: Connection reset by peer]
elastic_dog has joined #osdev
<sakasama> The history of traditional Mongolian script was very eventful, until everyone gave up on it including Mongolians.
[itchyjunk] has quit [Remote host closed the connection]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
Goodbye_Vincent6 has joined #osdev
rein-er has quit [Ping timeout: 276 seconds]
Goodbye_Vincent has quit [Ping timeout: 276 seconds]
Goodbye_Vincent6 is now known as Goodbye_Vincent
rein-er has joined #osdev
troseman has quit [Quit: troseman]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #osdev
kivikakk has quit [Read error: Connection reset by peer]
vinleod is now known as vdamewood
<ghostbuster> what should i read to wrap my head around segmentation addressing modes on x86?
<sakasama> Intel manuals, if you actually want to target 16-bit.
<ghostbuster> for operand like gs:0x14, the instruction operates on the address that's calculated by adding 0x14 to the base address that corresponds to the gs register, but the base address isn't actually stored in gs, right? it's stored in another register?
<ghostbuster> this is a 32-bit x86 binary running on 64-bit linux, on a 64-bit cpu
smeso has quit [Quit: smeso]
termin is now known as termaut
termaut is now known as unfigureit
<bslsk05> ​wiki.osdev.org: Global Descriptor Table - OSDev Wiki
<ghostbuster> ah so it's just a kernel data structure?
unfigureit is now known as unfiguredIT
<ghostbuster> thanks I'll read some of the links on that age
<ghostbuster> s/age/page
<sham1> A CPU data structure specifically
<sham1> This thing of course doesn't exist outside of the x86 family, because frankly, it's weird
<ghostbuster> segmentation is kind of a relic right?
<ghostbuster> i read that either fs or gs is now used for tls
smeso has joined #osdev
<sakasama> It's different in real mode, where the segment registers alone provide the base, and in protected mode where the GDT does, and then long mode discards the idea entirely.
<sakasama> They're just considered segment selectors in protected mode, iirc, for the purpose of selecting the relevant table entry.
<ghostbuster> cool, this makes sense
<geist> +1 to what sakasama said
<geist> in 64bit mode its even more disabed, but fs/gs work kinda the same way except now the base address is stored in a MSR
<geist> but it's effectively similar
<geist> ie, legacy compatibility for what folks used fs and gs for by the time x86-64 came along: pointers to thread or cpu specific stuff
unfiguredIT has quit [Remote host closed the connection]
slidercrank has joined #osdev
lovenot has quit [Read error: Connection reset by peer]
skipwich_ has quit [Ping timeout: 265 seconds]
<kazinsal> geist: hey, did you ever end up grabbing a 7000 series ryzen box? trying to diagnose some weird lockup issues I'm having every couple days
skipwich has joined #osdev
<kazinsal> never immediately hard locks, it's more like after a few days it stops remembering how to spawn new processes or something bizarre like that
<kazinsal> all of a sudden I have issues opening new tabs in chrome and then within ten minutes youtube stops working and various processes stop responding to input, then either I have to hard reset or eventually it'll hard lock and the SMM watchdog will reset the machine
<geist> kazinsal: negative
<geist> eep that sounds bad. usually first thgin i do there is run a memtester for a while
<geist> the hard lockups i was having the 2000 and 3000 series ended up being some sort of low C state thing that i disabled
<kazinsal> might poke at that. this board was having some issues with DDR5 DOCP so it might just be a board issue
<geist> maybe nudge teh clock on the mem down a bit
<kazinsal> it's doing this on stock 4800 unfortunately
<kazinsal> at 5600 it has a 50/50 chance of just not booting and then will randomly bluescreen
<kazinsal> reportedly the newest bios has some memory controller fixes, might try that first
<kazinsal> worst case I'm out a few hundred bucks on a new board
<geist> yeah get to current bios for sure
<geist> but i think you know what this is
<geist> it's the universe telling you to put those toys away and use your VAAAAAAXX
<geist> ryzen more like dies-en-2 minutes
<kazinsal> unfortunately the VAAAAAAXX has a dead power supply
<geist> noooo!
<geist> wonder how hard it'd be to rig up an ATX power supply. it probablyu needs all the same voltages
<kazinsal> yep, turned it on the other day to fiddle with it and the poor thing powered off suddenly followed by the smell of a capacitor giving up the ghost
<sham1> RIP
<geist> kinda has me thinkin, i should dig out the pair of beboxes i have packed away
<geist> packed em nice and tight 2 moves ago and never got them out again
<geist> but should at least make sure battery hasn't corroded anything, etc
<kazinsal> helpfully the label on the PSU lists the voltages it needs. unhelpfully it's a bit more than just what ATX provides. it needs a bit more on the -12V rail and it has a -9V rail
<kazinsal> most ATX PSUs only put out 0.5A of -12V, the VAX PSU puts out 1.0A
<kazinsal> and also oddly 0.2A of -9V, not sure what that's for
<geist> ah -9V. was worried it'd have a 'funny' voltage
<kazinsal> so she's gonna need a teardown
<geist> well, if it's like anything else they made it's probably a tank
<kazinsal> probably
<kazinsal> I'm expecting that the logic boards are probably fine
<kazinsal> may be worth inventorying the tantalum caps as well for a future recap
<geist> i remember killowatting the machine and it wasnt actually as power hungry as i expected. iirc it pulls a solid 80W but really nothing more
<kazinsal> but since it was an immediate power off when it went pop I figure it was a supply cap and not a logic one
<geist> probably bicmos
<kazinsal> a bunch of folks have said that the particular board I have has issues with "memory context restore" which seems to be "reload stale DRAM timings into the memory controller to speed up the POST" so I've disabled that. fingers crossed that solves the bizarre hanging issues
kivikakk has joined #osdev
gxt__ has quit [Ping timeout: 255 seconds]
gxt__ has joined #osdev
termin has joined #osdev
bgs has quit [Remote host closed the connection]
lovenot has joined #osdev
lovenot has quit [Read error: Connection reset by peer]
danilogondolfo has joined #osdev
lovenot has joined #osdev
AmyMalik has quit [Quit: Bye Open Projects!]
Ellenor has joined #osdev
lovenot has quit [Read error: Connection reset by peer]
ilovethinking_ has joined #osdev
<ilovethinking_> hey
gabi-250_ has quit [Remote host closed the connection]
gabi-250_ has joined #osdev
gog has joined #osdev
<ilovethinking_> why does nasm compile my assembly code but clang doesn't?
<ilovethinking_> do they have different standards?
<geist> gotta be more specific
<geist> how does clang not compile it?
<ilovethinking_> clang file.S -o file.o -m32 outputs error, let me send u the code real quick
<geist> probably you're trying to use intel syntax and clang is defaulting to at&t
<geist> oh yeah that's because nasm i think uses completely different assembler directives too
<ilovethinking_> no i also use -masm=intel
<ilovethinking_> forgot to include it in the message
<geist> stuff like section is .section. etc
<ilovethinking_> :cry:
<geist> clang follows gas style assembler directives. nasm is its own thing
<geist> i never ever use nasm so it wasn't obvious
<ilovethinking_> alright
<ilovethinking_> well i always used nasm so
<ilovethinking_> gotta learn new syntax now
<geist> course would take you 5 seconds to convert, so not a biggle
<ilovethinking_> nice
<geist> like most of those things you just need to put a . in front of it
<geist> directives in gnu as generally start with .
<geist> to differentiate from symbols, etc
<bslsk05> ​skywind3000/Intel2GAS - Convert MSVC Style Inline Assembly to GCC Style Inline Assembly (31 forks/98 stargazers/MIT)
<ilovethinking_> what abt this kekw
<geist> that's at&t vs intel i think
<geist> also inline asm is a different thing altoghter
<ilovethinking_> intel2gas tho
<ilovethinking_> well alright
<geist> it's also doing intel to at&t, but it's primarily dealing with inline as
<geist> which is another layer here, but lets not worry about that now
<ilovethinking_> inline asm is weird
<ilovethinking_> =r r
<geist> the most useless statement ever uttered
jjuran has quit [Read error: Connection reset by peer]
<ilovethinking_> "too few operands for hlt" what
* geist doesn't know
jjuran has joined #osdev
<ilovethinking_> weird
<geist> i dont think that makese sense, so it's probably not what you think
<bslsk05> ​github.com: lk/start.S at master · littlekernel/lk · GitHub
<geist> tends to probabably be similar to nasm but differet. you might want to look up the gnu as manual for them
<gog> hihi
sinvet has quit [Remote host closed the connection]
* gog hands geist a chamomile tea
<geist> mmm i love chamomile tea
sinvet has joined #osdev
<gog> :3
<ilovethinking_> mov $826, %eax
<ilovethinking_> how does this error what the fuck
<ilovethinking_> unrecognized instruction jmp
slidercrank has quit [Ping timeout: 276 seconds]
Raito_Bezarius has quit [Read error: Connection reset by peer]
Raito_Bezarius has joined #osdev
slidercrank has joined #osdev
<gog> wha
xenos1984 has quit [Read error: Connection reset by peer]
Morphy is now known as Chamaeleon
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
jjuran has joined #osdev
<FireFly> you sure it isn't the line before/after?
bauen1 has quit [Ping timeout: 255 seconds]
nyah has joined #osdev
termin has quit [Ping timeout: 264 seconds]
<gog> remove the colon after .text
<gog> .section .text
<gog> and multiboot_header should be .section.multiboot_header
<gog> .section ".text"
<gog> and .section ".multiboot_header"
<ilovethinking_> so like this?
<gog> yes that's a lot better
<gog> clang 15 on godbolt accepts it
xenos1984 has joined #osdev
<bslsk05> ​godbolt.org: Compiler Explorer
<gog> helpful output in intel syntax
<ilovethinking_> repasted the errors
<ilovethinking_> in the same link
<gog> what command are you using to compile
<ilovethinking_> clang src/boot.S -o boot.o -m32
<gog> clang -c
<ilovethinking_> same error
<gog> can you show me the error output please
<ilovethinking_> repasted it
<ilovethinking_> same link
<gog> is your mac an arm mac
<gog> like M1 or whatever
<ilovethinking_> yes
<gog> yeah your clang is defaulting to arm assembly
<gog> clang -march x86
<ilovethinking_> nice, ill just download a cross compoler
<ilovethinking_> or that
<FireFly> oh that'd make sense
<ilovethinking_> i guess this is pretty nice
<klange> With plain elf targets on modern hardware, it's not exactly difficult to get a toolchain built.
<klange> It used to take hours just from running the builds!
<ilovethinking_> or do i need i386 elf gcc wait
<ilovethinking_> hmm
<klange> You probably don't want i386. You likely want "i686" for 32-bit Intel targets, unless you're really serious about targetting older hardware (and even then, the architecture here sets defaults that can be tuned if you want to build for something older).
<gog> i386 support is gonna be dodgy on anything newer than idk when
<gog> i686 is basically the minimum target and even that's gonna start vanishing before long
<klange> You should also use the latest pair of gcc + binutils (and also gdb comes as a combined package with binutils, so I'm not sure why the author of these scripts went for the separated tarballs)
<FireFly> I always found it weird how gcc requires specifying the target at buildtime
<klange> Oh these are homebrew thingies, I see... done that way so binutils + gdb end up as separate packages.
<FireFly> I mean.. at time of building the compiler
GeDaMo has joined #osdev
<klange> It's sort of the fundamental architectural difference between gcc and llvm at this point.
* FireFly nods
<gog> i think it's a defect of gcc
<moon-child> i686 isn't gonna go away in hardware, is it?
<gog> probably not for embedded
<gog> but the consumer world has moved on
<klange> I bet there's a long email chain on a mailinglist somewhere about this.
<moon-child> is there any interesting embedded x86 stuff?
<moon-child> client stuff still boots in real mode (modulo efi, but)...
<gog> mostly industrial things that retain compatibility with old ISA interfaces to controls ystems probably
<moon-child> mmmm
<klange> It's less that there's interesting x86 embedded stuff that's still shipping 32-bit chipsets, and more that there's a lot of legacy industrial systems running vintage ones.
<klange> End of the day, though, these are not systems you are likely to want to target.
<ilovethinking_> x86_64-elf-gcc: error: unrecognized command-line option '-march'
<ilovethinking_> what the fuck
<klange> it's specifically -march={something}
<gog> oh you're using gcc now ok
<gog> don't use -march
<gog> do -m32
<klange> though totally fair callout that that is a bad error message
<gog> yeah
<ilovethinking_> ld.lld: error: boot.o is incompatible with elf64-x86-64
<ilovethinking_> ????
<ilovethinking_> but i need a 32bit imag
<ilovethinking_> e
<ilovethinking_> i compile with -melf i386
<klange> You need more args.
<moon-child> I will note even with clang cross compilation is not necessarily trivial, since you need target headers and libs and stuff. Definitely better off thang cc though
<ilovethinking_> wdym
<ilovethinking_> ld.lld -T src/linker.ld -melf_i386 boot.o -o kernel.elf
<moon-child> and you compiled boot.o with -m32? What does 'file boot.o' say?
<FireFly> moon-child: sure
<ilovethinking_> boot.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
<ilovethinking_> qemu says i need a 32bit image tho
termin has joined #osdev
Ellenor is now known as AmyMalik
termin has quit [Read error: Connection reset by peer]
<ilovethinking_> why is it so hard to get started lmao
bauen1 has joined #osdev
kpel has joined #osdev
kpel has quit [Quit: Leaving]
slidercrank has quit [Ping timeout: 252 seconds]
slidercrank has joined #osdev
bgs has joined #osdev
lovenot has joined #osdev
<lovenot> Does anyone know how I can re-sync with my satellite?
slidercrank has quit [Quit: Why not ask me about Sevastopol's safety protocols?]
lovenot has quit [Read error: Connection reset by peer]
<mrvn> ilovethinking_: why are you building elf32 again? You need to build everything for elf64.
<mrvn> ilovethinking_: then when you are done convert that to ELF32 or raw bin.
zxrom has quit [Quit: Leaving]
<gog> UEFI UEFI UEFI
<Ermine> hi gog, may I uefi you
* gog ExitBootServices()
<Ermine> What are Gog Runtime Services?
<gog> Run() Stop() Eat() Cry()
<Ermine> why cry
<bnchs> gog: wtf, why did you leak my source code
zxrom has joined #osdev
<gog> Ermine: sometimes you just gotta cry
<gog> bnchs: sorry friend
<Ermine> gog: what happened?
<gog> Ermine: notihing, i'm not crying right now
<Ermine> Ah ok
<gog> but there's a 100% chance of me crying within the next 48 hours
<gog> for no specific reason
<Ermine> :(
<bnchs> gog: no it's okay :<
<gog> Ermine: no sadface, crying is a healthy way of dealing with emotions
<bnchs> i eat and cry too
<ilovethinking_> mrvn: hold on so how do i convert elf64 to elf32
<ilovethinking_> you mean with the linker?
<ilovethinking_> like compile to x86_64 but link to elf32?
<bnchs> ilovethinking_: i don't think you can convert elf64 to elf32
<ilovethinking_> yeah well mrvn said that
theboringkid has joined #osdev
lovenot has joined #osdev
theboringkid has quit [Remote host closed the connection]
<mrvn> You can't with the linker, the linker handles code. With GNU tools you use objcopy after linking, that just changes the container for the binary, not the code.
theboringkid has joined #osdev
<mrvn> objcopy -O elf32-i386 $< $@
theboringkid has quit [Remote host closed the connection]
theboringkid has joined #osdev
theboringkid has quit [Remote host closed the connection]
<mrvn> or maybe you can if you set OUTPUT_FORMAT and OUTPUT_ARCH
theboringkid has joined #osdev
<mrvn> again, no idea if clangs links can do that
<gog> i think it's just that their apple provide ld.lld doesn't write ELF
<gog> ELF32*
theboringkid has quit [Remote host closed the connection]
<mrvn> gog: would suzrprise me if it could generate 32bit object files but not 32bit binaries. But a mix of arch and format might not work.
theboringkid has joined #osdev
<gog> idk
<gog> i have no experience with M-series macs
<gog> so i can only speculate about what the toolchain ships
<gog> where's geist when you need them
<mrvn> gog: ilovethinking_ uses clang and geist doesn't have experience there eigther.
theboringkid has quit [Client Quit]
theboringkid has joined #osdev
* mrvn should resubmit his ELF64 patches for qemu. It's like a 10 line patch in the multiboot ROM to make it accept ELF64 files too.
theboringkid has quit [Remote host closed the connection]
theboringkid has joined #osdev
<gog> o
<gog> maybe just build a clang with the default target
<gog> idk
theboringkid has quit [Remote host closed the connection]
theboringkid has joined #osdev
theboringkid has quit [Client Quit]
zhiayang has quit [Quit: oof.]
air has quit [Ping timeout: 248 seconds]
theboringkid has joined #osdev
air has joined #osdev
theboringkid has quit [Ping timeout: 246 seconds]
vaartngvirf has joined #osdev
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
danilogondolfo has quit [Quit: Leaving]
heat has joined #osdev
<heat> gog, gogzinga
<heat> i go away for some fucking hours and you developed your own runtime services? god dang it gog don't pull an Intel
<sham1> gogogogogog
<lav> gowog
<heat> god
<heat> lets all capitalize and quote "GOG"'s name so she loses her sanity
<heat> who's with me
slidercrank has joined #osdev
<zid> meh
<zid> please check the battery in your carbon monoxide detector
<gog> hi
<gog> heat
<gog> heat
<gog> hi heat
<gog> heat
<gog> HEAT
<heat> HELOO GOG
<heat> WHY DID YOU DEVELOP YOUR RUNTIME SERVICES
<heat> DID YOU ADD A GOG PROTOCOL TOO
<heat> DO YOU HAVE A GUID
<bnchs> GOG
<gog> I DO
<gog> f252db1a-349b-4cd2-8f5b-f14b03ed2c5d
<heat> HELLO BENCHES
<heat> HOW ARE YOU
<lav> GOG UNIQUE IDENTIFIER?
<bnchs> I'M NOT FINE, YOU?
<heat> IM OK
<zid> I should do something I can only do on my ryzen machine
<heat> build chrome
<zid> flip some bits cus no ecc? do efi shenanigans?
<heat> oooh ooh, build LLVM
<bnchs> THAT'S GOOD, HEAT, I'M GLAD YOU'RE DOING OK!
<heat> you already had EFI shenanigans in your old mobo m8
<zid> all my stuff was MBR
<Ermine> HEEEAAAT
<heat> you should create a GPT
<sham1> WHY ARE WE YELLING‽
<zid> I am GPT now
<Ermine> TO MAKE SURE EVERYONE HEARS ME
<zid> I have 80GB of unpartitioned space on the SSD too, in case it helps the lifetime?
<sham1> I don't think they need a Generative Pre-trained Transformer
<sham1> WELL YOU HAVE BEEN HEARD!
<heat> transformer? oooh ooh i'm optimus prime
<zid> I prefer the term: stochastic parrot
Lubrera has joined #osdev
<Lubrera> Dear OSDev Channel: I like the Amiga OS architecture, but it is astonishingly inadequate in its lack of memory protection. There are any discussions or proposals of an Amiga OS inspire design that makes an effective use of the MMU, for I will like to try following that design for my own hobby OS?
<bnchs> Lubrera: in m68k?
<Lubrera> bnchs: I target the AMD64 PC, but it is no concern to me, an MMU to provide paged virtual memory doesn't vary enough to interesting me.
bauen1 has quit [Ping timeout: 255 seconds]
<gog> AROS?
vaartngvirf53 has joined #osdev
<Lubrera> No memory protection (or minimal) unfortunate
<gog> ah ok
<Lubrera> MorphOS it is the same. I suppose they are both hamstruny because they want to run Amiga apps directly. I have no such interest, I only want AmigaOS inspire OS
* kof123 pokes Bitweasil
<kof123> i think they were working on something vaguely related...might be confusing nicks
<kof123> check the logs for past x years :D
<Bitweasil> kof123, hm?
<kof123> wasnt there somebody working on something amiga-related here
<Lubrera> And fundangelically it is not an easy to adapt the Amiga OS architecture to a system of protected memory. But I want to throw at this.
<Bitweasil> I think so, but it wasn't me.
<kof123> :/
<Bitweasil> You want to know about system management mode or hypervisors or, especially, the combination of the two, I'm your mustalid.
vaartngvirf has quit [Ping timeout: 260 seconds]
vaartngvirf53 has quit [Client Quit]
gog has quit [Quit: Konversation terminated!]
<heat> Bitweasil, will you let me draw to the framebuffer in SMM or am I under arrest
<heat> i promise I'll lock the SMRAM register
<Bitweasil> You're in SMM without a hypervisor, you can do *whatever the heck you want.*
<Bitweasil> :D
<bnchs> hi Bitweasil
<Lubrera> The "Amiga" fundagelical feature perhaps, the shared library can provide as many or as few state when it is opened by some process that it wants, and the shared library it also can be or act in part like a simpleton
<Lubrera> Sorry it was corrected by my phone
<Lubrera> Singleton
<bnchs> Lubrera: it's all about amiga this, amiga that
<heat> Bitweasil, have you thought about using SMAP/SMIP to stop SMM to get exploited into touching/running non-SMM or SMM comm buffer pages?
<heat> I think it would work pretty nicely
<heat> as a, erm, general thing that doesn't need a hypervisor
<bnchs> while the architecture of OS-9 is forgotten
<Bitweasil> Ok, assume SMM code was written by an old guy back in the 90s who has long since retired to the hills.
<Bitweasil> And you can't find anyone willing to reverse engineer it. :)
<Bitweasil> The more fun is when you get yourself execution over there, but I didn't look into that capability, nol.
<Bitweasil> I just screwed around in the hypervisor space.
<heat> yes, the point would be to enforce SMAP/SMIP in upstream edk2
<heat> less room for stupid fuckery
<Lubrera> Yes bnchs I think you cannot make a good OS unless you choose one or two OS to be your masters. And when you have replicated some existing OS, then maybe you have the wisdom to do a different thing. So I try to borrow mostly from the AmigaOS this time, having once wrote a Unix-like
<kof123> "study the masters, after that do whatever the hell you want" -- dali
<Bitweasil> heat, yeah, that seems useful, but I'm not actually sure how that works out of SMM. It'd be an interesting experiment, I no longer have the board I did the work on, though.
linear_cannon has joined #osdev
<heat> Bitweasil, you'd map everything that's not in SMRAM or SMM comm buffers with user perms. then anything that tries to accidentally or purposefully touch normal mem get deaded
linearcannon_ has quit [Ping timeout: 246 seconds]
<Bitweasil> Yeah, you could probably do that. Though I'm not sure how that's a real improvement over just not mapping the rest of the stuff in the first place.
<Bitweasil> Only map the hardware and the comms buffers.
<Lubrera> Then here is the plan I formulate out of thin air about how will I implement my OS. Since Amiga shared library have(I have identified, maybe there is more) two responsibilities, I think I accordingly, the high-level library is separated into an optional Process and an actual Elf Shlib
<heat> Bitweasil, yes, that's also a possibility. but maybe there's real need to *sometimes* write to arbitrary memory? (for compat, etc) fuck do I know
<Bitweasil> "Disable the SMAP/SMEP bits" and "Add a mapping for that access" are about the same level of complexity.
<Bitweasil> Anyway. It's a hot mess.
<Bitweasil> I've just been getting lazy and putting Qubes on everything.
<heat> maybe unmap everything except SMRAM and comm, but mark comm User-access
<heat> and then have a copyin/copyout primitive
<Bitweasil> You could probably do that.
<Lubrera> Bitweasil: Thank you, that is what I will doing
<Lubrera> It might be the wrong way. I care not. Let them try to stop me before I trip into my tomb on the wire I laid myself
<kof123> it was belxander (or similar) i was probably thinking of. i got the most significant character right. wanted to build python on morphos or something , and other plans...
craigo has joined #osdev
<kof123> *belaxander maybe. he should be in the logs :D
gog has joined #osdev
<zid> heat: i built llvm
<heat> nice
<heat> with LTO?
<zid> doubt I have the ram for that
<heat> do it and limit parallel linking
<heat> if it doesn't already
<zid> emerge clang time
<zid> while I go cook rice
<sakasama> Activate fuzzy logic rice cooker.
xenos1984 has quit [Ping timeout: 246 seconds]
<heat> mjg, the response to your llvm thread is fucking hilarious
<heat> WHOT? THREADING SUCKS IN MOST CASES? JUST DEAL WITH IT M8
<heat> if linking your helloworld.c doesn't spawn 96 threads what the fuck are you doing
<mjg> heat: someone else confirmed maskray is the person to talk to, but he is afk for few weeks
<mjg> heat: so gonna try again later
<heat> is there any OS that lets you create suspended threads?
<heat> would be a cute idea here
<mjg> lol
<heat> or better, any UNIX-like OS
<heat> doing 96 syscalls for a helloworld.c isn't great, but I assume a large part of any of this overhead is threads just scheduling in, just to block on a condvar or something
<mjg> bur
<mjg> there is global sunchronisation on thread lists
<mjg> aand userspace further pessimizes it with its own internal locks to manage existence of threads
<mjg> which at least on freebsd immediately go to the kernel in face of contention
<mjg> so its liek
<heat> THIS BEEF IS FUCKIN PESSIMAL
<mjg> fuck me dude
xenos1984 has joined #osdev
<heat> perl -pi -e 's|^([^/]+?)((?<!::)(?<!::u)u?int(_[a-z]+)?[0-9]{1,2}_t)|\1std::\2|'
<heat> "regex is easy, believe me"
<kof123> i always heard it as: i'll solve it using a regex! now you have 2 problems
<zid> That's not even a bad one
<zid> from the start some non slashes then some line noise, line noise and a u then int, then identifier, with 1 or 2 numbers and _t, and maybe all std::
<zid> matching for std::uint32_t it looks like
<GeDaMo> That regex can't be bad, it has a smilie in it :P
bauen1 has joined #osdev
<heat> no
<heat> that command is to replace non std:: uintN_t into std::uintN_t
<zid> that's what I said
<zid> you're welcome
<zid> not my fault perl delimits with | tbf
<heat> mjg, have you tried linking with ld.mold
<heat> it should(tm) be more parallel
<heat> 96T will still be stupidly overkill but maybe you'll notice it less
<mjg> i heard it is, i don't see the point tho
<mjg> interestingly it's iterally the same guy who rolled with original threading
<heat> yep
<mjg> only this this time it supposedly does not suck
<zid> clang cannot build boros, heat
<zid> terrible compiler
<heat> why
<zid> non-asm statement in naked function
<heat> lol
<heat> what do you use naked for?
<zid> syscall entry
<zid> it preserves the scratch regs then syscall_c()'s
<heat> heh
wootehfoot has joined #osdev
theboringkid has joined #osdev
<gog> hi'
<lav> hi
gabi-250_ has quit [Remote host closed the connection]
gog has quit [Quit: byee]
gabi-250_ has joined #osdev
theboringkid has quit [Quit: Bye]
slidercrank has quit [Ping timeout: 255 seconds]
* geist yawns
<geist> oh no. no gog
* Ermine brings coffee to geist
dutch has quit [Quit: WeeChat 3.8]
<Ermine> nooo gog return please
ilovethinking has joined #osdev
lovenot has quit [Read error: Connection reset by peer]
<ilovethinking> hey, as what architecture do i compile and link my kernel?
<ilovethinking> by compile i mean gcc
<Bitweasil> ... what are you planning to run the kernel on?
terminalpusher has joined #osdev
<geist> ilovethinking: you should really stop using the M1 built in toolchain
<geist> that path will lead to madness (and hard for us to help)
<geist> get a cross compiler so you can factor out a ton of issues
<geist> i think i already suggested this days ago and i swear you told me you *werent* using the apple toolchain
<sham1> But succeeding will bring many abilities considered supernatural
<geist> ilovethinking: i forget, are you doing 64bit or 32bit x86?
<geist> former: x86_64 latter: i686
dude12312414 has joined #osdev
<Lubrera> Geist: I am doing for Amd64 my AmigaOS-inspired OS
<Lubrera> I thought about the ideas you suggested
ilovethinking_ has quit [Ping timeout: 250 seconds]
<Lubrera> Let's doing a capability oriented Micro-Kernel system where Amiga.Libraries are composed of a shared library component mapped into the task address spaces + a separate process (mayhave Multiple threads) and, this encapsulates the funcitonality an Amiga.Library has, but it deal with the problem that we haven't a single-address space like AmigaOS has
gareppa has joined #osdev
dutch has joined #osdev
wootehfoot has quit [Read error: Connection reset by peer]
terminalpusher has quit [Remote host closed the connection]
gareppa has quit [Quit: Leaving]
<geist> wait, who is Lubrera ? are you ilovethinking ?
terminalpusher has joined #osdev
dude12312414 has quit [Ping timeout: 255 seconds]
dude12312414 has joined #osdev
<geist> or just unrelated
<mjg> geist: does fuchsia play games with lazy FPU state restore/
<Bitweasil> I thought it was shown that even with the lazy FPU state stuff, you could speculate your way to reading the FPU registers of some other process?
<mrvn> Lubrera: you can make a single address space with an MMU. You just use it for memory protection.
eddof13 has joined #osdev
Lubrera has quit [Quit: Client closed]
eddof13 has quit [Client Quit]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<geist> mjg: depends on the architecture
<geist> x86 no, arm yes. riscv yes (when i implement it)
<heat> is it still optimal on arm?
<heat> on modern ARM cores, that is
<sortie> ^^ Playing with procedural wallpapers
bgs has quit [Remote host closed the connection]
<geist> heat: optional what?
<heat> I said optimal
<geist> doing lazy fpu? dont see why not. you have to do it manually anyway, so there's not a hardware advantage to it
<geist> oooh. optimal, probably still
<geist> but dunno
<heat> AFAIK linux axed it on x86 around 2016 because it was slower than not doing it
<heat> particularly as many trivial programs can get SIMD insns sneaked in through the codegen
<geist> yah also there's hardware to optimially save
<sortie> but my pretty screenshots
ilovethinking has quit [Quit: Connection closed for inactivity]
<FireFly> sortie: I wonder if you could derive colours for the window decorations from the generated wallpapers
<FireFly> or, maybe you do that already..
<sortie> FireFly, fun fact, the opposite happens
<FireFly> oh
<sortie> FireFly, if you recall the algorithm it redraws based on adjacent pixels, but it's limited to the damage rect, sooo if a region next to a window is invalidated, the windows should bleed into it. Somehow that never happened when I tried to make it happen tho
<sortie> This was just a quick hack to see what it'd look like, I need to prerender the wallpaper to a background frame for fast render
<sortie> Y'all can't see it but I'm restarting the gui constantly here and it spawns a new beautiful wallpaper everytime that no one has seen before
<nortti> is it gonna be possible to ask the GUI what the current seed is?
<heat> that sounds pretty PESSIMAL
<sortie> nortti, yeah I was literally just thinking that
<sortie> I wasn't actually planning on committing to this but just having seen it in action... it's so cool that I need to commit it asap
<sortie> It's iconic and powerful
<heat> ICONIC
<sortie> If I ship this, people will probably start contributing procedural wallpapers instead of keyboard layouts
<heat> zid, contribute your keyb layout and/or money
<Ermine> Why tf i486 PCs cost $260
<heat> get a soviet i486 knockoff
<sortie> need discount nordic unix??
<heat> might actually work well for cpus without SMP
<heat> btw sortie do you have SMP yet?
<heat> how about ACPI?
gildasio1 has quit [Remote host closed the connection]
<sortie> heat: Behold how beautiful my OS Is
gildasio1 has joined #osdev
<heat> sortie, it would be cool if you could do a shared mapping of that wallpaper
<sortie> heat, these wallpapers aren't fungi
valshaped has quit [Read error: Connection reset by peer]
valshaped has joined #osdev
terminalpusher has quit [Remote host closed the connection]
<zid> heat did you fix clang yet
<zid> how do I contrigute a keyboard layout
<heat> it's this thing called an "ARRAY"
<zid> so I should dump my scancodes to characters?
<zid> my scancodes are not linear though
<zid> some of my scancodes are like 80 bits long
<zid> my keyboards are all HID
<heat> PS/2 go brrrrrrrr
<zid> 0xC2 is the XOR key.
<zid> (it has an AT-101 list too)
nanovad has joined #osdev
vaartngvirf has joined #osdev
vaartngvirf has quit [Client Quit]
<sortie> https://pub.sortix.org/sortix/screenshots/sortix-gui-login-aurora.png ← Added wallpaper to the login screen too
<klange> neat
<heat> klange, why does toaruos not have this??????????????????????????
<sortie> klange, they're procedurally generated :D An random input color for a theme and then a random seed
<heat> u losing now, go get em
<klange> heat: because toaruos has a JPEG decoder
<heat> fucking savage
<sortie> aurora.c compiles to less than 4096 bytes, your move klange
<klange> can aurora.c generate waifus?
<sortie> I'm sure we can demo 4k up some waifus
* sakasama approves feature request.
<FireFly> klange: just send a suitable prompt to some stable diffusion net and overlay atop the aurora.c wallpaper,
<FireFly> well, overlay the result
outfox has quit [Ping timeout: 248 seconds]
<sakasama> Wouldn't you want it locally hosted? Local waifu is far superior to remote waifu, even if sometimes less convenient.
<zid> all my waifus are remote, they arrest you for local ones
<heat> good
* sakasama flees from zid's dystopia.
<zid> reality? yea same.
* sakasama nods.
[itchyjunk] has joined #osdev
<bnchs> hi cuties
<bnchs> oops wrong channel
* sakasama isn't cute anyways. :(
<sortie> When I met Dua Lipa she called me a cutie and went on her knees for me and dedicated her song Good In Bed to me
<bnchs> hi cuties :3
<sortie> klange, love that 'can do' positive energy in that wallpaper
<bnchs> now this is the right channel
<heat> sortie, would blow the fuck up
<sortie> heat, you ever feel the envy of 84999 people?
<zid> heat always goes down on his knees for me, don't even have to ask
<sakasama> Proof that ToaruOS now has waifu support: finally is serious OS.
<zid> My OS *only* has waifu support
<klange> toaruos has had waifu support for a decade
<zid> heat can confirm, he has seen it
* sortie . o O (toaruos is a waifu delivery platform with an operating system division)
<sakasama> ... but no waifu packages? :(
<sortie> Honestly love that toaru screenshot collection page, klange has such a good taste in wallpapers that feel iconic
<sortie> It's partially why I retconned why I'm doing procedural wallpapers, to do something else that's also iconic
<sortie> (Real reason is that it just seemed like fun to hack up a procedural wallpaper last night)
<sortie> klange, oh hey minor super important cosmetic change in Sortix, the default root PS1 is now red and gold instead of green and glue (which is for normal users)
<klange> I use a red # instead of a green $
<sortie> That's what I do too now
<klange> Re: Wallpapers - 1.x was landscapes, 2.x is fauna, and everything in that album from the vim+python ports onwards is my own photos, which adds to the in-house-y-ness.
<klange> And I really need to get a new shot for 2.2.
outfox has joined #osdev
<klange> Cherry blossom season is coming, so that's an opportunity for a new wallpaper.
<kazinsal> 3.x: absolutely gigantic honkers