Clipboard (calcul) - Clipboard (computing)

Clipboard este un tampon care unele sisteme de operare asigură stocarea pe termen scurt și transferul în cadrul și între programele de aplicație. Clipboard-ul este de obicei temporar și fără nume, iar conținutul său se află în memoria RAM a computerului .

Clipboardul oferă o interfață de programare a aplicației prin care programele pot specifica operațiile de tăiere, copiere și lipire . Este lăsat la latitudinea programului să definească metodele pentru care utilizatorul poate comanda aceste operații, care pot include legături de taste și selecții de meniu . Când un element este copiat sau tăiat, clipboard-ul trebuie să stocheze suficiente informații pentru a permite un rezultat sensibil indiferent de locul în care este lipit elementul. Programele de aplicații pot extinde funcțiile clipboard pe care le oferă sistemul de operare. Un manager de clipboard poate oferi utilizatorului control suplimentar asupra clipboard-ului. Semantica specifică a clipboardului variază în funcție de sistemele de operare , poate varia și între versiunile aceluiași sistem și poate fi uneori modificată de programe și de preferințele utilizatorului.

Windows , Linux și macOS acceptă o singură tranzacție din clipboard.

Istorie

Clipboard-urile ca tampoane pentru fragmente de text mici au fost folosite pentru prima dată de Pentti Kanerva când le-a folosit pentru a stoca textele șterse pentru a le restabili. Întrucât cineva ar putea șterge un text într-un loc și îl poate restabili într-un alt loc, termenul „ștergere” nu a fost ceea ce s-ar aștepta în acest caz. Larry Tesler a redenumit acest lucru în 1973 ca tăiat, copiat și lipit și a inventat termenul „clipboard” pentru acest buffer, deoarece aceste tehnici au nevoie de un clipboard pentru salvarea temporară a datelor copiate sau tăiate.

Formate de date

Aplicațiile comunică prin clipboard furnizând fie reprezentări serializate ale unui obiect, fie o promisiune (pentru obiecte mai mari). În unele circumstanțe, transferul anumitor formate comune de date poate fi realizat opac prin utilizarea unei fabrici abstracte ; de exemplu, Mac OS X folosește o clasă numită NSImage pentru a oferi acces la datele de imagine stocate în clipboard, deși formatul real al datelor de imagine care susțin obiectul este ascuns. Aplicația de trimitere și primire negociază formatele care pot fi transferate între ele, de multe ori cu widget-ul GUI activ responsabil cu furnizarea de transformări de tip acceptabile. Tabelul permite transferul articolelor obișnuite, cum ar fi adresele URL, culorile, imaginile, șirurile, șirurile atribuite ( text îmbogățit ) și sunetele. Sistemul de operare și GUI setul de instrumente poate oferi unele conversii comune, de exemplu , conversia de la text îmbogățit la text simplu și vice - versa. Diverse identificatoare de tip pentru transferul de date sunt acceptate de sistemele de operare moderne, care pot oferi automat mapări acceptabile între sistemele de tip, cum ar fi între MIME și Uniform Type Identifier .

Securitatea calculatorului

Deturnarea clipboardului este un exploit în care conținutul clipboard-ului unei persoane este înlocuit cu date rău intenționate, cum ar fi un link către un site web rău intenționat. În timp ce unele găuri de securitate au fost reparate, JavaScript poate fi încă folosit pentru a modifica conținutul din clipboard printr-un atac numit „pastejacking”. Dylan Ayrey, care a dezvoltat atacul, a creat un site web care demonstrează modul în care acest exploit poate fi folosit pentru a păcăli un utilizator să execute comenzi pe care nu doreau să le execute.

Au existat exploatări în care paginile web obțin date din clipboard. La începutul anului 2013, cercetătorii au expus riscurile generate de administratorii de parole bazate pe Android și au documentat modul în care parolele din cele mai populare dintre aceste aplicații ar putea fi accesate de orice altă aplicație de pe un dispozitiv Android, inclusiv cele cu privilegii extrem de scăzute. Joe Siegrist observă că aceasta este o „ problemă la nivel de sistem de operare care afectează tot ce rulează pe Android”.

Gestionarea clipboardurilor și extensii

Glipper , un exemplu de program de gestionare a clipboard-ului

Extensiile managerului de clipboard adaugă funcționalitate funcțiilor integrate de clipboard ale unui sistem de operare. Sunt aplicații care permit utilizatorului să manipuleze clipboard-ul. Pe platforme precum Linux care utilizează mai multe seturi de instrumente GUI incompatibile, administratorii de clipboard sunt adesea folosiți pentru a transfera date între aplicații folosind diferite astfel de cadre.

Atunci când un manager de clipboard furnizează mai multe tranzacții de tăiere și lipire, clipboard-ul este tratat ca o stivă sau o broșură, noile tăieturi și copii fiind plasate pe o listă a tranzacțiilor recente. Operația de lipire standard copiază cea mai recentă tranzacție, în timp ce pastele specializate oferă acces la celelalte tranzacții stocate. În general, acești manageri oferă o fereastră care afișează istoricul tranzacțiilor și permite utilizatorului să selecteze copii anterioare, să le editeze, să le schimbe formatul și chiar să caute printre ele.

Deoarece majoritatea sistemelor de operare (de exemplu, Windows, macOS, Linux, X11, Android, iOS) nu salvează conținutul clipboardului în orice spațiu de stocare persistent - atunci când un utilizator se deconectează sau repornește sistemul, conținutul clipboardului este șters - o funcționalitate adăugată este de a salva clipboardul persistent. Un alt exemplu este de a face clipboard-ul local să funcționeze cu aplicații online, salvând datele din clipboard în locația online după o copiere sau un eveniment tăiat, punând aceste date la dispoziția aplicațiilor online pentru lipire. Administratorii de clipboard pot servi și ca instrumente pentru a depăși limitarea software-ului care nu acceptă copierea și lipirea (de exemplu, în timp ce vă conectați la serverul Windows la distanță, nu puteți copia și lipi numele de utilizator și parola).

Clipboard-uri specifice sistemului de operare

Microsoft Windows și ReactOS

clamă
Comanda clip ReactOS-0.4.13 667x434.png
Cele ReactOS clip comanda
Dezvoltatori Microsoft , colaboratori ReactOS
Sistem de operare Windows , ReactOS
Tip Comanda
Licență Windows: Software comercial proprietar ReactOS: GNU General Public License
Site-ul web docs .microsoft .com / en-us / windows-server / administration / windows-commands / clip

Clipboard-ul din Microsoft Windows și ReactOS conține un articol în mai multe formate disponibile.

Fiecare articol are cel puțin un format din clipboard, dar poate avea diferite tipuri de format din aceleași date. Cele trei tipuri diferite de formate posibile sunt:

  • formate standard (de ex. CF_BITMAP sau CF_UNICODETEXT),
  • formate înregistrate (de ex. CF_HTML)
  • formate private pentru uz intern

Până la Windows XP inclusiv , clipboard-ul ar putea fi accesat prin intermediul aplicației ClipBook Viewer . În versiunile mai noi de Windows, conținutul poate fi accesat prin intermediul managerilor de clipboard .

Datele pot fi stocate în clipboard-ul Windows și ReactOS prin linia de comandă folosind comanda clip :

$ # to paste the content of a folder to the clipboard:
$ dir | clip

Clipboardul poate fi accesat și prin PowerShell :

# to paste the content of a directory to the clipboard
Set-Clipboard -Path "C:\directory\"
# to get the content of the clipboard
Get-Clipboard

Apple macOS

Clipboard-ul din Apple macOS conține un articol în mai multe formate disponibile.

Conținutul clipboardului poate fi vizualizat selectând elementul din meniul Show Clipboard din meniul Edit Finder. Datele brute și formatele stocate pot fi văzute folosind ClipboardViewer.

Folosind următoarele comenzi, clipboard-ul poate fi accesat din linia de comandă:

$ # to copy data into the clipboard:
$ echo 'hello world' | pbcopy
$ # to paste from the clipboard:
$ pbpaste
hello world

Sistemul X Window

Sistemul X Window utilizat în mod obișnuit pe sistemele Unix și Linux oferă trei clipboarduri, denumite „PRIMAR”, „SECUNDAR” și „CLIPBOARD”.

Utilizarea și manipularea diferitelor selecții nu sunt standardizate. Cu toate acestea, cele mai multe seturi de instrumente moderne și medii desktop, cum ar fi GNOME sau KDE , urmează o convenție larg acceptată, prezentată în specificația freedesktop.org . O selecție, CLIPBOARD, este utilizată pentru semantica tradițională a clipboard-ului, cu comenzi rapide identice cu Windows. O altă selecție, PRIMARĂ, este un mecanism specific X11. Datele sunt „copiate” imediat după evidențiere și lipite cu al treilea buton (din mijloc) al mouse-ului. Aceste date copiate sunt de obicei separate de selecția CLIPBOARD și nu își modifică conținutul. SECUNDAR a fost planificat ca o alternativă la PRIMAR, dar este utilizat doar inconsecvent.

Există două instrumente pentru linia de comandă (xsel și xclip) care pot accesa clipboard:

$ # to paste standard output to the clipboard using xclip
$ echo text | xclip -in -selection clipboard
$ # to paste standard output to the clipboard using xsel
$ echo text | xsel --clipboard

Principala diferență față de OS X și Windows este că nu există date stocate în clipboard, ci doar referința la datele copiate sau tăiate. Aplicația revendică proprietatea selecției CLIPBOARD și comunică calitatea de proprietar către X Server. La lipirea acestor date, datele și formatele disponibile sunt solicitate de la aplicația care deține selecția CLIPBOARD.

AmigaOS

Sistemul de operare Amiga folosește 256 de unități, deci unul are mai multe clipboard-uri în același timp.

Android

Android oferă un clipboard care poate conține până la un obiect clip și este accesibil la nivel de sistem. Textul simplu este stocat direct în clipboard; datele complexe sunt stocate prin referință. Obiectul clip are unul din cele trei formate: șir de text, obiect URI sau intenție.

Pentru a interacționa cu clipboard-ul, o aplicație folosește clasa ClipboardManager și apeluri de sistem pentru a tăia, copia și lipi obiecte.

În Android 8.0, clipboard-ul apare mai întâi în interfața cu utilizatorul: într-o situație în care utilizatorul se pregătește să lipească din clipboard, apare o opțiune „Clipboard” care oferă utilizatorului acces la multe obiecte copiate sau tăiate în clipboard în trecut. În afară de aceasta și în versiunile anterioare, utilizatorul nu are acces la clipboard decât în ​​aplicațiile care îl pun la dispoziția utilizatorului.

Apple iOS

Clipboard-ul este denumit „pasteboard” în iOS similar cu OS X. Aplicațiile din acest sistem de operare pot crea plăcuțe suplimentare, denumite instanțe din clasa UIPasteboard, care pot fi publice sau private. O instanță poate conține un singur element sau mai multe articole în diferite formate.

Formatele sunt identificate prin identificatori de tip uniform (UTI).

Datele conținute în carton nu pot fi accesate prin GUI, ci doar din sistem și aplicații.

API-uri

Aplicațiile pot accesa clipboard-ul sau datele sale prin intermediul API - urilor .

JavaScript

În JavaScript există o clasă care detectează modificările din datele din clipboard ale utilizatorilor (ClipboardEvent) și funcțiile de a modifica conținutul unui clipboard sau de a citi din acesta (clipboardData.getData (), clipboardData.setData ()), dar nu sunt acceptate de fiecare browser, deoarece modificarea clipboard-ului unui utilizator poate reprezenta o problemă de securitate.

Qt

În Qt există un wrapper pentru fiecare platformă acceptată. Oferă acces la clipboard-urile sistemului de ferestre cu ajutorul clasei QClipboard. Această clasă facilitează accesul la tipuri comune de date prin funcții. Tipul de date al elementului stocat în clipboard este indicat prin MIME și datele MIME pot fi, de asemenea, introduse în clipboard cu ajutorul funcțiilor din această clasă.

Vezi si

Referințe

Lecturi suplimentare

linkuri externe