Medii de programare vizuală pentru Linux

Ar putea exista o distribuție Linux mai bună pentru dezvoltatorii web? Sau mai mult in termeni generali, să zicem, poate cea mai bună distribuție Linux pentru dezvoltatori?

Ne-am uitat la SemiCode OS, o distribuție Linux pentru programatori. Dar SemiCode OS este încă în versiune beta, așa că am decis să fac o listă pentru a vă răspunde la întrebare: care distribuții Linux ar trebui sa folosesc pentru programare?

Multe lucruri, cum ar fi limbajul de programare, instrumentele utilizate, suportul, disponibilitatea pachetelor și cât de repede sunt actualizate în depozite și multe cerințe nefuncționale, cum ar fi mediul desktop, oferă stabilitate și sunt importante de determinat.

Programatorul intră în contact cu sistemul de operare, mai ales într-o măsură mai mare decât oricine altcineva. Pentru programator, sistemul de operare trebuie să-l activeze. Și prin „incluziune”, mă refer la crearea unei pasiuni arzătoare pentru codificare și a dorinței de a face lumea un loc mai bun.

Cele mai bune distribuții Linux pentru programatori începători

Oricum, să începem. Ne vom uita la managerii de pachete, disponibilitatea pachetelor, stabilitatea, modelele de lansare și mediile desktop de distribuție în special.

De asemenea, dacă aveți propriile opțiuni de distribuție, care pot fi incluse în lista „ Cele mai bune distribuții Linux pentru programatori începători” - scrieți-le în formularul de comentarii de pe site.

1. Ubuntu

Ubuntu oferă 3 motive specifice pentru ca programatorii să-l folosească.

Ubuntu a crescut atât de mult încât a devenit real desktop Linux. Văd că aproape toți furnizorii de software care produc pentru platforma Linux oferă un pachet .deb. Astăzi, Ubuntu primește mai mult suport de furnizor decât orice altă distribuție.

Aceasta înseamnă că orice IDE, instrumente de care are nevoie un dezvoltator, va avea un program de instalare .deb gata de descărcat. Tot ce trebuie să faci este să dai clic pe butonul de descărcare. Acest lucru are, de asemenea, un avantaj imens atunci când proiectul dvs. depinde versiune specifică software. De asemenea, are un depozit uriaș de software stabil.

Ubuntu oferă o versiune LTS care va fi acceptată timp de 5 ani și nu va fi niciodată acceptată de o versiune LTS timp de 9 luni. O versiune non-LTS care nu are un număr mare de pachete (cum ar fi varianta LTS). Acest lucru oferă o stabilitate de neegalat. Componentele principale sistem de operare iar nucleul nu se va schimba, așa cum este cazul versiunii mobile a sistemului de operare. Acest lucru oferă programatorilor și dezvoltatorilor o bază de lucru fiabilă și stabilă, care nu va arăta nicio inconsecvență.

În al treilea rând, vreau să discut despre mediul de lucru Desktop Ubuntu, care este Unitatea. Deși aceasta este o chestiune de preferință subiectivă, aș dori să vorbesc despre beneficiile Unity pentru un programator.

Unity are o interfață simplă. Lansatorul este o stivă simplă în care plasați toate aplicațiile preferate și cele mai frecvent utilizate. Lansați aplicații și comutați între aplicații folosind același lansator. Acest lucru, cred, este un lucru pozitiv, deoarece acest shell a fost mult mai puțin invaziv în comparație cu GNOME. Acest lucru facilitează comutarea între aplicații. În plus, Unity este ușor de personalizat. Dash este, de asemenea, foarte ușor de utilizat și vă ajută să navigați rapid în sistemul de operare. Sincer vorbind, lansatorul este un amplificator grozav de performanță.

Ubuntu este un sistem de operare sofisticat. Ubuntu este disponibil și în versiuni diferite​​și există distribuții excelente pe Bazat pe Ubuntu. Verifică-le și tu. Puteți descărca Ubuntu de pe site-ul oficial.

2. openSUSE

OpenSUSE este una dintre cele mai complexe distribuții Linux. Are o comunitate grozavă, un sector de dezvoltare solid și o atitudine complet profesională. Deși folosesc Arch Linux pe computerele mele, întotdeauna am avut o părere bună despre openSUSE.

OpenSUSE este mult mai potrivit pentru dezvoltatori, mai ales datorită libertății pe care o oferă. OpenSUSE vine în două variante. Și dacă vorbim despre cele mai bune distribuții Linux pentru programatori începători, atunci aceasta va fi o opțiune bună.

Leap vine cu ciclu de viață 6 luni de la eliberare următoarea versiune. Deci, în prezent, dacă instalați OpenSUSE Leap 42.2, acesta va fi acceptat timp de până la 6 luni după lansarea openSUSE Leap 42.3. Vine cu un software stabil garantat, astfel încât orice instrument de care aveți nevoie pentru dezvoltare va funcționa fără erori în și în afara proiectului dvs.

Pe de altă parte, openSUSE Tumbleweed urmează o lansare continuă. Puteți spune că va fi susținut pentru totdeauna. Software-ul va fi actualizat pe in mod regulat. Toate IDE-urile, editorii dumneavoastră open source preferati și alte instrumente vor fi întotdeauna actualizate la cele mai recente ultima versiune. În timp ce actualizările sunt bine testate și nu provoacă aproape niciodată problemele asociate cu distribuțiile cu margini încrucișate, există un lucru pe care ar trebui să îl luați în considerare. Cel mai adesea, proiectul dvs. poate depinde de o anumită versiune de software, cum ar fi JDK. Ar trebui să fiți atenți când acceptați actualizări în astfel de cazuri.

Leap sau Tumbleweed, openSUSE are o modalitate absolut uimitoare de a furniza software. Doar accesați software.opensuse.org, căutați pachetul necesarși faceți clic pe „Instalare directă” și gata. Fără eșecuri de depozit, comenzi și dependențe. Cred că acesta este principalul punct de vânzare al openSUSE. Acest lucru va economisi mult timp atunci când doriți doar să instalați lucrurile și să treceți la codare.

În cele din urmă, openSUSE este o distribuție Linux excelentă pentru programare și codare datorită fiabilității, stabilității și depozitului uriaș de software bine acceptat. Nu e de mirare că chiar și multe întreprinderi îl folosesc pentru dezvoltatorii lor. Verificați cu siguranță.

3. Fedora

Linus Torvalds însuși folosește Fedora. Ai nevoie de mai multe motive?

Fedora este rapid. Chiar și versiunea Fedora lui Gnome rulează mai repede pe computerul meu. Mai rapid decât alte distribuții care rulează Gnome. Îmi place să nu trebuie să mă uit la ecran când Chrome se blochează din cauza atâtor file deschise.

Fedora are un ciclu de lansare de 6 luni. Acest lucru este grozav pentru dezvoltatorii care se găsesc blocați cu o versiune veche pentru prea mult timp.

Motivul principal pentru alegerea Fedora este că este mai mult decât un manager de pachete sau un mediu desktop. Fedora este un susținător ortodox al open source. Tot ce este Fedora este open source. Nu există drivere sau chestii proprietare în depozitele Fedora (puteți instala drivere proprietare, dar este puțin mai implicat decât rularea unor comenzi dnf). Deci, dacă ești un pasionat de surse deschise, Fedora este cu siguranță pentru tine.

Fedora este proiectul partener al Red Hat Enterprise Linux, sistemul de operare al programatorului original. Există o relație reciprocă între Fedora și Red Hat Enterprise Linux care oferă atât beneficii în ceea ce privește tehnologia, cât și inovația.

Fedora poate obține sponsorizare și profesionalism părere de la RHEL, dar este susținut de o comunitate de dezvoltatori RHEL entuziaști și profesioniști pasionați de Fedora. Acest lucru se traduce direct prin faptul că Fedora este o configurație superioară pentru dezvoltatori. Și adăugați Fedora - una dintre cele mai stabile distribuții Linux din fiecare versiune. Pur și simplu a trebuit să adăugăm această versiune pe lista noastră de profesioniști. Cele mai bune distribuții Linux pentru programatori începători.

Fedora este disponibil și în mediile desktop preferate. Verificați-le după instalare. Puteți descărca Fedora Gnome de pe site-ul oficial.

4. Arch Linux

Această distribuție poate fi, de asemenea, clasificată ca pro Cele mai bune distribuții Linux pentru programatori începători, deoarece pentru a configura pur și simplu sistemul pentru aceasta veți avea nevoie de suficient timp și răbdare pentru ca totul să funcționeze corect. Dar merita.

Arch Linux vine cu nucleul Linux și managerul de pachete Pacman. Nici măcar nu ai GUI. Construiți dintr-o bază, asamblați componente după cum credeți de cuviință. Rezultatul este un sistem de operare extrem de personalizat, care conține tot ce aveți nevoie și nimic din ce nu aveți.

Arch Linux este cunoscut pentru depozitul său modern de vârf. Fiecare pachet din arhivele oficiale are întotdeauna cel mai mare număr de versiune, dar este încă disponibil numai după testare atentă. Astfel, sistemul de operare în sine este complet fiabil. Probleme rare de stabilitate apar atunci când se instalează pachete neacceptate din arhiva arhivă Arch (care pot fi evitate dacă aveți grijă când lucrați cu AUR). Acest lucru afectează doar software, despre care despre care vorbim, și nu despre sistemul de operare în sine.

Fiecare informație și instrucțiuni de depanare sunt bine documentate în Arch Wiki, care este, sincer, cea mai bună documentație pe care o are orice distribuție Linux. Deci, orice problemă pe care o puteți întâlni poate fi rezolvată cu ușurință urmând cele mai inovatoare instrucțiuni furnizate pe Arch Wiki.

Arch Linux vine fără întreținere, deoarece sistemul de operare este actualizat în mod constant. Pacman poate rezolva eficient problemele de dependență și pachetele orfane. Cel mai recent și mai bun din tot ce este Linux este întotdeauna disponibil în Arch User Repository.

Construirea unui sistem de operare personal cu Arch Linux este calea de urmat dacă mă întrebați pe mine. Puteți găsi Arch Linux aici.

5.Antergos

Antergos este o distribuție Linux bazată pe Arch. Mulți oameni cred că distribuțiile bazate pe Arch sunt pur și simplu instalatori Arch, ceea ce ajută la instalarea unui sistem Arch folosind un grafic interfața cu utilizatorul. Ei bine, nu este cazul. Antergos folosește stocarea de arhivă, da. Dar are propriile sale ramuri.

Antergos urmează o eliberare rapidă, așa că nu trebuie să vă faceți griji cu privire la sfârșitul asistenței. Este disponibil în toate limbile majore. Antergos, deși bazat pe Arch, nu este o distribuție barebones. Vine cu o cantitate mare programe preinstalate. Dar acest număr este încă mai mic în comparație cu alte distribuții, așa că nu veți simți că sistemul dvs. este umflat și vă oferă flexibilitatea de a-l personaliza în funcție de dorințele și nevoile dvs.

Credem că această distribuție merită să fie și pe lista noastră " Cele mai bune distribuții Linux pentru programatori începători«.

Antergos folosește depozitele Arch, astfel încât tot ce aveți nevoie în arsenalul dvs. este întotdeauna disponibil cu cel mai mare număr de versiune. Pacman, managerul de pachete al lui Arch, vine fără probleme la adăugarea unui depozit. Depozitul conține cel mai recent software și uneori sunt stocate și unele versiuni mai vechi celebre, cum ar fi Dezvoltare Java Kit. Antergos are, de asemenea, propriul depozit suplimentar care oferă pachete de personalizare Antergos (diferite de Arch), software-ul Antergos și multe alte lucruri, cum ar fi imagini de fundal Antergos și pachete de pictograme.

Pacman gestionează problemele de dependență și pachetele orfane într-un mod care este superior oricărui manager de pachete. Instabilitatea este exclusă.

Nou software codificate, metode dezvoltate și tendințele schimbate cu fiecare răsărit. Depozitul Arch User se află aici. Arch User Repository este un depozit bazat pe comunitate care conține o cantitate mare pachete, inclusiv multe programe noi. Practic conține tot ceea ce rulează pe o mașină Linux. Deci, fiecare IDE, SDK și bibliotecă de care aveți nevoie vor fi instalate cu o singură comandă.

numele_yourt_al_software-ului

Antergos oferă toate mediile desktop majore. Instalarea este ușoară cu programul de instalare Cnchi. Oferă opțiuni pentru a selecta mediul desktop, browser, drivere grafice etc asupra instalaţiei propriu-zise. În general, Antergos face o distribuție Linux excelentă pentru codare. Verificați-l pe site-ul lor oficial.

concluzii

Dacă aveți prieteni care sunt interesați de Linux, spuneți-le că aleg cele mai bune distribuții Linux pentru programatori începători. Împărtășiți-ne feedbackul despre aceste distribuții. De asemenea, împărtășește câteva sfaturi pe care mulți programatori le-ar putea găsi utile în comentariile de mai jos.

Dacă găsiți o eroare, evidențiați o bucată de text și faceți clic Ctrl+Enter.

Mulți programatori începători se tem
programare în Linux - fără simplitate Windows
si vizibilitate. Cu toate acestea, există și pentru Linux
multe ajutoare vizuale
programare și nu este doar o clonă Delphi.
Desigur, ele nu pot deveni complete
inlocuind acelasi Studio vizual, totuși destul
ajuta la accelerarea procesului de dezvoltare
programe.

NetBeans

Unul dintre cele mai bune IDE-uri. Destinate pentru
lucrând cu Java, îl puteți folosi
dezvolta nu numai multi-platformă
Programe Java, dar și aplicații web, servicii web și
clienți pentru ei, programe J2ME etc. Pot fi
lucrează pe Windows, Linux, MacOS. IDE-ul este extensibil
diverse plugin-uri și suplimente, care pot fi
găsiți pe site. În același timp, totul este gratuit, atunci
mănâncă pentru hayalva! În general - un număr incontestabil
unu.

Designer QT/KDevelop

Un alt mediu de dezvoltare puternic pe
platforma KDE și Gnome. C++ multiplatformă
aplicațiile ies doar pe drum. Pentru
programele Qt necomerciale pot fi
liber de utilizat, există
pentru aproape toate distribuțiile.

Clonează Visual Basicși nu numai în design,
dar şi în construcţiile limbajului. Perfect
instrument pentru programatorii VB care doresc
trece la Linux. Interfață simplă și convenabilă.
Acces la toate bazele de date principale - MySQL,
PostgreSQL, etc. Funcționează pe aproape toată lumea
distribuţiile.

Editor WYSIWYG pentru crearea de pagini web. În
Îmi amintește mult de editorul Macromedia sau orice altceva
aceeași FrontPage. Suporta automat
lucrați cu site-ul prin FTP.

Crearea mediului IDE Python și Ruby
programarea în limbaj este destul de simplă
și incitant. Scris de fapt pe
Piton.

Eclipse nu este deloc un IDE, ci o întreagă platformă pentru
aplicatii diverse. La standard
livrarea include pluginuri suplimentare pentru
Suport și dezvoltare pentru limbajul Java (JDT).
pluginuri pentru Eclipse (PDE - Plugin Development Environment). Pentru
lucrul cu alte limbi ar trebui să fie
pluginuri speciale instalate - în Eclipse
poate lucra pe aproape orice
limbaj de programare accesibil. O alta
avantajul se aplica si la
extindere: cantitate gigantică
utilitare (în special pentru Java) acum
disponibil și ca pluginuri pentru Eclipse,
de exemplu Ant, JavaDoc, JUnit, JDepend, Check Style, Subversion.
Deci nu trebuie să renunțăm
sistemul dvs. de control al versiunilor, de la dvs
programe de verificare a calității codului etc.
Al treilea avantaj este că Eclipse este
mediu multi-platformă, adică
există versiuni pentru diferite
sisteme de operare (care nu pot
să permită același Visual Studio).

JDeveloper

Platforma de la Oracle nu este open source,
cu toate acestea, este încă gratuit. După cum este clar din
denumirile sunt încă folosite cross-platform
Java. Folosește Sun JDK pentru a funcționa, deci
Oracle nu are plângeri cu privire la ceea ce este creat
programele, în teorie, nu o vor avea.

Și în sfârșit, mediul de control vizual
proiecte pentru Gnome Desktop. Nu mai puțin util
program pentru programatori decât un IDE.

Acest articol este destinat pentru două tipuri de cititori. În primul rând, aceștia sunt oameni care au experiență în programare în MS Windows, dar nu au o astfel de experiență în GNU/Linux. În al doilea rând, aceștia sunt oameni care nu au deloc experiență în programare. Cu toate acestea, presupun că cititorul este în general familiarizat cu terminologia obișnuită de programare și nu trebuie să fie explicat, de exemplu, ce este un „program”, „funcție”, „compilator” sau „depanare”.

Instrumente de dezvoltare

Mă voi uita la dezvoltarea utilizând acele instrumente care sunt cele mai native pentru GNU/Linux. Acestea includ:

    limbaj de programare C

    bash shell

    Text Editori Vimși Emacs

    compilator GCC

    GDB Debugger

    Utilitar pentru construirea unui proiect GNU make

    Sistemul de control al versiunilor Git

    Sistem de ferestre X11

Alegerea acestor mijloace speciale nu este o dogmă. Fiecare dintre cele de mai sus fonduri transferate poate fi înlocuit cu altceva dacă se dorește. Cu toate acestea, expresii precum „mediu de dezvoltare Linux” se referă de obicei la acest set de instrumente.

Limbaje de programare

Cel mai „nativ” limbaj de programare pentru GNU/Linux este C. Acest lucru se datorează următorilor factori:

    GNU/Linux împrumută multe idei (practic, ideologie) din sistemul de operare UNIX;

    sala de operatie sistem UNIX a fost scris în C (de fapt, acest limbaj a fost creat special pentru scrierea acestui sistem de operare);

    Respectiv, Nucleul Linuxși mediul de sistem GNU sunt, de asemenea, scrise în C.

Mai jos voi lua în considerare dezvoltarea folosind limbajul C. Cu toate acestea, această alegere nu este o dogmă. Alte limbaje populare pentru dezvoltare sub GNU/Linux sunt C++, Python și Perl. Desigur, pot fi folosite orice alte limbi.

Mediu de dezvoltare

În ultimele două decenii, așa-numitul IDE - medii de dezvoltare integrate. Un astfel de mediu include un editor de text, un compilator, un depanator, instrumente de construire a proiectelor și multe altele. Astfel de medii sunt disponibile și pentru GNU/Linux (cele mai populare sunt Eclipse, NetBeans, IDEA, KDevelop, Anjuta). Cu toate acestea, istoria dezvoltării sistemelor de tip UNIX arată că IDE-urile sunt nu numai singurele, ci și cele mai mijloace eficiente dezvoltare. Practic, răspunsul corect la întrebarea „care este cel mai mult cel mai bun IDE sub GNU/Linux” înseamnă „GNU/Linux este un IDE”.

Adesea, puteți da peste părerea că este imposibil să dezvoltați un proiect mare fără un IDE. Această opinie este ușor de respins. Primele versiuni ale UNIX nici măcar nu au fost scrise în Vim (încă nu exista), ci în Ed. Acesta este un așa-numit editor de text linie cu linie în care puteți edita doar o singură linie de text la un moment dat. Întregul fișier nu este afișat pe ecran. În cazul UNIX, nu putea fi altfel - dezvoltatorii nu aveau niciun ecran, iar comunicarea cu sistemul se făcea folosind teletipuri. Nucleul Linux modern este scris în principal în editorii Emacs și Vim.

Multe utilitare UNIX numesc „editor de text implicit”. Comanda care lansează editorul de text implicit este preluată din variabila de mediu $EDITOR. Unele utilitare se uită mai întâi la variabila $VISUAL și numai dacă nu este setată, la variabila $EDITOR. Acesta este un comportament istoric: computerele vechi de multe ori nu aveau niciun ecran conectat, ci doar un teletype, așa că nu avea rost să lansăm un editor de ecran (vizual). În distribuțiile moderne, implicit este de obicei EDITOR=vi sau EDITOR=nano . Puteți specifica utilizarea unui editor diferit pentru o comandă astfel:

EDITOR=emacs some-command

A folosi editorul potrivit implicit întotdeauna, trebuie să adăugați o linie ca

export EDITOR=emacs

Din punct de vedere istoric, singurii editori de text „adevărați” pentru programatori sunt Vim și Emacs (pur și simplu datorită faptului că au cea mai lungă istorie de dezvoltare ca editori de text pentru programatori). Editorii rămași sunt într-o poziție de recuperare.

Shell de comandă

Shell de comandă (sau interpret de comenzi) este un program care acceptă în mod corect comenzi de la utilizator într-un limbaj simplu programarea si executarea acestora. Majoritatea comenzilor rulează programe cu același nume. Comenzile individuale sunt constructe ale limbajului de programare shell.

Standardul POSIX include o descriere a setului minim de capabilități furnizate de shell-ul de comandă. Shell-urile utilizate efectiv oferă de obicei mai multe caracteristici.

Sistemele de operare ale familiilor DOS și Windows au împrumutat unele funcții coajă de la UNIX, dar autorii lor au făcut simplificări semnificative, motiv pentru care funcționalitatea COMMAND.COM și cmd.exe a fost mult redusă. PowerShell este destul de la egalitate, dar funcționează semnificativ diferit.

În scopul acestui articol, mă voi limita la utilizarea shell-ului bash (ca cel mai comun și implicit shell pe majoritatea distribuțiilor) pentru a rula compilatorul și alte instrumente de dezvoltare. Bună recenzie Utilizarea shell-ului de comandă poate fi găsită, de exemplu, în binecunoscuta carte .

Documentație

Toate instrumentele de dezvoltare și bibliotecile din GNU/Linux sunt de obicei destul de bine documentate. În mod tradițional, documentația folosește un format special și o utilitate pentru vizualizarea acesteia - man. Documentația din sistem este împărțită în mai multe secțiuni:

    Comenzi de utilizator (cum ar fi ls, gcc sau man)

    Apeluri de sistem - API-ul nucleului OS

    Funcțiile bibliotecii

    Șoferii etc.

    Formate de fișiere

    Jocuri etc.

    Diferite prezentări generale ale subsistemului

    Comenzi utilizate pentru administrarea sistemului

Pentru a apela un subiect de documentație după nume, trebuie să specificați acel nume atunci când apelați comanda man (de exemplu, man ls). Uneori secțiuni cu acelasi nume se află în mai multe secțiuni ale documentației de documentare. Puteți specifica o anumită secțiune atunci când apelați man (de exemplu, man 3 printf).

Mai multe informații despre sistem de ajutor om vezi om om .

Utilitarele de mediu de sistem GNU folosesc adesea formatul de informații pentru documentare. Vezi, de exemplu, info Coreutils.

Compilator

Acum există multe compilatoare C cu care sunt mai mult sau mai puțin compatibile diverse standarde. Cu toate acestea, pentru moment, compilatorul C inclus în GNU Compilers Collection (GCC) rămâne cel mai aplicabil în mediul GNU/Linux. Acest compilator, pe lângă standardul C, acceptă o serie de extensii standard. Aceste extensii, în special, sunt utilizate pe scară largă în sursele nucleului Linux. ÎN În ultima vreme Apar compilatoare care pot compila nucleul Linux (de exemplu, llvm-clang sau EKO).

Compilatorul GCC este lansat din shell-ul de comandă cu o comandă asemănătoare

gccprogram.c

unde program.c este numele fișierului de intrare. În plus, conform Standardul POSIX, compilatorul poate fi lansat cu comanda cc program.c (cc înseamnă "C compilator").

Când rulează normal, compilatorul încearcă să creeze fisier executabil. În mod implicit, fișierul de ieșire se numește a.out (acest nume rămâne din versiunile antice ale UNIX). Un alt nume poate fi specificat folosind opțiunea compilatorului -o, de exemplu,

program program gcc -o.c

La asamblarea unui program din mai multe module, compilatorul poate fi alimentat cu mai multe fișiere sursă sau fișiere de cod obiect ca intrare, de exemplu,

gcc -o program main.c module1.o module2.o …

Doar pentru a compila unul dosarul originalîn cod obiect (fără a încerca să construiți un fișier executabil), trebuie să dați o comandă ca

(numele implicit al fișierului de ieșire va fi module.o).

Bibliotecile sunt adesea necesare pentru a construi un program. Linux folosește două tipuri de biblioteci: biblioteci de legături statice și biblioteci de legături dinamice. Cu legături statice, întreaga bibliotecă este inclusă în fișierul executabil atunci când programul este construit. Cu legătura dinamică, în fișierul executabil este scris doar numele bibliotecă dinamică, iar căutarea acestui fișier și compoziție are loc la pornirea programului.

Biblioteca statică în sisteme asemănătoare UNIX este o arhivă (format ar vechi) care conține un set de fișiere obiect. O astfel de arhivă este creată cu o comandă de genul

ar r libsomething.a module1.o module2.o …

Numele fișierelor bibliotecii încep în mod tradițional cu prefixul lib.

O bibliotecă încărcată dinamic este un fișier obiect format special(calculat pentru încărcare dinamică). O astfel de bibliotecă este creată cu o comandă ca

gcc -shared -o libsomething.so module1.c module2.c …

Pentru a utiliza biblioteca la construirea unui program, trebuie să-l specificați compilatorului folosind opțiunea -l, de exemplu

gcc -o program -lm program.c

(aici va fi folosit fișierul de bibliotecă libm.so, compilatorul înlocuiește implicit prefixul lib). În mod implicit, compilatorul creează un program care utilizează biblioteci dinamice. Dacă doriți să utilizați versiuni statice ale bibliotecilor, trebuie să specificați opțiunea -static la compilator.

Informatii detaliate Pentru opțiunile gcc, vezi man gcc.

Salut Lume!

Se crede că tradiția de a începe să învețe un limbaj de programare prin scrierea unui program care tipărește șirul „Hello, world!” a început cu cartea „The C Language” de Kernighan și Ritchie. . În cazul limbajului C, acest program arată astfel:

#include

int principal(int argc, char * argv) (
printf("Bună lume!\n" );
întoarcere 0 ;
}

Pentru a rula acest program, acest text trebuie să fie scris într-un fișier numit, de exemplu, hello.c, iar din directorul în care se află acest fișier, dați o comandă ca

gcc -o salut salut.c

Totuși, în cazul unui program atât de simplu, este suficient să dai comanda

(Voi explica mai jos de ce aceste două comenzi funcționează la fel). Ca rezultat, un fișier executabil numit hello va apărea în același director. Îl poți rula cu comanda

Ordin de asamblare

Să aruncăm o privire mai atentă la ceea ce face exact compilatorul. Comportamentul compilatorului C este tradițional și este folosit de compilatorii altor limbaje.

La intrare, compilatorul are caz general set de fisiere cu textele sursă. Înainte de a începe compilarea propriu-zisă, aceste fișiere sunt procesate de așa-numitele. preprocesor (program cpp). Funcția principală a acestui program este de a executa directive precum #include . După ce a întâlnit o astfel de directivă, preprocesorul inserează conținutul fișierului specificat (în în acest caz,, stdio.h) în locul prezentei directive. Preprocesorul înțelege alte câteva directive, dar nu mă voi opri asupra lor acum.

După preprocesor, se realizează compilarea propriu-zisă. Din fișierele sursă în această etapă, așa-numitele. fișiere obiect. Acestea sunt fișiere care conțin executabilul Codul mașinii, dar nu este încă gata de lansare. Principalul lucru care le lipsește sunt adresele funcțiilor bibliotecii care trebuie apelate. De exemplu, codul pentru funcția printf() este conținut în biblioteca libc. Și fișierul obiect conține doar numele acestei funcții. În plus, fișierul obiect conține numele tuturor funcțiilor declarate în el.

Fișierele obiect, precum și bibliotecile utilizate, sunt furnizate ca intrare către linker (programul ld). Linker-ul caută toate funcțiile apelate din diferite fișiere obiect (după nume) în fișiere obiect și biblioteci. Dacă toate funcțiile sunt găsite, atunci linker-ul asamblează fișierul executabil real. În acest caz, numele funcțiilor apelate sunt înlocuite cu adrese de memorie specifice. În cazul utilizării unei biblioteci dinamice, rămâne numele funcției utilizate, iar la aceasta se adaugă numele fișierului bibliotecii dinamice, în care, la pornirea programului, va trebui să căutați această funcție.

Programul gcc în sine este un așa-numit driver. Rulează programele menționate mai sus (sau doar câteva dintre ele, în funcție de opțiuni) pentru a produce un fișier executabil.

Al doilea exemplu: rezolvarea ecuațiilor pătratice

Ca putin mai mult exemplu complex Să considerăm un program care trebuie să rezolve ecuații pătratice. Utilizatorul introduce coeficienții unui trinom pătratic, iar programul își afișează rădăcinile reale. Aici text complet un astfel de program:

#include
#include

/* rezolvare: se calculează rădăcinile ecuației pătrate.
* a, b, c sunt coeficienți în ecuație.
* Rădăcinile ar fi stocate la x1, x2.
* Valoarea returnată: numărul rădăcinilor reale.
*/
int rezolva (dublu a, dublu b, dublu c,
dublu* x1, dublu* x2) (
dublu D = b*b - 4*a*c;
dublu sqrtD;

dacă (D > 0) (
sqrtD = sqrt(D);
*x1 = (-b - sqrtD)/(2,0 * a);
*x2 = (-b + sqrtD)/(2,0 * a);
întoarcere 2;
) altfel dacă (D< 0)
returnează 0;
altceva(
*x1 = -b/(2,0*a);
întoarcere 1;
}
}

int main (int argc, char* argv) (
dublu a,b,c;
dublu x1, x2;
int roots_count;

// Coeficienți de intrare
printf("A:");
scanf("%lf", &a);
printf("B: ");
scanf("%lf", &b);
printf("C: ");
scanf("%lf", &c);

// Rezolvați ecuația
număr_rădăcini = rezolva (a,b,c, &x1, &x2);

// Rezultate de ieșire
comutare (root_count) (
cazul 0:
printf("Fără rădăcini (reale).\n");
pauză;
cazul 1:
printf("O rădăcină: %0.4lf\n", x1);
pauză;
cazul 2:
printf(„Două rădăcini: %0.4lf și %0.4lf\n”,
x1, x2);
pauză;
}

Prin analogie cu exemplul anterior, să scriem acest text în fișierul square.c și să încercăm să-l compilam cu comanda

gcc -o pătrat pătrat.c

Dar de data aceasta vom primi o eroare de genul asta:

/tmp/cc6RNFIi.o: În funcția `solve": square.c:(.text+0x6d): referință nedefinită la `sqrt" collect2: ld a returnat 1 stare de ieșire

Ce se întâmplă aici? Este clar că din anumite motive compilatorului nu i-a plăcut apelul la funcția sqrt(). Mai mult, nu se mai plânge de dosar cod sursa, ci la un fișier obiect (acesta cc6RNFIi.o). Aceasta înseamnă că fișierul sursă a fost compilat cu succes, iar problemele au apărut la etapa de conectare (ceea ce se poate vedea din mențiunea unei erori în programul ld în text - acesta este un linker standard în GNU/Linux). Linkerul nu a putut găsi funcția sqrt(). În acest caz, a fost pentru că funcția era conținută în libm și nu i-am cerut compilatorului să o folosească. Pentru a scăpa de această eroare, trebuie să schimbăm comanda de compilare la următoarea:

gcc -o pătrat -lm pătrat.c

O astfel de comandă ar trebui să funcționeze fără erori și să creeze un pătrat de fișier executabil.

Când asamblați oricare este suficient program complex va trebui să folosim mai multe biblioteci și poate fi necesar să specificăm și alte opțiuni compilatorului. Comanda poate deveni destul de lungă. Ce, ar trebui să-l scriu manual de fiecare dată? Nu. Unul dintre principiile filozofiei UNIX este: „Orice poate fi automatizat ar trebui să fie automat”. Aici vom avea nevoie de unul dintre cele mai vechi utilitare UNIX - programul make. Pentru a-l folosi, trebuie să scriem un fișier numit Makefile (în același director cu fișierul sursă) cu următorul conținut:

pătrat: pătrat.c $(CC) -o $@ -lm $<

Acum puteți construi fișierul executabil pur și simplu rulând comanda make. Cum functioneaza?

Face

Utilitarul make este conceput pentru construirea de programe (deși poate fi folosit pentru a automatiza multe alte sarcini similare). Citește un fișier numit Makefile și vede un set de reguli în el. Fiecare regulă definește trei lucruri: un obiectiv (adică, ceea ce trebuie construit), o listă de fișiere sursă și un set de comenzi care trebuie executate pentru a construi obiectivul din fișierele sursă. În exemplul de mai sus, square este numele țintei, square.c este singurul fișier sursă în acest caz (dacă sunt mai multe, acestea sunt listate separate printr-un spațiu), iar a doua linie este comanda. Variabilele pot fi folosite într-o comandă. Unele dintre variabile au o semnificație specială. În special, în orice regulă, $@ indică numele țintei și $< — первый исходный файл. Переменная $(CC) указывает на компилятор C, используемый в системе по умолчанию (в большинстве случаев это gcc , но бывает и что-нибудь другое).

Caracterul wildcard % poate fi folosit în numele țintă și lista de fișiere sursă. De exemplu, această regulă:

%.o: %.c $(CC) -c $<

indică faptul că fișierele cu un nume care se termină în .o trebuie asamblate din fișierele corespunzătoare cu sufixul .c .

În plus, informați în avans o serie de reguli implicite. Printre acestea se numără și cea menționată în ultimul exemplu, precum și regula

%: %.c $(CC) -o $@ $<

Datorită acestei reguli, în exemplul cu „Bună, lume!” doar face hello a alergat cc -o hello hello.c .

Folosind un set de reguli, make creează un grafic al dependențelor țintelor unul față de celălalt și pe fișierele sursă și execută numai acele comenzi care sunt necesare pentru a construi ținta specificată pe linia de comandă. Dacă nu sunt specificate ținte, prima țintă descrisă în Makefile este construită.

Pentru mai multe informații despre acest utilitar, consultați, de exemplu, man make.

Gestionarea versiunilor

Orice VCS poate fi folosit pentru versiunea codului sursă. Totuși, din moment ce vorbim despre GNU/Linux, să aruncăm o privire rapidă asupra sistemului folosit pentru a dezvolta nucleul Linux: git. Există o documentație destul de extinsă despre git, inclusiv. iar în rusă. Vezi de exemplu articolul meu sau o serie cunoscută de articole .

Pentru a începe să utilizați git, trebuie să creați un depozit - un depozit pentru versiunile de fișiere. Acest lucru este făcut de echipă

Acum puteți adăuga fișiere în depozit. Dar nu trebuie să urmărim versiunile unor fișiere, și anume fișiere obiect și fișiere executabile. Pentru a le exclude imediat din considerarea git, vom scrie un fișier .gitignore cu următorul conținut:

*.o pătrat salut

Acum echipa

va adăuga toate fișierele din directorul curent la depozit, cu excepția celor menționate în fișierul .gitignore. După aceasta, vă puteți comite cu comanda

Această comandă va deschide editorul de text implicit. Aici va trebui să scrieți un comentariu pentru commit. În acest caz, este suficientă o linie precum „Comitare inițială”.

Depanare

Pentru depanarea pe Linux, se folosește depanatorul gdb. Dar mai întâi, pentru ca programul să fie convenabil de depanat, trebuie să fie compilat cu opțiunea -g. Acum trebuie doar să schimbăm Makefile pentru a arăta

pătrat: pătrat.c $(CC) -o $@ -lm -g $<

și reconstruiți programul.

În timpul compilării normale, numele funcțiilor, variabilelor etc. nu sunt incluse în fișierul executabil. Opțiunea -g îi spune compilatorului să scrie aceste informații în secțiunea corespunzătoare a fișierului executabil. În plus, cu această opțiune, informațiile despre corespondența offset-urilor și numerelor de linii din fișierul sursă sunt scrise în fișierul executabil.

Depanarea este pornită cu o comandă de genul

gdb ./some-program -a -b

Când porniți depanatorul, apare o linie de comandă ca:

GNU gdb (GDB) 7.2-ubuntu Copyright (C) 2010 Free Software Foundation, Inc. Licență GPLv3+: GNU GPL versiunea 3 sau ulterioară Acesta este un software gratuit: sunteți liber să îl schimbați și să îl redistribuiți. NU ESTE GARANȚIE, în măsura permisă de lege. Tastați „afișați copierea” și „afișați garanția” pentru detalii. Acest GDB a fost configurat ca „i686-linux-gnu”. Pentru instrucțiuni de raportare a erorilor, consultați: ... Citirea simbolurilor din /home/portnov/LUG/src/square...terminat. (gdb)

Lucrul cu depanatorul, în termeni generali, seamănă cu lucrul cu shell-ul de comandă. Introduceți comenzi, depanatorul le execută. Ca și în shell-ul de comandă, finalizarea comenzii folosind tasta Tab funcționează. În plus, pentru concizie, puteți scurta comenzile la primele litere, doar pentru a evita ambiguitatea.

Cele mai frecvent utilizate comenzi includ:

Tipăriți următoarea bucată din codul sursă (sunt tipărite 10 rânduri). Puteți specifica anumite numere de rând după numele comenzii, de exemplu l 10,15.

Rulați programul sub depanator. Programul va rula până la cel mai apropiat punct de întrerupere sau până la sfârșit.

Setați un punct de întrerupere. Numărul liniei pe care doriți să setați punctul de întrerupere este indicat după numele comenzii.

Executați o linie de program.

Evaluați și imprimați expresia. Expresia este specificată după comandă. În acest fel, puteți, de exemplu, să vizualizați valoarea unei variabile o dată.

Adăugați o expresie la lista afișată permanent. Valorile acestor expresii vor fi afișate după executarea fiecărei comenzi. Lângă fiecare expresie este imprimat numărul acesteia din listă. Puteți elimina o expresie din listă folosind comanda undisplay cu numărul expresiei.

Ieșiți din depanator.

Pentru mai multe informații despre GDB, vezi man gdb.

Sistem de ferestre X11

Din punct de vedere istoric, UNIX nu avea și nu putea avea niciun mediu grafic deoarece nu existau afișaje grafice. Mediul grafic pentru UNIX a apărut în perioada în care au apărut afișajele grafice larg răspândite: în 1984. La început a fost numit W (pentru fereastră), apoi a fost îmbunătățit și numit următoarea literă a alfabetului - X, următoarea versiune a fost numită X2 ... Acum avem X11.

X11 este în primul rând un protocol de rețea peste TCP/IP și UDP/IP. Protocolul are un client și un server. Clientul trimite o secvență de solicitări precum „desenează-mi o fereastră”, „desenează un buton pe ea”, iar serverul le execută. Unul dintre principiile principale ale X11 este „definirea mecanismelor, nu politicilor”. Protocolul oferă posibilitatea, de exemplu, de a desena ferestre, dar nu determină exact cum vor fi afișate.

Cel mai comun server X acum este Xorg (http://x.org); XFree86 este încă în viață; Xming este relevant pentru Windows; Sunt produse servere X hardware - kituri „monitor + tastatură + mouse”, în care suportul pentru funcționalitatea serverului X11 este implementat în hardware - astfel de kituri sunt folosite ca terminale grafice.

Protocolul X11, spre deosebire de, să zicem, HTTP, este binar și nu text - acest lucru se face din motive de economisire a lățimii de bandă a conexiunii de rețea și ușurință de analizare a cererilor de către server. Dar acest lucru complică crearea clienților acestui protocol: colectarea cererilor X11 binare complicate este evident mai dificilă decât, de exemplu, solicitările HTTP text. Prin urmare, pentru a scrie X clienți, sunt folosite biblioteci speciale de funcții care generează și trimit X cereri către server. Cea mai comună bibliotecă este libX11. O opțiune mai modernă este libxcb.

Interogările X11 au un nivel destul de scăzut. De exemplu, pentru a implementa funcționalitatea unui buton, trebuie să desenați un dreptunghi în fereastră, să scrieți text în el, să așteptați în buclă să fie apăsat butonul mouse-ului și, cu fiecare clic, verificați dacă clicul a fost în interior sau în exterior. dreptunghiul. Prin urmare, au început să apară așa-numitele truse de instrumente - biblioteci care sunt pachete de nivel înalt peste libX11.

Din punct de vedere istoric, primul set de instrumente a fost Athena3D. Apoi au fost Motif și Tk. Acum, cele mai obișnuite sunt GTK+ și Qt (Qt, strict vorbind, nu este un set de instrumente X11, ci un set de biblioteci multi-platformă, care poate fi folosit ca un set de instrumente X11).

Bună, lume pe GTK+

Ca exemplu, luați în considerare următorul program. Afișează o fereastră cu un singur buton. Când faceți clic pe acest buton, apare mesajul „Bună ziua, lume”.

#include

// Această funcție afișează dialogul de mesaje.
// parametrul main_window ar trebui setat la fereastra părinte a dialogului.
void mesaj_box (GtkWindow* main_window, gchar *message) (
GtkWidget *dialog, *label, *content_area;

// Creați un dialog
dialog = gtk_dialog_new_with_buttons(„Mesaj”,
fereastra principala,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_OK,
GTK_RESPONSE_NONE,
NUL);
// Creați o etichetă
content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
label = gtk_label_new(mesaj);

// La semnalul „răspuns” (este numit atunci când utilizatorul face clic pe un buton în
// dialogul), distruge dialogul.
g_signal_connect_swapped(dialog,
"raspuns"
G_CALLBACK (gtk_widget_destroy),
dialog);

//Adăugați o etichetă
gtk_container_add(GTK_CONTAINER(content_area), label);
// Afișează dialogul
gtk_widget_show_all(dialog);
}

// Apel invers pentru semnalul de ștergere a evenimentului
static gboolean delete_event(GtkWidget *widget,
GdkEvent *eveniment,
date gpointer)
{
// Dacă returnează TRUE, fereastra nu va fi închisă.
// Acesta poate fi folosit pentru a preveni închiderea ferestrei în unele situații.
returnează FALSE;
}

// Apel invers pentru semnal de distrugere
distrugere static void (GtkWidget *widget,
date gpointer)
{
// Încheiați bucla principală de evenimente GTK+
gtk_main_quit();
}

// Apel invers pentru clic pe buton
static void salut (GtkWidget *widget,
date gpointer)
{
// Parametrul „date” reprezintă aici fereastra principală
mesaj_box(GTK_WINDOW(date), "Bună ziua, lume!");
}

int main(int argc,
char *argv)
{
GtkWidget *fereastră;
GtkWidget *buton;

// Inițiază GTK+
gtk_init(&argc, &argv);

// Creați fereastra principală
fereastra = gtk_window_new(GTK_WINDOW_TOPLEVEL);

// Configurați apeluri inverse pentru unele semnale
g_signal_connect(fereastră, „delete-event”,
G_CALLBACK (delete_event), NULL);

G_signal_connect(fereastră, „distruge”,
G_CALLBACK (distruge), NULL);

// Setați lățimea marginilor ferestrei
gtk_container_set_border_width(GTK_CONTAINER(fereastră), 10);

// Creați un buton etichetat
button = gtk_button_new_with_label("Bună lume");

// Configurați apel invers pentru semnalul „clic” al butonului.
// Treceți fereastra principală ca al doilea parametru.
g_signal_connect (buton, „clic”, G_CALLBACK (bună), (gpointer) fereastră);

// Împachetați butonul în fereastră
gtk_container_add(GTK_CONTAINER(fereastră), buton);

// Afișează butonul
gtk_widget_show(button);

// Afișează fereastra
gtk_widget_show(fereastra);

// Rulați bucla principală de evenimente GTK+.
gtk_main();

Acest program este asamblat cu o comandă a formularului

gcc -o gtk-hello $(pkg-config --cflags gtk+-2.0) $(pkg-config --libs gtk+-2.0) gtk-hello.c

literatură suplimentară

Raymond, Eric S. Arta programarii pentru UNIX. - Per. din engleza - M.: Editura Williams, 2005. - 544 p., ill.

Kernighan B., Pike R. UNIX. Mediu software — Traducere din engleză - Sankt Petersburg: Simbol-Plus, 2003. - 416 p., ill.

Kernighan B., Ritchie D. Limbajul de programare C. - Trans. din engleza - Moscova: Williams, 2006. - 304 p.

Linux evoluează rapid și devine mai popular, mai ales că utilizarea Windows scade și mulți programatori lucrează pentru a avansa Linux prin crearea de noi programe desktop care sunt echivalente sau chiar mai bune decât aplicațiile pe Windows și Mac OS X.

Un număr mare de distribuții încearcă să facă Linux mai ușor pentru noii utilizatori care au folosit anterior Linux sau Mac OS X. Acest lucru ajută și mai mult să promoveze Linux în masă.

Există multe limbaje de programare pentru Linux și, în plus, apar altele noi în fiecare an. Dar nu toți programatorii le folosesc, deoarece pentru a crea o aplicație fiabilă, flexibilă, eficientă și extensibilă și, cel mai important, sigură, trebuie să alegeți limba potrivită.

În acest articol ne vom uita la cele mai populare limbaje de programare pentru Linux. Să luăm în considerare cele pe care este dezvoltat acest sistem de operare și cele care sunt folosite pentru a crea aplicații. Lista nu este de fapt sortată după importanță, toate limbile folosite aici sunt bune. Toate sunt multi-platformă și puteți scrie un program pe ele pentru oricare dintre sistemele de operare disponibile.

Nu exagerez dacă spun că acest limbaj a fost creat pentru acest sistem de operare. Aceasta este deja o limbă veche. A fost creat în anii șaptezeci de un inginer de la Bell Labs special pentru a scrie nucleul Unix. Cert este că în acele vremuri, programele și sistemele de operare erau scrise în asamblator și era necesar să se scrie un program pentru fiecare arhitectură separat, deoarece seturile de instrucțiuni erau diferite. Dezvoltatorii Unix aveau nevoie de un limbaj de programare de nivel înalt în care să poată scrie Unix o dată și să-l construiască pentru toate platformele. C a devenit un astfel de limbaj.

Nucleul Linux se bazează pe Unix și, prin urmare, este scris și în C; toate modulele nucleului, driverele, precum și o cantitate imensă de software de sistem sunt, de asemenea, implementate în C. Dacă vă întrebați în ce este scris Linux, acum știți răspunsul. Multe utilitare din setul GNU, un server X, un set de biblioteci pentru lucrul cu grafica GTK și multe altele, unele manageri de ferestre au fost dezvoltate în C. Dar C este folosit din ce în ce mai puțin pentru scrierea de programe noi; a fost înlocuit cu modificarea sa orientată obiectiv C++.

2. C++

Aceasta este o versiune îmbunătățită a C, a apărut nu mult mai târziu decât C. În 1980, Björn Stroustrup lucra la cercetarea sa și nu avea capabilitățile standard C, așa că a venit cu câteva îmbunătățiri. Dintr-o dată, această limbă a devenit populară printre colegii săi și nu a mai putut să-i urmărească el însuși dezvoltarea.

Acum este unul dintre cele mai populare limbaje de programare. Ambele stiluri de programare orientate către obiective și procedurale sunt disponibile aici. Adevărat, este încă foarte dificil pentru începători, la fel ca C. Acest lucru necesită o precizie foarte mare în gestionarea memoriei.

O mulțime de software în Linux este scris în C++, acestea sunt aceleași utilitare GNU, multe programe de utilizator, medii grafice, browsere. Cadrul grafic Qt este scris în C++, care este acum utilizat pentru mediul desktop KDE și un număr mare de programe multiplatformă. Qt este un proiect atât comercial, cât și necomercial. Dacă dezvoltați software gratuit, puteți utiliza Qt gratuit, dar nu, trebuie să plătiți pentru o licență. Qt este mult mai ușor pentru începători decât C sau C++ pur.

C și C++ sunt cele mai populare limbaje de programare pentru Linux

3. Java

Este un limbaj de programare multiplatformă puternic și complet orientat către obiective, care are oportunități ample de a crea aplicații desktop, precum și aplicații de rețea și web.

Java a fost dezvoltat inițial în anii 90 de Sun Microsystems pentru dispozitive încorporate cu putere de procesare scăzută. Pentru telefoane mobile, microcontrolere și alte echipamente. Scopul său a fost să ducă funcționalitatea multiplatformă la următorul nivel. Programul este scris în Java, convertit în cod octet, pe care o mașină Java îl poate executa pe orice hardware, indiferent de arhitectură și capabilități. Apoi Java a început să fie folosit pentru a crea aplicații web în browsere și, prin urmare, au început să fie create aplicații desktop.

Java este unul dintre cele mai bune limbaje de programare, mai ales dacă aveți de gând să dezvoltați aplicații care vor rula peste tot. Java este foarte benefic din punct de vedere al portabilității, poți rula programul pe Windows sau Linux fără modificări și este, de asemenea, mai sigur, deoarece programul rulează într-o mașină virtuală și putem controla toate acțiunile acestuia. Dar dezavantajul este consumul mare de memorie și performanța scăzută în comparație cu C.

Nu sunt multe programe scrise în Java, dar există unele binecunoscute printre ele, cum ar fi mediile de dezvoltare precum Netbeans, Eclipse, InteljIDE. Unii producători de hardware lansează utilitare pentru a-și gestiona hardware-ul în Java, astfel încât să poată funcționa la fel de bine pe Linux. Multe jocuri simple sunt scrise în Java și este, de asemenea, utilizat pe scară largă în sistemul de operare Android.

3.Python

Python este un limbaj interpretat de uz general, la nivel înalt. A fost dezvoltat de un bărbat pe nume Guido Van Rossum la începutul anilor optzeci, a lucrat la limbaj în timpul liber, iar scopul a fost să creeze un limbaj pentru predarea programarii.

Ideea principală a lui Python este simplitatea, viteza maximă de dezvoltare, erori minime, incertitudine minimă. Sintaxa limbii în sine vă ajută să scrieți corect și să evitați greșelile. Acest lucru a făcut din Python una dintre cele mai populare limbi. Multe biblioteci au fost dezvoltate pentru lucrul cu componente de sistem, implementări de algoritmi și seturi API pentru lucrul cu serviciile de rețea. Acum puteți scrie atât un site web, cât și o aplicație Qt cu drepturi depline în Python, dovada primului este multe site-uri, inclusiv Yandex, iar al doilea este popularul editor video OpenShot.

În plus, nenumărate scripturi de sistem și utilitare pentru gestionarea Linux au fost scrise în Python. Acesta este utilitarul potrivit pentru instalarea de software în Ubuntu, managerul de pachete Emerge în Gentoo și un număr mare de scripturi mici. Motivul pentru aceasta este simplitatea limbajului. Programatorul petrece câteva ore pe program și funcționează perfect câțiva ani.

4. JavaScript / GitHub Electron

JavaScript este în primul rând un limbaj de programare pentru crearea de pagini web dinamice, dezvoltat special în acest scop la mijlocul anilor 90 de Brendan Eich la Netscape. Până de curând, JavaScript a fost folosit pentru a genera pagini web dinamice pe partea clientului și în aplicațiile web. Dar apoi a apărut proiectul Node.js, care vă permite să dezvoltați programe server în JavaScript. Cel mai recent, GitHub a creat cadrul Electron, bazat pe Node.js, cu care JavaScript poate fi acum folosit pentru a crea aplicații desktop.

Electron vă permite să utilizați tehnologii HTML, CSS, JavaScript pentru a crea programe desktop frumoase. Această platformă este întreținută activ de echipa și comunitate GitHub.

Deși platforma a fost lansată abia recent, pe ea au fost deja scrise până la sute de aplicații, printre cele mai cunoscute se numără editorii de cod similari Atom și LightTable, precum și aplicația de gestionare a site-urilor WordPress și noua aplicație de chat RocketCaht. În plus, JavaScript este folosit pentru a dezvolta programe desktop pe platforma Chromium, există mult mai multe astfel de programe, același editor Brackets, astfel de utilități utile precum Google Keep, Pocket, Wunderlist și alte programe din magazinul Chrome.

5.Cochilie

Comenzile terminalelor Linux nu numai că vă permit să efectuați operațiuni de zi cu zi în mod interactiv, dar este și un limbaj de programare cu drepturi depline, cu suport pentru constructe de control foarte simple. Cel mai obișnuit shell este Bash (Bourne Again Shell). Majoritatea scripturilor sunt scrise în sintaxa sa, dar există și altele, de exemplu, același fish, sh, zsh, dash etc.

Sintaxa constructelor de control Bash este puțin greu de înțeles, dar multe scripturi de sistem sunt scrise în ea, în primul rând, toate scripturile pentru inițializarea demonilor în SysVinit, scripturile pentru întreținerea serverelor, backup-urile, rularea programelor etc. Fiecare administrator are mai multe scripturi scrise în Bash.

concluzii

Acestea nu sunt toate limbaje de programare Linux care sunt folosite pentru a crea programe în Linux; Ruby a început recent să fie folosit pentru a crea scripturi; Perl este deja demodat; limbaje de programare mai specifice, cum ar fi Go, R, Vala iar altele sunt de asemenea folosite. Pentru nevoile mele folosesc Python și php și scrieți programe pentru Linux? Ce limbaje de programare? Scrieți în comentarii!

  • Jonathan Bartlett, „Programarea aplicațiilor de înaltă performanță pe procesorul Cell BE: Partea 4: Programarea SPU pentru performanță” Această parte acoperă subiecte precum programarea SIMD vectorială, eliminarea ramurilor, derularea buclei, planificarea execuției instrucțiunilor (programarea instrucțiunilor) și indicarea ramurilor tehnici.

  • „8 cele mai bune instrumente de dezvoltare gratuite și open source conform InfoWorld”

  • „Testarea de la A la Z. Partea 1 – Principii și abordări fundamentale”

  • Per Kroll, „OpenUP Made Simple” Acest articol prezintă OpenUP, un cadru de dezvoltare software nou dezvoltat, care se bazează pe tehnici de dezvoltare agilă folosind Procesul Rational Unified.

  • „Rezultatele unui studiu privind popularitatea limbajelor de programare”

  • Graiver Alexander și GIS-Lab, „Utilizarea Doxygen pentru a lucra cu codul sursă al software-ului GIS” Una dintre metodele de lucru cu volume mari de cod al altcuiva, navigarea prin el și utilizarea componentelor sale în propriile programe.

  • Shevelev Denis, „Scriem „DEMON” cu propriile noastre mâini” Scopul nostru este să scriem un daemon de rețea pentru a controla ceva pe Linux de sub Windows din diferite locuri.

  • Martin Husemann, traducere - Sergey Kalichev, „Fighting the Lemmings” Descrierea problemelor tipice care apar la scrierea codului portabil, unele dintre probleme sunt evidente, dar erorile asociate acestora continuă să apară în mod regulat în codul real.

  • Cameron Laird, „Tehnici pentru depanarea utilizării memoriei” Erorile de memorie reduc semnificativ eficiența aplicațiilor și nu multe echipe de dezvoltare au un plan clar pentru eliminarea acestor erori. Dar există o veste bună: erorile de memorie pot fi destul de ușor de identificat.

  • Avi Rozen, traducere de A. Tarasov, „Depanarea la distanță folosind GDB și GDBserver” Se ia în considerare o metodă de depanare a aplicațiilor pe un sistem la distanță, a cărei platformă poate diferi de platforma dezvoltatorului.

  • E. Ivanov, Review of the "Dragon Book" - "Compilers: Principles, Technologies and Tools" - traducerea cărții (Compilers: Principles, Techniques and Tools. Ediția a II-a. Alfred V. Aho, Monica S. Lam , Ravi Sethi , Jeffrey D. Ullman, 2007)

  • N.N. Ivanov, „Programarea în Linux de la zero” Un manual distribuit gratuit despre programarea în Linux.

  • N. Ivanov a postat următoarea secțiune a cărții sale „Programare în Linux de la zero: „6.4. Înlocuirea imaginii de proces"

  • Andrey Borovsky, „Programare pentru Unix/Linux”

  • A. Borovsky, „Programming for Unix/Linux” O serie de articole despre programarea Unix/Linux, publicate în revista Linux Format

  • Andrey Borovsky, Articol „Demonii” din seria „Programare pentru Linux”, publicat în revista Linux Format.

  • Valerie Henson, traducere: V. Cherkasov, „Introducere în scrierea modulelor de kernel Linux”.

  • Nickolay Tarasenko, „Implementarea apelurilor de sistem pentru lucrul cu socket-uri în nucleul Linux. Crearea unui socket”.

  • K. Kaspersky, „Hardcore debugging with Linice: learning to work in the console kernel debugger” Linice este un port neoficial al legendarului SoftICE pentru Linux, păstrând interfața, sistemul de comandă și majoritatea capabilităților acestuia din urmă.


  • D.V. Silakov, „Starea actuală și perspectivele dezvoltării infrastructurii LSB” Articolul descrie partea tehnică a dezvoltării standardului Linux Standard Base și a infrastructurii asociate.

  • Federico Kereki, traducere - A. Dmitriev,

  • Rodrigo Ceron, „Setul de instrumente de programare liniară GNU: Partea 1: Introducere în optimizarea liniară” Acest articol descrie GLPK (GNU Linear Programming Toolkit), utilitarul client glpsol și limbajul GNU MathProg pentru rezolvarea problemelor de optimizare operațională.

  • Rodrigo Ceron, „Setul de instrumente de programare liniară GNU: partea 2: probleme de complexitate medie în programarea liniară”

  • Rodrigo Ceron, „Setul de instrumente de programare liniară GNU: Partea 3: Probleme dificile și soluții elegante”

  • V. Tsarkov a trimis un link de unde puteți descărca cartea „Programare de la zero”. După cum scrie Vladimir: „Iată un link către o carte excelentă despre limbajul de asamblare pentru mediul GNU/Linux și informatica în general.” Dar cartea este în engleză și în format PDF.


  • Kenneth Ballard, „Programarea în siguranță cu API-ul OpenSSL, Partea 3: Asigurarea unui serviciu fiabil” Cu OpenSSL, puteți crea aplicații securizate pe partea de server și, deși documentația pare intimidantă, nu este atât de dificil.

  • „Rezultatele testării performanței a șase cadre de top”

  • Alexander Miroch, „Executarea bibliotecilor partajate pe Linux”

  • Devin Watson, „Linux Daemon HOWTO” (Traducere). Cum se scrie un daemon în Linux.

  • D. Panteleichev, „Dezvoltare software pentru Linux. Setul de instrumente”.

  • Dmitry Panteleichev, "OpenGL. Programare grafică în Linux" Curs amplu de instruire privind programarea graficelor bi- și tridimensionale folosind OpenGL. Qt este folosit ca instrument de ferestre, care, împreună cu natura portabilă a OpenGL, vă permite să scrieți aplicații cu adevărat multiplatforme.

  • Noel Rappin, „Clădire aplicații inter-platformă GUI utilizând wxWidgets” Setul de instrumente wxWidgets oferă instrumente puternice de dezvoltare a interfeței grafice cu utilizatorul (GUI) multiplatformă. Nu numai C++ nativ, ci și alte limbaje de programare oferă instrumente pentru utilizarea acestui set de instrumente. Aflați cum să utilizați wxWidgets pentru a crea aplicații GUI elegante și extrem de utile în limbajul de programare preferat.



  • K. Pfister, traducere rusă: Ermakov I.E., „Software component”,

  • Nikolay N. Ivanov, „Programarea în Linux de la zero” Un proiect pentru a crea o carte pe tema indicată în titlu. Autorul cărții este gata să ia în considerare toate comentariile și sugestiile dumneavoastră. Scrie!




  • Sevryugin A.I., "PCRE.RU" Enciclopedia universală a expresiilor regulate ale standardului PCRE, compatibilă cu limbile Perl, PHP, Javascript.

  • „Lindevel.ru/” este un site dedicat programării pentru Linux. Cel mai interesant lucru este arhiva listei de corespondență „Programare în Linux de la zero” din secțiunea „Articole”.

  • Matt Frye, traducere: Ivan Pesin, „Depanarea codului folosind strace” Traducerea unui articol despre utilizarea utilitarului strace ca instrument de depanare a codului.

  • Mark Wilkinson, tradus de Ivan Pesin „Automatizarea proceselor de construire și testare” Acest articol vă prezintă CruiseControl, un software open source pe care îl puteți utiliza pentru a automatiza procesele de construire și testare unitară în proiecte cu mai mulți dezvoltatori.

  • Dmitri Bushenko,

  • Vadim Stankevici,.


  • Chris Herbort, „Dezvoltarea software UNIX cu Eclipse” Portarea codului moștenit la un IDE modern.

  • Chris Anischuk, David Gallardo, „Noțiuni introductive cu platforma Eclipse”

  • „O serie de articole despre JasperReports” – un generator de rapoarte care se integrează cu Eclipse.

  • Nathan A. Good, „Building Your Own Eclipse Wizards” Unul dintre cele mai mari puncte forte ale tehnologiei Eclipse ca platformă de infrastructură și mediu de dezvoltare integrat este extensibilitatea sa. În acest articol, veți învăța cum să creați rapid un expert care automatizează procesul de adăugare a unui fișier nou.

  • Prashant Deva, „Eclipse Makes Ant Editor Easy” Descoperiți capacitățile de integrare ale Ant în IDE-ul Eclipse și învățați să scrieți, să legați și să remediați erorile de cod în Eclipse folosind editorul Ant.

  • Platforma Rich Client Eclipse, Partea 2: Extinderea Bancului de lucru de bază
    Acest tutorial continuă prezentarea noastră de ansamblu asupra platformei Eclipse Rich Client. Acesta arată cum să utilizați vizualizările, acțiunile și vrăjitorii pentru a crea o aplicație completă.

  • „Instalarea și utilizarea Eclipse pentru Linux pe computere POWER” Eclipse este un mediu de dezvoltare integrat extensibil open source.

  • „Top 10 trucuri pentru noii utilizatori Eclipse” Traducerea unui articol cu ​​10 sfaturi simple pentru utilizarea eficientă a mediului de dezvoltare Eclipse.

  • „Ant in Ten Steps” (Traducerea furnicii în zece pași de Russ Olsen). Ant este un instrument care este conceput pentru a automatiza procesul de construire a software-ului.

  • Matt Telles, Yuan Hsih, trad. din engleza S. Lunin, „Studiind greșelile celebre (și nu atât de faimoase)”. Capitolul din cartea „Știința depanării”


  • Dmitry Bushenko, „Programare în Linux. Partea a patra. .NET în Linux”

  • Dmitry Bushenko, „Programare în .NET pe Linux. Partea 4. Elemente Gtk# în exemple”

  • Dmitry Bushenko, „Programarea în .NET pe Linux” Partea 3. Aplicație cu ferestre în GTK#.

  • Dmitry Bushenko, „Programarea în .NET pe Linux”. „Partea 2. Prima aplicație în Mono C#”



  • Nikolay N. Ivanov, „PROGRAMARE ÎN LINUX”.


  • Maciej Katafyazh, tradus de Sergey Bezdenezhnykh, „Noțiuni de bază GTK+, Partea 2: Cum să utilizați GTK+”

  • „Utilizarea bibliotecilor” Bibliotecile pot fi statice sau dinamice.

  • David Madeli, traducere - Bezdenezhnykh Sergey, „Crearea de widget-uri folosind Cairo și GTK+ 2.8, partea 2”


  • Tony Gale, Ian Main și echipa GTK, „Tutorial pentru traducerea GTK+ 2.0”

  • „În interiorul managerului de memorie. Selecția, abordările și implementarea metodelor de alocare dinamică a memoriei” discută despre tehnicile de gestionare a memoriei disponibile programatorilor Linux.

  • Alexey Fedorchuk,

  • Andrei Dranitsa, „Linux de bază este brut și umflat” Revizuirea instrumentelor de dezvoltare pentru Linux.

  • A.M. Vendrov, „Tehnologii moderne pentru crearea de software. Recenzie”

  • Edsger W. Dijkstra, Traducere - Alf, 14 august 2004, „Două vederi despre programare”

  • Mai întâi, citiți o secțiune din, tradusă de Alex Ott, v1.3.2, 22 februarie 1999

  • „Dezvoltarea unui modul kernel Linux care implementează algoritmul de protecție criptografică GOST 28147-89”

  • „Rularea unui program compilat cu o versiune diferită de glibc” Un scurt sfat util.

  • Jasmin Blanchette, Mark Summerfield, Traducere: Andrey Kiselev, „Dezvoltarea unei interfețe grafice folosind biblioteca Qt3”

  • Steve Litt, traducere: Alexander Kubyshkin, „Comparative Religion” Cum să alegi limbajul principal de programare. Sunt discutate avantajele și dezavantajele C, C++, Java, Perl, Python, Ruby.

  • Jeff Tranter, traducere: Andrey Kiselev, „The sendfile system call” Apelul sendfile system a fost adăugat relativ recent la kernel-ul Linux și a devenit un plus important pentru aplicații precum ftp sau servere web care pur și simplu au nevoie de un mecanism eficient de transfer de fișiere.

  • „Programare pentru UNIX” Păcat că nu există nici autorul, nici anul apariției.

  • Evgeniy Khilko, „Configurarea construcției de aplicații câștigătoare cu compilatorul încrucișat mingw32 în KDevelop”

  • „Instrument de scriere” Vom vorbi despre versiunea 3.2.0 a mediului KDevelop în distribuția SuSE 9.3.


  • Sandeep S, traducere: Andrey Kiselev, „Urmărirea procesului folosind Ptrace”, partea 2. Articolul vorbește, în special, despre structura formatului de fișier executabil - ELF.

  • Sandeep S., Traducere: Andrey Kiselev, „Urmărirea procesului cu Ptrace - Partea 3” Scopul acestei părți este de a demonstra o tehnică de accesare a identificatorilor de proces în timpul execuției. Domeniul de aplicare al acestei tehnici este atât de larg încât este limitat doar de imaginația ta.

  • V. Meshkov, „Interceptarea apelurilor de sistem în sistemul de operare Linux”

  • S. Gulenok, „Clădirea pinguinului distractiv. Fundație” În conversațiile despre Linux, am întâlnit adesea expresia „Linux a fost scris de programatori pentru programatori”. E chiar asa?

  • Knyazev Alexey, „Versiunea rusă a Linux Device Driver 2nd edition” Aceasta nu este o traducere, ci ceva „bazat pe” traducerea celebrului manual de Alessandro Rubini și Jonatan Corbet.

  • „Linux Device Driver 2nd edition” Alexey Knyazev a finalizat traducerea celui de-al 8-lea capitol al Linux Device Driver ediția a 2-a. În total, au fost traduse capitolele 0-8 și 13. Se lucrează la traducerea celui de-al 9-lea capitol.

  • Kuzin Andrey, Programare pentru Linux
    Pasul 1 - Compilarea programelor în C/C++ (30/01/2002 - 2 Kb)
    Pasul 2 - Informații de depanare (30.01.2002 - 4,2 Kb)
    Pasul 3 - Compilarea mai multor fișiere (15/02/2002 - 3,7 Kb)
    Pasul 4 - Biblioteci de fișiere obiect (20/02/2002 - 3,0 Kb)
    Pasul 5 - Crearea unei biblioteci statice (20/02/2002 - 3,7 Kb)
    Pasul 6 - Crearea unei biblioteci dinamice (20/02/2002 - 5,2 Kb)
    Pasul 7 - Utilizarea bibliotecilor dinamice (23/02/2002 - 4,9 Kb)
    Pasul 8 - Funcții pentru lucrul cu biblioteci dinamice (23/02/2002 - 5,0 Kb)
    Pasul 9 - Inițializarea bibliotecilor dinamice (27/02/2002 - 3,5 Kb)
    Pasul 10 - Trecerea opțiunilor către program - getopt (15/10/2002 - 6,6 Kb)
    Pasul 11 ​​- Trecerea opțiunilor lungi programului - getopt_long (19/12/2002 - 11,2 Kb)
    Pasul 12 - Afișarea mesajelor de eroare ale programului (22/12/2002 - 7,5 Kb)
    Pasul 13 - Obținerea informațiilor despre utilizator (22/12/2002 - 10,2 Kb)
    Pasul 14 - Preluarea datelor din parola umbră (22/12/2002 - 5,5 Kb)
    Pasul 15 - Lucrul cu parolele de sistem folosind funcția crypt() (24/12/2002 - 10,0 Kb)

  • Kotelnikov Ruslan.

  • Ruslan Popov, „Introducere în KDevelop”

  • I. Voronin, „Utilizarea CCache” Ccache oferă o creștere excelentă a vitezei atunci când reconstruiți programul din nou. De exemplu, am asamblat nucleul Linux pe o mașină cu procesor Pentium MMX / 200 Mhz în doar 10 minute.

  • Oleg Belenkov Transferarea aplicațiilor de la Windows la Linux [OPEN SYSTEMS, 2000/07-08]

  • S. Bogomolov, libdb

  • S. Bogomolov, Construirea și utilizarea bibliotecilor comune

  • S. Bogomolov, TclTk (instalare)

  • Sistemul de management al proiectelor software SCCS, T.A.Pivovarenok, Centrul de supercomputer

  • Mecanisme de comunicare între procese în sistemul de operare Unix, Sergey Kuznetsov, materiale educaționale ale conferinței Industria de programare 96,

  • ITOLOGIE - știința tehnologiei informației, V. Sukhomlin, Centrul de Cercetare Calculatoare al Universității de Stat din Moscova, materiale educaționale ale conferinței Industria de programare 96, Centrul pentru Tehnologii Informaționale

  • „Industria de programare „96” Materiale conferinte, Centrul de Tehnologia Informatiei

  • Andrey Bondarenko Instrumente de dezvoltare vizuală (IDE)

  • Sergey Zhuravlev Revizuirea IDE pentru Linux

  • A. Chebotarev, „QT: interfață și nu numai...”

  • A.M. Vendrov, Argussoft Co. tehnologii CASE. Adnotare. Conținutul tehnologiei CASE. Metode și instrumente moderne de proiectare a sistemelor informaționale.

  • Wolfgang Mauerer, (traducere: Alexander Mikhailov) Depanare vizuală în DDD. Nimic nu funcționează niciodată așa cum ar trebui; toate programele sunt pline de erori; specificațiile sunt greșite și implementarea face exact opusul a ceea ce se așteaptă. Găsirea erorilor nu este doar o parte inevitabilă a ciclului de dezvoltare a software-ului, ci și o componentă importantă a „calei de viață” a oricărui program.

  • Guido Socher, traducere: Pukhlyakov Kirill, „De ce nu funcționează!? Metode de detectare și corectare a erorilor în aplicațiile Linux”

  • Donald E. Knuth, „Sortarea și căutarea” Arta programarii Vol.3

  • „Introduction to Simple DirectMedia Layer” SDL este o interfață gratuită de programare a aplicațiilor multimedia multiplatforme. Folosit pentru a crea jocuri, biblioteci de jocuri, programe demonstrative, emulatoare, playere MPEG și alte programe.

  • Instrumente grafice pentru programe Linux
    Instrumentele grafice sunt biblioteci de rutine care vă permit să adăugați un set specific de funcții, utilizând limbajul de programare să integreze o interfață grafică în programul dumneavoastră.

  • Harvey Blume,

  • Denis Kolisnichenko, „Software I/O Redirection” [Publicat la 25.09.2002.]

  • „La mila scripturilor” [OPEN SYSTEMS, 2002/09]

  • Konstantin Mikhailenko, „Stilul paralel” 01 martie 2002, Articolul este dedicat calculului paralel

  • Leonardo Giordani, „Programare paralelă – comunicare între procese”.

  • Leonardo Giordani, traducere de Kirill Pukhlyakov, „Programare paralelă - cozi de mesaje” partea 3.

  • Pe baza materialelor din Dinil Divakaran, pregătite de X-Stranger, „Propriul compilator pentru Linux”

  • Vladimir Popov, „Și am făcut-o așa...” Nu un guru experimentat răspunde la întrebarea unui nou albine amator, dar oricine își poate împărtăși experiența. În acest caz, vorbim despre compilare.

  • S.Sandeep, traducere: Andrey Kiselev, „Tracing processes using Ptrace - Part 1”. Apelul de sistem ptrace este baza pentru programe de depanare precum gdb, dar principiile de lucru cu acest apel de sistem nu sunt bine acoperite în documentație.

  • „ccache - cache pentru compilator” Programul ccache memorează în cache rezultatele compilației, permițându-vă să accelerați semnificativ reconstrucțiile repetate ale aplicațiilor.

  • V. Meshkov, „Programarea dispozitivelor CD/DVD în Linux” (fișier în format pdf). Cartea discută procedura de control al unității folosind registrele controlerului, structura logică a mediilor optice de stocare, exemple de utilizare a driverelor ATAPI și SCSI încorporate în kernel-ul Linux, algoritmi pentru scrierea diferitelor informații pe CD-uri și implementarea software a acestor algoritmi.

  • Davyd Madeley, traducere - Bezdenezhnykh Sergey, „Crearea de widget-uri folosind Cairo și GTK+ 2.8” Începând cu versiunea 2.8, GTK+ redă toate elementele de interfață folosind puternica bibliotecă de grafică vectorială Cairo. Acest articol vă arată cum puteți crea singur un widget GTK+, folosind bibliotecile Cairo pentru a-l reda.

  • Ilya Evseev, „MPI pentru începători” MPI (Interfață de transmitere a mesajelor = „Interacțiune prin transmiterea de mesaje”) este un standard pentru instrumentele software pentru furnizarea de comunicare între ramurile unei aplicații paralele.

  • „Qt fără KDevelop” Acest ghid vă va ajuta să înțelegeți caracteristicile de creare a programelor care utilizează biblioteca QT. Pentru a utiliza biblioteca QT, tot ce aveți nevoie este o consolă, un editor de text și un mediu grafic (de exemplu, KDE).

  • A apărut un site web, http://corba.kubsu.ru/, dedicat tehnologiei CORBA. După cum s-a menționat pe pagina principală, o direcție secundară a acestui proiect este tema Linux, deoarece un număr destul de mare de dezvoltatori care folosesc tehnologii CORBA dezvoltă software special pentru acest sistem de operare. (Link trimis de Alexey Kurgan).

  • „SVGAlib”
  • GCC

  • Mulyadi Santosa, „Explorând opțiunile GCC”.

  • GCC este rădăcina tuturor de Lorne Bailey
    GCC este un compilator grozav, dar pagina de manual nu este foarte ușor de utilizat. Nota vorbește despre ușurința de utilizare a compilatorului.

  • Serghei Karasiov, „Cum funcționează de fapt gcc”



  • Compilatorul gcc part1 pentru limbaje C, C++, Objective C (partea 1) Ghidul utilizatorului (gcc 2.7)

  • gcc part2 gcc: compilator pentru limbaje C, C++, Objective C (partea 2) Portare la noi arhitecturi (gcc 2.7)

  • Autor: Jpiszcz, Traducere: Yuri Prushinsky, „Optimizare GCC”
  • Asamblator

  • Dmitry Gribenko, „Linux Assembly for C Programers” Această carte se adresează programatorilor care cunosc deja C la un nivel suficient. Singurul lucru care este orientat spre Linux este sintaxa de asamblare utilizată. Programatorii de asamblare pe DOS și Windows folosesc sintaxa Intel, dar pe sistemele *nix este obișnuit să folosească sintaxa AT&T.

  • Ram Narayan, „Linux Assemblers: Comparing GAS and NASM” Acest articol explică unele dintre cele mai importante diferențe sintactice și semantice dintre cele mai populare două asamblatoare pentru LinuxR - GNU Assembler (GAS) și Netwide Assembler (NASM), precum și diferențele în sintaxa de bază, variabilele și accesul la memorie, procesarea macro, funcțiile și rutinele externe, manipularea stivei și tehnicile pentru simpla repetare a blocurilor de cod.

  • Rostyslav. „Asamblator într-un mediu UNIX sau cum funcționează shellcode”

  • Alexey Yu. Ulasevich, „Întrebări frecvente despre utilizarea assembler în Unix”.

  • O selecție de link-uri către documentația asamblatorului.

  • K. Boldyshev, de la autor.

  • Konstantin Boldyshev și F.-R. Rideau. Asamblare HOWTO. Asamblator pentru DOS, Windows și Linux. (în limba engleză).

  • Aleksey Ulasevich, „Întrebări frecvente despre utilizarea asamblatorului în Unix”

  • Dacă sunteți deloc interesat de programarea pentru Linux și dispozitivele sale la cel mai de jos nivel, aruncați o privire pe site-ul „http://www.lowlevel.ru/”. Acolo veți găsi o mulțime de lucruri utile, de exemplu, „Descrierea formatului ELF”, „Sistemul de fișiere EXT2”, „Partea 1”, „Partea a 2-a”.



  • Linux/i386 Pagina de programare asamblare O pagină dedicată programării în limbaj de asamblare pentru Linux.

  • Jan's Linux & Assembler Homepage Assembler în DOS și Linux.

  • Alexander Kuprin, ...Scriem un sistem de operare de jucărie... Să săpăm mai adânc...

  • „Scrierea unui sistem de operare de jucărie (partea I)”

  • Krishnakumar R., Traducere: Alexander Kuprin, „Scrierea unui OS de jucărie (partea a II-a)”

  • Bob, „Implementarea suportului PCI la nivel scăzut în nucleul Linux”

  • Despre decompilare Chiar și cel mai bun reasamblator nu poate restaura cu acuratețe codul programului. Compilarea este o funcție unidirecțională. Asamblatorul rezultat, și apoi codul mașinii, are specificități care depind de mulți factori, iar analiza intelectuală nu este întotdeauna potrivită...

  • Intuit, „Noțiuni fundamentale de programare Netfilter în limbajul de asamblare”. Un articol despre lucrul cu Netfilter, un subsistem de nucleu care extinde capacitățile sistemului de operare în lucrul cu cadre de rețea. Limbajul de programare este asambler. Sintaxa GAS. Articolul descrie crearea de module simple (LKM) pentru a demonstra capabilitățile acestui subsistem.
  • Limbajul Shell

  • Michael Stutz, „Expresii regulate” Conceptul de expresii regulate (regexps), o notație pentru descrierea modelelor care se potrivesc cu un set de șiruri de caractere, este comun pentru multe programe și limbaje de programare. Diferitele implementări ale expresiilor regulate diferă în detaliu, dar principiile necesare pentru a învăța cum să scrieți expresii regulate sunt aceleași în toate implementările.

  • „Codarea shell” Acest articol discută cele mai simple exemple de programare shell. Articolul nu este un ghid exhaustiv pentru programarea shell, dar poate fi util în stăpânirea elementelor de bază.

  • Mendel Cooper, Traducere: Andrey Kiselev, „Ghid avansat de scripting Bash” sau „Arta de a programa într-un limbaj de scripting Shell” Acest ghid nu presupune că cititorul are cunoștințe de programare într-un limbaj de scripting, cu toate acestea, completează rapid acest lucru decalaj. . . treptat, pas cu pas, dezvăluind înțelepciunea și frumusețea UNIX.

  • Ian Shields, „Linux Tips: Compare and Test Functions in Bash” Explicații ale testului , [, [[, ((, and if-then-else)


  • Sunil Thomas Thonikuzhiyil, traducere: Ivan Pesin, Alexander Kuprin, „Dezvoltarea interfețelor simple folosind dialog/Xdialog”. Articolul examinează utilizarea dialogului și a programelor Xdialog pentru a implementa interfețe simple pentru scripturi. Aceasta presupune că sunteți familiarizat cu scrierea scripturilor shell.

  • Interpret pentru limbajul de comandă Shell
    Interpret pentru limbajul de comandă Shell



  • Jos Nazario, Traducere: Jan Bezus, „Introducere în awk” Acest document este o scurtă prezentare generală a capabilităților și caracteristicilor awk (manipularea fișierelor de date, recuperarea și procesarea textului).

  • V. Kataev, „Viața în Linux. Sfaturi profesionale. De la script la agent”.

  • Abramov Alexey, „Scriptul de monitorizare a replicării MySQL pe shell”

  • Vadim Fedorov, „Cum se trimite o scrisoare cu un atașament în UNIX?” Cum să forțezi un script scris în bash sau shell să trimită un e-mail cu un fișier atașat?

  • interpret de comandă C-shell, M.P.Krutikov, Centrul de supercomputer

  • Programare Shell (Unix) A. Soloviev,
    Aceeași carte, dar în format text.



  • SHuRuP   Codare Shell: programare în consola *nix

  • Andrey Golovin, Expresii regulate.
    Expresiile regulate sunt cel mai puternic instrument de lucru cu șiruri pe care programatorii moderni l-ar putea inventa. Cu ajutorul lor, puteți analiza șirurile pentru conținutul secvențelor de caractere, puteți face înlocuiri pe baza acestei selecții, puteți împărți șirurile în matrice și multe altele.

  • S. Lapshansky, „Introduction to automation [Publicat 07/23/2002] Part 2. Despre scripturi utile și rularea lor prin cron.

  • Vadim Khokhlov, „Modul Unix: „Gariki”, sunt și „gariks” în Linux.” Despre un set de script-uri bash pentru selectarea diferitelor declarații interesante dintr-o bază de date.
  • Limbajul C și C++

  • N. Gorshkov, „C++ Programming Guide using libxml++” libxml++ este un API C++ pentru popularul parser XML libxml, scris în C.

  • Alexander Sidorov, „MinGW + Qt + Emacs HOWTO (Windows)” Despre configurarea și utilizarea unei combinații de MinGW, Qt4 și Emacs sub Windows pentru a scrie aplicații de fereastră multiplatformă în C++. Articolul discută problemele instalării unui compilator de limbaj C++, a unei biblioteci de ferestre multiplatformă, instalarea și configurarea unui mediu de dezvoltare.

  • Irtegov Dmitry Valentinovich, „Programare multithreaded folosind POSIX Threads” Materiale ale cursului privind dezvoltarea de aplicații multithreaded în C/C++ folosind POSIX Thread Library.

  • Nikolay N. Ivanov, „Secretele indicatorilor limbajului C. Partea I”.



  • „API C/C++ pentru SQLite 3” Mai mult de jumătate din cartea de referință „API C/C++ pentru SQLite 3” a fost tradusă în rusă; procesul de traducere a descrierilor comenzilor SQL a început.

  • Depanarea utilitarului make
    Utilitarele Make, cum ar fi GNU make, System V make și Berkeley make, sunt instrumente fundamentale necesare pentru a simplifica procesul de construire a aplicațiilor. Acest articol vă va prezenta structura unui makefile.

  • „Rezolvarea problemelor cu comenzile ./configure, make și make install” Uneori, secvența standard pentru compilarea unui program nu funcționează. Începe să afișeze diverse erori și nu compilează programul. Acest articol descrie cum să scapi de multe erori comune.

  • „Features of make.conf” /etc/make.conf este un fișier care specifică cheile de optimizare pentru compilator.

  • Autor: Raghu J Menon, traducere: Andrey Kiselev, „setjmp/longjmp în exemple” Articolul descrie lucrul cu un set de definiții macro setjmp/longjmp implementate în limbajul de programare C.

  • „Istoria limbajului C/C++” Din punct de vedere istoric, acest limbaj este inseparabil de sistemul de operare Unix, care în prezent se confruntă cu renașterea sa.

  • Konstantin Taiturov, „Armor for Penguin” Cele mai multe implementări moderne ale compilatorului limbajului C nu generează cod care controlează integritatea granițelor variabile.

  • Mike Goblin, „Scrierea driverelor pentru Linux: primii pași” Scrierea driverelor pentru Linux mi s-a părut întotdeauna o chestiune extrem de dificilă și misterioasă. Dar acum două luni trebuia să scriu eu un astfel de șofer. Procesul s-a dovedit a fi deloc dificil și mi-a făcut multă plăcere.
  • Mike Goblin, „Scrierea driverelor Linux, partea 2”.

  • Kirill Kochetkov, "SPEC CPU2000. Partea 5 - Compilatoare. Addendum 2" Comparația a trei compilatoare C pentru Linux în ceea ce privește performanța.

  • Rob Tougher, traducere: Andrey Kiselev „Crearea de biblioteci reutilizabile”

  • Rob Tougher, traducere: Andrey Kiselev, „Platformă pentru crearea de servere de aplicații în C++”

  • „Fox-toolkit. Lecții de rusă.” FOX Toolkit este un set de instrumente multiplatform rapid și convenabil (C++, ruby, python).

  • Autor: Bhaskaran, traducere: Andrey Kiselev, „Crearea unui driver de dispozitiv de rețea - Partea 1” Acest articol este destinat să ajute cititorul să înțeleagă principiile creării unui driver de placă de rețea Ethernet pentru sistemul de operare Linux. Dar, de asemenea, vă va ajuta să înțelegeți pur și simplu cum să conectați placa de rețea.

  • Kotelnikov Ruslan, „Începerea programării în Linux”

  • Hyouck „Hawk” Kim, Traducere (c): Andrey Kiselev, „Cum este lansată funcția main() în Linux”


  • Rob Tougher, Programare C++ cu socket pe Linux

  • Rob Tougher, Programare cu Xlib în C++

  • „Programarea la nivel scăzut a porturilor paralele pentru *nix”,

  • Yu.Yu.Gromov, S.I.Tatarenko, Universitatea Tehnică de Stat Tambov, Programare în limbaj C

  • Bjarne Stroustrup, Introducere în C++

  • Bjarne Stroustrup Designul și evoluția limbajului C++. Cartea, scrisă de creatorul limbajului C++, Bjarne Stroustrup, descrie procesul de proiectare și dezvoltare a limbajului de programare C++.



  • Ghid de referință C++ Bjarne Stroustrup, Biblioteca M. Moshkov

  • Cititor despre programarea C în Unix Andrei Bogatyrev, Biblioteca M. Moshkov Copie

  • Marchenko A.L. C++. Calea de catifea. Capitolele selectate

  • A. Kalinin, „C sau C++?”


  • Omul de făcut (Traducere de Yu. Kozlov)

  • Dmitri Chernyak. Folosind GNU make



  • Vladimir Ignatov

  • Vladimir Ignatov „Utilizarea eficientă a GNU Make”

  • Autor: (C) Tedi Heriyanto, Traducere: (C) Andrey Kiselev, „Mini-ghid pentru crearea de fișiere Makefile”

  • Richard M. Stallman și Roland H. Pesch Depanatorul GNU Source Level. Ediția a VIII-a, pentru versiunea GDB 20000326. Martie 2000. Traducere de Dmitri Sivachenko.

  • Ivan Shmakov, „GDB Debugger”


  • „Gestionarea excepțiilor în C++”. Limbajul C oferă programatorului opțiuni foarte limitate pentru gestionarea excepțiilor care apar în timpul funcționării programului. În acest sens, C++ este mult mai dezvoltat decât C. Aici programatorul are capacități semnificativ mai mari pentru gestionarea directă a excepțiilor. Comitetul pentru standarde C++ a oferit o formă foarte simplă, dar puternică de tratare a excepțiilor.

  • A. Kalinin, „Un alocator de memorie simplu, dar util” Această notă este o continuare a „Postfix din interior” în sensul că postfix este din nou luat ca exemplu. Dar dacă ultima dată postfix a fost privit din vedere, acum, dimpotrivă, o mică bucată de cod de program care nu are nicio specializare va fi luată și dată ca exemplu.


  • Programarea microcontrolerelor AVR folosind GCC de Guido Socher
    Acest articol descrie cum să configurați un mediu de dezvoltare pentru microcontrolere Atmel AVR pe 8 biți.

  • Gaurav Taneja, Programare GUI în C++ folosind biblioteca Qt, partea 1



  • Ariel Ortiz Ramirez, Traducere Andrey Kiselev, „Programare: C# - tipuri de date”

  • Tom Bradley, Traducere: Andrey Kiselev, „Adăugarea modulelor de extensie (plugin-uri) la program”.

  • Gleb Pakharenko, „Implementarea rețelei în sistemul de operare Linux” În acest articol, implementarea rețelei este luată în considerare la nivelul codului programului.

  • "indent - un program pentru formatarea automată a surselor C"
  • Pascal și Delphi

  • Joost van der Sluis, traducere de A. Tarasov, Free Pascal (FPC) versiunea 2.2.0 a fost lansat recent. Acest compilator Pascal este unul dintre cele mai remarcabile compilatoare open source astăzi. În fiecare zi, tot mai mulți programatori învață despre FPC și încep să-și dezvolte aplicațiile în Object Pascal. Acest lucru este favorizat în special de dezvoltarea lui Lazarus, un mediu de dezvoltare grafică pentru FPC, care conține un set extins de instrumente pentru dezvoltarea aplicațiilor de interfață grafică cu utilizatorul (GUI).

  • Rudyuk S.A., "Lazarus - Delphi-cross-platform. Programare pentru oameni liberi" Scopul principal al acestei cărți este de a arăta posibilitatea creării de produse comerciale profesionale în Pascal. Aceste produse software trebuie să funcționeze nu numai în sisteme de operare plătite (de exemplu, Windows), ci și în sisteme de operare gratuite (de exemplu, FreeBSD, Linux). Este foarte important ca dezvoltarea programului să se facă fără a încălca acordurile de licență și fără a cumpăra software scump (iar pentru profesioniști aceasta este una dintre cele mai importante probleme din timpul nostru).

  • Mihail Prodan, „Lazăr – introducere în Delphi liber”

  • Anatoly Kamynin, „Free Pascal: software gratuit pentru oameni liberi” Conversația noastră se va concentra pe Free Pascal Compiler (FPC), care este distribuit de un grup de dezvoltatori sub licență publică GNU.

  • Andrey Borovsky, „X-Window: ferestre neclasificate” Acest articol va vorbi despre lucrul cu X-Window folosind Kylix. Ne vom uita la funcții utile precum generarea de capturi de ecran ale ferestrelor și controalelor individuale, căutarea unei ferestre în ierarhia ferestrelor X-Window și altele.

  • Marius Popa Adrian, traducere: Ruslan Denisenko, „Instalarea mediului de dezvoltare free pascal sub Ubuntu Linux” Ghid pas cu pas în limba rusă pentru instalarea compilatorului pascal gratuit și a mediului de dezvoltare lazarus de tip delphi pe Ubuntu Linux.

  • Serdtsev A.A., „Remedierea problemelor de compilare în Borland Kylix 3 cu glibc 2.3.2”

  • Ilya Avvakumov, „GNU GDB Debugger” Acest articol descrie acele comenzi GDB care permit depanarea comodă pas cu pas a programelor scrise în Free Pascal.

  • A. P. Polishchuk, S. A. Semerikov, „Programarea în X Window folosind Free Pascal”. O carte întreagă din care poți învăța nu doar despre programare, ci și despre dispozitivul X Window (de unde încep autorii)! În general, site-ul este dedicat limbajului Free Pascal, așa că tuturor celor interesați de programare pentru Linux este recomandat să caute și aici.

  • I. L. Shikhalev, „Ce este Free Pascal și cu ce se mănâncă?” Prezentare generală a compilatorului Free Pascal, capabilitățile, caracteristicile sale etc.

  • „Tutorial Kylix” O serie de articole despre mediul de programare Pascal pentru Linux.


  • Arseny Chebotarev, „Aplicații pentru Linux - opțiunea Kylix”

  • Goblin M., „Tutorial Kylix” Descrie instalarea Kylix, lucrul cu baze de date prin dbExpress etc.

  • Recenzie Kylix (Delphi pentru Linux) Lansat recent de Borland, produsul Kylix (Delphi pentru Linux) a stârnit un mare interes în rândul dezvoltatorilor. În stadiul de dezvoltare înainte de lansare, opiniile despre Kylix erau uneori diametral opuse, de la exaltat de entuziasm la agresiv negativ. Autorul a încercat în acest articol să-și exprime părerea despre acest produs.

  • Lumea lui Borland Kylix Acest site este dedicat programării în mediul Borland Kylix, un mediu de dezvoltare rapidă a aplicațiilor pentru sistemul de operare Linux.

  • Mihail Golovanov Seria de articole. Tutorial Kylix. 1. Instalare Deci, sa întâmplat, trecând pe lângă o tarabă cu un CD, am văzut un compact cu o etichetă albastră și inscripția magică Kylix. Sau mai bine zis, erau două discuri și ambele au fost imediat achiziționate. Am încercat să instalez Kylix sub RedHat Linux 7.0...

  • Mihail Golovanov Seria de articole. Tutorial Kylix. 2. Lucrul cu bazele de date prin dbExpress Borland a implementat un nou motor pentru lucrul cu baza de date dbExpress în Kylix și Delphi 6.


  • M.Goblin Seria de articole. Tutorial Kylix. 2. Lucrul cu baze de date prin dbExpress. Primii pasi.

  • Vyacheslav Belyaev, Borland Kylix - instalare și prima cunoștință Prima cunoștință cu Borland Kylix - un mediu de programare pentru Linux [Publicat 06/01/2001]

  • Peter Coffee, „Linux to the Masses” Revizuirea noului sistem de dezvoltare a aplicațiilor de la Borland - Kylix, care amintește foarte mult de Borland Delphi - un mediu orientat pe obiecte bazat pe limbajul Pascal.
  • limbajul Java

  • Nouă resursă de știri în limba rusă despre tehnologiile Java - „javatech.info”.

  • Brian Goetz, „Teoria și practica Java: tehnici de proiectare sigură”

  • Sergey Bezdenezhnykh, „Programarea în Java folosind GTK+” În acest articol veți afla despre instrumentele necesare pentru a crea aplicații în Java pentru Gtk+ și Gnome.

  • Maxim Bobachenko, „Introducere în Java Server Faces” Java Server Faces (JSF) este o tehnologie bazată pe componente, bazată pe evenimente, pentru crearea de aplicații web în Java.

  • A. Fedotov, „Monitorizarea utilizării memoriei cu Java SE 5”

  • „Auto-asamblare a JAVA(TM) 2 SE v.1.4.1 din surse de la sun.com”


  • Matthias Kalle Dalheimer, traducere: Andi Peredri, „Comparing Qt and Java”

  • Lozoviuk A. Istoria Java. Cum a început revoluția Internetului. Pentru a prevedea viitorul, trebuie să înțelegeți trecutul. Istoria proiectului Java este interesantă și instructivă în sine. Oferă o înțelegere a ceea ce se poate aștepta în viitor. Totul în lume se dezvoltă conform acelorași legi, iar industria calculatoarelor nu face excepție.

  • Sponge Bob, „Java vs. NET – o viziune subiectivă”



  • Java2 deschide calea către Linux ( Michael Wizard, Dana Gardner, Paul Creel, COMPUTERWORLD RUSSIA #12, 99) Sun Microsystems Corporation, împreună cu echipa independentă Linux Blackdown Porting, a creat o versiune Linux a kitului de dezvoltare Java2 (Java2DK).


  • S.B.Dunaev. Acces la baze de date din programe Java și probleme de rusificare
  • limbaj JavaScript

  • Peter Seebach, „Prezentarea ECMAscript” ECMAscript (cunoscut în mod popular sub numele de JavaScript) are o istorie destul de interesantă, deoarece a început ca o abatere de la standarde.


  • P. Hramtsov. O introducere practică în programarea JavaScript

  • Grafică dinamică în servlet-uri Java. Cum se creează un contor grafic de vizite? O diagramă care arată încărcarea canalului către furnizor sau numărul de litere din coadă? Într-un cuvânt, cum se generează o imagine dinamic pe baza solicitării utilizatorului? Articolul oferă opțiuni pentru rezolvarea acestei probleme...

  • Melnikov M. „JavaScript: funcții utile”
    Să continuăm conversația despre utilizarea scripturilor pe paginile web. Și probabil că vom începe prin a scrie câteva funcții care ne vor fi foarte utile mai târziu.

  • Melnikov M. JavaScript și modelul obiect
    Limbajele de scripting au dat într-un fel lumea peste cap și datorită lor a apărut DHTML, care vă permite să faceți aproape orice cu o pagină. După cum știți, doar două limbi pretind că sunt câștigătoare în browser. Acesta este VBScript - un subset de Visual Basic și JavaScript. Acesta este ultimul cu care ne vom ocupa, deoarece este cel mai universal.
  • Perl

  • N. Anisimova, „Ghid de utilizare a modulului Perl PDF::API2 pentru începători” Revizuiește materialul care este destinat să ajute programatorii Perl în munca practică la crearea documentelor PDF.


  • Allan Peda, „Crearea unui sistem de vot în Perl/CGI”

  • „Kiev Perl User Group” Din păcate, nu există multe resurse live pentru Perl pe Internet și RuNet, dar poate că va fi util cuiva. Mai multe materiale interesante au fost deja publicate acolo...



  • Xavier Calbet, tradus de A. Tarasov, PDL este o extensie a limbajului Perl pentru calcule numerice și trasare. Acest articol va construi setul Mandelbrot folosind PDL și alte sisteme de calcul numeric. S-au făcut comparații calitative și de performanță.



  • „Traduceri ale documentației perl în format pdf”, cum ar fi: carte de referință pentru Perl:DBI pentru MySQL, documentație pentru modulul CGI.pm, tutorial regexp, traducerea documentației pentru modulul Libwww-perl, specificația completă a DBI și DBD: :mysql.

  • Arseny Chebotarev, „Perl: o prezentare completă cu exemple”

  • Roman Imankulov, „Despre diamantele sub picioarele noastre” Câteva despre Perl și Makefile.

  • (20/12/2003) Site nou - "Perl 6" Link-uri și note utile despre utilizarea Perl 6 și a mașinii virtuale Parrot. Un fel de jurnal pentru invatarea Perl 6....

  • V. Maksimenko, „Implementarea testului Turing în Perl” Articolul descrie o metodă de protecție împotriva completării și trimiterii automate a unui formular de pe un site web prin generarea dinamică a unei imagini cu un cod și confirmarea corectitudinii introducerii.

  • Sean M. Burke, Traducere: Dmitry Nikolaev, „Web Basics with LWP” LWP (prescurtare de la „Library for WWW in Perl”) este un grup foarte popular de module de limbaj Perl pentru accesarea datelor de pe Internet.

  • Dave Gross, traducere de Alex Ten. „Schimbarea comportamentului unui hash folosind funcția de legătură” „Din experiența mea, hash-ul este cea mai utilă structură de date încorporată în Perl.”

  • „Crearea aplicațiilor server în PERL” Curs de formare accelerată.

  • O selecție de materiale în limbajul Perl de pe același „site”


  • Guido Socher, traducere în rusă: K. Pukhlyakov, „Procesarea codului HTML în Perl, HTML::TagReader”

  • „Larry Wall on Perl 6” Cu permisiunea lui Larry Wall, inventatorul Perl, vi se oferă traduceri ale articolelor despre Perl 6 din serie.

  • Stephen Wilhelm, traducere de Dmitriy A. Kuvshinov, „Descrierea lui Gtk-Perl” Traducatorul cere ajutor pentru finalizarea traducerii. Dacă aveți dorința și oportunitatea - conectați-vă!

  • S. Bogomolov, Perl (instalare)

  • Alexandru Smyslovski. Perl pe care toată lumea îl va aprecia. Limbajul Perl a fost creat în 1986 și a fost inițial destinat procesării textului. De aici și numele său - Practical Extraction and Report Language. Dar anii au trecut, iar Perl este acum folosit pentru a rezolva o gamă mult mai largă de probleme. Este unul dintre cele mai populare limbi pentru scrierea de scripturi CGI, motiv pentru care popularitatea sa a crescut vertiginos în ultimii ani. Sa ne intalnim!

  • ru.Perl Întrebări frecvente Pavel Ammosov, Artur Penttinen, Mikhail Polyakov, Grigory Strokin Copii

  • V. Maslov. „Introducere în Perl”
    Copie

  • Randal Schwartz, Tom Christiansen „Learning Perl” Traducere din engleză de C.M. Timacheva

  • Manual Perl 5.003 în rezumat rus. De la simplu la complex. Lansarea programelor Pearl. Sintaxă. Variabile încorporate. Șabloane. Operatori și priorități. Funcții încorporate. Subrutine. Formate de raport. Depanare.



  • Igor Yarovinsky, „Crearea de interfețe grafice în Perl+Tk”.


  • Ghid de referință Perl 5. Tutorial Perl 5 de Johan Vromans. (în limba engleză).

  • PERL - Extracție practică și limbaj de raportare. Pentru a facilita accesul, manualul Perl este împărțit în mai multe secțiuni. Perl împărtășește unele dintre caracteristicile C, sed, awk și sh, astfel încât oamenii familiarizați cu acele limbi nu ar trebui să aibă dificultăți cu el. (în limba engleză).

  • Ben Okopnik, Learning Pearl, partea 1

  • Ben Okopnik, Learning Perl, partea 2

  • Ben Okopnik, Learning Perl. Partea 4.

  • „Perl One-Liner al lunii: aprilie este luna crudă”

  • Ben Okopnik, Traducere: Pavel Sokolov, „Perl One-liner-ul lunii: O aventură cu fișiere denumite incorect”

  • Ben Okopnik, Traducere: Pavel Sokolov, „Perl One-Liner of the Month: The Case of Matching UIDs”

  • Ben Okopnik, Traducere: Pavel Sokolov, „Perl One-liner of the Month: O Adventure with Arbitrary Archives”.

  • Mark Nielsen, Curățare garantată a hard disk-ului cu Perl

  • Mark Nielsen, Folosind Perl și PostgreSQL împreună

  • Cum să „reînvie” un script Perl/CGI Acest articol este menit să ajute la o „pornire rapidă” pentru cei care au decis să construiască aplicații web „cu propriile mâini” și au ales limbajul de programare Perl (Practical Electric Rubbish Lister) ca limbaj mijloace pentru crearea lor.

  • Crearea unui index pentru site. Descrie crearea unui script Perl care scanează toate paginile unui site pentru meta descriere și meta cuvinte cheie și compilează tabelul final - un index sau index al subiectului.


  • Tom Christiansen, Nathan Torkington, Perl: Biblioteca unui programator Cartea conține o colecție extinsă de moduri de a rezolva majoritatea problemelor care apar atunci când se lucrează cu limbajul Perl. Sunt acoperite o gamă largă de subiecte: de la elementele de bază ale tehnicilor de programare până la subtilități profesionale, de la manipularea șirurilor, numerelor și matricelor până la crearea bazelor de date SQL, de la scripturi CGI și aplicații Internet până la dezvoltarea unor sisteme serioase client-server.

  • WebScript.ru: scripturi și programare pentru web (PHP, Perl). articole Perl.

  • Dmitry Lyalyuev, „Trei litere în Perl” Ne gândim să scriem un script în acest limbaj de programare puternic pentru crearea și trimiterea de scrisori.

  • Erizhokov A.A., PCRE Articol despre un set de funcții pentru a suporta expresii regulate folosind sintaxa Perl.

  • Stas Bekman, „De ce mod_perl?” Traducere: Zakharova Inga

  • Stas Bekman, „mod_perl în 30 de minute. Partea I” Traducere: Inga Zakharova

  • Misko D. Cum să „reînvie” un script Perl/CGI
    Acest articol are scopul de a ajuta la obținerea unui „pornire rapidă” pentru cei care au decis să construiască aplicații web „cu propriile mâini” și au ales limbajul de programare Perl (Practical Electric Rubbish Lister) ca mijloc de creare a acestora.

  • „Exploarea modulelor Perl, partea 1. Crearea grafică din mers folosind GD”

  • Pradeep Padala, traducere de Alexey Cheglyakov, „Exploarea modulelor Perl, partea 2: Desenarea diagramelor folosind GD::Graph”

  • Arseny Chebotarev, „Perl inutil și teoria generală a îmbunătățirii lumii” Pe reversul codului sursă cu exemple în limbajul Perl.

  • Pavel Golubev, „Crearea de site-uri cu capacitatea de a imprima PDF folosind exemplul PDF::API2” Demonstrarea capabilităților modulului Perl PDF::API2 pentru crearea de rapoarte PDF.
  • PHP

  • „Probleme tipice de securitate ale scripturilor PHP în exemple” Prezentarea folosește în mod clar exemple simple în scripturile PHP populare pentru a vorbi despre greșelile tipice ale programatorilor PHP care duc la probleme serioase de securitate.

  • Sergej Ermakov, PHP ca FastCGI și distribuirea drepturilor

  • Robert Bradley, „Cum să adăugați suport internațional la aplicațiile dvs. PHP”

  • „Dezvăluirea căii: călătoria contează” Despre cum sunt piratate scripturile PHP.

  • Învățarea PHP, Partea 3: Autentificare, lucru cu fluxuri de date, obiecte și excepții
    În acest tutorial, veți învăța cum să utilizați PHP pentru a crea o aplicație activată pentru fluxul de lucru, veți afla despre autentificarea HTTP, fluxurile de date, crearea obiectelor și gestionarea excepțiilor.

  • Învățarea PHP, Partea 2: Încărcarea fișierelor pe server și utilizarea XML pentru a stoca informații despre fișiere
    În acest tutorial, veți învăța cum să utilizați PHP pentru a crea o aplicație care acceptă fluxul de lucru.

  • Învățarea PHP, partea 1: Pagina de înregistrare, formulare și interacțiunea cu bazele de date
    În acest tutorial, veți învăța cum să utilizați PHP pentru a crea o aplicație de bază pentru fluxul de lucru, pentru a construi pagini PHP folosind formulare HTML și pentru a accesa baze de date.

  • sesiuni PHP. Partea 4 (părțile următoare și anterioare pot fi citite)

  • Boyko Sergey, „Propriul tău CMS în PHP. Partea 1”

  • Harry Fuecks, traducere: Mullin Sergey, Kuzma Feskov, „Caching in PHP”

  • John Lim, traducere de Kuzma Feskov, „HOWTO pentru optimizarea PHP”

  • Andi Gutmans, Stig Bakken și Derick Rethans, traducere - Vadim Kryuchkov, „Ce este nou în PHP 5?”

  • Feskov Kuzma, „Great possibilities of a small site” (Lucrul cu arhivele Zip în PHP).

  • Traducere: Edgar Mkrtchyan, „PEAR HTML_QuickForm: A Guide for Beginners” Iată o introducere simplă la HTML_QuickForm - una dintre părțile PEAR (PHP Extension and Application Repository).

  • Sterling Hughes, traducere: Dmitry Korolenko, „21 PHP Programmer Mistakes” PHP este foarte ușor de învățat. Acest lucru atrage mulți oameni; cu toate acestea, în ciuda aparentei sale simplități, nu este atât de ușor să înveți să folosești acest limbaj corect și eficient.

  • Sterling Hughes, „21 de greșeli ale programatorului PHP”.
    „Partea I
    „Partea a II-a
    „Partea a III-a „Top 21 PHP progamming mistakes” de Sterling Hughes, 14 ianuarie 2001 http://www.zend.com/zend/art/mistake2.php, Traducere: Danil Mironov.

  • „Configurați în siguranță PHP pentru găzduire partajată pe UNIX”

  • „Liste de fișiere” Discută despre cum să efectuați operațiuni de bază cu grupuri de fișiere (citirea conținutului unui folder, citirea recursivă a unui folder, citirea recursivă a unui folder pentru anumite tipuri de fișiere și tipărirea unui arbore de directoare) în PHP.

  • „PHP Inside” este o revistă electronică (PDF) în limba rusă destinată programatorilor web care utilizează PHP în dezvoltarea lor.

  • Monte Ohrt, Andrei Zmievski, Sergei Suslenkov, 21.05.2004, „Smarty - un motor de șablon în timp de compilare” În ciuda faptului că PHP este numit „limbaj încorporat în HTML”, după ce a scris mai multe proiecte în care PHP și HTML sunt amestecați , mulți înțeleg că separarea formei și conținutului este un lucru bun!


  • David Lechnyr, traducere: Andrey Kiselev, „Securitate folosind matrice superglobale în PHP”



  • http://phpclub.unet.ru/ Clubul dezvoltatorilor PHP și MySQL. Articole, recenzii, liste de corespondență, documentație rusă despre exemple de cod PHP și MySQL. Informații utile despre crearea de magazine online, portaluri, baze de date WWW. Există dezvoltări gata făcute (gratuite).


  • D. Svirepchuk, „SONDAJ PERSONAL” Despre scriptul PHP pentru crearea unui sondaj pe site.

  • Denis Migachev, „PHP și MySQL. Partea 1. Lucru direct cu MySQL”

  • Alexander Netkachev, „Alternativă la DOM XML în PHP (PHP4)”, 15.04.2004.

  • Alexander Netkachev, „Tranziția la PHP5” În recenzia mea, am încercat să ofer cea mai completă imagine a modificărilor din PHP5 pe cât posibil.

  • Alexander Netkachev, „Scriem cod PHP care este rezistent la erori”
    „Scriem cod PHP care este rezistent la erori”

  • S. Tarasenko. Lucrul cu cookie-uri în PHP.

  • A. Orlov PHP: secretele interactivitatii

  • Ambersky R., „Scriptul pentru afișarea bannerelor în PHP4” Scripturile pentru afișarea bannerelor prezentate în acest articol sunt destul de elementare. Descrierile bannerelor, numărul de clicuri și afișări sunt stocate într-un fișier text, deci MySQL nu este necesar.

  • HTTP Instalarea protecției pe o pagină folosind MySQL și PHP. Acesta este un tutorial conceput pentru a vă arăta elementele de bază ale securizării paginilor dvs. web folosind autentificarea HTTP. În loc de metoda tradițională .htaccess (server Apache), vom folosi MySQL pentru a stoca datele utilizatorilor și parolele acestora. Voi încerca să explic pe cât posibil ceea ce, după părerea mea, este necesar pentru ca un începător să învețe MySQL și PHP.

  • Introducere despre PHP și MySQL (fișier pdf) Această lucrare nu are ca scop înlocuirea manualelor despre PHP și MySQL. Acest manual vă va ajuta pur și simplu să faceți primii pași în învățarea PHP și cum să interacționați cu baza de date MySQL.

  • Adam Trachtenberg și David Sklar (8/3/99) Traducere de N.V. Kostromina. (totul într-un singur fișier - ).

  • Osipov Alexey, „Colectarea statisticilor în PHP” Fiecare webmaster dorește să știe măcar puțin despre vizitatorii săi. Acest articol vă arată cum să creați cu ușurință un sistem simplu de colectare a datelor despre vizitatori.

  • Stig Saeter Bakken și colab., „Ghidul PHP”

  • T. Rathschiller, T. Gerken „Accesul la baze de date folosind PHP” Capitolul din cartea „PHP4: Dezvoltarea aplicațiilor web. Biblioteca programatorului (+CD)”

  • Shawn Wallace Introducere în traducerea PHP: Mike J.K. ( [email protected])

  • S. Losev. PHP și MySQL sunt instrumente de lucru pentru constructorii de site-uri web.

  • S. Losev. Instrumentele de lucru ale constructorului de site-uri web.
    Acest articol dintr-o serie dedicată „construirii site-ului” modern vorbește despre popularul sistem MySQL și limbajul de programare PHP, cum pot fi utilizate pentru a rezolva problemele cu care se confruntă orice dezvoltator de site-uri de internet - pregătirea și afișarea știrilor, introducerea și afișarea informațiilor text, căutare pe site, organizare de servicii suplimentare („recunoașterea” vizitatorului, forumuri, sondaje etc.). Ambele instrumente sunt gratuite și furnizate de toți furnizorii de găzduire fără excepție.
    Partea 1. Prima cunoaștere cu PHP și MySQL
    Partea 2. Există știri peste tot, dar cum să le introduceți și să le afișați?
    Partea 3. Articole pentru site
    Partea 4. Servicii suplimentare

  • Tehnici de programare securizată a aplicațiilor web în PHP Scopul acestui articol este de a arăta câteva tehnici de protejare a aplicațiilor web precum chat-urile WWW, cărți de oaspeți, forumuri web și alte aplicații de acest gen... Copiere.

  • Bryan Brunton, Trading Empires: programarea propriului univers în PHP

  • WebScript.ru: scripturi și programare pentru web (PHP, Perl). Articole despre PHP.

  • Ilyin S. Religion PHP PHP este un limbaj interpretat pentru crearea de pagini Web active. Este foarte asemănător cu Perl și ASP, dar este un ordin de mărime mai convenabil decât ele. În prezent, Apache cu PHP este cel mai popular server web.

  • A.Kukharchik RHP pentru toată lumea!




  • Denis Kolisnichenko, Review of PHP network functions (Original: http://www.softterra.ru/review/program/16851/) Publicat: 03/21/2002

  • Andrei Goncharenko,