BugOS is a new operating system. It has a kernel, device drivers, a file system, and an internet module. The main concept is that every process has an own computer with an own console. Another main concept was the security, and the modularization. If a process wants to read the file, it asks the kernel. The kernel forwards to the filesystem driver, which reads and writes through the partition handler, which operates over the idehdd driver. Another example is when you are using an ssh shell, the packets are sent/received by the appropirate network driver, which are filtered by eth4/eth6 process, which are routed by ip4/ip6 process, are streamized by tcp, and finally handled by sshd. sshd uses bignum and crypto. ssh-shell connects to sshd, and ssh-shell uses termout-vt420 and the running process. And all of these are separate processes.
The kernel handles memory, processes, pipelines, system calls, and the "user interface" of file system. When kernel starts, detects memory size, finds the appended startup process, and starts it. The kernel is around 20k, and could be booted up from anywhere.
Today there are drivers for ArcNET, EtherNET, Serial Line, x21 Line, Parallel Line, USB, SB, Speaker, Floppy and IDE, and the list is extending. Device driver is just a name, since these are simple processes with the right to access some parts of io and memory directly. So all of the rules apply to them, as to other processes.
Processes are fully separated from hardware. This is because security was the first option when the system was designed. They think that they are running in a separated computer, but if they want, they can communicate with each other through pipelines. These pipelines are independent from anything too, so if a process crashes, it has no affect to the system nor other processes.
BugOS fileSystem uses 255 bytes long filenames without any rules in it. The structure of the partition is very simple; a boot sector, and a disk usage bitmap. File heads and run sequences can be stored anywhere on the disk. This technique speeds up the seeking in big files since any position of a file can be reached in three reads, while increases security, because disk usage map is not needed for read operation, and occurance of file heads and sequences on the disk is completely random, so when the disk gets bad at some sectors, the data loss is minimal.
Internet module can access the network with PPP, SLIP, CiscoHDLC, Frame-Relay and EtherNET. The IP level (4 and 6) is capable to handle more interfaces and can act as router process... The TCP/UDP level is able to handle any simulations connections... A wide range of clients are ready; pppoe, l2tp, l2f, tsp, TFTP, DNS, Socks4, Socks5, FTP, HTTP, SMTP, SSH, ipsec, TLS/SSL, sftp, lpd, Telnet, Gopher, Finger, POP3, IMAP4, NNTP, IRC, DayTime, etc., and also a lot of servers are ready too; pppoe, l2tp, l2f, tsp, DHCP/BootP, TFTP, DNS, Socks4, Socks5, IPmasking, FTP, HTTP, SMTP, SSH, TLS/SSL, sftp, lpd, Telnet, sTelnet, udpTelNet, vnc, radius, tacacs+, POP3, IRC, Finger, Gopher and DayTime. The SMTP server support virtual hosts, forwarding, and automatic reply. The HTTP server supports secure connections, easier and faster cgi mechanism, counter, directory listing, directory documents, forwarding and virtual hosts too. DNS server can be authoritative or caching (or both) DNS server.
A lot of tools are available for the system; an editor, a viewer, a commander, packer, cd-player, faxer, answering machine (with scripting), assembly compiler, pascal compiler, c compiler, debugger, and much more.
All of the compilers (of course assembly compilers are exception) generates an intermediate language code. This language is a very simple "computer language" with only four registers, not more than 20 instructions, and a very big number of calls... It means, that the code written on this language can be easily translated to any existing platform's assembly code, so the system is completely platform independent.