forked from AbleOS/ableos
67 lines
3 KiB
Markdown
67 lines
3 KiB
Markdown
|
# 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
|