Ubuntu'da (Linux) C (C) ile Programlama. Giriiş. Linux için görsel programlama ortamları

  • 14.05.2019

Herkese selam! Bu, kuracağımız C programlama ile ilgili ilk makaledir. test editörü ve C dilinin tarihi, özellikleri, avantajları ve dezavantajları hakkında biraz bilgi edinin.

C dili 2012'de 40 yaşına girdi. C, C++, Java, Perl, C#, JavaScript ve benzerlerinin atası oldu. Bu en çok popüler dil Dünyada programlama. C, prosedürel bir programlama dilidir. Kod dosyaları .c uzantısına ve başlık dosyaları .h uzantısına sahiptir. C'de Linux, Windows için programlayabilirsiniz, Windows telefon, Mac OS, iOS, Android vb. Herhangi bir programcı, C programlama dilinde yetkin olmalıdır. Programcı olmak için sadece kitap ve makale okumak yeterli değildir. Ayrıca pratik yapmanız gerekiyor. Bu nedenle derslerimizi mutlaka örneklerle ele alacağız. Herhangi bir sorunuz varsa, yorumlarda sorabilirsiniz. Bu kılavuz da kullanılabilir Windows kullanıcıları ve MacOS. Diğer işletim sistemlerinin kullanıcıları örneğin NetBeans'i derleyici olarak kullanabilir (NetBeans yalnızca C'yi değil aynı zamanda Java, PHP, C++, Python ve Ruby'yi de destekler)

Ayar

Programlamak için bir metin düzenleyiciye (gedit) ve bir derleyiciye (gcc - Ubuntu'ya dahildir) ihtiyacınız olacak. Derleyicinin yapılandırılmasına gerek yoktur, ancak şimdi metin düzenleyiciyi yapılandıracağız.

açık Düzenlemek -> Ayarlar. Aşağıdaki öğeler için kutuları işaretleyin:

  • Satır numaralarını göster;
  • Geçerli satırı vurgulayın;
  • Eşleştirilmiş parantezleri vurgulayın;
  • Temayı Yazı Tipleri ve Renkler sekmesinde de değiştirebilirsiniz.

gedit ile yapılan birkaç "dolandırıcılık", bir metin düzenleyiciyle çalışmayı kolaylaştıracaktır. Ve gelecekte bazı IDE'leri (entegrasyon geliştirme ortamı) ele alacağız.

Bu makale iki tür okuyucuya yöneliktir. Birincisi, bunlar MS Windows altında programlama deneyimi olan, ancak GNU/Linux altında böyle bir deneyimi olmayan kişilerdir. İkincisi, bunlar hiç programlama deneyimi olmayan insanlar. Bununla birlikte, okuyucunun genel olarak yaygın programlama terminolojisine aşina olduğunu ve örneğin "program", "fonksiyon", "derleyici" veya "hata ayıklama"nın ne olduğunu açıklamaya gerek olmadığını varsayıyorum.

Geliştirme araçları

En çok GNU/Linux'a özgü araçlarla geliştirmeye bakacağım. Bunlar şunları içerir:

    C programlama dili

    bash komut kabuğu

    Metin editörleri Vim ve Emacs

    GCC Derleyici

    GDB Hata Ayıklayıcı

    GNU, proje oluşturma yardımcı programı yapar

    Git sürüm kontrol sistemi

    X11 pencere sistemi

Bu fonların seçimi bir dogma değildir. Yukarıdakilerin her biri transfer edilen fonlar istenirse değiştirilebilir. Ancak, genellikle "Çarşamba" gibi ifadeler altında Linux geliştirme” bu özel araç setini ifade eder.

Programlama dilleri

GNU/Linux için en "yerel" programlama dili C'dir. Bunun nedeni aşağıdaki faktörlerdir:

    GNU/Linux birçok fikri ödünç alır (pratik olarak ideoloji) işletim sistemi UNIX;

    ameliyathane UNIX sistemi C ile yazılmıştır (aslında bu dil özellikle bu işletim sistemini yazmak için oluşturulmuştur);

    Sırasıyla, Linux çekirdeği ve GNU sistem ortamı da C ile yazılmıştır.

Aşağıda C dilini kullanarak geliştirmeyi ele alacağım, ancak bu seçim bir dogma değildir. GNU/Linux geliştirme için diğer popüler diller C++, Python, Perl'dir. Tabii ki, başka herhangi bir dil de kullanılabilir.

Geliştirme ortamı

Son yirmi yılda, sözde. IDE - Entegre Geliştirme Ortamları. Bu ortam bir metin düzenleyici, derleyici, hata ayıklayıcı, proje oluşturma araçları ve daha fazlasını içerir. GNU/Linux altında bu tür ortamlar vardır (en popülerleri Eclipse, NetBeans, IDEA, KDevelop, Anjuta'dır). Bununla birlikte, UNIX benzeri sistemler için geliştirme tarihi, IDE'lerin yalnızca tek değil, aynı zamanda en yaygın olanı olduğunu göstermektedir. etkili araç gelişim. Pratikte, “en çok nedir” sorusunun doğru cevabı en iyi IDE GNU/Linux altında", "GNU/Linux bir IDE'dir".

IDE olmadan büyük bir proje geliştirmenin imkansız olduğu fikrini sık sık bulabilirsiniz. Bu görüş kolayca reddedilir. UNIX'in ilk sürümleri Vim'de bile yazılmamıştı (o zamanlar yoktu), ancak Ed'de. Bu, aynı anda yalnızca bir metin satırını düzenleyebileceğiniz, "satır satır" olarak adlandırılan bir metin düzenleyicidir. Dosyanın tamamı ekranda görüntülenmiyor. UNIX durumunda, başka türlü olamazdı - geliştiricilerin ekranları yoktu ve sistemle iletişim teletipler kullanılarak gerçekleştirildi. Modern Linux çekirdeği öncelikle Emacs ve Vim editörlerinde yazılmıştır.

Birçok UNIX yardımcı programı "varsayılan metin düzenleyicisini" çağırır. Varsayılan metin düzenleyiciyi başlatan komut, Çevre değişkeni$EDİTÖR. Bazı yardımcı programlar önce $VISUAL değişkenine ve yalnızca ayarlanmamışsa $EDITOR değişkenine bakar. Bu tarihsel bir davranıştır: eski bilgisayarlarda genellikle bağlı herhangi bir ekran yoktu, sadece bir teletype vardı, bu nedenle bir ekran (görsel) düzenleyiciyi başlatmanın bir anlamı yoktu. Modern dağıtımlar genellikle varsayılan olarak EDITOR=vi veya EDITOR=nano şeklindedir. Bunun gibi bir komut için farklı bir düzenleyicinin kullanımını belirtebilirsiniz:

EDİTÖR=emacs bazı komut

Kullanmak istenen düzenleyici her zaman varsayılan olarak, ~/.profile dosyasına böyle bir satır eklemeniz gerekir.

dışa aktar EDİTÖR=emacs

Tarihsel olarak, programcılar için tek "gerçek" metin editörleri Vim ve Emacs'tır (sadece en uzun geliştirme geçmişine sahip oldukları gerçeğinden dolayı). metin editörleri programcılar için). Editörlerin geri kalanı yetişme konumunda.

komut kabuğu

Kabuk (veya komut yorumlayıcı), bazı durumlarda kullanıcıdan komutları kabul eden bir programdır. sade dil programlamak ve bunları gerçekleştirmek. Çoğu komut aynı adı taşıyan programları çalıştırır. Bireysel komutlar, kabuk programlama dili yapılarıdır.

POSIX standardı bir açıklama içerir minimum set kabuk tarafından sağlanan yetenekler. Gerçekten kullanılan mermiler, kural olarak daha fazla seçenek sunar.

İşletim sistemi aileleri DOS ve Windows bazı özellikleri ödünç aldı komut kabuğu Bununla birlikte, UNIX'ten yazarları, COMMAND.COM ve cmd.exe'nin işlevselliğinin büyük ölçüde kısıtlandığı için önemli basitleştirmeler yaptı. PowerShell oldukça eşittir, ancak önemli ölçüde farklı bir şekilde çalışır.

Bu makalenin amaçları doğrultusunda kendimi komut satırını kullanmakla sınırlayacağım. kabuklar(en yaygın ve varsayılan olarak çoğu dağıtımda kullanılır) derleyiciyi ve diğer geliştirme araçlarını çalıştırmak için. iyi inceleme Komut kabuğunun kullanımı, örneğin ünlü kitapta bulunabilir. .

belgeler

GNU/Linux'taki tüm geliştirme araçları ve kitaplıkları genellikle oldukça iyi belgelenmiştir. Geleneksel olarak, dokümantasyon için özel bir format kullanılır ve onu görüntülemek için bir yardımcı program man . Sistemdeki belgeler birkaç bölüme ayrılmıştır:

    Kullanıcı komutları (ls, gcc veya man gibi)

    Sistem çağrıları - OS çekirdek API'si

    Kütüphane Fonksiyonları

    Sürücüler, vb.

    Dosya formatları

    Oyunlar vb.

    Çeşitli alt sistemlere genel bakış

    Sistem yönetimi için kullanılan komutlar

Bir belge bölümünü adıyla çağırmak için, man komutunu (örneğin, man ls) çağırırken bu adı belirtmelisiniz. Bazen bölümler aynı isim dokümantasyon belgelerinin çeşitli bölümlerinde aynı anda mevcuttur. Man çağırırken belirli bir bölüm belirtebilirsiniz (örneğin, man 3 printf).

Hakkında Daha Fazla Bilgi yardım sistemi adam adam adama bak.

GNU sistem ortamı yardımcı programları, dokümantasyon için genellikle bilgi biçimini kullanır. Örneğin Coreutils bilgisine bakın.

Derleyici

Artık aşağıdakilerle az çok uyumlu birçok C derleyicisi var. farklı standartlar. Ancak şimdilik, GNU Derleyiciler Koleksiyonunun (GCC) bir parçası olan C derleyicisi, GNU/Linux ortamında en uygun olanı olmaya devam etmektedir. Bu derleyici, C standardına ek olarak, standardın bir dizi uzantısını destekler. Bu uzantılar özellikle Linux çekirdek kaynaklarında yaygın olarak kullanılmaktadır. AT son zamanlar Linux çekirdeğini derleyebilen derleyiciler görünür (örneğin, llvm-clang veya EKO).

GCC derleyicisi, aşağıdaki gibi bir komutla bir komut kabuğundan çalıştırılır:

gcc programı.c

program.c adı nerede giriş dosyası. Ayrıca, tarafından POSIX standardı, derleyici cc program.c komutuyla çalıştırılabilir (cc, "C derleyicisi" anlamına gelir).

Normal başlangıçta, derleyici, çalıştırılabilir dosya. Varsayılan olarak, çıktı dosyası a.out olarak adlandırılır (bu ad eski UNIX sürümleri). -o derleyici seçeneği ile farklı bir isim verilebilir, örneğin,

gcc -o program programı.c

Birkaç modülden bir program kurarken, derleyici girdi olarak birkaç kaynak dosya veya nesne kodu dosyası beslenebilir, örneğin,

gcc -o programı ana.c modül1.o modül2.o ...

Sadece birini derlemek için Orijinal dosya nesne koduna (çalıştırılabilir bir dosya oluşturmaya çalışmadan), aşağıdaki gibi bir komut vermeniz gerekir.

(varsayılan çıktı dosyası adı module.o olacaktır).

Bir program oluşturmak için genellikle kütüphanelere ihtiyaç vardır. Linux'ta kullanılan iki tür kitaplık vardır: statik bağlantı ve dinamik bağlantı için kitaplıklar. Statik bağlama ile, program oluşturulduğunda tüm kitaplık yürütülebilir dosyaya dahil edilir. saat dinamik bağlantı Yürütülebilir dosyaya yalnızca dinamik kitaplığın adı girilir ve program başlatıldığında bu dosyanın aranması ve bağlanması gerçekleşir.

UNIX benzeri sistemlerdeki statik kitaplık, bir dizi nesne dosyası içeren bir arşivdir (eski ar biçimindedir). Böyle bir arşiv, aşağıdaki gibi bir komutla oluşturulur.

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

Kitaplık dosya adları geleneksel olarak lib önekiyle başlar.

Dinamik olarak yüklenen bir kitaplık, bir nesne dosyasıdır özel biçim(için tasarlandı dinamik yükleme). Böyle bir kitaplık, aşağıdaki gibi bir komutla oluşturulur.

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

Bir program oluştururken bir kitaplık kullanmak için, onu derleyiciye -l seçeneğini kullanarak belirtmeniz gerekir, örneğin

gcc -o programı -lm programı.c

(burada libm.so kitaplık dosyası kullanılacaktır, derleyici varsayılan olarak lib önekini değiştirir). Varsayılan olarak, derleyici dinamik kitaplıkları kullanan bir program oluşturur. Kitaplıkların statik sürümlerini kullanmak istiyorsanız, derleyiciye -static seçeneğini belirtmeniz gerekir.

Detaylı bilgi gcc seçenekleri için man gcc'ye bakın.

Selam Dünya!

"Merhaba dünya!" dizesini görüntüleyen bir program yazarak bir programlama dili çalışmasına başlama geleneğinin, Kernighan ve Ritchie'nin "C Dili" kitabından Gittiğine inanılıyor. . C dili söz konusu olduğunda, bu program şöyle görünür: Aşağıdaki şekilde:

#Dahil etmek

int ana(int argc, char * argv) (
baskı("Selam Dünya! \n");
dönüş 0 ;
}

Bu programı çalıştırmak için, bu metnin merhaba.c adlı bir dosyaya yazılması ve bu dosyanın bulunduğu dizinden aşağıdaki gibi bir komut verilmesi gerekir.

gcc -o merhaba merhaba.c

Ancak bu kadar basit bir program olması durumunda şu komutu vermeniz yeterlidir.

(Bu iki komutun neden aynı şekilde çalıştığını aşağıda açıklayacağım). Sonuç olarak, aynı dizinde merhaba adlı bir yürütülebilir dosya görünecektir. komutu ile çalıştırabilirsiniz.

Montaj sırası

Derleyicinin tam olarak ne yaptığına daha yakından bakalım. C derleyicisinin prosedürü gelenekseldir ve diğer bazı dillerin derleyicileri tarafından kullanılır.

Girdi olarak, derleyici Genel dava kaynak dosyaları kümesi. Gerçek derlemeye başlamadan önce, bu dosyalar sözde tarafından işlenir. önişlemci (program cpp). Ana işlev bu program - #include biçimindeki yönergelerin yürütülmesi. Böyle bir yönergeyle karşılaşıldığında, önişlemci içeriği ekler. belirtilen dosya(içinde bu durum, stdio.h) bu direktif yerine. Önişlemci birkaç yönergeyi daha anlıyor, ancak şimdi bunlar üzerinde durmayacağım.

Önişlemciden sonra asıl derleme gerçekleştirilir. Bu aşamada kaynak dosyalardan sözde. nesne dosyaları. Bunlar yürütülebilir dosyayı içeren dosyalardır. makine kodu ama henüz fırlatmaya hazır değil. Eksik olan en önemli şey, denilen kütüphane fonksiyonlarının adresleridir. Örneğin, kod printf fonksiyonları() libc kitaplığında bulunur. Ve nesne dosyası bu işlevin yalnızca adını içerir. Ayrıca, nesne dosyası, içinde bildirilen tüm işlevlerin adlarını içerir.

Nesne dosyaları ve kullanılan kitaplıklar, bağlayıcıya (ld programı) girdi olarak sağlanır. Bağlayıcı, nesne dosyalarında ve kitaplıklarda farklı nesne dosyalarından (ada göre) çağrılan tüm işlevleri arar. Tüm işlevler bulunursa, bağlayıcı gerçek yürütülebilir dosyayı oluşturur. Bu durumda, çağrılan işlevlerin adları belirli bellek adresleriyle değiştirilir. Dinamik kitaplık kullanılması durumunda, kullanılan işlevin adı kalır ve program başladığında bu işlevin aranması gereken dinamik kitaplığın dosya adı buna eklenir.

Gcc programının kendisi sözde bir sürücüdür. Yürütülebilir bir dosya almak için yukarıda belirtilen programları (veya seçeneklere bağlı olarak yalnızca bazılarını) çalıştırır.

İkinci örnek: ikinci dereceden denklemleri çözme

biraz daha fazla olarak karmaşık örnekİkinci dereceden denklemleri çözmesi gereken bir program düşünün. Kullanıcı bir kare üç terimlinin katsayılarını girer ve program gerçek köklerini döndürür. Burada tam metin böyle bir program:

#Dahil etmek
#Dahil etmek

/* çöz: kare denklemin köklerini hesapla.
* a, b, c denklemdeki katsayılardır.
* Kökler x1, x2'de saklanacaktır.
* Dönüş değeri: gerçek köklerin sayısı.
*/
int çöz(çift a, çift b, çift c,
çift* x1, çift* x2) (
çift ​​D = b*b - 4*a*c;
çift ​​sqrtD;

eğer (D > 0) (
kareD = kare(D);
*x1 = (-b - kareD)/(2.0 * a);
*x2 = (-b + kareD)/(2.0 * a);
dönüş 2;
) aksi takdirde (D< 0)
0 döndür;
başka(
*x1 = -b/(2.0*a);
dönüş 1;
}
}

int ana (int argc, karakter* argv) (
çift ​​a,b,c;
çift ​​x1, x2;
int kök_sayısı;

// Girdi katsayıları
printf("A:");
scanf("%lf", &a);
printf("B:");
scanf("%lf",&b);
printf("C:");
scanf("%lf",&c);

// Denklemi çözün
root_count = çöz(a,b,c, &x1, &x2);

// çıktı sonuçları
geçiş (roots_count) (
durum 0:
printf("(gerçek) kök yok.\n");
kırmak;
dava 1:
printf("Tek kök: %0.4lf\n", x1);
kırmak;
durum 2:
printf("İki kök: %0.4lf ve %0.4lf\n",
x1, x2);
kırmak;
}

Bir önceki örneğe benzeterek bu metni square.c dosyasına yazıp komut ile derlemeye çalışacağız.

gcc -o kare kare.c

Ancak bu sefer şöyle bir hata alıyoruz:

/tmp/cc6RNFIi.o: "solve" işlevinde: square.c:(.text+0x6d): "sqrt" için tanımsız başvuru Collect2: ld 1 çıkış durumu döndürdü

Burada sorun ne? Açıkça derleyici nedense sqrt() işlev çağrısını beğenmedi. Üstelik artık dosyadan şikayet etmiyor. kaynak kodu, ancak bir nesne dosyasına (bu, cc6RNFIi.o'dur). Bu, kaynak dosyanın başarılı bir şekilde derlendiği, ancak bağlantı aşamasında sorunların ortaya çıktığı anlamına gelir (bu, ld programının hata metnindeki sözden de görülebilir - bu, GNU/Linux'taki standart bağlayıcıdır). Bağlayıcı sqrt() işlevini bulamadı. Bu durumda, bu işlev libm kitaplığında bulunduğu için oldu ve derleyiciden onu kullanmasını istemedik. Bu hatadan kurtulmak için derleme komutunu aşağıdaki şekilde değiştirmemiz gerekiyor:

gcc -o kare -lm kare.c

Bu komut hatasız çalışmalı ve yürütülebilir kareyi üretmelidir.

Herhangi birini monte ederken yeterli karmaşık program birkaç kitaplık kullanmamız gerekecek ve derleyiciye daha fazla seçenek belirtmemiz gerekebilir. Komut oldukça uzun sürebilir. Ne, her seferinde manuel olarak yazmak için mi? Numara. UNIX felsefesinin ilkelerinden biri şudur: "Otomatikleştirilebilen her şey otomatikleştirilmelidir." Bu, en eski UNIX yardımcı programlarından biri olan make programının kullanışlı olduğu yerdir. Kullanmak için Makefile adında (kaynak dosyamızla aynı dizinde) aşağıdaki içeriğe sahip bir dosya yazmamız gerekiyor:

kare: kare.c $(CC) -o [e-posta korumalı]-lm $<

Artık sadece make komutunu vererek yürütülebilir dosyayı oluşturabilirsiniz. Nasıl çalışır?

Yapmak

make yardımcı programı, programlar oluşturmak için tasarlanmıştır (ancak benzer birçok görevi otomatikleştirmek için kullanılabilir). Makefile adlı bir dosyayı okur ve onu bir dizi kural olarak görür. Her kural üç şeyi tanımlar: bir hedef (hedef, yani oluşturulması gerekenler), kaynak dosyaların listesi ve hedefi kaynak dosyalardan oluşturmak için yürütülecek bir dizi komut. Yukarıdaki örnekte square hedefin adıdır, square.c bu durumdaki tek kaynak dosyadır (birden fazla varsa boşluklarla ayrılmış olarak listelenir) ve ikinci satır komuttur. Komut değişkenleri kullanabilir. Bazı değişkenlerin özel bir anlamı vardır. Özellikle, herhangi bir kuralda [e-posta korumalı] hedefin adını temsil eder ve $< — первый исходный файл. Переменная $(CC) указывает на компилятор C, используемый в системе по умолчанию (в большинстве случаев это gcc , но бывает и что-нибудь другое).

% joker karakteri, hedef ad ve kaynak dosya listesinde kullanılabilir. Örneğin, bu kural:

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

.o ile biten bir ada sahip dosyaların, .c sonekine sahip ilgili dosyalardan oluşturulması gerektiği anlamına gelir.

Ek olarak, önceden bir dizi varsayılan kuralı bilmesini sağlayın. Bunlar arasında son örnekte bahsedilen kural ve kural vardır.

%:%.c $(CC) -o [e-posta korumalı] $<

Bu kural sayesinde, "Merhaba dünya!" sadece make merhaba komutu cc -o merhaba merhaba.c'yi çalıştırır.

Bir dizi kurala dayalı olarak make, birbirleri ve kaynak dosyalar üzerinde hedeflerin bir bağımlılık grafiğini oluşturur ve yalnızca komut satırında belirtilen hedefi oluşturmak için gereken komutları yürütür. Hiçbir hedef belirtilmezse, Makefile'de açıklanan ilk hedef oluşturulur.

Bu yardımcı program hakkında daha fazla bilgi için bkz. man make .

sürüm oluşturma

Kaynak kodu sürümlerini yönetmek için herhangi bir VCS kullanılabilir. Ancak, GNU/Linux'tan bahsettiğimize göre, Linux çekirdeğini geliştirmek için kullanılan sisteme hızlıca bir göz atalım: git. Git, dahil olmak üzere oldukça kapsamlı belgeler var. ve Rusça. örneğin benim makaleme bakın veya iyi bilinen bir dizi makale .

Git'i kullanmaya başlamak için bir havuz - dosya sürümleri için bir havuz - oluşturmanız gerekir. Bu ekip tarafından yapılır

Artık depoya dosya ekleyebilirsiniz. Ancak, nesne dosyaları ve yürütülebilir dosyalar gibi bazı dosyaların sürümlerini izlememize gerek yoktur. Bunları git değerlendirmesinden hemen hariç tutmak için, aşağıdaki içeriğe sahip bir .gitignore dosyası yazalım:

*.o kare merhaba

şimdi takım

.gitignore dosyasında belirtilenler dışında, geçerli dizindeki tüm dosyaları havuza ekleyecektir. Bundan sonra, komutla taahhütte bulunabilirsiniz.

Bu komut varsayılan metin düzenleyiciyi açacaktır. Burada taahhüde bir yorum yazmanız gerekecek. Bu durumda "Initial commit" gibi bir satır yeterlidir.

hata ayıklama

Linux'ta hata ayıklamak için gdb hata ayıklayıcı kullanılır. Ama önce programın hata ayıklamasını kolaylaştırmak için -g seçeneği ile derlenmesi gerekir. Şimdi Makefile'ı değiştirip forma getirmemiz yeterli.

kare: kare.c $(CC) -o [e-posta korumalı]-lm -g $<

ve programı yeniden oluşturun.

Normal derleme sırasında, işlevlerin, değişkenlerin vb. adları yürütülebilir dosyaya girmez. -g seçeneği, derleyiciye bu bilgiyi yürütülebilir dosyanın uygun bölümüne yazmasını söyler. Ayrıca bu seçenek, kaynak dosyadaki ofsetler ve satır numaraları arasındaki yazışmalar hakkında yürütülebilir dosyaya bilgi yazar.

Hata ayıklama gibi bir komutla başlatılır

gdb ./some-program -a -b

Hata ayıklayıcıyı başlattığınızda, aşağıdaki gibi bir komut satırı istemi görünür:

GNU gdb (GDB) 7.2-ubuntu Telif Hakkı (C) 2010 Free Software Foundation, Inc. Lisans GPLv3+: GNU GPL sürüm 3 veya üzeri Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR. Ayrıntılar için "kopyalamayı göster" ve "garantiyi göster" yazın. Bu GDB, "i686-linux-gnu" olarak yapılandırılmıştır. Hata raporlama talimatları için lütfen bakınız: ... /home/portnov/LUG/src/square...'den sembollerin okunması tamamlandı. (gdb)

Hata ayıklayıcıyla çalışmak, genel anlamda, bir komut kabuğuyla çalışmak gibidir. Komutları girersiniz, hata ayıklayıcı bunları yürütür. Komut kabuğunda olduğu gibi, Sekme tuşu kullanılarak komutların otomatik olarak tamamlanması çalışır. Ek olarak, kısa olması için komutları ilk birkaç harfe kısaltabilirsiniz - yalnızca belirsizliği önlemek için.

En sık kullanılan komutlar şunları içerir:

Kaynak kodun sonraki parçasını yazdırın (10 satır yazdırılır). Komut adından sonra l 10,15 gibi belirli satır numaralarını belirtebilirsiniz.

Hata ayıklayıcı altında yürütmek için programı çalıştırın. Program en yakın kesme noktasına veya sonuna kadar çalışacaktır.

Bir kesme noktası ayarlayın. Kesme noktası ayarlamak istediğiniz satır numarası, komut adından sonra belirtilir.

Programın bir satırını yürütün.

İfadeyi hesaplayın ve yazdırın. İfade, komuttan sonra belirtilir. Böylece örneğin bir değişkenin değerine bir kez bakmak mümkündür.

Kalıcı olarak görüntülenen listeye bir ifade ekleyin. Bu ifadelerin değerleri her komutun yürütülmesinden sonra gösterilecektir. Her ifadenin yanında listedeki numarası yazdırılır. İfade numarasıyla birlikte undisplay komutuyla bir ifadeyi listeden kaldırabilirsiniz.

Hata ayıklayıcıdan çıkın.

GDB hakkında daha fazla bilgi için man gdb'ye bakın.

X11 pencere sistemi

Tarihsel olarak, UNIX'in herhangi bir grafik ortamı yoktu ve olamazdı, çünkü grafiksel görüntüler yoktu. UNIX'in grafik ortamı, ortak grafik ekranlarının ortaya çıktığı sıralarda ortaya çıktı: 1984'te. Önce W (Pencere için) olarak adlandırıldı, sonra geliştirildi ve alfabenin bir sonraki harfi olarak adlandırıldı - X, sonraki sürüm X2 olarak adlandırıldı. .. Şimdi X11'imiz var.

X11, öncelikle TCP/IP ve UDP/IP üzerinden bir ağ protokolüdür. Protokolün bir istemcisi ve bir sunucusu vardır. İstemci “bana bir pencere çiz”, “üzerine bir düğme çiz” gibi bir dizi istek gönderir ve sunucu bunları yürütür. X11'in ana ilkelerinden biri “politikaları değil, mekanizmaları tanımlayın”. Protokol, örneğin pencere çizme yeteneği sağlar, ancak bunların tam olarak nasıl görüntüleneceğini belirlemez.

Bugün en yaygın X sunucusu Xorg'dur (http://x.org); XFree86 hala hayatta; Windows altında Xming önemlidir; donanım X-sunucuları üretilir - donanımda X11 sunucu işlevselliği için desteğin uygulandığı "monitör + klavye + fare" kitleri - bu tür kitler grafik terminalleri olarak kullanılır.

X11 protokolü, örneğin HTTP'den farklı olarak ikilidir, metinsel değildir - bu, ağ bağlantısı bant genişliğinden tasarruf ve sunucu tarafından istekleri ayrıştırma kolaylığı nedenleriyle yapılır. Ancak bu, bu protokolün istemcilerinin oluşturulmasını karmaşıklaştırır: Karmaşık ikili X11 isteklerini birleştirmek, örneğin metin HTTP isteklerini yapmaktan açıkça daha zordur. Bu nedenle, X istemcilerini yazmak için, sunucuya X istekleri oluşturan ve gönderen özel işlev kitaplıkları kullanılır. En yaygın kütüphane libX11'dir. Daha modern bir seçenek libxcb'dir.

X11 istekleri çok düşük seviyelidir. Örneğin, bir düğmenin işlevselliğini uygulamak için pencereye bir dikdörtgen çizmeniz, içine metin yazmanız, fare düğmesinin tıklama döngüsünde beklemeniz ve her tıkladığınızda dikdörtgenin içine mi yoksa dışına mı tıkladığınızı kontrol etmeniz gerekir. . Bu nedenle, sözde araç takımları ortaya çıkmaya başladı - libX11 üzerinde üst düzey sarmalayıcılar olan kitaplıklar.

Tarihsel olarak, ilk araç seti Athena3D idi. Sonra Motif ve Tk vardı. Şu anda, GTK+ ve Qt en yaygın olanlarıdır (kesin olarak konuşursak, Qt bir X11 araç takımı değil, X11 araç takımı olarak kullanılabilecek çok amaçlı bir platformlar arası kitaplık kümesidir).

Merhaba, dünya GTK+'da

Örnek olarak aşağıdaki programı inceleyiniz. Tek düğmeli bir pencere gösterir. Bu düğmeye basıldığında "Merhaba dünya" mesajı görünür.

#Dahil etmek

// Bu fonksiyon mesaj diyaloğunu görüntüler.
// main_window parametresi, iletişim kutusunun üst penceresine ayarlanmalıdır.
geçersiz mesaj_kutusu (GtkWindow* ana_pencere, gchar *mesaj) (
GtkWidget *iletişim kutusu, *etiket, *content_area;

// Bir diyalog oluştur
dialog = gtk_dialog_new_with_buttons("Mesaj",
ana pencere,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_Tamam,
GTK_RESPONSE_NONE,
HÜKÜMSÜZ);
// bir etiket oluştur
content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
etiket = gtk_label_new(mesaj);

// "Yanıt" sinyalinde (kullanıcı bir düğmeyi tıkladığında çağrılır
// diyalog), diyalogu yok et.
g_signal_connect_swapped(iletişim kutusu,
tepki,
G_CALLBACK (gtk_widget_destroy),
diyalog);

// bir etiket ekle
gtk_container_add(GTK_CONTAINER(content_area), etiket);
// iletişim kutusunu göster
gtk_widget_show_all(diyalog);
}

// Silme olayı sinyali için geri arama
statik gboolean delete_event(GtkWidget *widget,
Gdkevent *olay,
gpointerdata)
{
// TRUE dönerse pencere kapanmaz.
// Bu, bazı durumlarda pencerenin kapanmasını önlemek için kullanılabilir.
yanlış döndür;
}

// Yok etme sinyali için geri arama
statik boşluk yok etme(GtkWidget *widget,
gpointerdata)
{
// Ana GTK+ olay döngüsünü sonlandır
gtk_main_quit ();
}

// Düğme tıklaması için geri arama
statik void merhaba (GtkWidget *widget,
gpointerdata)
{
// "data" parametresi burada ana pencereyi temsil eder
message_box(GTK_WINDOW(veri), "Merhaba dünya!");
}

int Main (int argc,
char*argv)
{
GtkWidget * penceresi;
GtkWidget *düğmesi;

// GTK+'yı başlat
gtk_init(&argc, &argv);

// Ana pencere oluştur
pencere = gtk_window_new(GTK_WINDOW_TOPLEVEL);

// Bazı sinyaller için geri aramaları ayarla
g_signal_connect(pencere, "delete-olay",
G_CALLBACK(delete_event), NULL);

G_signal_connect(pencere, "yok et",
G_CALLBACK(yok), NULL);

// Pencere kenarlıkları genişliğini ayarla
gtk_container_set_border_width(GTK_CONTAINER(pencere), 10);

// Etiketli buton oluştur
buton = gtk_button_new_with_label("Merhaba Dünya");

// Düğmenin "tıklanan" sinyali için geri aramayı ayarla.
// Ana pencereyi ikinci parametre olarak ilet.
g_signal_connect(düğme, "tıklandı", G_CALLBACK (merhaba), (işaretçi)pencere);

// Düğmeyi pencereye paketle
gtk_container_add(GTK_CONTAINER(pencere), buton);

// Düğmeyi göster
gtk_widget_show(düğme);

// Pencereyi göster
gtk_widget_show(pencere);

// Ana GTK+ olay döngüsünü çalıştırın.
gtk_main();

Bu program aşağıdaki gibi bir komutla toplanmıştır.

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

ek literatür

Raymond, Eric S. UNIX Programlama Sanatı. - Çev. İngilizceden. - M.: Williams Yayınevi, 2005. - 544 s., hasta.

Kernighan B., Pike R. UNIX. Yazılım ortamı. — İngilizce'den Per. - St. Petersburg: Symbol-Plus, 2003. - 416 s., hasta.

Kernighan B., Ritchie D. Programlama dili C. - Per. İngilizceden. - Moskova: Williams, 2006. - 304 s.

Birçok acemi kodlayıcı korkuyor
Linux'ta programlama - vida basitliği yoktur
ve görünürlük. Ancak, Linux için
birçok görsel yardımcı
programlama ve bu sadece bir Delphi klonu değil.
Elbette tamamlanamazlar
aynı Visual Studio için bir yedek, ancak oldukça
geliştirme sürecini hızlandırmaya yardımcı olun
programlar.

NetBeans

En iyi IDE'lerden biri. Yönelik
Java ile çalışın, onun yardımıyla yapabilirsiniz
sadece platformlar arası geliştirmekle kalmayın
Java programları, aynı zamanda web uygulamaları, web hizmetleri ve
onlar için istemciler, J2ME programları vb. Belki
Windows, Linux, MacOS üzerinde çalışın. IDE genişletilebilir
yapabileceğiniz çeşitli eklentiler ve eklentiler
sitede bulabilirsiniz. Aynı zamanda, her şey ücretsiz
bedava yemek! Sonuçta, mutlak bir beyinsiz.
bir.

QT/KDevelop Tasarımcısı

için başka bir güçlü geliştirme ortamı
KDE ve Gnome platformu. Platformlar arası C++
uygulamalar ancak bir şekilde gider. İçin
ticari olmayan Qt programları
ücretsiz kullan, var
neredeyse tüm dağıtımlar için.

Visual Basic klonu ve sadece tasarımda değil,
ama aynı zamanda dilin yapılarında. İdeal
isteyen VB programcıları için bir araç
Linux'a geç. Basit ve kullanıcı dostu arayüz.
Tüm ana veritabanlarına erişim - MySQL,
PostgreSQL vb. Hemen hemen herkes üzerinde çalışır
dağıtımlar.

Web sayfaları oluşturmak için WYSIWYG editörü. İçinde
Macromedia editörü gibi ya da her neyse
aynı FrontPage. Otomatik destekler
FTP üzerinden site ile çalışın.

yapan Python ve Ruby IDE
oldukça basit bir dilde programlama
ve heyecan verici. kendi yazdığı
Python.

Eclipse bir IDE değil, tam bir platformdur.
Çeşitli uygulamalar. standarda
teslimat için ek eklentiler içerir
Java dil desteği (JDT) ve geliştirme
Eclipse için eklentiler (PDE - Eklenti Geliştirme Ortamı). İçin
diğer dillerle çalışmalı
özel eklentiler kurulu - Eclipse'de
neredeyse her şey üzerinde çalışabilir
erişilebilir programlama dili. Bir diğer
avantaj için de geçerlidir
genişletilebilirlik: devasa miktar
yardımcı programlar (özellikle Java için) şimdi
Eclipse için eklentiler olarak da mevcuttur,
örneğin Ant, JavaDoc, JUnit, JDepend, Check Style, Subversion.
Yani vazgeçmek zorunda değiliz
sürüm kontrol sistemleri, kendi
kod kalitesi denetleyicileri, vb.
Üçüncü avantaj, Eclipse'in
platformlar arası ortam, yani
çeşitli versiyonları var
işletim sistemleri (ki
aynı Visual Studio'yu karşılar).

Jdecoper

Oracle'dan Platform - açık kaynak değil,
ancak yine de ücretsizdir. Açık olduğu gibi
isimler hala aynı çapraz platform tarafından kullanılıyor
Java. Çalıştırmak için Sun JDK'yı kullanır, bu nedenle
Oracle, yaratılanlar üzerinde hak iddia edemez
teoride programlar olmayacak.

Ve son olarak, görsel kontrol ortamı
Gnome Desktop için projeler. Daha az kullanışlı değil
IDE'den daha programcılar için program.

  • Jonathan Bartlett, "Hücre BE İşlemcisinde Yüksek Performanslı Uygulamaları Programlama: Bölüm 4. Performans için SPU'ları Programlama" Bu bölüm vektör SIMD programlama, dal eleme, döngü açma, zamanlama talimatı zamanlama ve dal ipucu tekniklerini kapsar.

  • "InfoWorld'den En İyi 8 Ücretsiz Açık Kaynak Geliştirme Aracı"

  • "A'dan Z'ye Test Etme. Bölüm 1 - Temel ilkeler ve yaklaşımlar"

  • Kroll'a göre, "OpenUP kolaylaştı" Bu makale, Rational Unified Process kullanan çevik geliştirme yöntemlerini temel alan yeni geliştirilmiş bir yazılım geliştirme çerçevesi olan OpenUP'ı tanıtmaktadır.

  • "Programlama dillerinin popülaritesi araştırmasının sonuçları"

  • Griver Alexander ve GIS-Lab, "CBS yazılımının kaynak koduyla çalışmak için Doxygen'i kullanma" Başkasının kodunun büyük hacimleriyle çalışma, içindeki yönlendirme ve bileşenlerini programlarınızda kullanma yöntemlerinden biri.

  • Shevelev Denis, "Kendi ellerimizle bir "ŞEYTAN" yazmak" Amacımız, çeşitli yerlerden Windows altında Linux üzerinde herhangi bir şeyi kontrol etmek için bir ağ arka plan programı yazmaktır.

  • Martin Husemann, tercümesi Sergey Kalichev, "Lemminglerle Savaşmak" Taşınabilir kod yazarken ortaya çıkan tipik sorunların bir açıklaması, sorunlardan bazıları açıktır, ancak bunlarla ilişkili hatalar gerçek kodda düzenli olarak görünmeye devam eder.

  • Cameron Laird, "Bellek Hata Ayıklama Teknikleri" Bellek hataları, uygulama performansını büyük ölçüde etkiler ve pek çok geliştirme ekibinin bu hataları gidermek için net bir planı yoktur. Ancak iyi haber şu ki, bellek hatalarını ayıklamak oldukça kolay.

  • A. Tarasov tarafından tercüme edilen Avi Rozen, "GDB ve GDBserver ile Uzaktan Hata Ayıklama" Platformu geliştiricinin platformundan farklı olabilen uzak bir sistemdeki uygulamalarda hata ayıklama yöntemi olarak kabul edilir.

  • E. Ivanov, "Dragon Book" - "Derleyiciler: ilkeler, teknolojiler ve araçlar" - kitabın çevirisi (Derleyiciler: İlkeler, Teknikler ve Araçlar. 2. Baskı. Alfred V. Aho, Monica S. Lam , Ravi Sethi) , Jeffrey D. Ullman, 2007)

  • N.N. Ivanov, "Sıfırdan Linux Programlama" Linux programlama üzerine ücretsiz olarak dağıtılan bir ders kitabı.

  • N. Ivanov, "Sıfırdan Linux'ta Programlama" kitabının bir sonraki bölümünü yayınladı: "6.4. İşlem Görüntüsünü Değiştirme"

  • Andrey Borovsky, "Unix/Linux için Programlama"

  • A.Borovsky, "Programming for Unix/Linux" Unix/Linux programlama üzerine Linux Format dergisinde yayınlanan makaleler dizisi

  • Andrey Borovsky, "Demons" Linux Format dergisinde yayınlanan "Programming for Linux" serisinden bir makale.

  • Valerie Henson, çeviri: V. Cherkasov, "Linux çekirdek modülleri yazmaya giriş."

  • Nickolay Tarasenko, "Linux çekirdeğinde soket sistemi çağrıları uygulamak. Bir soket yaratmak."

  • K.Kaspersky, "Linice ile hardcore hata ayıklama: çekirdek konsolu hata ayıklayıcısında çalışmayı öğrenme" Linice, arayüzü, komut sistemini ve sonraki özelliklerinin çoğunu koruyan efsanevi Linux için SoftICE'ın resmi olmayan bir bağlantı noktasıdır.


  • DV Silakov, "LSB altyapısının mevcut durumu ve geliştirme beklentileri" Makale, Linux Standard Base ve ilgili altyapının geliştirilmesinin teknik yönünü açıklamaktadır.

  • Federico Kereki, çeviri - A. Dmitriev,

  • Rodrigo Seron, "GNU Doğrusal Programlama Araç Takımı: Bölüm 1: Doğrusal Optimizasyona Giriş" Bu makale, GLPK'yi (GNU Doğrusal Programlama Araç Takımı), glpsol istemci aracını ve işlem optimizasyon problemlerini çözmek için GNU MathProg dilini açıklamaktadır.

  • Rodrigo Seron, "GNU Doğrusal Programlama Araç Takımı: Bölüm 2: Doğrusal Programlamada Orta Karmaşıklık Sorunları"

  • Rodrigo Seron, "GNU Doğrusal Programlama Araç Takımı: Bölüm 3. Zor Sorunlar ve Zarif Çözümler"

  • V. Tsarkov, "Temelden Programlama" kitabını indirebileceğiniz bir bağlantı gönderdi. Vladimir'in yazdığı gibi: "İşte GNU / Linux ortamı ve genel olarak bilgisayar bilimi için montajcı üzerine mükemmel bir kitabın bağlantısı." Ama kitap İngilizce ve PDF formatında.


  • Kenneth Ballard, "OpenSSL API ile Güvenli Programlama, Bölüm 3: Güvenilir Bir Hizmet Sağlama" OpenSSL ile güvenli sunucu uygulamaları oluşturabilirsiniz ve belgeler göz korkutucu görünse de, o kadar da zor değil.

  • "Altı Öncü Çerçevenin Performans Testi Sonuçları"

  • Alexander Miroch, "Linux'ta Paylaşılan Kitaplıkları Çalıştırma"

  • Devin Watson, "Linux Daemon NASIL" (Çeviri). Linux'ta bir daemon nasıl yazılır.

  • D. Panteleichev, "Linux için yazılım geliştirme. Araç Takımı" .

  • Dmitry Panteleichev, "OpenGL. Linux Grafik Programlama" OpenGL kullanarak 2B ve 3B grafik programlamaya ayrılmış kapsamlı bir eğitim kursu. Qt, OpenGL'nin taşınabilir doğasıyla birleştiğinde, gerçekten çapraz platform uygulamaları yazmanıza izin veren bir pencereleme araç takımı olarak kullanılır.

  • Noel Rappin, "wxWidgets ile Platformlar Arası GUI Uygulamaları Oluşturma" wxWidgets araç takımı, güçlü platformlar arası grafik kullanıcı arabirimi (GUI) geliştirme araçları sağlar. Yalnızca yerel C++ değil, diğer programlama dilleri de bu araç setini kullanmanın yollarını sunar. Tercih ettiğiniz programlama dilinde zarif ve son derece kullanışlı GUI uygulamaları oluşturmak için wxWidget'ları nasıl kullanacağınızı öğrenin.



  • K. Pfister, Rusça çeviri: Ermakov I.E., "Bileşen yazılımı",

  • Nikolay N. Ivanov, "Sıfırdan Linux Programlama" Başlıkta belirtilen konuyla ilgili bir kitap oluşturma projesi. Kitabın yazarı tüm yorum ve önerilerinizi dikkate almaya hazırdır. Yazmak!




  • Sevryugin AI, "PCRE.RU" Perl, PHP, Javascript ile uyumlu PCRE standardının düzenli ifadelerinin evrensel ansiklopedisi.

  • "Lindevel.ru/" - Linux programlamaya adanmış bir site. Buradaki en ilginç şey, "Makaleler" bölümündeki "Linux'ta sıfırdan programlama" posta listesidir.

  • Matt Frey (Matt Frye), çeviri: Ivan Pesin, "Strace ile kod hata ayıklama" Kod hata ayıklama aracı olarak strace yardımcı programını kullanma hakkında bir makalenin çevirisi.

  • Mark Wilkinson, çeviri: Ivan Pesin "Otomasyon oluşturma ve test etme" Bu makale, birden fazla geliştiriciyi içeren projelerde derleme ve birim test süreçlerini otomatikleştirmek için kullanabileceğiniz açık kaynaklı bir yazılım olan CruiseControl'ü tanıtmaktadır.

  • Dimitri Bushenko,

  • Vadim Stankeviç, .


  • Chris Herbort, "Eclipse ile UNIX yazılımı geliştirme" Eski kodu modern bir IDE'ye taşıma.

  • Chris Anischuk, David Gallardo, "Eclipse Platformuna Başlarken"

  • "JasperReports hakkında bir dizi makale" - Eclipse ile entegre olan bir rapor oluşturucu.

  • Nathan A. Good, "Kendi Eclipse Sihirbazlarınızı Oluşturmak" Bir altyapı platformu ve IDE olarak Eclipse'in en güçlü yönlerinden biri genişletilebilirliğidir. Bu makalede, yeni bir dosya ekleme işlemini otomatikleştiren bir sihirbazı hızlı bir şekilde nasıl oluşturacağınızı öğreneceksiniz.

  • Prashant Deva, "Eclipse, Ant editörüyle çalışmayı kolaylaştırır" Ant'ın Eclipse Integrated Development Environment (IDE) içindeki entegrasyon yeteneklerini keşfedin ve Ant editörünü kullanarak Eclipse'de program yazmayı, bunları bağlamayı ve kod hatalarını düzeltmeyi öğrenin.

  • Eclipse'in Zengin İstemci Platformu, Bölüm 2: Temel çalışma tezgahının genişletilmesi
    Bu eğitim, Eclipse Zengin İstemci Platformuna genel bakışın devamı niteliğindedir. Eksiksiz bir uygulama oluşturmak için görünümlerin, eylemlerin ve sihirbazların nasıl kullanılacağını gösterir.

  • "POWER Bilgisayarlarda Linux için Eclipse'i Yükleme ve Kullanma" Eclipse, genişletilebilir bir açık kaynaklı IDE'dir.

  • "Yeni Eclipse Kullanıcıları için En İyi 10 Püf Noktası" Eclipse geliştirme ortamını etkin bir şekilde kullanmak için 10 basit ipucu içeren bir makalenin çevirisi.

  • "10 adımda Karınca" (Çev. Russ Olsen tarafından On Adımda Karınca). Ant, yazılım oluşturma sürecini otomatikleştirmek için tasarlanmış bir araçtır.

  • Matt Talles, Yuan Hsih, çev. İngilizceden. S. Lunin, "Ünlü (ve çok ünlü olmayan) hataların incelenmesi" . Hata Ayıklama Biliminden Bölüm


  • Dmitry Bushenko, "Linux'ta Programlama. Dördüncü Bölüm. Linux'ta .NET"

  • Dmitry Bushenko, "Linux üzerinde .NET programlama. Bölüm 4. Örneklerde Gtk# öğeleri"

  • Dmitry Bushenko, "Linux üzerinde .NET'te Programlama" Bölüm 3. GTK# üzerinde pencere uygulaması.

  • Dmitry Bushenko, "Linux'ta .NET'te Programlama." "Bölüm 2. İlk Mono C# Uygulaması"



  • Nikolay N. Ivanov, "LINUX'TA PROGRAMLAMA" .


  • Maciej Katafiazh, Sergei Bezdenezhnykh tarafından çevrildi, "GTK+ Temelleri, Bölüm 2: GTK+ nasıl kullanılır"

  • "Kütüphaneleri Kullanma" Kitaplıklar statik veya dinamik olabilir.

  • David Madeli, Sergey Bezdenezhnykh tarafından çevrildi, "Kahire ve GTK+ 2.8 kullanarak widget oluşturma, bölüm 2"


  • Tony Gale, Ian Main ve GTK ekibi, "GTK+ 2.0 Eğitimini Çevirme"

  • "Bellek Yöneticisinin İçinde. Dinamik Bellek Tahsis Tekniklerini Seçme, Yaklaşma ve Uygulama", Linux programcılarının kullanabileceği bellek yönetimi tekniklerini tartışıyor.

  • Alexey Fedorchuk,

  • Andrey Dranitsa, "Temel Linux peynir pyra" Linux için geliştirme araçlarına genel bakış.

  • AM Vendrov, "Yazılım oluşturmak için modern teknolojiler. Gözden Geçirme"

  • Edsger W. Dijkstra, Çeviri - Alf, 14 Ağustos 2004, "Programlamanın İki Görünümü"

  • Başlamak için, Alex Ott tarafından çevrilen, v1.3.2, 22 Şubat 1999'dan bir bölümü okuyun.

  • "GOST 28147-89 kripto koruma algoritmasını uygulayan bir Linux çekirdek modülünün geliştirilmesi"

  • "Farklı bir glibc sürümüyle oluşturulmuş bir programı çalıştırmak" Kısa bir faydalı ipucu.

  • Jasmin Blanchette, Mark Summerfield

  • Steve Litt, çeviri: Alexander Kubyshkin, "Karşılaştırmalı Din" Ana programlama dilinizi nasıl seçersiniz. C, C++, Java, Perl, Python, Ruby'nin avantajları ve dezavantajları tartışılmıştır.

  • Jeff Tranter, "Sendfile sistem çağrısı" Sendfile sistem çağrısı, nispeten yakın zamanda Linux çekirdeğine eklendi ve ftp veya web sunucuları gibi verimli bir dosya aktarım mekanizmasına ihtiyaç duyan uygulamalar için önemli bir varlık haline geldi.

  • "UNIX altında programlama" Ne yazık ki yazar yok, yayın yılı yok.

  • Evgeny Khilko, "KDevelop'ta mingw32 çapraz derleyicisi ile kazan uygulamalarının oluşturulmasını kurma"

  • "Desk Instrument" SuSE 9.3 dağıtımında KDevelop ortamının 3.2.0 versiyonundan bahsedeceğiz.


  • Sandeep S, çeviri: Andrey Kiselev, "Ptrace ile İşlem İzleme", bölüm 2. Makale, özellikle yürütülebilir dosya biçiminin yapısını açıklar - ELF.

  • Sandeep S., "Ptrace ile İşlem İzleme -- Bölüm 3" Bu bölümün amacı, çalışma zamanında işlem kimliklerine nasıl erişileceğini göstermektir. Bu tekniğin kapsamı o kadar geniştir ki sadece hayal gücünüzle sınırlıdır.

  • V. Meshkov, "Linux işletim sisteminde sistem çağrılarının durdurulması"

  • S. Gülenok, "Eğlenceli penguen inşası. Temel" Linux ile ilgili konuşmalarda sık sık "Linux, programcılar tarafından programcılar için yazılmıştır" ifadesine rastladım. Öyle mi?

  • Alexey Knyazev, "Linux Device Driver 2. baskının Rusça versiyonu" Bu bir çeviri değil, Alessandro Rubini & Jonatan Corbet'in ünlü kılavuzunun çevirisine "dayanan" bir şey.

  • "Linux Aygıt Sürücüsü 2. Sürüm" Alexey Knyazev, Linux Aygıt Sürücüsü 2. Sürümün bir sonraki 8. bölümünün çevirisini tamamladı. Toplamda 0-8 ve 13. bölümler çevrilmiştir, 9. bölümün çevirisi için çalışmalar devam etmektedir.

  • Kuzin Andrey, Linux Altında Programlama
    Adım 1 - Programları C/C++ ile derleme (30.01.2002 - 2 Kb)
    Adım 2 - Hata ayıklama bilgisi (30.01.2002 - 4.2 Kb)
    Adım 3 - Birkaç dosyanın derlenmesi (15.02.2002 - 3.7 Kb)
    Adım 4 - Nesne dosyalarının kitaplıkları (20.02.2002 - 3.0 Kb)
    Adım 5 - Statik bir kitaplık oluşturma (20.02.2002 - 3.7 Kb)
    Adım 6 - Dinamik kitaplık oluşturma (20.02.2002 - 5.2 Kb)
    Adım 7 - Dinamik kitaplıkları kullanma (23.02.202 - 4.9 Kb)
    Adım 8 - Dinamik kitaplıklarla çalışma işlevleri (23.02.202 - 5.0 Kb)
    Adım 9 - Dinamik kitaplıkların başlatılması (27.02.202 - 3.5 Kb)
    Adım 10 - Seçenekleri programa geçirme - getopt (15.10.2002 - 6.6 Kb)
    Adım 11 - Programa uzun seçenekler geçirme - getopt_long (19.12.2002 - 11.2 Kb)
    Adım 12 - Program hata mesajlarının görüntülenmesi (22.12.202 - 7.5 Kb)
    Adım 13 - Kullanıcı hakkında bilgi edinme (22.12.202 - 10.2 Kb)
    Adım 14 - Gölge şifreden veri alma (22.12.202 - 5.5 Kb)
    Adım 15 - crypt() işlevini kullanarak sistem parolalarıyla çalışma (24.12.202 - 10.0 Kb)

  • Kotelnikov Ruslan.

  • Ruslan Popov, "KDevelop'a Giriş"

  • I.Voronin, "CCache Kullanımı" Ccache, programı yeniden oluştururken mükemmel bir hız artışı sağlar. Örneğin Pentium MMX / 200 Mhz işlemcili bir makinede sadece 10 dakikada bir Linux çekirdeği kurdum.

  • Oleg Belenkov Windows'tan Linux'a uygulamaları taşıma [OPEN SYSTEMS, 2000/07-08]

  • S. Bogomolov, libdb

  • S. Bogomolov, Paylaşılan Kitaplıkları Oluşturma ve Kullanma

  • S. Bogomolov, TclTk (kurulum)

  • Yazılım Proje Yönetim Sistemi SCCS, T.A.Pivovarenok, Süper Bilgisayar Merkezi

  • Unix işletim sisteminde süreçler arası iletişim mekanizmaları, Sergey Kuznetsov, Programlama Endüstrisi 96 konferansının eğitim materyalleri,

  • İTOLOJİ - bilgi teknolojisi bilimi, V. Sukhomlin, Moskova Devlet Üniversitesi Araştırma ve Geliştirme Merkezi, Programlama Endüstrisi 96, Bilgi Teknolojileri Merkezi konferansının eğitim materyalleri

  • "Programlama Endüstrisi "96", Konferans materyalleri, Bilgi Teknolojileri Merkezi

  • Andrey Bondarenko Görsel Geliştirme Araçları (IDE)

  • Linux için Sergey Zhuravlev IDE'ye genel bakış

  • A. Chebotarev, "QT: arayüz ve sadece..."

  • AM Vendrov, Argussoft Co. CASE teknolojileri. Dipnot. CASE teknolojisinin içeriği. Bilgi sistemleri tasarlamanın modern yöntemleri ve araçları.

  • Wolfgang Mauerer, (çeviri: Alexander Mikhailov) DDD'de görsel hata ayıklama. Hiçbir şey olması gerektiği gibi çalışmaz; tüm programlar hatalarla dolu; teknik özellikler yanlış ve uygulama beklenenin tam tersini yapıyor. Hata bulmak, yalnızca yazılım geliştirme döngüsünün kaçınılmaz bir parçası değil, aynı zamanda herhangi bir programın "yaşam yolunun" önemli bir parçasıdır.

  • Guido Socher

  • Donald E. Knuth, "Sıralama ve Arama" Programlama Sanatı v.3

  • "Basit DirectMedia Katmanına Giriş" SDL, ücretsiz bir platformlar arası multimedya uygulama programlama arabirimidir. Oyunlar, oyun kitaplıkları, demo programları, öykünücüler, MPEG oynatıcılar ve diğer programlar oluşturmak için kullanılır.

  • Linux programları için grafik araçları
    Grafiksel araçlar, programlama dilinin programınıza bir grafik arabirimi entegre ettiği belirli bir işlev kümesi eklemenize izin veren alt program kitaplıklarıdır.

  • harvey Blume,

  • Denis Kolisnichenko, "Programatik I/O yönlendirmesi" [Yayın tarihi 09/25/2002.]

  • "Senaryoların gücünde" [AÇIK SİSTEMLER, 2002/09]

  • Konstantin Mikhailenko, "Paralel stil" 01 Mart 2002, Makale paralel hesaplamaya ayrılmıştır

  • Leonardo Giordani, "Paralel programlama - süreçler arasındaki etkileşim."

  • Kirill Pukhlyakov tarafından çevrilen Leonardo Giordani, "Paralel programlama - mesaj kuyrukları" bölüm 3.

  • X-Stranger tarafından hazırlanan Dinil Divakaran'dan alınan materyallere dayanarak, "Linux için kendi derleyiciniz"

  • Vladimir Popov, "Ben de böyle yaptım..." Amatör bir aceminin sorusuna tecrübesiz bir guru cevap veriyor ama herkes tecrübesini paylaşabilir. Bu durumda, derleme ile ilgilidir.

  • S.Sandeep, çeviri: Andrey Kiselev, "Ptrace ile Süreç İzleme -- Bölüm 1." ptrace sistem çağrısı, gdb gibi programlarda hata ayıklamanın temelidir, ancak bu sistem çağrısıyla çalışma ilkeleri, belgelerde yeterince ele alınmamıştır.

  • "ccache - derleyici için önbellek" ccache programı, derlemenin sonuçlarını önbelleğe alarak, uygulamanın tekrarlanan yeniden oluşturma işlemlerini önemli ölçüde hızlandırmanıza olanak tanır.

  • V. Meshkov, "Linux'ta CD/DVD Cihazlarını Programlama" (pdf dosyası). Kitap, denetleyici kayıtları kullanan sürücü kontrol prosedürünü, optik depolama ortamının mantıksal yapısını, Linux çekirdeğinde yerleşik ATAPI ve SCSI sürücülerini kullanma örneklerini, CD'lere çeşitli bilgileri yazmak için algoritmaları ve bu algoritmaların yazılım uygulamasını tartışıyor.

  • Davyd Madeley, tercümesi Sergey Bezdenezhnykh, "Kahire ve GTK+ 2.8 Kullanarak Pencere Öğeleri Oluşturma" Sürüm 2.8'den itibaren GTK+, Kahire'nin güçlü vektör grafik kitaplığını kullanarak tüm arabirim öğelerini oluşturur. Bu makale, işlemek için Kahire kitaplıklarını kullanarak kendi GTK+ widget'ınızı nasıl oluşturabileceğinizi gösterir.

  • Ilya Evseev, "Yeni Başlayanlar için MPI" MPI (Mesaj geçiş arayüzü), paralel bir uygulamanın dalları arasında iletişim sağlamak için yazılım araçları için bir standarttır.

  • "KDevelop olmadan Qt" Bu kılavuz, QT kitaplığını kullanan program oluşturmanın özelliklerini anlamanıza yardımcı olacaktır. QT kitaplığını kullanmak için tek ihtiyacınız olan bir konsol, bir metin düzenleyici ve bir grafik ortamdır (KDE gibi).

  • CORBA teknolojisine adanmış http://corba.kubsu.ru/ sitesi ortaya çıktı. Ana sayfada belirtildiği gibi, bu projenin bir yan yönü Linux'tur, çünkü CORBA teknolojilerini kullanan oldukça fazla sayıda geliştirici özellikle bu işletim sistemi için yazılım geliştirmektedir. (Link Alexey Kurgan tarafından gönderildi).

  • "SVGAlib"
  • GCC

  • Mulyadi Santosa, "GCC seçeneklerini keşfetmek."

  • GCC - Her Şeyin Kökü, Lorne Bailey
    GCC harika bir derleyicidir, ancak kılavuz sayfası çok kullanıcı dostu değildir. Not, derleyicinin kullanım kolaylığından bahseder.

  • Sergei Karasiov, "gcc gerçekte nasıl çalışır"



  • gcc part1 C, C++, Objective C Derleyicisi (Bölüm 1) Kullanıcı Kılavuzu (gcc 2.7)

  • gcc part2 gcc: C, C++, Objective C derleyicisi (bölüm 2) Yeni mimarilere taşıma (gcc 2.7)

  • Yazar: Jpiszcz, Çeviri: Yuri Prushinsky, "GCC'yi Optimize Etmek"
  • montajcı

  • Dmitry Gribenko, "C Programcıları için Linux Assembler" Bu kitap, makul düzeyde C bilen programcılara yöneliktir. Linux odaklı olan tek şey, kullanılan montajcı sözdizimidir. DOS ve Windows'taki Assembly dili programcıları Intel sözdizimini kullanır, ancak *nix sistemlerinde AT&T sözdizimini kullanmak gelenekseldir.

  • Ram Narayan, "Linux için Assemblers: Comparing GAS ve NASM" Bu makale, LinuxR için en popüler iki derleyici, GNU Assembler (GAS) ve Netwide Assembler (NASM) arasındaki en önemli sözdizimsel ve anlamsal farklılıkların yanı sıra farklılıkları açıklamaktadır. temel sözdizimi, değişkenler ve bellek erişimi, makro işleme, işlevler ve harici alt rutinler, yığın işleme ve kod bloklarını kolayca tekrarlama teknikleri.

  • Rostyslav. "UNIX ortamında birleştirici veya kabuk kodunun nasıl çalıştığı"

  • Aleksey Yu. Ulasevich, "Unix'te assembler kullanımı hakkında sık sorulan sorular."

  • Montajcı belgelerine bir dizi bağlantı.

  • K. Boldyshev, yazardan.

  • Konstantin Boldyshev ve F.-R. Rideau. Montaj NASIL. DOS, Windows ve Linux için Assembler. (İngilizcede).

  • Aleksey Ulasevich, "Unix'te assembler kullanımı hakkında sık sorulan sorular"

  • Genel olarak Linux ve en düşük seviyedeki cihazı için programlama ile ilgileniyorsanız, "http://www.lowlevel.ru/" sitesine bir göz atın. Orada birçok faydalı şey bulacaksınız, örneğin, "ELF formatı açıklaması" , "EXT2 dosya sistemi" "Bölüm 1" , "Bölüm 2" .



  • Linux/i386 Assembly programlama sayfası Linux için Assembly dili programlamaya ayrılmış bir sayfa.

  • Jan "s Linux ve Assembler Ana Sayfa Assembler'ı DOS ve Linux'ta.

  • Alexander Kuprin, ...Bir oyuncak işletim sistemi yazıyoruz...Daha derine inelim...

  • "Oyuncak İşletim Sistemi Yazma (Bölüm I)"

  • Krishnakumar R., Tercüme: Alexander Kuprin, "Oyuncak İşletim Sistemi Yazmak (Bölüm II)"

  • Bob, "Linux Çekirdeğinde Düşük Düzeyli PCI Veri Yolu Desteğinin Uygulanması"

  • Derleme çözme hakkında En iyi yeniden birleştirici bile bir programın kodunu doğru bir şekilde yeniden oluşturamaz. Derleme tek yönlü bir işlevdir. Ortaya çıkan montajcı ve ardından makine kodu, birçok faktöre bağlı özelliklere sahiptir ve entelektüel analiz her zaman uygun değildir ...

  • Intuit, "Netfilter Assembly Programlamanın Temelleri." İşletim sisteminin ağ çerçeveleriyle çalışma yeteneklerini genişleten bir çekirdek alt sistemi olan Netfilter ile çalışma hakkında bir makale. Programlama dili birleştiricidir. GAZ sözdizimi. Makale, bu alt sistemin yeteneklerini göstermek için en basit modüllerin (LKM) oluşturulmasını açıklamaktadır.
  • Kabuk dili

  • Michael Stutz, "Normal ifadeler" Düzenli ifadeler (regexps) kavramı - bir dizi diziyle eşleşen kalıpları açıklamak için bir gösterim - birçok program ve programlama dilinde ortaktır. Düzenli ifadelerin farklı uygulamaları ayrıntılı olarak birbirinden farklıdır, ancak düzenli ifadelerin nasıl oluşturulacağını öğrenmek için gereken ilkeler tüm uygulamalarında aynıdır.

  • "Kabuk kodlama" Bu makale, kabuk programlamanın en basit örneklerini tartışır.Makale, kabuk programlama için kapsamlı bir kılavuz değildir, ancak temellerini öğrenmek için yararlı olabilir.

  • Mendel Cooper, "Gelişmiş Bash Komut Dosyası Oluşturma Kılavuzu" veya "Kabuk Komut Dosyası Oluşturma Sanatı" Bu kılavuz, okuyucunun komut dosyası programlama bilgisine sahip olduğunu varsaymaz, ancak bu boşluğu hızla doldurur. . . yavaş yavaş, adım adım UNIX'in bilgeliğini ve güzelliğini ortaya çıkarıyor.

  • Ian Shields, "Linux İpuçları: Bash'te Karşılaştırma ve Test İşlevleri" Testin açıklaması , [, [[, (( ve if-then-else yapıları)


  • Sunil Thomas Thonikuzhiyil, çeviri: Ivan Pesin, Alexander Kuprin, "Diyalog/Xdialog ile basit arayüzler geliştirme" . Makale, komut dosyalarına basit arabirimler uygulamak için programlar iletişim kutusunun ve Xdialog'un kullanımını ele almaktadır. Bu, kabuk komut dosyası oluşturmaya aşina olduğunuzu varsayar.

  • Kabuk komut dili yorumlayıcısı
    Kabuk komut dili yorumlayıcısı



  • Jos Nazario, Tercüme: Jan Bezus, "awk'ye Giriş" Bu belge, awk'nin (veri dosyası işleme, getirme ve metin işleme) yeteneklerine ve özelliklerine kısa bir genel bakış niteliğindedir.

  • V. Kataev, "Linux'ta Yaşam. Profesyonel tavsiye. Senaryodan aracıya."

  • Abramov Alexey, "Kabuk üzerinde MySQL çoğaltma izleme komut dosyası"

  • Vadim Fedorov, "UNIX'te ekli bir mektup nasıl gönderilir?" Bash veya Shell'de yazılmış bir komut dosyasının nasıl eklenmiş bir dosya içeren bir e-posta göndermesi hakkında?

  • C-shell komut yorumlayıcısı, M.P. Krutikov, Süper Bilgisayar Merkezi

  • Kabuk Programlama (Unix) A. Solovyov,
    Aynı kitap, ancak metin biçiminde.



  • SHuRuP   Kabuk kodlaması: *nix-console'da programlama

  • Andrey Golovin, Normal İfadeler.
    Normal ifadeler, modern programcıların icat edebildiği en güçlü dize işleme aracıdır. Onların yardımıyla, karakter dizilerinin içeriği için dizeleri analiz edebilir, bu örneğe göre bir değiştirme yapabilir, dizeleri dizilere bölebilir ve çok daha fazlasını yapabilirsiniz.

  • S. Lapshansky, "Otomasyona Giriş [23.07.2002 tarihinde yayınlandı] Bölüm 2. Yararlı komut dosyaları ve bunları cron aracılığıyla çalıştırma hakkında.

  • Vadim Khokhlov, "Unix yolu:" Gariki ", onlar da Linux'ta "gariki"dir." Bazı veritabanlarından çeşitli ilginç ifadeleri seçmek için bir dizi bash betiği hakkında.
  • Dil C ve C++

  • N.Gorshkov, "libxml++ Kullanarak C++ Programlama Kılavuzu" libxml++, popüler XML ayrıştırıcı libxml için C ile yazılmış bir C++ API'sidir.

  • Alexander Sidorov, "MinGW + Qt + Emacs NASIL (Windows)" C++'da platformlar arası pencere uygulamaları yazmak için Windows altında bir grup MinGW, Qt4 ve Emacs kurma ve kullanma hakkında. Makale, C++ derleyicisinin kurulumu, platformlar arası pencere kitaplığı, geliştirme ortamının kurulumu ve konfigürasyonu ile ilgilidir.

  • Irtegov Dmitry V., "POSIX İş Parçacıklarını kullanarak çok iş parçacıklı programlama" POSIX İş Parçacığı Kitaplığı kullanılarak C/C++ dillerinde çok iş parçacıklı uygulamaların geliştirilmesine ayrılmış ders materyalleri.

  • Nikolay N. Ivanov, "C Dili İşaretçilerinin Sırları. Bölüm I."



  • "SQLite 3 için C/C++ API" "SQLite 3 için C/C++ API" referans kitabının yarısından fazlası Rusça'ya çevrildi, SQL komutlarının açıklamasını çevirme süreci başladı.

  • Hata ayıklama
    GNU make, System V make ve Berkeley make gibi make yardımcı programları, uygulama oluşturma sürecini basitleştirmek için gereken temel araçlardır. Bu makale size makefile yapısını tanıtacaktır.

  • "Sorun giderme ./configure, make ve make install komutları" Bazen bir programı derlemek için standart sıralama çalışmaz. Çeşitli hatalar göstermeye başlar ve programı derlemez. Bu makale, birçok yaygın hatadan nasıl kurtulacağınızı açıklar.

  • "Make.conf'un özellikleri" /etc/make.conf, derleyici için optimizasyon anahtarlarını belirten bir dosyadır.

  • Yazar: Raghu J Menon, çeviri: Andrey Kiselev, "örneklerde setjmp/longjmp" Makale, C programlama dilinde uygulanan setjmp/longjmp makrolarıyla nasıl çalışılacağını açıklar.

  • "C/C++ dilinin tarihi" Tarihsel olarak, bu dil, şimdi ikinci doğumunu yaşamakta olan Unix işletim sisteminden ayrılamaz.

  • Konstantin Tayturov, "Penguin Armor" C derleyicisinin modern uygulamalarının çoğu, değişken sınırların bütünlüğünü kontrol eden kod üretmez.

  • Mike Goblin, "Linux Sürücülerini Yazmak: İlk Adımlar" Linux için sürücü yazmak bana her zaman son derece zor ve gizemli gelmiştir. Ama şimdi - iki ay önce kendim böyle bir sürücü yazmam gerekiyordu. Süreç hiç de zor olmadı ve bana çok keyif verdi.
  • Mike Goblin, "Linux Sürücülerini Yazma, 2. Bölüm".

  • Kirill Kochetkov, "SPEC CPU2000. Bölüm 5 - Derleyiciler. Ek 2" Linux için üç C derleyicisinin performans açısından karşılaştırılması.

  • Rob Tougher, çeviri: Andrey Kiselev "Yeniden Kullanılabilir Kitaplıklar Oluşturma"

  • Daha Sert Rob

  • "Fox-toolkit. Rusça Dersler." FOX Toolkit, hızlı ve kullanışlı bir çapraz platform araç takımıdır (c++,ruby,python).

  • Yazar: Bhaskaran, çeviri: Andrey Kiselev, "Bir ağ aygıtı sürücüsü oluşturma - Bölüm 1" Bu makale, okuyucunun Linux işletim sistemi için bir ethernet ağ kartı sürücüsü oluşturma ilkelerini anlamasına yardımcı olmayı amaçlamaktadır. Ancak size yardımcı olacak ve sadece ağ kartını nasıl bağlayacağınızı anlayacaktır.

  • Kotelnikov Ruslan, "Linux'ta programlamaya başlamak"

  • Hyock "Şahin" Kim


  • Rob Tougher, Linux Sockets ile C++ Programlama

  • Rob Tougher, C++'da Xlib ile Programlama

  • "*nix altında paralel portların düşük seviyeli programlanması",

  • Yu.Yu.Gromov, S.I.Tatarenko, Tambov Devlet Teknik Üniversitesi, C Programlama

  • Bjarne Stroustrap, C++'a Giriş

  • Bjorn Stroustrup C++ Dilinin Tasarımı ve Evrimi. C++ dilinin yaratıcısı Bjarne Stroustrup tarafından yazılan bu kitap, C++ programlama dilini tasarlama ve geliştirme sürecini anlatmaktadır.



  • C++ Başvuru Kılavuzu Bjarne Stroustrap, M. Moshkov Kütüphanesi

  • Unix C Programlama Üzerine Bir Okuyucu Andrey Bogatyrev, M. Moshkov Kütüphanesi kopyala

  • Marchenko A.L. C++. Kadife yolu. Seçilmiş bölümler

  • A.Kalinin, "C veya C++?"


  • Yapacak adam (Çev. Yu. Kozlov)

  • Dmitry Chernyak. GNU markasını kullanma



  • Vladimir Ignatov

  • Vladimir Ignatov "GNU Make'ın Etkin Kullanımı"

  • Yazar: (C) Tedi Heriyanto

  • Richard M. Stallman ve Roland H. Pesch GNU Kaynak Düzeyi Hata Ayıklayıcı. Sekizinci Baskı, GDB 20000326 sürümü için. Mart 2000. Çeviren Dmitry Sivachenko.

  • Ivan Shmakov, "GDB Hata Ayıklayıcı"


  • "C++'da İstisna İşleme". C dili, programcıya, program çalışırken meydana gelen istisnaları işleme konusunda çok sınırlı bir yetenek sağlar. Bu açıdan C++, C'den çok daha gelişmiştir. Burada programcının doğrudan istisna işleme için çok daha fazla fırsatı vardır. C++ Standartları Komitesi, çok basit ama güçlü bir istisna işleme biçimi sağlamıştır.

  • A. Kalinin, "Basit ama kullanışlı bir bellek ayırıcı" Bu not, postfix'in yine örnek alınması anlamında "Postfix içeriden" devamı niteliğindedir. Ama eğer geçen sefer postfix "kuş bakışı" olarak değerlendirildiyse, şimdi tam tersine, herhangi bir uzmanlığı olmayan küçük bir program kodu parçası alınacak ve örnek olarak verilecektir.


  • Guido Socher tarafından GCC kullanılarak AVR mikro denetleyicilerinin programlanması
    Not, Atmel 8 bit AVR mikro denetleyicileri için bir geliştirme ortamının nasıl kurulacağını açıklar.

  • Gaurav Taneja, Qt Kitaplığını Kullanarak C++'da GUI Programlama, Bölüm 1



  • Ariel Ortiz Ramirez, Çeviren Andrey Kiselev, "Programlama: C# -- veri türleri"

  • Tom Bradley, Tercüme: Andrey Kiselev, "Programa genişletme modülleri (eklentiler) ekleme."

  • Gleb Pakharenko, "Linux işletim sisteminde ağ uygulaması" Bu makalede, ağın uygulanması program kodu düzeyinde ele alınmaktadır.

  • "indent - C kaynaklarının otomatik biçimlendirilmesi için program"
  • Pascal ve Delphi

  • A. Tarasov tarafından tercüme edilen Joost van der Sluis, Free Pascal (FPC) 2.2.0 sürümü yakın zamanda yayınlandı. Bu Pascal derleyicisi, günümüzün en dikkate değer açık kaynak derleyicilerinden biridir. Her gün daha fazla programcı FPC hakkında bilgi ediniyor ve uygulamalarını Object Pascal'da geliştirmeye başlıyor. Bu, özellikle grafik (GUI) uygulamaları geliştirmek için geniş bir araç seti içeren FPC için bir grafik geliştirme ortamı olan Lazarus'un geliştirilmesiyle kolaylaştırılmıştır.

  • Rudyuk SA, "Lazarus - Delphi çapraz platform. Özgür insanlar için programlama" Bu kitabın ana amacı Pascal'da profesyonel ticari ürünler yaratma olasılığını göstermektir. Bu yazılım ürünleri yalnızca ücretli işletim sistemlerinde (örn. Windows) değil, aynı zamanda ücretsiz işletim sistemlerinde de (örn. FreeBSD, Linux) çalışmalıdır. Programın geliştirilmesinin lisans anlaşmalarını ihlal etmeden ve pahalı yazılımlar satın almadan yapılması çok önemlidir (ve profesyoneller için bu, çağımızın en önemli konularından biridir).

  • Mikhail Prodan, "Lazarus - özgür Delphi'yi tanımak"

  • Anatoly Kamynin, "Özgür Pascal: Özgür İnsanlar için Özgür Yazılım" Sohbetimiz, GNU kamu lisansı altında bir grup geliştirici tarafından dağıtılan Özgür Pascal Derleyicisi (FPC) üzerinde odaklanacak.

  • Andrey Borovsky, "X-Window: Gizli Olmayan Windows" Bu makale Kylix araçlarını kullanarak X-Window ile çalışmaya odaklanacaktır. Pencerelerin ve bireysel kontrollerin ekran görüntülerini oluşturma, X-Window pencere hiyerarşisinde bir pencere arama ve diğer bazı yararlı özelliklere bakacağız.

  • Ruslan Denisenko tarafından tercüme edilen Marius Popa Adrian, "Ubuntu Linux altında ücretsiz pascal geliştirme ortamının kurulması" Ubuntu Linux'ta ücretsiz pascal derleyicisini ve delphi benzeri lazarus geliştirme ortamını kurmak için Rusça adım adım bir kılavuz.

  • Serdtsev A.A., "Glibc 2.3.2 ile Borland Kylix 3'te derleme sorunlarını giderme"

  • Ilya Avvakumov, "GNU GDB Hata Ayıklayıcı" Bu makale, Free Pascal ile yazılmış programların adım adım hatalarını kolayca ayıklamanıza olanak tanıyan GDB komutlarını açıklar.

  • A.P. Polishchuk, S. A. Semerikov, "Serbest Pascal Kullanarak X Penceresinde Programlama" . Sadece programlama hakkında değil, aynı zamanda X Window cihazı hakkında da (yazarların başladığı yer) öğrenebileceğiniz bütün bir kitap! Genel olarak, site Free Pascal diline adanmıştır, bu nedenle Linux altında programlama ile ilgilenen herkesin buraya bakmaları önerilir.

  • I. L. Shikhalev, "Free Pascal nedir ve ne ile yenir?" Free Pascal derleyicisine genel bakış, özellikleri, özellikleri vb.

  • "Kylix öğreticisi" Linux için Pascal programlama ortamı hakkında bir dizi makale.


  • Arseniy Chebotarev, "Linux için Uygulamalar - Kylix'in bir çeşidi"

  • Goblin M., "Kylix öğreticisi" Kylix'in kurulumunu, dbExpress vb. aracılığıyla veritabanlarıyla çalışmayı açıklar.

  • Kylix'e (Linux için Delphi) Genel Bakış Borland'ın yakın zamanda piyasaya sürdüğü Kylix (Linux için Delphi), geliştiriciler arasında büyük ilgi uyandırdı. Geliştirmenin yayın öncesi aşamasında, Kylix hakkındaki görüşler bazen aşırı coşkuludan agresif bir şekilde olumsuza kadar taban tabana zıttı. Yazar bu makalede bu ürün hakkındaki görüşlerini ifade etmeye çalıştı.

  • Borland Kylix dünyası Bu site, Linux işletim sistemi için hızlı bir uygulama geliştirme ortamı olan Borland Kylix ortamında programlamaya adanmıştır.

  • Mihail Golovanov Bir dizi makale. Kylix Eğitimi. 1. Kurulum Böylece, CD'li bir duraktan geçerken mavi etiketli bir CD ve büyülü Kylix yazısı gördüm. Daha doğrusu iki disk vardı ve ikisi de hemen satın alındı. Kylix'i RedHat Linux 7.0 altında yüklemeyi denedim...

  • Mihail Golovanov Bir dizi makale. Kylix Eğitimi. 2. dbExpress aracılığıyla veritabanlarıyla çalışma Kylix ve Delphi 6'da Borland, dbExpress veri tabanıyla çalışmak için yeni bir motor uyguladı.


  • M.Goblin Bir dizi makale. Kylix Eğitimi. 2. dbExpress aracılığıyla veritabanlarıyla çalışma. İlk adım.

  • Vyacheslav Belyaev, Borland Kylix - kurulum ve ilk tanışma Borland Kylix ile ilk tanışma - Linux için programlama ortamı [Published 06/01/2001]

  • Peter Coffee, "Kitlelere Linux" Borland'ın yeni uygulama geliştirme sistemi Kylix'e genel bir bakış, Pascal diline dayalı nesne yönelimli bir ortam olan Borland'ın Delphi'sine çok benziyor.
  • Java dili

  • Java teknolojileri hakkında yeni Rusça haber kaynağı - "javatech.info" .

  • Brian Goetz, Java Teorisi ve Uygulaması: Güvenli Tasarım Uygulamaları

  • Sergei Bezdenezhnykh, "GTK+ ile Java Programlama" Bu makalede, Gtk+ ve Gnome için Java uygulamaları oluşturmak için ihtiyacınız olan araçları öğreneceksiniz.

  • Maxim Bobachenko, "Java Sunucu Yüzlerine Giriş" Java Sunucu Yüzleri (JSF), Java web uygulamaları oluşturmak için bileşen tabanlı, olaya dayalı bir teknolojidir.

  • A.Fedotov, "Java SE 5 ile bellek kullanımını izleme"

  • "sun.com'daki kaynaklardan JAVA(TM) 2 SE v.1.4.1'in kendi kendine montajı"


  • Matthias Kalle Dalheimer, çeviri: Andi Peredri, "Qt ve Java'yı Karşılaştırmak"

  • Lozovyuk A. Java Tarihi. İnternet Devrimi Nasıl Başladı? Geleceği öngörmek için geçmişi anlamak gerekir. Java projesinin tarihi kendi içinde ilginç ve öğreticidir. Gelecekte neler beklenebileceğinin anlaşılmasını sağlar. Dünyadaki her şey aynı yasalara göre gelişir ve bilgisayar endüstrisi de bir istisna değildir.

  • Sünger Bob, "Java vs. NET - öznel görüş"



  • Java2, Linux'un yolunu açıyor ( Michael Sihirbaz, Dana Gardner, Paul Creel, BİLGİSAYAR DÜNYASI RUSYA #12, 99) Sun Microsystems Corporation, bağımsız Linux Blackdown Porting Team ile birlikte Java2 Development Kit'in (Java2DK) bir Linux sürümünü yarattı.


  • S.B. Dunaev. Java programlarından veri tabanlarına erişim ve Ruslaştırma sorunları
  • JavaScript dili

  • Peter Seebach, "ECMAscript'e Giriş" ECMAscript (popüler olarak JavaScript olarak bilinir), standartlardan bir sapma olarak doğduğu için ilginç bir tarihe sahiptir.


  • P. Khramtsov. JavaScript Programlamaya Pratik Bir Giriş

  • Java Servlet'lerinde Dinamik Grafikler. Bir grafik isabet sayacı nasıl oluşturulur? Sağlayıcıya kanal yükünü veya kuyruktaki mesaj sayısını gösteren bir diyagram mı? Tek kelimeyle, kullanıcının isteği üzerine dinamik olarak bir görüntü nasıl oluşturulur? Makale bu sorunu çözmek için seçenekler sunuyor ...

  • Melnikov M. "JavaScript: kullanışlı işlevler"
    Web sayfalarında komut dosyalarının kullanımı hakkında konuşmaya devam ediyoruz. Ve belki daha sonra bizim için çok faydalı olacak bazı fonksiyonlar yazarak başlayacağız.

  • Melnikov M. JavaScript ve nesne modeli
    Komut dosyası dilleri bir şekilde dünyayı alt üst etti ve onlar sayesinde sayfayla neredeyse her şeyi yapmanıza izin veren DHTML ortaya çıktı. Bildiğiniz gibi, tarayıcıda kazananın defnelerini sadece iki dil talep ediyor. Bu, VBScript - Visual Basic ve JavaScript'in bir alt kümesidir. Burada ikincisini en evrensel olarak ele alacağız.
  • Perl

  • N. Anisimova, "Başlangıç ​​Kılavuzu PDF::API2 Perl Modülünü Kullanma" Perl programcılarına PDF belgeleri oluştururken pratik çalışmalarında yardımcı olmayı amaçlayan bir genel bakış materyali.


  • Allan Peda, "Perl/CGI Oylama Sistemi Oluşturma"

  • "Kyiv Perl Kullanıcı Grubu" Ne yazık ki, uanet ve runet'te Perl'de yaşayan çok fazla kaynak yok, belki birileri onu faydalı bulabilir. Bazı ilginç şeyler zaten orada yayınlandı ...



  • A. Tarasov tarafından çevrilen Xavier Calbet, PDL, sayısal hesaplamalar ve çizim için Perl dilinin uzantılarıdır. Bu makalede, Mandelbrot kümesi PDL ve diğer sayısal hesaplama sistemleri kullanılarak oluşturulacaktır. Niteliksel bir karşılaştırma ve performans karşılaştırması yapılmıştır.



  • MySQL Perl:DBI referansı, CGI.pm modül dokümantasyonu, regexp öğreticisi, Libwww-perl modül dokümantasyonunun çevirisi, eksiksiz DBI spesifikasyonu ve DBD::mysql gibi "pdf formatında Perl dokümantasyon çevirileri".

  • Arseniy Chebotarev, "Perl: örneklerle eksiksiz anlatım"

  • Roman Imankulov, "Ayaklarımızın altındaki elmaslar hakkında" Perl ve Makefile hakkında biraz.

  • (12/20/2003) Yeni site - "Perl 6" Perl 6 ve Parrot sanal makinesinin kullanımına ilişkin bağlantılar ve faydalı notlar. Perl 6 için bir tür öğrenme günlüğü...

  • V.Maximenko, "Perl'de Turing testinin uygulanması" Makale, dinamik olarak bir kodla bir resim oluşturarak ve girişin doğruluğunu onaylayarak siteden bir formun otomatik olarak doldurulmasına ve gönderilmesine karşı bir koruma yöntemini açıklar.

  • Sean M. Burke, "LWP ile Web Temelleri" LWP ("Perl'de WWW için Kitaplık"ın kısaltması), İnternet'teki verilere erişmek için çok popüler bir Perl dil modülü grubudur.

  • Dave Gross, Alex Ten tarafından çevrildi. "Karma İşlevini Kullanarak Karma Davranışını Değiştirme" "Deneyimlerime göre, karma, Perl'deki en kullanışlı yerleşik veri yapısıdır."

  • "PERL'de Sunucu Uygulamaları Oluşturma" Crash Course.

  • Aynı "siteden" Perl dilinde bir malzeme seçimi


  • Guido Socher

  • "Perl 6'da Larry Wall" Perl'in mucidi Larry Wall'un izniyle, işte seriden Perl 6 makalelerinin bir çevirisi.

  • Stephen Wilhelm, çeviren Dmitriy A. Kuvshinov, "Gtk-Perl'in Tanımı" Çevirmen çeviriyi tamamlamak için yardım istiyor. Arzunuz ve fırsatınız varsa - bağlanın!

  • S. Bogomolov, Perl (kurulum)

  • Alexander Smyslovski. Herkesin takdir edeceği Perl. Perl dili 1986'da oluşturuldu ve başlangıçta kelime işlemeye yönelikti. Bu nedenle adı - Pratik Çıkarma ve Rapor Dili (çıkarma ve raporlama dili). Ancak yıllar geçti ve şimdi Perl çok daha geniş bir görev yelpazesi için kullanılıyor. Son yıllarda popülaritesinin hızla artması sayesinde CGI betikleri yazmak için en popüler dillerden biridir. Hadi tanışalım!

  • tr.Perl SSS Pavel Ammosov , Artur Penttinen , Mikhail Polyakov , Grigory Strokin Copies

  • V. Maslov. "Perl'e Giriş"
    kopyala

  • Randal Schwartz, Tom Christiansen "Öğrenme Perl" İngilizce'den C.M. Timacheva

  • Perl 5.003 Rusça Açıklamada Kılavuz. Basitten karmaşığa. Pearl'ün başlatılması - programlar. Sözdizimi. Yerleşik değişkenler. Şablonlar. Operatörler ve öncelikler. Yerleşik işlevler. alt rutinler. Rapor biçimleri. Hata ayıklama.



  • Igor Yarovinsky, "Perl+Tk'de grafik arayüzler oluşturma."


  • Perl 5 Başvuru Kılavuzu. Perl 5 El Kitabı Johan Vromans tarafından. (İngilizcede).

  • PERL - Pratik Çıkarma ve Rapor Dili. Erişim kolaylığı için Perl kılavuzu birçok bölüme ayrılmıştır. Perl, C, sed, awk ve sh'nin bazı özelliklerini birleştirir, böylece bu dillere aşina olan insanlar onunla zorluk çekmez. (İngilizcede).

  • Ben Okopnik, Öğrenme İncisi, Bölüm 1

  • Ben Okopnik, Perl Öğrenme, Bölüm 2

  • Ben Okopnik, Öğrenme Perl. 4. Bölüm

  • "Perl ayın tek cümlesi: Nisan en zor aydır"

  • Ben Okopnik, Tercüme: Pavel Sokolov, "Perl Ayın Tek Astarı: Yanlış Adlandırılmış Dosyalarla Bir Macera"

  • Ben Okopnik

  • Ben Okopnik, Tercüme: Pavel Sokolov, "Perl Ayın Tek Kalemi: Özel Arşivlerle Bir Macera."

  • Mark Nielsen, Perl ile Garantili Sabit Disk Temizleme

  • Mark Nielsen, Perl ve PostgreSQL'i Birlikte Kullanmak

  • Bir Perl/CGI betiği nasıl hayata geçirilir Bu makale, kendi Web uygulamalarını oluşturmaya karar vermiş ve bir araç olarak Perl programlama dilini (Pratik Elektrikli Çöp Listeleyici) seçmiş olanlar için "hızlı bir başlangıç" elde etmeye yardımcı olmayı amaçlamaktadır. onları yaratmak.

  • Site için bir dizin oluşturun. Meta açıklama ve meta anahtar kelimeler için sitenin tüm sayfalarını tarayan ve nihai tabloyu derleyen bir Perl betiğinin oluşturulmasını açıklar - bir dizin veya bir konu dizini.


  • Tom Christiansen, Nathan Torkington, Perl: Programmer's Library Kitap, Perl diliyle çalışırken ortaya çıkan sorunların çoğunu çözmenin kapsamlı bir yolunu içerir. Programlama tekniklerinin temellerinden profesyonel inceliklere, dizeler, sayılar ve dizilerle yapılan işlemlerden SQL veritabanları oluşturmaya, CGI komut dosyası oluşturma ve İnternet uygulamalarından ciddi istemci-sunucu sistemleri geliştirmeye kadar çok çeşitli konular ele alınmaktadır.

  • WebScript.ru: web için komut dosyaları ve programlama (PHP, Perl). Perl ile ilgili makaleler.

  • Dmitry Lyalyuev, "Perl'de Üç Harf" Harfleri oluşturmak ve göndermek için bu güçlü programlama dilinde bir komut dosyası yazılması düşünülür.

  • Erizhokov AA, PCRE Perl sözdizimini kullanarak düzenli ifadeleri desteklemek için bir dizi işlev hakkında bir makale.

  • Stas Bekman, "Neden mod_perl?" Tercüme: Zakharova Inga

  • Stas Bekman, "mod_perl in 30 dakika. Kısım I" Tercümesi: Zakharova Inga

  • Misko D. Perl/CGI betiği nasıl hayata geçirilir
    Bu makale, Web uygulamalarını "kendi elleriyle" oluşturmaya karar veren ve bunları oluşturmak için bir araç olarak Perl programlama dilini (Pratik Elektrikli Çöp Listeleyici) seçenler için "hızlı bir başlangıç" sağlamaya yardımcı olmayı amaçlamaktadır.

  • "Perl modüllerini keşfetme, bölüm 1. GD kullanarak anında grafik oluşturma"

  • Pradeep Padala, Aleksey Cheglyakov tarafından çevrildi, "Perl modüllerini keşfetme, bölüm 2: GD::Graph kullanarak diyagram çizme"

  • Arseniy Chebotarev, "Yararsız Perl ve Dünyayı Daha İyi Yapmanın Genel Teorisi" Perl'deki örneklerle ters kaynak kodu hakkında.

  • Pavel Golubev, "Örnek olarak PDF::API2 Kullanarak PDF Yazdırılabilir Web Siteleri Oluşturma" PDF::API2 Perl modülünün PDF raporları oluşturma yeteneklerinin gösterilmesi.
  • PHP

  • "Örneklerde PHP betiklerinde tipik güvenlik sorunları" Sunumda, popüler PHP betiklerinde basit örnekler kullanılarak, sunumda PHP programcılarının ciddi güvenlik sorunlarına yol açan tipik hataları anlatılmaktadır.

  • Sergej Ermakov, FastCGI olarak PHP ve hakların dağıtımı

  • Robert Bradley, "PHP Uygulamalarınıza Uluslararası Destek Nasıl Eklenir"

  • "Yol Açıklaması: Seyahat Etmek" PHP betiklerinin nasıl saldırıya uğradığı hakkında.

  • PHP Öğrenmek, Bölüm 3: Kimlik Doğrulama, Veri Akışı, Nesneler ve İstisnalar
    Bu öğreticide, iş akışı özellikli bir uygulama oluşturmak için PHP'yi nasıl kullanacağınızı öğrenecek, HTTP kimlik doğrulaması, veri akışları, nesne oluşturma ve istisna işleme hakkında bilgi edineceksiniz.

  • PHP Öğrenmek, Bölüm 2: Dosyaları sunucuya yükleme ve dosyalar hakkında bilgi depolamak için XML kullanma
    Bu öğreticide, iş akışı etkin bir uygulama oluşturmak için PHP'yi nasıl kullanacağınızı öğreneceksiniz.

  • PHP'yi Öğrenmek Bölüm 1: Kayıt Sayfası, Formlar ve Veritabanı Etkileşimi
    Bu öğreticide, basit bir iş akışı etkin uygulama oluşturmak için PHP'yi nasıl kullanacağınızı, HTML formlarını kullanarak PHP sayfalarını nasıl oluşturacağınızı ve veritabanlarına nasıl erişeceğinizi öğreneceksiniz.

  • PHP oturumları. 4. Bölüm (sonraki ve önceki bölümler okunabilir)

  • Boyko Sergey, "PHP'de Kendi CMS'niz. Bölüm 1"

  • Harry Fuecks, çeviri: Mullin Sergey, Kuzma Feskov, "PHP'de Önbelleğe Alma"

  • Kuzma Feskov tarafından çevrilen John Lim, "PHP optimizasyonu hakkında NASIL"

  • Andi Gutmans, Stig Bakken ve Derick Rethans, Vadim Kryuchkov tarafından çevrildi, "PHP 5'teki yenilikler neler?"

  • Feskov Kuzma, "Küçük bir site için harika fırsatlar" (PHP'de Zip arşivleriyle çalışma).

  • Tercüme: Edgar Mkrtchyan, "PEAR HTML_QuickForm: Yeni Başlayanlar Kılavuzu" PEAR'ın (PHP Uzantısı ve Uygulama Deposu) bölümlerinden biri olan HTML_QuickForm'a basit bir giriş.

  • Sterling Hughes, çeviri: Dmitry Korolenko, "PHP Programmer's 21 Mistakes" PHP'yi öğrenmek çok kolaydır. Bu birçok insanı cezbeder; ancak görünen basitliğine rağmen, bu dili doğru ve etkili kullanmayı öğrenmek o kadar kolay değildir.

  • Sterling Hughes, "21 PHP Programlama Hatası".
    "I. kısım
    "Bölüm II
    "Bölüm III "En İyi 21 PHP programlama hatası", Sterling Hughes, 14 Ocak 2001 http://www.zend.com/zend/art/mistake2.php, Tercüme: Danil Mironov.

  • "UNIX'te paylaşılan barındırma için güvenli PHP kurulumu"

  • "Dosya Listeleri" PHP'de dosya grupları üzerinde (bir klasörün içeriğini okuma, bir klasörü tekrar tekrar okuma, belirli dosya türleri için bir klasörü tekrar tekrar okuma ve bir dizin ağacı yazdırma) temel işlemlerin nasıl gerçekleştirileceğini öğrenir.

  • "PHP Inside", geliştirmelerinde PHP kullanan web programcılarına yönelik bir Rusça elektronik (PDF) dergisidir.

  • Monte Ohrt, Andrei Zmievski, Sergei Suslenkov, 21-05-2004, "Smarty bir derleme şablon motorudur" PHP "HTML'ye gömülü bir dil" olarak adlandırılsa da, PHP ve HTML'nin karıştırıldığı birkaç proje yazdıktan sonra, çoğu kişi anlar biçim ve içeriğin ayrılması İyi Bir Şeydir!


  • David Lechnyr



  • http://phpclub.unet.ru/ PHP ve MySQL Geliştiriciler Kulübü. Makaleler, incelemeler, posta listeleri, PHP ve MySQL kod örnekleriyle ilgili Rusça belgeler. Çevrimiçi mağazalar, portallar, WWW veritabanları oluşturma hakkında faydalı bilgiler. Hazır geliştirmeler var (ücretsiz).


  • D.Svirepchuk, "Kişisel Anket" Sitede anket oluşturmak için PHP betiği hakkında.

  • Denis Migachev, "PHP ve MySQL. Bölüm 1. MySQL ile doğrudan çalışma"

  • Alexander Netkachev, "PHP'de (PHP4) DOM XML'e bir alternatif", 04/15/2004.

  • Alexander Netkachev, "Migration to PHP5" İncelememde PHP5'teki değişikliklere mümkün olduğunca eksiksiz bir genel bakış sunmaya çalıştım.

  • Alexander Netkachev, "Hataya dayanıklı PHP kodu yazma"
    "Hataya dayanıklı PHP kodu yazma"

  • S. Tarasenko. PHP'de çerezlerle çalışma

  • A. Orlov PHP: etkileşimin sırları

  • Ambersky R., "PHP4 banner görüntüleme komut dosyası" Bu makalede sunulan banner görüntüleme komut dosyaları oldukça basit. Banner açıklamaları, tıklama sayısı ve gösterimler bir metin dosyasında saklanır, bu nedenle MySQL gerekli değildir.

  • HTTP MySQL ve PHP kullanarak bir sayfaya güvenlik yükleme. Bu, HTTP kimlik doğrulaması kullanarak web sayfalarınızın güvenliğini sağlamanın temellerini size göstermesi gereken bir eğitimdir. Geleneksel .htaccess yöntemi (Apache sunucusu) yerine, kullanıcı verilerini ve şifrelerini depolamak için MySQL kullanacağız. Her şeyi mümkün olduğunca çiğnemeye çalışacağım, bence, yeni başlayan birinin MySQL ve PHP öğrenmesi için neyin gerekli olduğu konusunda.

  • PHP ve mySQL için Primer (pdf dosyası) Bu çalışma PHP ve MySQL kılavuzlarının yerini almak için tasarlanmamıştır. Bu primer, PHP'yi ve MySQL veritabanı ile nasıl etkileşime girdiğini öğrenmenin ilk adımlarını atmanıza yardımcı olacaktır.

  • Adam Trachtenberg ve David Sklar (8/3/99) Çeviren N.V. Kostromina. (hepsi bir dosyada - ).

  • Osipov Alexey, "PHP ile ilgili istatistiklerin toplanması" Her webmaster, ziyaretçileri hakkında en azından biraz bilgi sahibi olmak ister. Bu makale, basit bir ziyaretçi veri toplama sistemi oluşturmanın ne kadar kolay olduğunu gösterir.

  • Stig Sather Bakken ve diğerleri, "PHP Kılavuzu"

  • T. Rathshiller, T. Gerken "PHP4 kullanarak veritabanlarına erişim" "PHP4: Web Uygulama Geliştirme. Programmer's Library (+CD)" kitabından bölüm

  • Shawn Wallace PHP Çevirisine Giriş: Mike J.K. ( [e-posta korumalı])

  • S. Losev. PHP ve MySQL, bir web sitesi oluşturucunun çalışma araçlarıdır.

  • S. Losev. Web sitesi oluşturucu araçları.
    Modern "site oluşturma" serisinden bu makale, popüler MySQL sistemi ve PHP programlama dili hakkında, herhangi bir İnternet sitesi geliştiricisinin karşılaştığı sorunları çözmek için nasıl kullanılabileceğini anlatıyor - haber hazırlama ve görüntüleme, metin bilgilerini girme ve görüntüleme, sitede arama, ek hizmetlerin organizasyonu ("ziyaretçinin tanınması", forumlar, anketler vb.). Bu araçların her ikisi de ücretsizdir ve istisnasız tüm barındırma sağlayıcıları tarafından sağlanır.
    Bölüm 1. PHP ve MySQL'e Başlarken
    Bölüm 2. Her yerde haber var ama nasıl girilir ve gösterilir?
    Bölüm 3. Site için makaleler
    Bölüm 4. Ek hizmetler

  • PHP Web Uygulaması Güvenlik Teknikleri Bu makalenin amacı, WWW sohbetleri, ziyaretçi defterleri, web forumları ve diğer benzer uygulamalar gibi web uygulamalarının güvenliğini sağlamak için bazı teknikleri göstermektir... Kopyala .

  • Bryan Brunton, Merchant Empires: Kendi Evreninizi PHP'de Programlama

  • WebScript.ru: web için komut dosyaları ve programlama (PHP, Perl). PHP ile ilgili makaleler.

  • İlyin S. Din PHP PHP, aktif Web sayfaları oluşturmak için yorumlanmış bir dildir. Perl ve ASP'ye çok benzer, ancak onlardan çok daha kullanışlıdır. PHP ile Apache şu anda en popüler web sunucusudur.

  • A. Kukharchik PHP herkes için!




  • Denis Kolisnichenko, PHP ağ işlevlerinin gözden geçirilmesi (Orijinal: http://www.softerra.ru/review/program/16851/) Yayınlanma: 03/21/2002

  • Andrey Goncharenko,
  • Bu makale, Windows Programcıları için Linux Araçları kitabına ek niteliğindedir. Tüm örnekleri genel bir arşiv şeklinde metne indirebilirsiniz.

    Entegre geliştirme araçları (ortamlar) (IDE) değiller yazılım geliştirmenin kritik olarak ihtiyaç duyulan bileşeni. UNIX geleneğinde, metin rengi işaretleme, bağlamsal arama ve değiştirme işlevleri gibi ek gelişmiş özelliklere sahip bir metin düzenleyicinin kullanılması yazılım geliştirme için oldukça yeterli kabul edilir... Bu tür gereksinimleri karşılayan çok sayıda düzenleyici vardır. Linux, geleneksel ile başlayan vim ve emacs ve basit düzenlemeye mc F4 tarafından. Deneyimler, bu fonların orta ölçekli projelere kadar oldukça yeterli olduğunu göstermektedir.

    Ancak bir IDE'nin kullanılması, program kodunun daha verimli bir şekilde çalışılmasını, döngünün birlikte daha hızlı yürütülmesini mümkün kılar: kodu düzenleme - proje oluşturma - hata ayıklama. GUI uygulamalarının geliştirilmesinde IDE'nin rolü önemli ölçüde artmaktadır, çünkü çoğu IDE kompozisyonlarında varsayılmaktadır. görsel inşaatçılar grafik ekranlar.

    Linux için değişen derecelerde entegrasyona sahip birçok farklı IDE vardır. Zaten o kadar çok var ki, hepsini veya önemli bir bölümünü ayrıntılı olarak açıklamak anlamsız hale geliyor: belirli IDE'lerin kullanımı, büyük ölçüde öznel tercihler ve alışkanlıklar meselesi haline geliyor. En yaygın olarak kullanılan IDE'lerden yalnızca birkaçını listelemek mümkündür (ve görünümleri "görerek ayırt etmek" için gösterilmiştir):

    $ temizlemek

    $ du -hs


    1. tutulma Günümüzün en iyi bilinen ortamlarından biri olan IDE (Eclipse Integrated Development Environment, http://www.eclipse.org/) 2000 yılından bu yana, önce tescilli bir IBM projesi olarak aktif olarak geliştirilmiştir, daha sonra açık hale dönüştürülmüştür. kaynak proje. Ayırt edici bir özellik, dinamik uzantıların (sıradan bir kullanıcı tarafından hazırlanabilen) olasılığıdır, bu nedenle, Java, C / C ++, PHP, Python ve diğerleri dahil olmak üzere düzinelerce programlama dilini desteklemek için eklentiler geliştirilmiştir. eklentilerle çalışma kolaylığı nedeniyle sayısı sürekli artan diğerleri.

      Bu geliştirme ortamı, kendisi tamamen Java'da yapıldığı için hemen hemen tüm işletim sistemleri için sunulmaktadır. Ancak Eclipse IDE, yalnızca üzerinde çalışabileceği birçok işletim sistemi anlamında değil, aynı zamanda birçok işletim sistemi anlamında da çok platformludur. donanım platformlarıçapraz geliştirilebilen x86 olmayanlar: ARM, MIPS, PPS... ve hatta AVR gibi mikro denetleyiciler. Eclipse IDE, geliştirme araçlarına ek olarak yazılım eklentileri içerir. öykünücüler hata ayıklama amacıyla diğer donanım platformları (örn. Android ARM). Eclipse IDE'ye dayalı olarak, üçüncü taraf geliştiriciler, belirli uygulamalar için uzmanlaşmış birçok başka IDE oluşturmuştur ve bu, IDE'de belirli bir değişiklik seçmeyi zorlaştırmaktadır.

      Eclipse IDE, kurulabileceği hemen hemen tüm Linux dağıtımlarının depolarında bulunur. Ancak proje çok dinamik bir şekilde gelişiyor, bu nedenle proje sitesinden en son uygulamayı kurmak mantıklı olabilir.

      Şekil, ARM7 mimarisi için geliştirilmiş minimal bir projenin Eclipse IDE'sindeki olası bir görünümünü göstermektedir:

    $ dosya faktörü

    faktöriyel: ELF 32-bit LSB yürütülebilir, ARM, sürüm 1 (SYSV), statik olarak bağlantılı, soyulmamış


    1. kehanet Solaris Stüdyosu(http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html - eski Sun Solaris Studio projesi), orijinal olarak Solaris işletim sistemine odaklanan en eski projelerden biridir, ancak aynı zamanda Linux için alternatif bir uygulama. Derleyici dahil Solaris Stüdyosu ( ss) özel optimizasyon özelliklerine sahiptir ve genellikle daha verimli ve daha hızlı kod üretir.gcc. Ancak ortam, derleyiciyi kullanacak şekilde yapılandırılabilir.gcc. Programlama dili odaklı: C, C++ ve Fortran, ek üçüncü taraf eklentileri ile (doğrudan Solaris Studio'dan yüklenir): Java, PHP, Python, Ruby, Ada (ancak bu, ek bir Oracle JDK kurulumu gerektirebilir).


      Solaris Studio, Java'da uygulanan NetBeans IDE'ye dayanmaktadır (çoğu OS Solaris aracı gibi). Çok zengin ayarlara sahiptir (arşivSolarisStudio.tgz), kullanılan terimler dahilderleyiciler:


      Solaris Studio, Linux dağıtım havuzlarında listelenmez ve Oracle sitesindeki (yukarıda listelenmiştir) kurulum dosyalarından kurulmalıdır.Kurulum ikili dosyası .

    2. IntelliJ FİKİR(http://www.jetbrains.com/idea/), 2000'den beri aktif olarak geliştirilen, Java diline odaklanan, ancak Android için gelişmiş geliştirme ve hata ayıklama araçlarına sahip bir proje (QEMU sanal makinesine dayalı verimli bir Android öykünücüsü vardır) . IDE'nin iki uygulaması geliştirilmektedir: ücretsiz (genel) ve profesyonel (tescilli).

      İşte göründüğü gibiIntelliJFİKİRandroid projesi (arşivIDEA.tgz) ve öykünücü Bu uygulamanın hatalarının ayıklandığı Android:



      Başlangıçta IDEA, terminalden bir uyarı görebilirsiniz:

    $ ./fikir.sh

    OpenJDK Çalışma Zamanı Ortamı (IcedTea6 1.8.3) (fedora-43.1.8.3.fc12-i386)

    OpenJDK Sunucu VM (derleme 14.0-b16, karma mod)

    UYARI: OpenJDK Java çalışma zamanını kullanarak IDE başlatıyorsunuz

    NOT: Hem Sun JDK hem de OpenJDK yüklüyse

    lütfen geçerli Sun JDK kurulumu için IDEA_JDK veya JDK_HOME ortam değişken noktalarını doğrulayın


    $wxglade


    CCOPT=`wx-config --cxxflags`

    LDOPT=`wx-config --libs`

    uygulama:app.cpp

    G++ $(CCOPT) $(LDOPT) $< -o [e-posta korumalı]

      Daha sonra, daha önce tartışılan Geany'de daha fazla çalışma için ortaya çıkan projeyi açabiliriz ... Bu, çok entegre IDE'lerin "tek çatı altındaki" yığınını ortadan kaldırır: hem GUI görsel görüntüleri üretir hem de program kodunu çalıştırır.

    Bunlar, Linux geliştirmede aktif olarak kullanılan tüm IDE'ler değildir. Diğerlerinden bazı En azından sadece "adıyla" aramakta fayda var:

    • Anjuta(http://www.anjuta.org/) - C, C++, Vala, Java, JavaScript, Python dillerinde geliştirme için GNOME projesinin resmi entegre geliştirme ortamı. GUI uygulamaları geliştirmek için özellikle uygundur.
    • QDevelop(http://code.google.com/p/qdevelop/) QtDesigner (http://trolltech.com) veya Qt Creator (http://trolltech.com/developer/qt-creator) ile birlikte güçlüdür karmaşık Qt kitaplığına dayalı grafik uygulamalar geliştirmek için. Qdevelop, tamamen farklı bir kod üzerine inşa edilmiş olsa da, Kdevelop'un hafif bir sürümüdür. Qdevelop'un gelişimi 2006'da başladı.
    • haiq(http://groups.google.com/group/haiq/), Qt kitaplıklarını kullanarak geliştirmeye odaklanan başka bir çok platformlu IDE'dir.

    Bunları ve diğer IDE'leri kolaylıkla bulabilir ve aşağıda açıklanan yazılım kurulum tekniğini kullanarak zevkinize göre sisteminize kurabilirsiniz. Bu konunun daha fazla ilgiyi hak etmesi olası değildir.