<kingoffrance>
three kinds of definitions: what person 1 wrote. what other person wrote. what the word actually means (general sense) lol
<mrvn>
So forget that the first argument is named "promise". It has nothing to do with promises/futures.
<sonny>
ok, so it allows you to administer security by say having a program meet requirements {x, y, z} whereas before there is no way to verify?
<mrvn>
sonny: As I understand it it restricts syscalls to less dangerous things.
<sonny>
ok
<mrvn>
From do everything down to "you can only call exit()"
<mrvn>
gradually
<mrvn>
And you can only give up things.
<mrvn>
i.e. capabilities
<mrvn>
Too bad this isn't specified to act on threads. I would love to set worker threads up to do less.
<kingoffrance>
freebsd had systemwide https://www.freebsd.org/cgi/man.cgi?securelevel which im not sure ive seen people really use it, but starts wide open, you can restrict further Any super-user process can raise the level, but no process can lower it
<kingoffrance>
which is not to disparage pledge, just similar "starts wide open" then "restrict"
sonny has quit [Ping timeout: 256 seconds]
<kingoffrance>
minor point but what i keep driving at: https://en.wikipedia.org/wiki/Capability-based_security In theory, a system with capabilities removes the need for any access control list or similar mechanism by giving all entities all and only the capabilities they will actually need.
<bslsk05>
en.wikipedia.org: Capability-based security - Wikipedia
<kingoffrance>
*only* are there any actual such pure systems? i dont know
<kingoffrance>
which is just to say, other than things expressly designed from the ground up, hybrid is what one is likely to encounter
<mrvn>
A program might have the capability to write to files but also have read-only files.
<mrvn>
I think you can replace access control lists with capabilities but isn't that just renaming everything from ACL to CAP?
<kingoffrance>
i dont know the terms :/ just one seems "pure" the other seems "bolting onto another system, this is what is practical"
<kingoffrance>
the latter seems where the "revoke" comes from
<kingoffrance>
"we're all outta virgins" -- baron munchauser
<kingoffrance>
*chausen
<mrvn>
I think ACL are persistent while capabilities are something you have to establish over and over
<mrvn>
With capabilities you also don't have any mechanism to "chmod a+r file". Do you open a socket to every process and then them a capability token?
<mrvn>
Maybe think of an ACL as a store of capabilities. When you open a file the ACL say which capabilities you gain for that file.
zaquest has quit [Remote host closed the connection]
bradd has quit [Remote host closed the connection]
zaquest has joined #osdev
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
bradd has joined #osdev
<Clockface>
what key single steps qemu when it is paused?
<Clockface>
nvm
<klange>
None? You attach GDB and use `s`.
ElectronApps has quit [Quit: Leaving]
<kingoffrance>
"capabilities are something you have to establish over and over" yeah reminds me of cookies/tickets/tokens, although they may not like those terms/that comparison. .oO( "no ticket!" ) .oO( unix hater handbook, if you give a window system a cookie children's story )
<kingoffrance>
ENOTICKET would be better
<CompanionCube>
why not EPERM
<klange>
EINSUFFICIENTLYFUN
<kazinsal>
ECONSIDERINSTALLINGCAPSICUM
<CompanionCube>
ENOSPC for those error codes
<kazinsal>
EIWOULDSPELLCREATWITHANE
<CompanionCube>
lol
<CompanionCube>
changemode all read,write,execute current directory
<Clockface>
how to run gdb until PC reaches a certain point?
<Clockface>
is there a way to do that?
<Clockface>
nevermind
<Clockface>
i need to learn how gdb works
<kingoffrance>
EGOTOFFMYPLANE
<kingoffrance>
*GET
<kazinsal>
ELAWN: the process whose memory you are trying to access is an ancestor process that has decreed you shall not be on its lawn
<kingoffrance>
i like that
<CompanionCube>
ECLOUD: process up too long, angry packets routed to cloud.
Jari-- has quit [Remote host closed the connection]
<geist>
kazinsal: so as far as i can tell the scsi2sd 6.0 i have just died
<geist>
like, i can talk to it over the usb cable, reprogram it, read the data off the disks that way
<geist>
but plugged into a scsi card either to the vax or a PC. nothing
<geist>
like it doesn't power up
<kazinsal>
oh wow. guess the SCSI controller croaked?
<geist>
i dunno
<geist>
or the power supply portion of it broke
<geist>
since it can and does power off the usb side of it just fine
<kazinsal>
hmm. what's your power delivery? 4 pin or scsi termination power?
<geist>
4 pin
GeDaMo has joined #osdev
<geist>
and i scoped it to see. i might put it on the bench and piddle with it more closely tomorrow
<kazinsal>
hmm. wonder if the 6.0 can run off scsi termination or if it's just the 5.2 that does
<geist>
it has a unpopulated jumper for scsi termination
<kazinsal>
ah. the 5.2 does the termination in firmware and powers itself off the active terminator bus power
<kazinsal>
I don't have the 4 pin plugged in on the one in my vax, just the scsi cable
<geist>
ah but your'e using a 5.2
<geist>
did you get it working though?
<kazinsal>
yeah
<kazinsal>
yep! still having some weird soft error in firmware
<kazinsal>
on the vax that is
<kazinsal>
can't figure out exactly what it means because I can't actually find the exact manual for the microvax 3100/40
<kazinsal>
and the microvax 3100/{10,20} and vaxstation 3100/40 use different firmware from the microvax 3100/40
<geist>
yah looksl ike mine has slightly newer firmware too
<geist>
4.2 vs 4.0 i thiunk
<kazinsal>
I have the V1.2-343-V4.0 firmware and it has a completely different set of TEST commands and a different POST display than the manuals
<kazinsal>
I just get a progress bar in block characters instead of the "F...E...D...C..." etc described in the manual
<geist>
when investigating how to detect what vax you were booted on, it's a real mess
<geist>
there's very little standardized post boot either
<geist>
lots of this this than not that sort of stuff
<kazinsal>
and the manual says to punch in "TEST 50" to get a full config output, and that just gives me an ? ILL ARG
<kazinsal>
on boot I get `?? 001 10 SCSI 0048` and doing SHOW ERROR gives me ``?? 001 10 SCSI 0030`
<kazinsal>
so the VAX can't quite make up its mind as to what exactly the problem is
<kazinsal>
I thiiiiink it might be because I don't have a terminator on the external SCSI port
<geist>
ah yeah, i do
<geist>
it's a weird loop i've never seen. the internal cable literally loops all the way aorund with 6 connectors on it
<kazinsal>
yeah, it's bizarre
<geist>
but i know the controller and cable is fine, since it works fine wiht a scsi drive in it
<kazinsal>
I had the SCSI2SD in the "4" connector at first and it wasn't detected so I plugged it into the "1" connector and poof, worked fine
<kazinsal>
only remaining issue is that 0048/0030, neither of which I can find any details on
<geist>
see i thought that too, but i have plugged a scsi hard drive in differnt ports and it doesn't matter
<kazinsal>
hmm
<geist>
also tried it with an without the tape drive, whcih coems up as id 5
<kazinsal>
I should probably grab an external SCSI terminator...
<geist>
but i know this all worked at some point, so the occams razor is the scsi2sd died or is having some issue
<geist>
will try to scope it out tomorrow maybe
<kazinsal>
of course there's no 68-pin terminators for sale in canada on eBay
<bslsk05>
xlark.sdf.org: Resurrecting the VAXen, part 3: Hardware Repairs | Clark Hale’s Blog
<geist>
yah i've been curating a set of scsi cards and cables over 20 something years
<GeDaMo>
"The last remaining issue is that the SCSI2SD card that I’m using with the VAXes always throws an error on boot. I can later issue boot dka0 from the system monitor, but this error prevents the VAX from auto-booting. ?? 001 10 SCSI 0048 "
<geist>
i have never tossed any of it cause it comes in handy
<geist>
aaaaah yes i never got mine to auto boot too
<kazinsal>
ahhhh mm
<GeDaMo>
Is that a Vax specific error or something related to SCSI?
<kazinsal>
it'd be nice if there was a manual for this because I would love to figure out what exactly 0048 even *means*
<kazinsal>
ooookay, I may have found something. 001 is the FRU code for the SOC, 10 is the device ID, 0048d/0030h is "SCSI Data Transfer Test, Non-DMA/Synchronous Miscompare"
toulene has quit [Read error: Connection reset by peer]
toulene has joined #osdev
toulene has quit [Read error: Connection reset by peer]
toulene has joined #osdev
C-Man has quit [Ping timeout: 240 seconds]
mniip has quit [Ping timeout: 606 seconds]
[itchyjunk] has quit [Read error: Connection reset by peer]
Burgundy has joined #osdev
mniip has joined #osdev
ElectronApps has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
lkurusa has joined #osdev
the_lanetly_052 has joined #osdev
ElectronApps has quit [Remote host closed the connection]
lkurusa has quit [Quit: I probably fell asleep (or went out). Who will ever know.]
wand_ has joined #osdev
wand has quit [Ping timeout: 240 seconds]
C-Man has joined #osdev
mahmutov_ has quit [Ping timeout: 252 seconds]
Burgundy has quit [Ping timeout: 252 seconds]
pretty_dumm_guy has joined #osdev
X-Scale` has joined #osdev
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
gog has joined #osdev
bauen1 has joined #osdev
ElectronApps has joined #osdev
nanovad has quit [Read error: Connection reset by peer]
nanovad has joined #osdev
gog has quit [Quit: byee]
wootehfoot has joined #osdev
Oli has joined #osdev
srjek has joined #osdev
mahmutov_ has joined #osdev
<mrvn>
Don't you hate it when you edit an answere on stackoverflow and 1 second before you post the question gets closed?
dormito has joined #osdev
Scripted has joined #osdev
<Scripted>
hello
<Mutabah>
hello.
<Scripted>
mrvn: Memory map is successfully passed
<zid>
what was your issue with your uint32_t magic stuff in the end?
the_lanetly_052 has quit [Ping timeout: 252 seconds]
<mrvn>
zid: compared with the wrong define.
<Scripted>
zid: I suppose, but at the end it was just the lack of concentration
<zid>
what
<mrvn>
the type was wrong too. so 2 bugs.
<Scripted>
I couldn't concentrate properly yesterday
<zid>
I asked what you changed to make your code wrong
<zid>
correct
<Scripted>
so yes, it was the uint32_t magic num as well as the wrong define
<zid>
okay so I guessed the latter bit sort of, but what's wrong with the uint32_t magic?
<Scripted>
now I'm trying to figure out how I can use this memory map
<zid>
this is like pulling teeth
<mrvn>
zid: multiboot has 2 32bit constants. One for the magic and one a header tag.
<mrvn>
zid: So instead of 'if (magic == FOO)' he has 'if (magic == BAR)'.
<zid>
Yes you don't need to spend 6 lines what "the wrong constant" means mrvn
<mrvn>
and the print() always showed BAR
<mrvn>
sorry, sounded like you didn't get that part
<zid>
He said it was "uint32_t magic, and the wrong constant", I said I guessed the latter part already, which is why I asked him at the time what that constant was and where he got it
<zid>
but I don't understand what he means by the former still
<bslsk05>
github.com: GitHub - ScriptedDeveloper/CrazeOS at testing
<zid>
you were using pastebin.com and we asked you to use github
<Scripted>
it is
<Scripted>
later I put it on a testing brnach
<Scripted>
*branch
<Scripted>
so yes, it is on github
<zid>
I said wasn't, past tense.
<Scripted>
it was on github
<zid>
It was not linked, we even asked for the link and it was not given.
<Scripted>
..
<Scripted>
I linked it multiple times
<zid>
are you confusing me for someone else? I was only here for the bit I was here for
<zid>
not for the bits I wasn't
<zid>
that's why I am asking you what the resolution ultimately was
<Scripted>
I don't know when you were here and when not
<zid>
Absolutely fine, but I'd rather not be brow beaten for not being telepathic
<Scripted>
there are logs tho
<Scripted>
so saying I have never linked it to you is not true
<zid>
Okay I've resolved the problem on my end, cya
<Scripted>
bye
<mrvn>
Except there is no contract saing unique_ptr shall not be nullptr. That's just convention. What if nullptr is perfectly fine and the function will allocated it's own object if none was given? std::option<std::unique_ptr<T>>?
<mrvn>
ups
toulene has quit [Read error: Connection reset by peer]
toulene8 has joined #osdev
ElectronApps has quit [Remote host closed the connection]
wand_ has quit [Remote host closed the connection]
wand has joined #osdev
<GeDaMo>
zid: (21:00:46) GeDaMo: scripted: in your kmain you've compared to MULTIBOOT_HEADER_MAGIC but you're printing MULTIBOOT_BOOTLOADER_MAGIC
<zid>
yea we covered that twice
<zid>
not that he'd printed anything when I was around
<GeDaMo>
Ah
bauen1 has quit [Ping timeout: 256 seconds]
bauen1 has joined #osdev
toulene8 has quit [Read error: Connection reset by peer]
toulene has joined #osdev
<mrvn>
How do you check a reference for nullptr?
<mrvn>
You fail if the compiler eliminates the check. Bonus points for readability.
<mrvn>
I want to transfer ownership of a not_null pointer.
<mrvn>
ups, ewin
kingoffrance has quit [Ping timeout: 240 seconds]
Burgundy has joined #osdev
<Scripted>
How can I get the total memory size via memory map passed by multiboot?
<mrvn>
verry carefully
<Scripted>
?
<mrvn>
The memory map comes from the BIOS and not the bootloader. Outside of qemu it's nearly always malformed with overlapping regions or regions listed twice. So you have to sanity check it and not just sum up all the usable regions.
<Scripted>
I thought I could get the memory map via GRUB
<Scripted>
/ multiboot
<mrvn>
GRUB gets the map from the BIOS and passes it along. It doesn't fix a bad map. Start with qemu. Print out the region and draw it on a piece of paper and think how to compute the size. Then think of all the ways the map could be bad.