dennis95 / dennix Goto Github PK
View Code? Open in Web Editor NEWDennix is a unix-like hobbyist operating system written from scratch.
License: ISC License
Dennix is a unix-like hobbyist operating system written from scratch.
License: ISC License
Applications should have the ability to draw to the screen directly. Some API needs to be developed for this.
The following parts of Dennix need to be made aware of UTF-8:
Syscalls currently don't check whether pointers they were given are accessible from userspace. This is a security issue since a userspace process might overwrite kernel code and other things it should not access.
Implement redirection and pipes in the shell.
How to import an external file into the system?
I want to copy some projects into the system Dennix running on it and run them.
how to do it?
This would allow running Dennix at higher resolutions.
The current shell implementation is very primitive and does not even support quoting.
This would give us the ability read and write files on permanent storage.
We should be able to run multiple graphical applications at the same time rather than just one fullscreen application.
We should allow multiple threads per process.
Some code in the kernel is not thread-safe yet, so this will need to be fixed before threads are implemented.
Rationale: everybody loves screenshots
Even today the floppies are still being used, for example - as virtual floppies inside the coreboot open source BIOS. Just imagine: your wonderful OS could be a part of someone's BIOS build! (for coreboot supported motherboard, maybe you have or could get one - see https://www.coreboot.org/Supported_Motherboards )
If you already have a coreboot-supported motherboard, or a real chance to get one, - wouldn't it be cool to be able to launch your own OS straight from the BIOS chip? ;) With one simple command its possible to add any floppy to coreboot BIOS build - and then you see it as a boot entry! Multiple floppies could be added this way (as long as you have enough space left inside the BIOS flash chip, luckily LZMA compression could be used for the stored floppies to reduce their occupied size)
Hi man!
you have made great strides, congratulations.
As said in the title, It would be nice if the CI provides the built ISO of DennixOS.
It isn't difficult to upload the image at the end, as I do in my CI
Keep going!
I want to play with your OS
This will be needed for running terminal applications inside a GUI (#20) once we have one.
This is needed to make the ATA driver (#19) useful.
Hi, there are any plans for support the features in the title? They would improve a lot the capabilities of the system.
Keep it up, very good project
ACPI is needed for many things including shutdown and proper hardware detection.
Also my new laptop is missing some legacy devices that Dennix is using and fixing that will require ACPI.
Unfortunately fully implementing it (including AML) will be rather complicated.
This will be needed to find out whether BGA (#10) is supported.
Features needed in the shell that are used by configure scripts:
:
builtincase
statementsset
builtineval
builtinexec
builtinAlso some utilities like sed
and grep
are needed.
Every time I move the mouse or type something in the terminal (while running the GUI), there is ~1 second delay between me moving the mouse, and the cursor actually moving on the screen.
The issue is happening to me in QEMU while using multiple computers for virtualization (Linux x64 host, and macOS m1 host with emulated x86_64 hardware). Not sure if it happens with any other hypervisors.
Port it.
Currently when the kernel panics before the log has been initialized, a triple fault will occur because the panic tries to write a message on the screen.
A major performance issue of the GUI is that frames are sent over a socket and then get buffered. Then the GUI needs to process several frames that overwrite the same pixels until it gets to the newest frame.
Once #16 is resolved we will be able to share memory between the GUI and the application so that there are no outdated frames being processed.
Sockets would be useful for #20 to allow GUI processes to communicate.
This is problematic because gcc assumes that new can never return NULL. Also there is the problem that constructors cannot fail on allocation failure.
This allows some features like mouse integration.
Polese, consider spending some time writing documentation.
Documentation should cover: initialization and state of registers after boot.
How virtual memory is managed and others important algorithms.
Currently the kernel does halt whenever a CPU exception occurs. It should instead kill the current process if the exception happened in userspace. Maybe implement signals and then send the appropriate signal for the execption.
This was requested in a comment to bug #19.
Nano depends on ncurses, so porting that might be some work but it should be doable.
Disk access is currently slow. There are a few changes that could improve performance significantly.
Dennix should support x86_64.
This would make the shell more convenient to use.
Repl.it is able to run QEMU, which have been used to help other users make their own OSes. But is there anyway this OS could be ported to repl? or perhaps make a guide to do so?
I think it should work, but it would be really great if it could be done as it means many others can see and use the OS without needing to do anything locally.
A process that changes the display mode should become the owner of the display and when that process dies the display should reset itself.
The current way of resetting the display mode in a signal handler is not very robust.
The shell should be able to run commands from files and from sh -c
.
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.