tinykern / tinykernel Goto Github PK
View Code? Open in Web Editor NEWTiny Kernel is a work in progress Operating System kernel.
Home Page: https://TinyKern.github.io
License: Apache License 2.0
Tiny Kernel is a work in progress Operating System kernel.
Home Page: https://TinyKern.github.io
License: Apache License 2.0
When I reviewed the project, I saw a few things that weren't right. I want to share these with you:
inb(uint16)
and outb(uint16, uint16)
methods defined in the src/kernel/keyboard/keyboard.c
file are not directly related to the keyboard. It's about CPU ports. Move these functions to a different location.next_line_index
in src/sys/vga.c
. Make the VGA driver better, update. The VGA driver needs to be improved as soon as possible!Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Currently, the input from the keyboard is not registered after entering the kernel.
Also can't figure out how to convert key code to ASCII char, Problem.
To Reproduce
Steps to reproduce the behavior:
make
into the terminal.qemu-system-x86_64 -cdrom build/iso/TinyKernel_Bobrossrtx-0.1.3.iso
to run the KernelExpected behavior
input()
function, it should enter an input mode where the user can type any character on the keyboard and it should then write the character to the buffer.get_ascii_char()
should return the value of the keycode converted to a char. Example: return KEY_A -> 'a'Desktop:
Describe the bug
I cloned this repo with git clone https://github.com/TinyKern/TinyKernel.git
and then tried to compile it by typing make
as described in the README.md and then I got following linker error
CC src/sys/char.c -> build/obj/src/sys/char.c.o
CC src/sys/utils.c -> build/obj/src/sys/utils.c.o
CC src/drivers/keyboard/keyboard.c -> build/obj/src/drivers/keyboard/keyboard.c.o
CC src/drivers/vga/vga.c -> build/obj/src/drivers/vga/vga.c.o
AS src/bootloader/boot.s -> build/obj/src/bootloader/boot.s.o
CC src/kernel/stdio.c -> build/obj/src/kernel/stdio.c.o
src/kernel/stdio.c: In function ‘__kprintf’:
src/kernel/stdio.c:60:15: warning: comparison of unsigned expression in ‘< 0’ is always false [-Wtype-limits]
60 | if (i < 0)
| ^
CC src/kernel/cpu/ports.c -> build/obj/src/kernel/cpu/ports.c.o
CC src/kernel/kernel.c -> build/obj/src/kernel/kernel.c.o
CC src/kernel/errno.c -> build/obj/src/kernel/errno.c.o
\nLinking -> build/boot/TinyKernel.bin
ld: build/obj/src/kernel/stdio.c.o: in function `.L19':
stdio.c:(.text+0x304): undefined reference to `__stack_chk_fail_local'
ld: build/obj/src/kernel/errno.c.o: in function `kprint_error':
errno.c:(.text+0xe6): undefined reference to `__stack_chk_fail_local'
ld: build/obj/src/kernel/errno.c.o: in function `kpanic':
errno.c:(.text+0x176): undefined reference to `__stack_chk_fail_local'
ld: build/boot/TinyKernel.bin: hidden symbol `__stack_chk_fail_local' isn't defined
ld: final link failed: bad value
make: *** [Makefile:60: build/boot/TinyKernel.bin] Error 1
I am trying to build this on Arco Linux with Kernel: 5.12.15-zen1-1-zen
and gcc: 11.1.0
and linker: 2.36.1
To Reproduce
Steps to reproduce the behavior:
make
Expected behavior
Successfull compilation
Desktop (please complete the following information):
Arco Linux, Kernel 5.12.15-zen1-1-zen
The latest updated solved the linking issue but mcopy
from grub-mkrescue
now fails.
CC src/sys/char.c -> build/obj/src/sys/char.c.o
CC src/sys/utils.c -> build/obj/src/sys/utils.c.o
CC src/drivers/keyboard/keyboard.c -> build/obj/src/drivers/keyboard/keyboard.c.o
CC src/drivers/vga/vga.c -> build/obj/src/drivers/vga/vga.c.o
AS src/bootloader/boot.s -> build/obj/src/bootloader/boot.s.o
CC src/kernel/stdio.c -> build/obj/src/kernel/stdio.c.o
src/kernel/stdio.c: In function ‘__kprintf’:
src/kernel/stdio.c:60:15: warning: comparison of unsigned expression in ‘< 0’ is always false [-Wtype-limits]
60 | if (i < 0)
| ^
CC src/kernel/cpu/ports.c -> build/obj/src/kernel/cpu/ports.c.o
CC src/kernel/kernel.c -> build/obj/src/kernel/kernel.c.o
CC src/kernel/errno.c -> build/obj/src/kernel/errno.c.o
\nLinking -> build/boot/TinyKernel.bin
mcopy: No directory slots
grub-mkrescue: error: `mcopy` invocation failed
.
make: *** [Makefile:52: iso] Error 1
Originally posted by @DevManu-de in #6 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.