fsr help

 all because the gemhost disallows requests from http proxies

### what-does-hardware-do although there are protocols and instruction sets and bootstrap routines and cores and rings to consider, in the most general sense the computer still just moves numbers around. it might sound obtuse to keep putting it that way, but the ultimate objective of computing is exactly that- the cpu figures out the numbers, the ram keeps track of various numbers when the computer is on, the video card displays numeric data as graphical data on the screen, the keyboard and mouse send numbers that describe keys and direction data or location data to the computer. the mic and speakers are no exception if you include the adc and dac. hardware is handled by drivers, and i have no idea how to write a driver but you can learn if youre interested. but you want to write an operating system, you want to create the software that handles the hardware and also runs the software programs. or perhaps you dont, but too late, because the main thing the hardware does is (you wont believe it) run software. specifically, it runs the operating system. as its been said, maybe you really didnt want to write the operating system, maybe you just wanted to write the user interface (the shell) of the operating system. lets assume though, that you really wanted to write an os. it used to be that any software that came with the computer was made for that computer, everything was extremely platform-specific and even the companies that made the computers figured you really didnt want a computer anyway. this was until minicomputers were invented. but lets talk about bigger computers first. remember that babbage invented the computer to do math, and early computers were meant to handle things like tables of missile trajectories. the computer in the apollo 11 guidance system for example, had all of its software stored in an elongated version of core memory- they had countless women at tables running wires through all the cores, meticulously placing the instructions into this peculiar but very 1950s, 1960s storage medium physically and manually. computers came from electromechanical machines that sorted punch cards, with holes physically punched into the cards so that machines could tell whether a specific location on the card was open or closed. punch cards are a slow and error-prone medium, so when magnetic tape was available operators would create tapes of data that was fed from punch cards. the tape would be fed into the computer, the computer would spend minutes or hours processing the instructions, and various people who had leased time on the machine would get their output at some point in the future. most of them would never operate the machine, they would leave their work like dropping off shirts at the cleaners. even streamlined this way, this was wildly inefficient, and eventually timesharing software was invented to allow people to access the computer from a teleype or glass tty remotely. by now it was necessary for the software on the computer to keep track of user accounts, to reserve a certain amount of ram for whichever users were logged in, to keep instructions and a pointer for each user in the alotted ram so it could continue moving from one account to the next, giving the illusion that it was actually doing those tasks simultaneously when it was really only switching between them very quickly. to write an operating system, you must at least do that much minus the user accounts and timesharing- which are very nice things to have. i think most people work to get access to the screen, output some text, possibly find the keyboard (trickier if its usb, which it probably is) and if youre really lucky, get something from the floppy drive. the floppy drive you dont actually have, so its emulated using qemu or similar. i think at this point most people give up on their operating system and go back to applications. which is absolutely fine of course. some will continue on, and thats fine too. but HOW do you write the code that does even those things? you learn. as everyone says, you go to osdev because thats where the documentation is. each step of the way, youll find more details and apply them. youll hypothetically write a kernel, it will handle ram and talk to your hardware, allocate ram for software to use, keep track of processes (running programs) and let you manage them. at some point maybe it will handle logging in and out. you know, operating system things. and then on top of the operating system youll have various programs that let the user TELL the OS stuff. and let the os tell the user stuff. these are called shells, presumably because users typically do whatever it is they do outside the computer and as such, the shell is the outer layer of the computing so they can make use of it. the user does things with the shell, or shells, then the shells relay that to other programs or files or hardware- through the os, and if you really want to be in control of the experience the user has, you can probably address this at the shell layer and have it interface with an os that already exists. but, just like you can learn a lot about programming by hacking existing code, you can learn a lot about operating systems just by learning how to modify existing os code. as a rule though, the operating system is in charge of the computer itself, and the shell is in charge of how the user interacts with the computer by talking to the operating system for you. the good news is you can explore any side of computing you want to, the bad news if any is that only you can really choose which side you prefer to work with. but thats also good news. i suppose its time to talk about software again: => software.html software => https://fsrhelp.envs.net/ (back to the main page) => https://portal.mozz.us/gemini/fsrhelp.envs.net/ (it wouldve been cooler to do it this way instead) license: 0-clause bsd ``` # 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ```