Indenfor computerteknologi er en bus, datakommunikationsbus eller computerbus en dataforbindelse, som overfører data mellem computerkomponenter (f.eks. hukommelsesord, dataport) indeni en computer eller mellem dataværter (f.eks. computere, modemmer og dataterminaler).
I modsætning til en punkt-til-punkt dataforbindelse, kan en bus logisk forbinde flere dataenheder via de samme ledninger. Hver busstandard definerer dets grænseflader (fysiske dataforbindelser + de elektriske signalers form + dataprotokol) med henblik på den fysiske sammenkobling af datakort og datakabler.
Oprindelig var en bus de interne signalforbindelser som forbandt digitale hukommelser, visse datachip med CPUen. Der var separate adresselinjer, datalinjer og styrelinjer. En styrelinje er f.eks. read/write-signalet og kan også være chip-select/enable-linjer. I dag kan adressesignaler og styresignaler være indlejret i datarammer som f.eks. afsenderadresse, modtageradresse og evt. styresignaldata(f.eks. bitflag) – sammen med de normale data.
En bus omfatter disse fysiske eller logiske signaler – de logiske signaler er indlejrede i datarammer:
En seriel bus har netop ét datakredsløb til at sende data via – og kan have et separat datakredsløb til at modtage data via. (Men et datakredsløb kan faktisk godt anvendes til at sende og modtage via – og det både som halv-dupleks og fuld-dupleks)
En parallel bus har mindst to datakredsløb til at sende data via – og kan have to eller flere separate datakredsløb til at modtage data via.
I princippet er ældre PCeres RS-232 (serielport) og parallelport (f.eks. IEEE 1284) ikke busser, da de hverken har adressesignaler eller indlejrede adresser. Men anvendes der lag-2 dataprotokoller, som har indlejret adresser, bliver RS-232- og parallelport-forbindelsen anvendt som om det var en bus. RS-232- og parallel-porte er oprindeligt blot beregnet til punkt-til-punkt dataforbindelser.