FiXos issueshttps://lab.knightsofnii.com/fixos-core-team/fixos/-/issues2018-04-11T20:31:02Zhttps://lab.knightsofnii.com/fixos-core-team/fixos/-/issues/1User provided data are not check in every part of the kernel2018-04-11T20:31:02ZLéo GrangeUser provided data are not check in every part of the kernelFor now, many functions of the kernel may manipulate user-provided data pointers, when called inside a syscall.
This is a major flaw on several aspects (security, kernel stability, etc...), because none of these data are really checked ...For now, many functions of the kernel may manipulate user-provided data pointers, when called inside a syscall.
This is a major flaw on several aspects (security, kernel stability, etc...), because none of these data are really checked before accessing them.
A process must only be able to provide data inside its own address space, and every access should be done carefully (specifically for zero-terminated strings and other variable-length data types).
Any MMU exception caused by an access to a used data should kill the process (or send it a SIGSEGV), and **not** cause a kernel oops.0.2Léo GrangeLéo Grangehttps://lab.knightsofnii.com/fixos-core-team/fixos/-/issues/2Splitting the bootloader into another project2018-04-11T20:31:02ZEiyeron FulmincendiiSplitting the bootloader into another projectIt'd be only to keep the kernel repository clean as it has few to relate with it.It'd be only to keep the kernel repository clean as it has few to relate with it.0.2https://lab.knightsofnii.com/fixos-core-team/fixos/-/issues/3Use libgcc instead of providing needed "builtin" functions for GCC2018-04-11T20:31:02ZLéo GrangeUse libgcc instead of providing needed "builtin" functions for GCCAn initial design guideline for the kernel was to depend on no external code, and this is why the kernel is not linked with libgcc.
As GCC expects its output to be linked with its runtime library, it may emit implicit calls to some func...An initial design guideline for the kernel was to depend on no external code, and this is why the kernel is not linked with libgcc.
As GCC expects its output to be linked with its runtime library, it may emit implicit calls to some functions provided by libgcc, like udivsi4_xxx, and several memcpy/movmem like functions.
Right now, these needed functions are added when necessary, in [gcc_fix](http://git.rakka-mar.tk/fixos-core-team/fixos/tree/master/gcc_fix) and [utils/sh](http://git.rakka-mar.tk/fixos-core-team/fixos/tree/master/utils/sh) directories.
Some reasons to avoid that are given in [OSDev wiki](http://wiki.osdev.org/Libgcc).
As FiXos depends on GCC for many other features, I think its time to remove this old behavior, and to depends on libgcc features.0.2Léo GrangeLéo Grangehttps://lab.knightsofnii.com/fixos-core-team/fixos/-/issues/4Better dynamic linker2018-04-11T20:31:02ZLéo GrangeBetter dynamic linkerThe current dynamic linker, implemented in-kernel for userspace processes, is more a proof-of-concept than a very usable and powerful design.
We'll have to re-think it, and to determine if a *userspace* dynamic linker isn't a better sol...The current dynamic linker, implemented in-kernel for userspace processes, is more a proof-of-concept than a very usable and powerful design.
We'll have to re-think it, and to determine if a *userspace* dynamic linker isn't a better solution (its the one chosen by many mature OS).
In all cases, the current implementation is flawed because of :
- usage of external tools to create the FiXos-specific sections used to retrieve symbols and their addresses
- no way to provide an external variable from another (shared) object, only functions are linkable
- only one dynamic library by executable, and loaded at the same address each time (not a big deal to change that, but it's a current issue)
0.3https://lab.knightsofnii.com/fixos-core-team/fixos/-/issues/9Jenkins builds not only master branch.2018-04-11T20:31:02ZEiyeron FulmincendiiJenkins builds not only master branch.Jenkis is compiling other branch's commits and pushing them into its main builds. They should be moved into something like one line/branch or be fully removed to avoid someone getting a unstable kernel. Note that this is the same with th...Jenkis is compiling other branch's commits and pushing them into its main builds. They should be moved into something like one line/branch or be fully removed to avoid someone getting a unstable kernel. Note that this is the same with the libc.Léo GrangeLéo Grangehttps://lab.knightsofnii.com/fixos-core-team/fixos/-/issues/10Case Indication2018-04-11T20:31:02ZEiyeron FulmincendiiCase IndicationAs the keyboard is going to have multiple modes (Shift, Alpha, Alpha Lock and lower/upper cases), we'll need a way to share keyboard status to other devices/systems. How will it be done? An IOCtl call?
How the status will be shown on ...As the keyboard is going to have multiple modes (Shift, Alpha, Alpha Lock and lower/upper cases), we'll need a way to share keyboard status to other devices/systems. How will it be done? An IOCtl call?
How the status will be shown on the terminal? I have in mind two way :
- Changing the cursor (we'll need some bitmaps quite different from the font)
- Add an indicator on a corner when one of the modes is enabled. THis option has a bonus that we could keep the cursor for showing if we're on a insert/replace mode.