Hey Michal,

(1) The IBM-PC compatible build of the kernel currently uses the ?serial via 
the IO port interface. To use the VGA buffer, you'd have to do the work of 
getting the VGA alphanumeric-mode buffer mapped in at boot, and then write the 
code to print to the buffer.

(1a) I'd recommend doing this in userspace as part of your root task though, 
since there's no real advantage (that I can glean) to adding a VGA framebuffer 
driver to the kernel, unless you have no machines with serial ports, which is 
probably why you're trying to do this, I'd guess.

(2) Serializing access to hardware between the kernel and other entities is a 
difficult problem if you also need to preserve trustworthiness proprerties of 
the kernel. If you use a shared lock between the kernel and userspace for 
example, you open up a very obvious DoS attack against the kernel.

(3) It is possible, but you'd have to do a the plumbing yourself, yes. Consider 
doing this in your root task or as part of your userspace environment on top of 
seL4.

(4) It looks like you'd have to implement both putConsoleChar and putDebugChar, 
although they do exactly the same thing

(5) Yes, the VGA function is exposed at the same address on all IBM-PC 
compatibles, no worries

--Hope I helped,

--
Kofi Doku Atuah
Kernel engineer
DATA61 | CSIRO

________________________________
From: Devel <[email protected]> on behalf of Michal Podhradsky 
<[email protected]>
Sent: 29 July 2017 07:42
To: [email protected]
Subject: [seL4] VGA buffer as stdout

Hello,

I have a question about standard output. I have a camkes component than can 
write into text-mode VGA buffer (basically it follows this simple example 
http://wiki.osdev.org/Bare_Bones#Writing_a_kernel_in_C ) but I would like to be 
able to redirect the kernel messages during startup to be printed on screen 
using VGA buffer.

Once another component (either Linux in a VM, or some other camkes app) will 
initialize, it will be able to take control over the screen output (and for 
example show login window etc).

My questions is - is this possible with seL4? And if so, what would it entail?

I guess in the minimal version, I would have to provide a different 
implementation of seL4_DebugPutChar, is that correct?

The VGA standard seems to define the buffer to be at 0xB8000, so it should be 
consistent between x86 platforms.


Regards
Michal

_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to