A BugOS egy új operációs rendszer. Különböző részekből áll: kernel, meghajtóprogramok, filerendszer, és internet modul. A vezérelve az, hogy minden processz egy külön számítógépen fut, aminek van egy saját konzolja. A másik fő szempont a biztonság, és a modularitás. Amikor egy processz egy filet akar olvasni, akkor megkéri a kernelt. A kernel továbbítja a kérést a filerendszer kezelőnek, ami a partíció kezelőn keresztül olvas és ír, ami pedig az idehdd meghajtót használja a lemez fizikai elérésére. Egy másik példa, amikor ssh shell-t használunk. A csomagokat a hálózati kártya meghajtója fogadja illetve küldi. Ehhez csatlakozik az eth4/eth6 processz, ami kezeli az alsó szinteket. Ehhez csatlakozik az ip4/ip6 processz, ami útbaigazítja a csomagokat, majd a tcp processz rakja össze őket folyammá, majd az sshd kezeli le őket végleg. az sshd a bignum és a crypto processzekkel is kommunikál. az ssh-shell kapcsolódik az sshd-hez, ami a termout-vt420-at használja az adatok szűrésére, illetve kapcslatban van a futattott processzel. A fentebb említettek természetesen mind külön processzek.
A kernel kezeli a memóriát, a processzeket, a csővezetékeket, a rendszerhívásokat, és a filerendszer "felhasználói felületét". A kernel indulásakor érzékeli a memória méretét, majd elindítja a csatolt indító processzt. A kernel mérete mindössze 20k, és bárhonnan betölthető.
A következő eszközökhöz van meghajtóprogram: ArcNET, EtherNET, Soros Port, x21 port, Parallel port, USB, SB, Speaker, Floppy és IDE, és a lista bővül. Az, hogy meghajtóprogram, csupán egy elnevezés, mivel ezek közönséges processzek jogosultsággal az io és a memória egyes részeinek közvetlen használatára.
A processzek teljesen el vannak szeparálva. Ez azért van, mert a biztonság volt a fő szempont a rendszer tervezésénél. Ez a szeparáltág olyan mértékű, hogy a processzok azt hiszik, hogy egy külön számítógépen futnak. Azonban ha akarnak, tudnak kommunikálni egymással belső csovezetékeken keresztül. Ezek a csovezetékek teljesen el vannak választva mindentől, tehát ha egy processz megfagy, annak nincs hatása sem a többi processzra, sem a rendszerre.
A BugOS filerendszere 255 byte hosszú fileneveket engedélyez, melyekben nincs semmiféle megkötés. A partíció felépítése igen egyszerű, egy boot szektor, és egy lemez foglaltsági térkép. A file fejek és a szekvencia tárolók bárhol lehetnek a lemezen. Ez a teknika meggyorsítja a nagy fileokban való mozgást, mivel a file bármely pontja 3 olvasással belül megtalálható. Továbbá a biztonságot is megnöveli, mivel a foglaltsági térkép nem szükséges az olvasásokhoz, a file fejek a szekvencia tárolók lemezen való elhelyezkedése teljesen véletlenszerű, tehát a lemez meghibásodásából adódó adatveszteség minimális.
Az internet modul PPP-n, SLIP-en, CiscoHDLC-n, Frame-Relay-en és EtherNET-en keresztül képes csatlakozni a hálózathoz. z IP szint (4 és 6) képes több interfész kezelésére, és akár routerként is használható. A TCP/UDP szint akármennyi kapcsolatot is képes egyszerre kezelni. Igen sok kliens program van: 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, stb. A kiszolgáló programok is igen sokan vannak: 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. Az SMTP kiszolgáló támogatja a virtuális gépeket, továbbítást, és az automatikus választ. A HTTP kiszolgáló támogatja a biztonságos kapcsolatot, az egyszerűbb és gyorsabb cgi megvalósítást, a számlálókat, a könyvtár listázást, a könyvtár dokumentumokat, és a virtuális gépeket. A DNS kiszolgáló akár elsődleges akár másodlagos (vagy egyszerre a kettő) kiszolgáló is lehet.
A rendszerhez igen sok segédprogram van készen: szövegszerkesztő, szövegnézegető, filekezelő, csomagoló, cd lejátszó, faxoló, programozható üzenetrögzítő, assembly fordító, pascal fordító, c fordító, hibakereső, és ezek csak a nagyobbak.
Az összes fordító (az assembly fordító természetesen nem) egy köztes nyelvre fordít. Ez a nyelv egy nagyon egyszerű "gépi nyelv", összesen négy regiszterrel, 20-nál nem több utasítással, viszont nagyon nagy számú hívással. Ez azt eredényezi, hogy az ilyen nyelven írt program könnyedén átfordítható bármely létező platform assembly kódjára, tehát a rendszer teljesen platformfüggetlen.