I've been thinking of creating an OS lately. I'm hoping to make a text-mode OS in full assembly language that runs fast, has no bugs or security holes, and is the "best" operating system I can think of. Have you ever seen an OS that had nothing you thought could be better?
So far, here are my ideas:
Process handling:
- Multiple Processes can run at once.
- ALL processes except the kernel show up in a task manager (no way to hide).
- When you choose to end a program from the task manager, the kernel just deallocates resources used by the process, stops giving the process timeslices, and clears the memory it occupied. None of this "not responding" garbage.
- Priority on processes is floating-point from zero to one. Only the task manager can set these priorities, however (removes likelihood that a malicious process can claim all processor power).
File system:
- Spaces, symbols, and weird characters may not be used in filenames. A-Z, a-z, 0-9, -, and _ are the only allowed characters. The extension is a separate field (no need for worries about periods) as is the directory.
- Whenever a cluster is added to a file, the time when it was added is written in the cluster header. During defragmentation, empty clusters are left after files that grow often to lessen fragmentation. Also, the defragmentation utility runs in the background when the system is not busy.
Other features:
- File associations are set up in a very structured way. When a user selects a file to open without specifying a program, the OS looks up the first program that has requested the file type. The OS then calls the specified procedure the the program's executable and gives the program a short time (a couple of milliseconds at the most) to respond on whether or not it is the correct format. If the program responds with a yes, the OS calls a different procedure in the program's executable that actually opens the file. If the program responds with a no, then the OS looks up the next program "in line" for the extension. It keeps doing this until it finds the right program. If a program is not found, the "open with" style window opens. This should take care of the problem of multiple programs that share the same exension having conflicts. :idea:
- Full upgradability - nothing set up in a way that prevents changes being made.
- Way more settings than anyone wants - have you ever noticed one of those little things in an OS that would have been so easy to change for the programmer, but they didn't bother? :sad:
If you have any ideas, criticisms, modifications etc. I would be glad to hear them. I want to plan this thing fully before I start working on it - I don't want to make a windows clone. Thanks in advance for your ideas. :cheesy: