akern-gkgoat-fork/MANIFESTO.md

67 lines
3 KiB
Markdown
Raw Normal View History

2023-05-06 07:05:45 -05:00
# The Design of AbleOS
## The unix philosophy and why it shouldn't exist
small is only beautiful if its complete.
grep for example supports the `-r` flag which should instead be `grep`+`find`
Everything is not a stream of bytes.
programs can do multiple things well
`cat`, `head` and `tail` could all be one program with a flag
`which head` `which tail` `which cat` should all return the same binary with different flags
```
which head == /bin/cat range=0-10
which tail == /bin/cat reverse_index=true range=0-10
which cat == /bin/cat
```
build a prototype quickly only applies if you are being pressured. do thing quickly then refine
'choose portability over effeciency' this is a flawed idealogy choose modularity over pure portability
'store data in flat text files' this leads to a psuedostandardization on KVPair configuration languages that all sit in a flat text file. Instead pick a configuration format that gets loaded into a tree structure
## File Systems
### The amount of files inside of a folder
32765. Why you might ask?
### Dot files
`dotfiles` were a mistake given to us by bad programmers mocking better programmers. [link](https://web.archive.org/web/20230413171520/http://xahlee.info/UnixResource_dir/writ/unix_origin_of_dot_filename.html)
### File name case sensitivity
Case sensitivity seems like a great idea! But in practice leads to the following filetree
```
/kernel
/Kernel
/kErnEl
/KeRnEl
```
which is a nightmare and you should be erradicated if you think this is a positive
provide a display name for files that allows case and save the file as caseless
### File name character limits
unix is a plauge upon this earth. name a file `:(){ :|:& };:` and try listing it. You have lost access to your terminal.
if you defined a sane method of listing files and allowing programs to provide the OS a standard method of providing argument suggestions and being aware you would never run into this issue
## CLI vs GUI
Graphics are not your enemy unix lovers. You mustn't be stuck in 1981. Times have changed! You can have a graphical shell enviroment. SGI Irix was aware of this in 1988, not perfect of course but 7 years after dos is an impressive leap.
FFMPEG??? Why no gui? Give me a good git ui
### Emails plain text
Unix believes in plain text emails. Quotes are `>`
### Unix Wizards and Instability
[Do not meddle in the affairs of Unix, for it is subtle and quick to anger.]
### Unix why are your mouse a file?
This list is incomplete
`/dev/input/event1` The PS2 Mouse
`/dev/input/psaux` The PS2 Mouse
`/dev/input/psmouse` The PS2 Mouse
`/dev/input/mice` The Not(?) PS2 Mouse I think?
`/dev/input/mouse0` The not Not(?) ps2 mouse? First usb mouse I think?
`/dev/input/usbhid` USB mice (should be autodetected)
`/dev/input/sermouse` Most serial mice
`/dev/input/logibm` Bus mouse connected to Logitech adapter card
`/dev/input/inport` Bus mouse connected to ATI or Microsoft InPort card
`/dev/input/by-id/usb-<usbid here>` A usb mouse via its id
I propose a unified system for input via a Device Tree of sorts