champo / arqvengeros Goto Github PK
View Code? Open in Web Editor NEWArqvengerOS is a small operating system that runs a monolothic kernel. It started as a course assignment for ITBA.
ArqvengerOS is a small operating system that runs a monolothic kernel. It started as a course assignment for ITBA.
When echo is set for stdin, the input is always echoed in the first terminal, regardless of what terminal is active.
It's never added where it's supposed to be.
Create a kernel only stack frame for use when handling interrupts.
ext2 seems to experience a number of bugs in OS X, under qemu.
When a child process resigns active by exiting, the parent process wont be awoken until a key is pressed, when there might be keys in the buffer already.
If a process exits, top never clears the line for that process until it has something to overwrite it with.
Sleeping processes, or whatever process which is blocked, should be removed from the scheduler and then put back in.
When a process exits (And is waited upon) the memory of the internal kernel structure is never free'd and thus lost.
This seems to happen only if append or mkfifo are called directly after calling unlink.
However, calling mkdir seems work.
Create a relation between sibling process.
Which enables a nice linked list of child processes for a given parent processes, simply by transversing the sibling relation.
Calling
printf("%d %d\n", 2, 2);
Prints
2 0
Top like command that shows process table information.
For starters, process state (running / zombie), process name, cpu time used (porcentual over N timer ticks), start date.
si tenes el archivo pepe y el archivo pepe2 hacer unlink pepe2 borra a pepe
Several newly added commands lack manpages, it'd be nice to have them.
Currently 27 and counting... We gotta do something about it...
Help command cannot show every command on screen...
Options:
-implement scrolling upwards
-cry
-make some commands go dooooownnnn
Currently, as it takes a little time to the shell to take control of the actions, you are able to press a few keys and seeing them printed to screen. If you choose the Enter key you can make a real mess... :s
Implement basic File System IO.
It should be taken into account that this FS has to be extended to support permissions, sym links and FIFOs.
Create a working ATA driver using PIO & LBA28 addressing.
In particular, don't let an evil user erase the login prompt.
Create a kill command that can kill other active processes.
When killing a process that has children, all child processes must be killed too (recursively).
Every time scheduler_do is called, it assumes a tick went by. Which is most definitly not true, since it's called when a system call ocurrs too.
This means measurements depend on the number of system calls done by executing processes, and also that sleeping processes may wake up before their time.
Unix-like file system permissions.
In https://github.com/champo/ArqvengerOS/blob/master/src/library/sys.c#L42 the parameter size is ignored and in its place is a hardcoded value.
After a big number of updates, top stops displaying group names in the output.
Allow for the execution of background process by using the "&" modifier in the shell.
Integrar https://github.com/esneider/malloc como malloc para el kernel
Sometimes, when ending an append command an exception is thrown
When trying to erase a file that eas created but couldn't be opened (may be due to permissions) unlink does not erase it of the filesystem.
Rename is not implemented
ROFL ROFL ROFL
In 32645f3 the function scheduler_tick
was introduced, it calls sleep_list_update
.
This is all good, except for the fact that scheduler_tick
isn't really tick
but more like scheduler_sample_end
since it's only called when a sample ends. This means that sleep isnt tick based, but sample based, which is not what sleep actually expects.
Add users & groups to the SO.
This requires a set of command line tools that can create & destroy both users & groups.
Also, tools to add users to groups, and remove them too.
Shells should require an existing username before starting execution.
And they should provide a cli tool to logout of the current account, and allow the user to login with a new account.
They wont appear on tops list.
We need to offer users the chance to use malloc to reserve memory.
Ideas so far:
1)syscall malloc :
-look other way in case someone forgets to do its frees
-make sneida implement a feature to enable us to save malloc contexts for processes
Although ctrl + del does reboot the OS...
The current round robin scheduler uses a fixed table, with a O(n) where n is the size of the table.
It can easily be changed for O(1) time.
Like the title says.
Move the TTY logic into it's own process.
It has to:
The active terminal is the current on-screen terminal.
The active process is the process belonging to the active terminal that can read & write to stdin/out
Implement an ext2 driver.
Add a priority level to processes that influences the amount of cpu time given by the scheduler.
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.