Môi trường lập trình trực quan cho Linux

Có thể có bản phân phối Linux tốt hơn cho các nhà phát triển web không? Hoặc hơn trong các điều khoản chung, giả sử, có thể bản phân phối Linux tốt nhất dành cho nhà phát triển?

Chúng tôi đã xem xét SemiCode OS, một bản phân phối Linux dành cho lập trình viên. Nhưng SemiCode OS vẫn đang trong giai đoạn thử nghiệm nên tôi quyết định lập danh sách để trả lời câu hỏi của bạn: cái mà Bản phân phối Linux Tôi có nên sử dụng để lập trình?

Nhiều thứ, chẳng hạn như ngôn ngữ lập trình, công cụ được sử dụng, sự hỗ trợ, tính sẵn có của các gói và tốc độ chúng được cập nhật trong kho cũng như nhiều yêu cầu phi chức năng như môi trường máy tính để bàn, mang lại sự ổn định và rất quan trọng để xác định.

Lập trình viên tiếp xúc với HĐH, đặc biệt ở mức độ cao hơn bất kỳ ai khác. Đối với lập trình viên, hệ điều hành phải kích hoạt anh ấy/cô ấy. Và khi nói “hòa nhập”, ý tôi là tạo ra niềm đam mê cháy bỏng đối với việc viết mã và mong muốn biến thế giới thành một nơi tốt đẹp hơn.

Các bản phân phối Linux tốt nhất cho người mới bắt đầu lập trình

Dù sao đi nữa, hãy bắt đầu. Chúng ta sẽ xem xét các trình quản lý gói, tính khả dụng của gói, tính ổn định, mô hình phát hành và môi trường máy tính để bàn phân phối nói riêng.

Ngoài ra, nếu bạn có các tùy chọn phân phối của riêng mình, tùy chọn này có thể được đưa vào danh sách “ Các bản phân phối tốt nhất Linux dành cho lập trình viên mới bắt đầu" - hãy viết chúng vào mẫu nhận xét trên trang web.

1. Ubuntu

Ubuntu đưa ra 3 lý do cụ thể để các lập trình viên sử dụng nó.

Ubuntu đã phát triển đến mức nó đã trở thành hiện thực máy tính để bàn Linux. Tôi thấy rằng hầu hết tất cả các nhà cung cấp phần mềm sản xuất cho nền tảng Linux đều cung cấp gói .deb. Ngày nay, Ubuntu nhận được nhiều sự hỗ trợ của nhà cung cấp hơn bất kỳ bản phân phối nào khác.

Điều này có nghĩa là bất kỳ IDE, công cụ nào mà nhà phát triển cần sẽ có trình cài đặt .deb sẵn sàng để tải xuống. Tất cả những gì bạn phải làm là nhấp vào nút tải xuống. Điều này cũng có lợi thế rất lớn khi dự án của bạn phụ thuộc vào phiên bản cụ thể phần mềm. Nó cũng có một kho phần mềm ổn định khổng lồ.

Ubuntu cung cấp phiên bản LTS sẽ được hỗ trợ trong 5 năm và không bao giờ được phiên bản LTS hỗ trợ trong 9 tháng. Phiên bản không phải LTS không có số lượng gói lớn (như biến thể LTS). Điều này mang lại sự ổn định vô song. Các thành phần chính hệ điều hành và kernel sẽ không thay đổi, như trường hợp của phiên bản di động của hệ điều hành. Điều này cung cấp cho các lập trình viên và nhà phát triển một cơ sở làm việc ổn định và đáng tin cậy, sẽ không thể hiện bất kỳ sự mâu thuẫn nào.

Thứ ba, tôi muốn bàn về môi trường làm việc Máy tính để bàn Ubuntu, đó là Unity. Mặc dù đây chỉ là vấn đề sở thích chủ quan nhưng tôi muốn nói về lợi ích của Unity đối với một lập trình viên.

Unity có giao diện đơn giản. Trình khởi chạy là một ngăn xếp đơn giản, nơi bạn đặt tất cả các ứng dụng yêu thích và được sử dụng thường xuyên nhất của mình. Bạn khởi chạy ứng dụng và chuyển đổi giữa các ứng dụng bằng cùng một trình khởi chạy. Tôi nghĩ đây là một điều tích cực, bởi vì lớp vỏ này ít xâm lấn hơn nhiều so với Gnome. Điều này giúp việc chuyển đổi giữa các ứng dụng trở nên dễ dàng hơn. Ngoài ra, Unity rất dễ tùy chỉnh. Dash cũng rất thân thiện với người dùng và giúp bạn điều hướng hệ điều hành một cách nhanh chóng. Thành thật mà nói, launcher là một công cụ tăng cường hiệu suất tuyệt vời.

Ubuntu là một hệ điều hành được đánh bóng. Ubuntu cũng có sẵn trong phiên bản khác nhau​​và có những bản phân phối tuyệt vời trên Dựa trên Ubuntu. Kiểm tra chúng ra quá. Bạn có thể tải xuống Ubuntu từ trang web chính thức.

2. openSUSE

OpenSUSE là một trong những bản phân phối Linux phức tạp nhất. Nó có một cộng đồng tuyệt vời, một lĩnh vực phát triển vững chắc và thái độ hoàn toàn chuyên nghiệp. Mặc dù tôi sử dụng Arch Linux trên máy tính của mình nhưng tôi luôn đánh giá cao openSUSE.

OpenSUSE phù hợp hơn nhiều với các nhà phát triển, đặc biệt là vì sự tự do mà nó mang lại. OpenSUSE có hai loại. Và nếu chúng ta nói về bản phân phối Linux tốt nhất dành cho người mới bắt đầu lập trình thì đây sẽ là một lựa chọn tốt.

Bước nhảy vọt đi kèm với vòng đời 6 tháng sau khi phát hành phiên bản tiếp theo. Vì vậy hiện tại nếu bạn cài đặt OpenSUSE Leap 42.2 thì nó sẽ được hỗ trợ tối đa 6 tháng sau khi openSUSE Leap 42.3 ra mắt. Nó đi kèm với phần mềm ổn định được đảm bảo, vì vậy mọi công cụ bạn cần để phát triển sẽ hoạt động mà không có lỗi trong và ngoài dự án của bạn.

Mặt khác, openSUSE Tumbleweed tuân theo đợt phát hành luân phiên. Bạn có thể nói nó sẽ được hỗ trợ mãi mãi. Phần mềm sẽ được cập nhật vào ngày một cách thường xuyên. Tất cả các IDE, trình soạn thảo nguồn mở yêu thích của bạn và các công cụ khác sẽ luôn được cập nhật lên phiên bản mới nhất phiên bản mới nhất. Mặc dù các bản cập nhật đã được kiểm tra kỹ lưỡng và hầu như không bao giờ gây ra sự cố liên quan đến việc phân phối chéo nhưng có một điều bạn nên cân nhắc. Thông thường, dự án của bạn có thể phụ thuộc vào một phiên bản phần mềm cụ thể như JDK. Bạn nên cẩn thận khi chấp nhận cập nhật trong những trường hợp như vậy.

Leap hay Tumbleweed, openSUSE có một cách cung cấp phần mềm hoàn toàn tuyệt vời. Chỉ cần truy cập software.opensuse.org, tìm kiếm gói yêu cầu và chỉ cần nhấp vào "Cài đặt trực tiếp" và hoàn tất. Không có kho lưu trữ, lệnh và lỗi phụ thuộc. Tôi nghĩ đây là điểm bán hàng chính của openSUSE. Điều này sẽ tiết kiệm rất nhiều thời gian khi bạn chỉ muốn cài đặt các thứ và chuyển sang viết mã.

Cuối cùng, openSUSE là một bản phân phối Linux tuyệt vời để lập trình và mã hóa vì độ tin cậy, tính ổn định và kho lưu trữ khổng lồ các phần mềm được hỗ trợ tốt. Không có gì ngạc nhiên khi nhiều doanh nghiệp sử dụng nó cho các nhà phát triển của họ. Chắc chắn kiểm tra nó ra.

3. Fedora

Bản thân Linus Torvalds sử dụng Fedora. Cần thêm lý do?

Fedora rất nhanh. Ngay cả phiên bản Fedora của Gnome cũng chạy nhanh hơn trên PC của tôi. Nhanh hơn các bản phân phối khác chạy Gnome. Tôi thích không phải nhìn vào màn hình khi Chrome bị treo do có quá nhiều tab đang mở.

Fedora có chu kỳ phát hành là 6 tháng. Điều này rất tốt cho các nhà phát triển đang mắc kẹt với phiên bản cũ quá lâu.

Lý do chính để chọn Fedora là nó không chỉ là trình quản lý gói hoặc môi trường máy tính để bàn. Fedora là người đề xướng chính thống về nguồn mở. Mọi thứ Fedora đều là nguồn mở. Không có trình điều khiển hoặc nội dung độc quyền nào trong kho Fedora (bạn có thể cài đặt trình điều khiển độc quyền, nhưng việc này phức tạp hơn một chút so với việc chạy một vài lệnh dnf). Vì vậy, nếu bạn là người đam mê nguồn mở, Fedora chắc chắn là dành cho bạn.

Fedora là dự án chị em của Red Hat Enterprise Linux, hệ điều hành của lập trình viên gốc. Có mối quan hệ chung giữa Fedora và Red Hat Enterprise Linux mang lại cả lợi ích về mặt công nghệ và đổi mới.

Fedora có thể nhận được tài trợ và chuyên nghiệp nhận xét từ RHEL, nhưng được hỗ trợ bởi cộng đồng các nhà phát triển và chuyên gia RHEL nhiệt tình, đam mê Fedora. Điều này trực tiếp biến Fedora trở thành một thiết lập ưu việt dành cho các nhà phát triển. Và thêm Fedora - một trong những bản phân phối Linux ổn định nhất trong mọi phiên bản. Chúng tôi chỉ cần thêm bản dựng này vào danh sách chuyên nghiệp của mình. Các bản phân phối Linux tốt nhất cho người mới bắt đầu lập trình.

Fedora cũng có sẵn trên môi trường máy tính để bàn yêu thích của bạn. Kiểm tra chúng sau khi cài đặt. Bạn có thể tải xuống Fedora Gnome từ trang web chính thức.

4. Hệ điều hành Linux

Phân phối này cũng có thể được phân loại là chuyên nghiệp Các bản phân phối Linux tốt nhất cho người mới bắt đầu lập trình, bởi vì để thiết lập hệ thống cho việc này một cách đơn giản, bạn sẽ cần có đủ thời gian và sự kiên nhẫn để mọi thứ hoạt động chính xác. Nhưng nó đáng giá.

Arch Linux đi kèm với nhân Linux và trình quản lý gói Pacman. Bạn thậm chí không có GUI. Bạn xây dựng từ một cơ sở, lắp ráp các thành phần khi bạn thấy phù hợp. Kết quả là một hệ điều hành được cá nhân hóa cao chứa mọi thứ bạn cần và không có thứ gì bạn không có.

Arch Linux được biết đến với kho lưu trữ hiện đại, tiên tiến. Mỗi gói trong kho chính thức luôn ở số phiên bản cao nhất, nhưng vẫn chỉ khả dụng sau khi kiểm tra cẩn thận. Vì vậy, bản thân hệ điều hành là hoàn toàn đáng tin cậy. Sự cố ổn định hiếm gặp xảy ra khi cài đặt các gói không được hỗ trợ từ kho lưu trữ Arch (có thể tránh được điều này bằng cách cẩn thận khi làm việc với AUR). Điều này cũng chỉ ảnh hưởng phần mềm, về cái nào Chúng ta đang nói về chứ không phải về bản thân hệ điều hành.

Mọi thông tin và hướng dẫn gỡ lỗi đều được ghi lại rõ ràng trong Arch Wiki, đây thực sự là tài liệu tốt nhất mà bất kỳ bản phân phối Linux nào cũng có. Vì vậy, mọi vấn đề bạn gặp phải đều có thể được giải quyết dễ dàng bằng cách làm theo các hướng dẫn sáng tạo nhất được cung cấp trên Arch Wiki.

Arch Linux không cần bảo trì vì hệ điều hành được cập nhật liên tục. Pacman có thể giải quyết hiệu quả các vấn đề phụ thuộc và các gói mồ côi. Phiên bản Linux mới nhất và tuyệt vời nhất luôn có sẵn trong Kho lưu trữ người dùng Arch.

Xây dựng một hệ điều hành cá nhân với Arch Linux là một cách tốt nếu bạn hỏi tôi. Bạn có thể tìm thấy Arch Linux tại đây.

5.Antergos

Antergos là một bản phân phối Linux dựa trên Arch. Nhiều người cho rằng các bản phân phối dựa trên Arch chỉ đơn giản là các trình cài đặt Arch, giúp cài đặt hệ thống Arch bằng giao diện đồ họa. giao diện người dùng. Vâng, đó không phải là trường hợp. Antergos sử dụng kho lưu trữ có. Nhưng nó có chi nhánh riêng của nó.

Antergos phát hành nhanh chóng nên bạn không phải lo lắng về việc ngừng hỗ trợ. Nó có sẵn trong tất cả các ngôn ngữ chính. Antergos, mặc dù dựa trên Arch, nhưng không phải là một bản phân phối cơ bản. Nó đi kèm với một lượng lớn chương trình cài đặt sẵn. Nhưng con số này vẫn nhỏ hơn so với các bản phân phối khác, vì vậy bạn sẽ không cảm thấy hệ thống của mình bị cồng kềnh và nó cho phép bạn linh hoạt tùy chỉnh theo mong muốn và nhu cầu của mình.

Chúng tôi nghĩ bản phân phối này cũng xứng đáng có mặt trong danh sách của chúng tôi" Các bản phân phối Linux tốt nhất cho người mới bắt đầu lập trình«.

Antergos sử dụng kho Arch nên mọi thứ bạn cần trong kho vũ khí của mình luôn có sẵn với số phiên bản cao nhất. Pacman, trình quản lý gói của Arch, không gặp bất kỳ vấn đề gì khi thêm kho lưu trữ. Kho chứa phần mềm mới nhất và đôi khi một số phiên bản cũ nổi tiếng cũng được lưu trữ như Phát triển Java Bộ dụng cụ. Antergos cũng có kho bổ sung riêng cung cấp các gói tùy chỉnh Antergos (khác với Arch), phần mềm Antergos và nhiều thứ khác như hình nền và gói biểu tượng Antergos.

Pacman xử lý các vấn đề phụ thuộc và các gói mồ côi theo cách vượt trội hơn bất kỳ trình quản lý gói nào. Sự bất ổn là không thể tránh khỏi.

Mới phần mềmđược mã hóa, các phương pháp được phát triển và các xu hướng thay đổi theo mỗi buổi bình minh. Kho lưu trữ Arch User được đặt ở đây. Kho lưu trữ người dùng Arch là kho lưu trữ dựa trên cộng đồng chứa số lượng lớn gói, trong đó có nhiều chương trình mới. Về cơ bản nó chứa mọi thứ chạy trên máy Linux. Vì vậy, mọi IDE, SDK và thư viện bạn cần sẽ được cài đặt chỉ bằng một lệnh.

tên yaourt_of_the_software

Antergos cung cấp tất cả các môi trường máy tính để bàn chính. Cài đặt dễ dàng với trình cài đặt Cnchi. Nó cung cấp các tùy chọn để chọn môi trường máy tính để bàn, trình duyệt, trình điều khiển đồ họa v.v. trên chính bản cài đặt. Nhìn chung, Antergos tạo ra một bản phân phối Linux tuyệt vời cho việc viết mã. Kiểm tra nó trên trang web chính thức của họ.

kết luận

Nếu bạn có bạn bè quan tâm đến Linux, hãy nói với họ rằng tôi chọn bản phân phối Linux tốt nhất cho người mới bắt đầu lập trình. Chia sẻ phản hồi của bạn về những bản phân phối này với chúng tôi. Ngoài ra, hãy chia sẻ một số mẹo mà nhiều lập trình viên có thể thấy hữu ích trong phần bình luận bên dưới.

Nếu bạn tìm thấy lỗi, vui lòng đánh dấu một đoạn văn bản và nhấp vào Ctrl+Enter.

Nhiều lập trình viên mới bắt đầu sợ hãi
lập trình trên Linux - không có sự đơn giản của Windows
và khả năng hiển thị. Tuy nhiên, nó cũng tồn tại cho Linux
rất nhiều đồ dùng trực quan
lập trình, và nó không chỉ là một bản sao của Delphi.
Tất nhiên, chúng không thể trở nên hoàn chỉnh
thay thế tương tự Visual Studio, tuy nhiên khá
giúp đẩy nhanh quá trình phát triển
các chương trình.

NetBean

Một trong những IDE tốt nhất. Dự định cho
làm việc với Java, bạn có thể sử dụng nó
phát triển không chỉ đa nền tảng
các chương trình Java cũng như các ứng dụng web, dịch vụ web và
khách hàng cho họ, các chương trình J2ME, v.v. Có lẽ
hoạt động trên Windows, Linux, MacOS. IDE có thể mở rộng
nhiều plugin và tiện ích bổ sung khác nhau, có thể
tìm thấy trên trang web. Đồng thời, mọi thứ đều miễn phí, sau đó
ăn cho hayalva! Nói chung - một con số không thể chối cãi
một.

Nhà thiết kế QT/KDevelop

Một môi trường phát triển mạnh mẽ khác trên
nền tảng KDE và Gnome. C++ đa nền tảng
các ứng dụng chỉ đi ra ngoài đường. Vì
các chương trình Qt phi thương mại có thể
sử dụng miễn phí, tồn tại
cho hầu hết tất cả các bản phân phối.

Dòng vô tính Ngôn ngữ lập trình, và không chỉ trong thiết kế,
mà còn trong các cấu trúc ngôn ngữ. Hoàn hảo
công cụ dành cho lập trình viên VB muốn
chuyển sang Linux. Giao diện đơn giản và thuận tiện.
Truy cập vào tất cả các cơ sở dữ liệu chính - MySQL,
PostgreSQL, v.v. Hoạt động trên hầu hết mọi người
phân phối.

Trình soạn thảo WYSIWYG để tạo trang web. TRONG
Nhắc tôi rất nhiều về trình soạn thảo Macromedia hay mọi thứ
cùng một FrontPage. Hỗ trợ tự động
làm việc với trang web thông qua FTP.

Tạo môi trường Python và Ruby IDE
lập trình bằng ngôn ngữ khá đơn giản
và thú vị. Thực sự được viết trên
Trăn.

Eclipse hoàn toàn không phải là một IDE mà là toàn bộ nền tảng cho
Các ứng dụng khác nhau. Để tiêu chuẩn
việc phân phối bao gồm các plugin bổ sung cho
Hỗ trợ và phát triển ngôn ngữ Java (JDT)
plugin cho Eclipse (PDE - Môi trường phát triển plugin). Vì
làm việc với các ngôn ngữ khác nên
các plugin đặc biệt được cài đặt - trong Eclipse
có thể làm việc trên hầu hết mọi thứ
ngôn ngữ lập trình có thể truy cập được. Khác
lợi thế cũng áp dụng cho
khả năng mở rộng: số lượng khổng lồ
tiện ích (đặc biệt là cho Java) bây giờ
cũng có sẵn dưới dạng plugin cho Eclipse,
ví dụ Ant, JavaDoc, JUnit, JDepend, Check Style, Subversion.
Vì thế chúng ta không cần phải từ bỏ
hệ thống kiểm soát phiên bản của bạn, từ
chương trình kiểm tra chất lượng mã, v.v.
Ưu điểm thứ ba là Eclipse
môi trường đa nền tảng, nghĩa là
có nhiều phiên bản dành cho khác nhau
hệ điều hành (không thể
đủ khả năng cho Visual Studio tương tự).

Nhà phát triển J

Nền tảng của Oracle không phải là nguồn mở,
tuy nhiên, nó vẫn miễn phí. Như đã rõ từ
những cái tên vẫn được sử dụng đa nền tảng
Java. Sử dụng Sun JDK để làm việc nên
Oracle không có khiếu nại về những gì đang được tạo ra
về lý thuyết, các chương trình sẽ không có nó.

Và cuối cùng là môi trường điều khiển trực quan
dự án cho Gnome Desktop. Không kém phần hữu ích
chương trình dành cho lập trình viên hơn là IDE.

Bài viết này dành cho hai loại độc giả. Thứ nhất, đây là những người có kinh nghiệm lập trình trên MS Windows nhưng không có kinh nghiệm như vậy trên GNU/Linux. Thứ hai, đây là những người không hề có kinh nghiệm lập trình. Tuy nhiên, tôi cho rằng người đọc thường quen thuộc với thuật ngữ lập trình phổ biến và không cần phải giải thích, chẳng hạn như “chương trình”, “chức năng”, “trình biên dịch” hoặc “gỡ lỗi” là gì.

Công cụ phát triển

Tôi sẽ xem xét sự phát triển bằng cách sử dụng những công cụ có nguồn gốc từ GNU/Linux nhiều nhất. Bao gồm các:

    Ngôn ngữ lập trình C

    vỏ bash

    Chữ Biên tập viên Vim và Emac

    Trình biên dịch GCC

    Trình gỡ lỗi GDB

    Tiện ích xây dựng dự án GNU make

    Hệ thống kiểm soát phiên bản Git

    Hệ thống cửa sổ X11

Việc lựa chọn những phương tiện cụ thể này không phải là một giáo điều. Mỗi điều trên chuyển tiền có thể được thay thế bằng cái gì khác nếu muốn. Tuy nhiên, các cụm từ như “Môi trường phát triển Linux” thường đề cập đến bộ công cụ này.

Ngôn ngữ lập trình

Ngôn ngữ lập trình “bản địa” nhất cho GNU/Linux là C. Điều này là do các yếu tố sau:

    GNU/Linux vay mượn nhiều ý tưởng (về mặt thực tế là hệ tư tưởng) từ hệ điều hành UNIX;

    Phòng phẫu thuật hệ thống UNIXđược viết bằng C (trên thực tế, ngôn ngữ này được tạo riêng để viết hệ điều hành này);

    Tương ứng, nền tảng Linux và môi trường hệ thống GNU cũng được viết bằng C.

Dưới đây tôi sẽ xem xét việc phát triển bằng ngôn ngữ C. Tuy nhiên, sự lựa chọn này không phải là một giáo điều. Các ngôn ngữ phổ biến khác để phát triển theo GNU/Linux là C++, Python và Perl. Tất nhiên, bất kỳ ngôn ngữ nào khác có thể được sử dụng.

Môi trương phat triển

Trong hai thập kỷ qua, cái gọi là IDE - môi trường phát triển tích hợp. Một môi trường như vậy bao gồm trình soạn thảo văn bản, trình biên dịch, trình gỡ lỗi, công cụ xây dựng dự án và nhiều thứ khác. Những môi trường như vậy cũng có sẵn cho GNU/Linux (phổ biến nhất là Eclipse, NetBeans, IDEA, KDevelop, Anjuta). Tuy nhiên, lịch sử phát triển của các hệ thống giống UNIX cho thấy IDE không chỉ là duy nhất mà còn là thứ tốt nhất. phương tiện hiệu quả phát triển. Trên thực tế, câu trả lời đúng cho câu hỏi “cái nào tốt nhất IDE tốt nhất theo GNU/Linux” có nghĩa là “GNU/Linux là một IDE.”

Bạn thường có thể có ý kiến ​​​​cho rằng không thể phát triển một dự án lớn nếu không có IDE. Ý kiến ​​này dễ dàng bị bác bỏ. Các phiên bản đầu tiên của UNIX thậm chí không được viết bằng Vim (nó chưa tồn tại) mà bằng Ed. Đây được gọi là trình soạn thảo văn bản từng dòng, trong đó bạn chỉ có thể chỉnh sửa một dòng văn bản mỗi lần. Toàn bộ tập tin không được hiển thị trên màn hình. Trong trường hợp của UNIX, không thể nào khác được - các nhà phát triển không có bất kỳ màn hình nào và việc giao tiếp với hệ thống được thực hiện bằng cách sử dụng teletypes. Nhân Linux hiện đại được viết chủ yếu bằng các trình soạn thảo Emacs và Vim.

Nhiều tiện ích UNIX gọi là "trình soạn thảo văn bản mặc định". Lệnh khởi chạy trình soạn thảo văn bản mặc định được lấy từ biến môi trường $EDITOR. Một số tiện ích trước tiên nhìn vào biến $VISUAL và chỉ khi nó không được đặt, ở biến $EDITOR. Đây là hành vi lịch sử: các máy tính cũ thường không có bất kỳ màn hình nào được kết nối mà chỉ có một teletype, vì vậy việc khởi chạy trình chỉnh sửa màn hình (trực quan) chẳng ích gì. Trong các bản phân phối hiện đại, mặc định thường là EDITOR=vi hoặc EDITOR=nano . Bạn có thể chỉ định việc sử dụng một trình soạn thảo khác cho một lệnh như thế này:

EDITOR=emacs một số lệnh

Để sử dụng biên tập viên phù hợp theo mặc định luôn, bạn cần thêm một dòng như

xuất EDITOR=emacs

Trong lịch sử, các trình soạn thảo văn bản "thực sự" duy nhất dành cho lập trình viên là Vim và Emacs (đơn giản vì chúng có lịch sử phát triển lâu nhất như soạn thảo văn bản dành cho lập trình viên). Các biên tập viên còn lại đang ở vị trí bắt kịp.

Vỏ lệnh

Vỏ lệnh (hoặc thông dịch lệnh) là một chương trình chấp nhận lệnh từ người dùng ở một mức độ khá bằng ngôn ngữ đơn giản lập trình và thực thi chúng. Hầu hết các lệnh chạy chương trình cùng tên. Các lệnh riêng lẻ là các cấu trúc ngôn ngữ lập trình shell.

Tiêu chuẩn POSIX bao gồm mô tả về bộ khả năng tối thiểu được cung cấp bởi shell lệnh. Trên thực tế, các shell đã qua sử dụng thường cung cấp nhiều tính năng hơn.

Hệ điều hành thuộc họ DOS và Windows mượn một số chức năng vỏ bọc từ UNIX, nhưng tác giả của chúng đã đơn giản hóa đáng kể, đó là lý do tại sao chức năng của COMMAND.COM và cmd.exe bị giảm đi rất nhiều. PowerShell khá ngang bằng nhưng hoạt động khác biệt đáng kể.

Với mục đích của bài viết này, tôi sẽ hạn chế sử dụng bash shell (là shell phổ biến nhất và mặc định trên hầu hết các bản phân phối) để chạy trình biên dịch và các công cụ phát triển khác. Đánh giá tốt Việc sử dụng shell lệnh có thể được tìm thấy, ví dụ, trong cuốn sách nổi tiếng .

Tài liệu

Tất cả các công cụ và thư viện phát triển trong GNU/Linux thường được ghi chép khá đầy đủ. Theo truyền thống, tài liệu sử dụng một định dạng đặc biệt và một tiện ích để xem nó - man. Tài liệu trong hệ thống được chia thành nhiều phần:

    Lệnh của người dùng (chẳng hạn như ls, gcc hoặc man)

    Cuộc gọi hệ thống - API nhân hệ điều hành

    Chức năng thư viện

    Trình điều khiển, v.v.

    Định dạng tệp

    Trò chơi, v.v.

    Tổng quan về hệ thống con khác nhau

    Các lệnh dùng để quản trị hệ thống

Để gọi một chủ đề tài liệu theo tên, bạn phải chỉ định tên đó khi gọi lệnh man (ví dụ: man ls). Đôi khi các phần có cùng tên nằm trong một số phần của tài liệu tài liệu. Bạn có thể chỉ định một phần cụ thể khi gọi man (ví dụ: man 3 printf).

Thông tin thêm về hệ thống trợ giúpđàn ông gặp đàn ông đàn ông.

Các tiện ích môi trường hệ thống GNU thường sử dụng định dạng thông tin cho tài liệu. Ví dụ: xem thông tin Coreutils.

Trình biên dịch

Hiện nay có nhiều trình biên dịch C ít nhiều tương thích với tiêu chuẩn khác nhau. Tuy nhiên, hiện tại, trình biên dịch C có trong Bộ sưu tập Trình biên dịch GNU (GCC) vẫn là trình biên dịch được áp dụng nhiều nhất trong môi trường GNU/Linux. Trình biên dịch này, ngoài tiêu chuẩn C, còn hỗ trợ một số phần mở rộng tiêu chuẩn. Đặc biệt, những phần mở rộng này được sử dụng rộng rãi trong các nguồn nhân Linux. TRONG Gần đây xuất hiện các trình biên dịch có thể biên dịch nhân Linux (ví dụ: llvm-clang hoặc EKO).

Trình biên dịch GCC được khởi chạy từ trình bao lệnh với lệnh như

gccprogram.c

trong đó chương trình.c là tên của tệp đầu vào. Ngoài ra, theo Tiêu chuẩn POSIX, trình biên dịch có thể được khởi chạy bằng lệnh cc chương trình.c (cc là viết tắt của "Trình biên dịch C").

Khi chạy bình thường, trình biên dịch sẽ cố gắng tạo tập tin thực thi. Theo mặc định, tệp đầu ra được gọi là a.out (tên này vẫn có từ các phiên bản UNIX cổ xưa). Một tên khác có thể được chỉ định bằng tùy chọn trình biên dịch -o, ví dụ:

gcc -o chương trình chương trình.c

Khi lắp ráp một chương trình từ nhiều mô-đun, trình biên dịch có thể được cung cấp một số tệp nguồn hoặc tệp mã đối tượng làm đầu vào, ví dụ:

gcc -o chương trình main.c module1.o module2.o …

Chỉ để biên dịch một tập tin gốc vào mã đối tượng (không cố gắng xây dựng tệp thực thi), bạn cần đưa ra lệnh như

(tên tệp đầu ra mặc định sẽ là module.o).

Thư viện thường cần thiết để xây dựng một chương trình. Linux sử dụng hai loại thư viện: thư viện liên kết tĩnh và thư viện liên kết động. Với liên kết tĩnh, toàn bộ thư viện được bao gồm trong tệp thực thi khi chương trình được xây dựng. Với liên kết động, chỉ có tên được ghi vào tệp thực thi thư viện động, và việc tìm kiếm tệp và thành phần này xảy ra khi chương trình khởi động.

Thư viện tĩnh trong Các hệ thống giống UNIX là một kho lưu trữ (định dạng ar cũ) chứa một tập hợp các tệp đối tượng. Một kho lưu trữ như vậy được tạo bằng một lệnh như

ar libsomething.a module1.o module2.o …

Tên tệp thư viện theo truyền thống bắt đầu bằng tiền tố lib.

Thư viện được tải động là một tệp đối tượng định dạng đặc biệt(tính cho tải động). Một thư viện như vậy được tạo bằng lệnh như

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

Để sử dụng thư viện khi xây dựng chương trình, bạn cần chỉ định nó cho trình biên dịch bằng tùy chọn -l chẳng hạn

gcc -o chương trình -lm chương trình.c

(ở đây tệp thư viện libm.so sẽ được sử dụng, trình biên dịch sẽ thay thế tiền tố lib theo mặc định). Theo mặc định, trình biên dịch xây dựng chương trình sử dụng thư viện động. Nếu bạn muốn sử dụng phiên bản tĩnh của thư viện, bạn cần chỉ định tùy chọn -static cho trình biên dịch.

Thông tin chi tiếtĐể biết các tùy chọn gcc, hãy xem man gcc.

Chào thế giới!

Người ta tin rằng truyền thống bắt đầu học ngôn ngữ lập trình bằng cách viết một chương trình in ra chuỗi “Xin chào thế giới!” bắt đầu từ cuốn sách “Ngôn ngữ C” của Kernighan và Ritchie. . Trong trường hợp ngôn ngữ C, chương trình này trông như thế này:

#bao gồm

int chủ yếu(int argc, char * argv) (
printf("Xin chào thế giới!\n" );
trở lại 0 ;
}

Để chạy chương trình này, văn bản này cần được ghi vào một tệp có tên, chẳng hạn như hello.c, và từ thư mục chứa tệp này, hãy đưa ra lệnh như

gcc -o xin chào xin chào.c

Tuy nhiên, trong trường hợp chương trình đơn giản như vậy, chỉ cần đưa ra lệnh

(Tôi sẽ giải thích bên dưới tại sao hai lệnh này hoạt động giống nhau). Kết quả là một file thực thi có tên hello sẽ xuất hiện trong cùng thư mục. Bạn có thể chạy nó bằng lệnh

Trình tự lắp ráp

Chúng ta hãy xem xét kỹ hơn chính xác những gì trình biên dịch làm. Hoạt động của trình biên dịch C là truyền thống và được sử dụng bởi các trình biên dịch của một số ngôn ngữ khác.

Ở đầu vào, trình biên dịch có trường hợp chung tập hợp các tập tin với văn bản nguồn. Trước khi quá trình biên dịch thực sự bắt đầu, các tệp này được xử lý bởi cái gọi là. bộ tiền xử lý (chương trình cpp). Chức năng chính của chương trình này là thực thi các lệnh như #include . Gặp phải lệnh như vậy, bộ tiền xử lý sẽ chèn nội dung của tệp đã chỉ định (trong trong trường hợp này, stdio.h) thay cho chỉ thị này. Bộ tiền xử lý hiểu một số chỉ thị khác, nhưng bây giờ tôi sẽ không tập trung vào chúng.

Sau bộ tiền xử lý, quá trình biên dịch thực tế được thực hiện. Từ các tệp nguồn ở giai đoạn này, cái gọi là. các tập tin đối tượng Đây là những tập tin chứa tập tin thực thi mã máy, nhưng vẫn chưa sẵn sàng để ra mắt. Điều chính họ thiếu là địa chỉ của các hàm thư viện sẽ được gọi. Ví dụ: mã cho hàm printf() được chứa trong thư viện libc. Và tệp đối tượng chỉ chứa tên của hàm này. Ngoài ra, tệp đối tượng còn chứa tên của tất cả các hàm được khai báo trong đó.

Các tệp đối tượng, cũng như các thư viện được sử dụng, được cung cấp làm đầu vào cho trình liên kết (chương trình ld). Trình liên kết tìm kiếm tất cả các hàm được gọi từ các tệp đối tượng khác nhau (theo tên) trong các tệp và thư viện đối tượng. Nếu tất cả các chức năng được tìm thấy thì trình liên kết sẽ tập hợp tệp thực thi thực tế. Trong trường hợp này, tên của các hàm được gọi sẽ được thay thế bằng các địa chỉ bộ nhớ cụ thể. Trong trường hợp sử dụng thư viện động, tên của hàm được sử dụng vẫn giữ nguyên và tên tệp của thư viện động được thêm vào đó, khi khởi động chương trình, bạn sẽ cần tìm hàm này.

Bản thân chương trình gcc được gọi là trình điều khiển. Nó chạy các chương trình được đề cập ở trên (hoặc chỉ một số trong số chúng, tùy thuộc vào các tùy chọn) để tạo ra một tệp thực thi.

Ví dụ thứ hai: giải phương trình bậc hai

Thêm một chút nữa ví dụ phức tạp Hãy xem xét một chương trình phải giải phương trình bậc hai. Người dùng nhập các hệ số của tam thức bậc hai và chương trình sẽ hiển thị nghiệm thực của nó. Đây toàn văn một chương trình như vậy:

#bao gồm
#bao gồm

/* giải: tính nghiệm của phương trình bình phương.
* a, b, c là các hệ số trong phương trình.
* Root sẽ được lưu trữ tại x1, x2.
* Giá trị trả về: đếm số gốc thực.
*/
giải quyết int(double a, double b, double c,
gấp đôi* x1, gấp đôi* x2) (
gấp đôi D = b*b - 4*a*c;
sqrtD đôi;

nếu (D > 0) (
sqrtD = sqrt(D);
*x1 = (-b - sqrtD)/(2.0 * a);
*x2 = (-b + sqrtD)/(2.0 * a);
trở lại 2;
) ngược lại nếu (D< 0)
trả về 0;
khác(
*x1 = -b/(2.0*a);
trả về 1;
}
}

int main (int argc, char* argv) (
nhân đôi a,b,c;
gấp đôi x1, x2;
int rễ_count;

// Hệ số đầu vào
printf("A: ");
scanf("%lf", &a);
printf("B: ");
scanf("%lf", &b);
printf("C: ");
scanf("%lf", &c);

// Giải phương trình
root_count = giải quyết(a,b,c, &x1, &x2);

// Kết quả đầu ra
chuyển đổi (root_count) (
trường hợp 0:
printf("Không có gốc (thực).\n");
phá vỡ;
trường hợp 1:
printf("Một gốc: %0.4lf\n", x1);
phá vỡ;
trường hợp 2:
printf("Hai gốc: %0.4lf và %0.4lf\n",
x1, x2);
phá vỡ;
}

Bằng cách tương tự với ví dụ trước, hãy viết văn bản này vào tệp Square.c và thử biên dịch nó bằng lệnh

gcc -o vuông vuông.c

Nhưng lần này chúng ta sẽ gặp một lỗi như thế này:

/tmp/cc6RNFIi.o: Trong hàm `solve": Square.c:(.text+0x6d): tham chiếu không xác định tới `sqrt" coll2: ld trả về 1 trạng thái thoát

Có chuyện gì thế này? Rõ ràng là vì lý do nào đó trình biên dịch không thích lệnh gọi hàm sqrt(). Hơn nữa, anh ấy không còn phàn nàn về hồ sơ nữa. mã nguồn, mà là một tệp đối tượng (tệp này là cc6RNFIi.o). Điều này có nghĩa là tệp nguồn được biên dịch thành công và các vấn đề phát sinh ở giai đoạn liên kết (có thể thấy từ việc đề cập đến lỗi trong chương trình ld trong văn bản - đây là trình liên kết tiêu chuẩn trong GNU/Linux). Trình liên kết không thể tìm thấy hàm sqrt(). Trong trường hợp này, đó là do hàm được chứa trong libm và chúng tôi không yêu cầu trình biên dịch sử dụng nó. Để loại bỏ lỗi này, chúng ta cần thay đổi lệnh biên dịch thành như sau:

gcc -o vuông -lm vuông.c

Lệnh như vậy sẽ hoạt động không có lỗi và tạo một tệp thực thi hình vuông.

Khi lắp ráp cái nào cũng đủ chương trình phức tạp chúng ta sẽ phải sử dụng một số thư viện và có thể cần chỉ định một số tùy chọn khác cho trình biên dịch. Lệnh có thể khá dài. Cái gì, tôi có nên gõ thủ công mỗi lần không? KHÔNG. Một trong những nguyên tắc của triết lý UNIX là: “Bất cứ thứ gì có thể tự động hóa đều phải được tự động hóa”. Ở đây chúng ta sẽ cần một trong những tiện ích UNIX lâu đời nhất - chương trình tạo. Để sử dụng nó, chúng ta cần viết một tệp có tên Makefile (trong cùng thư mục với tệp nguồn của chúng tôi) với nội dung sau:

hình vuông: hình vuông.c $(CC) -o $@ -lm $<

Bây giờ bạn có thể xây dựng tệp thực thi chỉ bằng cách chạy lệnh make. Làm thế nào nó hoạt động?

Làm

Tiện ích make được thiết kế để xây dựng chương trình (mặc dù nó có thể được sử dụng để tự động hóa nhiều tác vụ tương tự khác). Nó đọc một tệp có tên Makefile và thấy một bộ quy tắc trong đó. Mỗi quy tắc xác định ba điều: mục tiêu (tức là những gì cần được xây dựng), danh sách các tệp nguồn và một tập hợp các lệnh phải được thực thi để xây dựng mục tiêu từ các tệp nguồn. Trong ví dụ trên, Square là tên của mục tiêu, Square.c là tệp nguồn duy nhất trong trường hợp này (nếu có nhiều tệp, chúng được liệt kê cách nhau bằng dấu cách) và dòng thứ hai là lệnh. Các biến có thể được sử dụng trong một lệnh. Một số biến có ý nghĩa đặc biệt. Cụ thể, trong bất kỳ quy tắc nào, $@ biểu thị tên của mục tiêu và $< — первый исходный файл. Переменная $(CC) указывает на компилятор C, используемый в системе по умолчанию (в большинстве случаев это gcc , но бывает и что-нибудь другое).

Ký tự đại diện % có thể được sử dụng trong tên đích và danh sách tệp nguồn. Ví dụ: quy tắc này:

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

chỉ ra rằng các tệp có tên kết thúc bằng .o phải được tập hợp từ các tệp tương ứng có hậu tố .c .

Ngoài ra, hãy biết trước một số quy tắc mặc định. Trong số đó có cái được đề cập ở ví dụ trước, cũng như quy tắc

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

Nhờ quy tắc này, trong ví dụ với “Xin chào thế giới!” chỉ cần làm hello chạy cc -o hello hello.c .

Sử dụng một bộ quy tắc, make tạo ra một biểu đồ phụ thuộc của các mục tiêu với nhau và trên các tệp nguồn, đồng thời chỉ thực thi những lệnh cần thiết để xây dựng mục tiêu được chỉ định trên dòng lệnh. Nếu không có mục tiêu nào được chỉ định thì mục tiêu đầu tiên được mô tả trong Makefile sẽ được tạo.

Để biết thêm thông tin về tiện ích này, hãy xem ví dụ: man make.

Quản lý phiên bản

Bất kỳ VCS nào cũng có thể được sử dụng để tạo phiên bản mã nguồn. Tuy nhiên, vì chúng ta đang nói về GNU/Linux, chúng ta hãy xem nhanh hệ thống được sử dụng để phát triển nhân Linux: git. Có tài liệu khá phong phú về git, bao gồm. và bằng tiếng Nga. Xem ví dụ bài viết của tôi hoặc một loạt bài viết nổi tiếng .

Để bắt đầu sử dụng git, bạn cần tạo một kho lưu trữ - kho lưu trữ các phiên bản tệp. Việc này được thực hiện bởi đội

Bây giờ bạn có thể thêm tập tin vào kho lưu trữ. Nhưng chúng tôi không cần theo dõi phiên bản của một số tệp, cụ thể là tệp đối tượng và tệp thực thi. Để loại trừ chúng ngay lập tức khỏi việc xem xét git, chúng tôi sẽ viết một tệp .gitignore với nội dung sau:

*.o hình vuông xin chào

Bây giờ đội

sẽ thêm tất cả các tệp trong thư mục hiện tại vào kho lưu trữ, ngoại trừ những tệp được đề cập trong tệp .gitignore. Sau này, bạn có thể cam kết bằng lệnh

Lệnh này sẽ mở trình soạn thảo văn bản mặc định. Ở đây bạn sẽ cần phải viết một bình luận cho cam kết. Trong trường hợp này, một dòng như “Cam kết ban đầu” là đủ.

Gỡ lỗi

Để gỡ lỗi trên Linux, trình gỡ lỗi gdb được sử dụng. Nhưng trước tiên, để chương trình được thuận tiện cho việc gỡ lỗi, nó cần được biên dịch bằng tùy chọn -g. Bây giờ chúng ta chỉ cần thay đổi Makefile cho giống

hình vuông: hình vuông.c $(CC) -o $@ -lm -g $<

và xây dựng lại chương trình.

Trong quá trình biên dịch thông thường, tên của hàm, biến, v.v. không được đưa vào tệp thực thi. Tùy chọn -g yêu cầu trình biên dịch ghi thông tin này vào phần thích hợp của tệp thực thi. Ngoài ra, với tùy chọn này, thông tin về sự tương ứng của offset và số dòng trong tệp nguồn sẽ được ghi vào tệp thực thi.

Việc gỡ lỗi được bắt đầu bằng một lệnh như

gdb ./some-program -a -b

Khi bạn khởi động trình gỡ lỗi, dấu nhắc dòng lệnh sẽ xuất hiện như sau:

GNU gdb (GDB) 7.2-ubuntu Bản quyền (C) 2010 Free Software Foundation, Inc. Giấy phép GPLv3+: GNU GPL phiên bản 3 trở lên Đây là phần mềm miễn phí: bạn có toàn quyền thay đổi và phân phối lại nó. KHÔNG CÓ BẢO ĐẢM, trong phạm vi pháp luật cho phép. Nhập "hiển thị sao chép" và "hiển thị bảo hành" để biết chi tiết. GDB này được định cấu hình là "i686-linux-gnu". Để biết hướng dẫn báo cáo lỗi, vui lòng xem: ... Đọc ký hiệu từ /home/portnov/LUG/src/square...done. (gdb)

Nói chung, làm việc với trình gỡ lỗi cũng giống như làm việc với shell lệnh. Bạn nhập lệnh, trình gỡ lỗi sẽ thực thi chúng. Giống như trong shell lệnh, việc hoàn thành lệnh bằng phím Tab sẽ hoạt động. Ngoài ra, để ngắn gọn, bạn có thể rút ngắn lệnh xuống một vài chữ cái đầu tiên, chỉ để tránh sự mơ hồ.

Các lệnh được sử dụng phổ biến nhất bao gồm:

In đoạn mã nguồn tiếp theo (in được 10 dòng). Bạn có thể chỉ định số dòng cụ thể sau tên lệnh, ví dụ l 10,15.

Chạy chương trình dưới trình gỡ lỗi. Chương trình sẽ chạy cho đến điểm dừng gần nhất hoặc cho đến khi kết thúc.

Đặt điểm dừng. Số dòng mà bạn muốn đặt điểm ngắt được chỉ định sau tên lệnh.

Thực hiện một dòng chương trình.

Tính giá trị và in biểu thức. Biểu thức được chỉ định sau lệnh. Bằng cách này, bạn có thể xem giá trị của một biến một lần.

Thêm một biểu thức vào danh sách hiển thị cố định. Giá trị của các biểu thức này sẽ được hiển thị sau mỗi lệnh được thực thi. Bên cạnh mỗi biểu thức, số của nó trong danh sách được in. Bạn có thể xóa một biểu thức khỏi danh sách bằng lệnh hủy hiển thị kèm theo số biểu thức.

Thoát khỏi trình gỡ lỗi.

Để biết thêm thông tin về GDB, xem man gdb.

Hệ thống cửa sổ X11

Về mặt lịch sử, UNIX không và không thể có bất kỳ môi trường đồ họa nào vì không có màn hình đồ họa. Môi trường đồ họa cho UNIX xuất hiện vào khoảng thời gian mà các màn hình đồ họa xuất hiện rộng rãi: năm 1984. Lúc đầu nó được gọi là W (viết tắt của Window), sau đó được cải tiến và gọi là chữ cái tiếp theo của bảng chữ cái - X, phiên bản tiếp theo được gọi là X2 ... Bây giờ chúng ta có X11.

X11 chủ yếu là giao thức mạng dựa trên TCP/IP và UDP/IP. Giao thức có một máy khách và một máy chủ. Máy khách gửi một chuỗi yêu cầu như “vẽ cho tôi một cửa sổ”, “vẽ nút trên đó” và máy chủ sẽ thực thi chúng. Một trong những nguyên tắc chính của X11 là “xác định cơ chế chứ không phải chính sách”. Giao thức cung cấp khả năng vẽ các cửa sổ, nhưng không xác định chính xác cách chúng sẽ được hiển thị.

Máy chủ X phổ biến nhất hiện nay là Xorg (http://x.org); XFree86 vẫn còn sống; Xming phù hợp với Windows; Máy chủ X phần cứng được sản xuất - bộ "màn hình + bàn phím + chuột", trong đó hỗ trợ chức năng máy chủ X11 được triển khai trong phần cứng - những bộ như vậy được sử dụng làm thiết bị đầu cuối đồ họa.

Giao thức X11, không giống như HTTP, là giao thức nhị phân chứ không phải văn bản - điều này được thực hiện vì lý do tiết kiệm băng thông kết nối mạng và dễ dàng phân tích cú pháp các yêu cầu của máy chủ. Nhưng điều này làm phức tạp việc tạo các máy khách của giao thức này: việc thu thập các yêu cầu X11 nhị phân phức tạp rõ ràng là khó khăn hơn, chẳng hạn như các yêu cầu HTTP văn bản. Do đó, để viết máy khách X, các thư viện chức năng đặc biệt được sử dụng để tạo và gửi yêu cầu X đến máy chủ. Thư viện phổ biến nhất là libX11. Một lựa chọn hiện đại hơn là libxcb.

Truy vấn X11 ở mức khá thấp. Ví dụ: để triển khai chức năng của một nút, bạn cần vẽ một hình chữ nhật trong cửa sổ, viết văn bản vào đó, đợi một vòng lặp để nhấn nút chuột và với mỗi lần nhấp, hãy kiểm tra xem lần nhấp đó là bên trong hay bên ngoài hình chữ nhật. Do đó, cái gọi là bộ công cụ bắt đầu xuất hiện - các thư viện bao bọc cấp cao trên libX11.

Trong lịch sử, bộ công cụ đầu tiên là Athena3D. Sau đó là Motif và Tk. Hiện nay, phổ biến nhất là GTK+ và Qt (Qt, nói đúng ra, không phải là bộ công cụ X11 mà là một bộ thư viện đa nền tảng đa mục đích có thể được sử dụng làm bộ công cụ X11).

Xin chào thế giới trên GTK+

Ví dụ, hãy xem xét chương trình sau đây. Nó hiển thị một cửa sổ với một nút. Khi bạn nhấp vào nút này, thông báo “Xin chào thế giới” sẽ xuất hiện.

#bao gồm

// Hàm này hiển thị hộp thoại thông báo.
// tham số main_window phải được đặt thành cửa sổ chính của hộp thoại.
void message_box (GtkWindow* main_window, gchar *message) (
GtkWidget *hộp thoại, *nhãn, *content_area;

// Tạo hộp thoại
hộp thoại = gtk_dialog_new_with_buttons("Tin nhắn",
cửa sổ chính,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_OK,
GTK_RESPONSE_NONE,
VÔ GIÁ TRỊ);
// Tạo nhãn
content_area = gtk_dialog_get_content_area(GTK_DIALOG(hộp thoại));
nhãn = gtk_label_new(tin nhắn);

// Trên tín hiệu "phản hồi" (nó được gọi khi người dùng nhấp vào nút trong
// hộp thoại), hủy hộp thoại.
g_signal_connect_swapped(hộp thoại,
"phản ứng"
G_CALLBACK (gtk_widget_destroy),
hộp thoại);

//Thêm nhãn
gtk_container_add(GTK_CONTAINER(content_area), nhãn);
// Hiển thị hộp thoại
gtk_widget_show_all(hộp thoại);
}

// Gọi lại cho tín hiệu xóa sự kiện
gbolean delete_event tĩnh(GtkWidget *widget,
Sự kiện GdkEvent *,
dữ liệu gpointer)
{
// Nếu trả về TRUE, cửa sổ sẽ không bị đóng.
// Điều này có thể được sử dụng để ngăn chặn việc đóng cửa sổ trong một số trường hợp.
trả về SAI;
}

// Gọi lại cho tín hiệu hủy
hủy bỏ khoảng trống tĩnh (GtkWidget *widget,
dữ liệu gpointer)
{
// Kết thúc vòng lặp sự kiện GTK+ chính
gtk_main_quit();
}

// Gọi lại khi nhấn nút
khoảng trống tĩnh xin chào (GtkWidget *widget,
dữ liệu gpointer)
{
// tham số "data" đại diện cho cửa sổ chính ở đây
message_box(GTK_WINDOW(data), "Xin chào thế giới!");
}

int chính(int argc,
char *argv)
{
Cửa sổ GtkWidget *;
nút GtkWidget *;

// Khởi tạo GTK+
gtk_init(&argc, &argv);

// Tạo cửa sổ chính
cửa sổ = gtk_window_new(GTK_WINDOW_TOPLEVEL);

// Thiết lập lệnh gọi lại cho một số tín hiệu
g_signal_connect(window, "xóa sự kiện",
G_CALLBACK (xóa_sự kiện), NULL);

G_signal_connect(cửa sổ, "hủy",
G_CALLBACK (hủy), NULL);

// Thiết lập độ rộng viền cửa sổ
gtk_container_set_border_width(GTK_CONTAINER(window), 10);

// Tạo nút có nhãn
nút = gtk_button_new_with_label("Xin chào thế giới");

// Thiết lập gọi lại cho tín hiệu "đã nhấp" của nút.
// Truyền cửa sổ chính làm tham số thứ hai.
g_signal_connect (nút, cửa sổ "đã nhấp", G_CALLBACK (xin chào), (gpointer));

// Đóng gói nút vào cửa sổ
gtk_container_add(GTK_CONTAINER(cửa sổ), nút);

// Hiển thị nút
gtk_widget_show(nút);

// Hiển thị cửa sổ
gtk_widget_show(cửa sổ);

// Chạy vòng lặp sự kiện GTK+ chính.
gtk_main();

Chương trình này được tập hợp với một lệnh có dạng

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

văn học bổ sung

Raymond, Eric S. Nghệ thuật lập trình cho UNIX. - Mỗi. từ tiếng Anh - M.: Nhà xuất bản Williams, 2005. - 544 tr., ill.

Kernighan B., Pike R. UNIX. Môi trường phần mềm — Dịch từ tiếng Anh - St. Petersburg: Symbol-Plus, 2003. - 416 trang, bệnh.

Kernighan B., Ritchie D. Ngôn ngữ lập trình C. - Trans. từ tiếng Anh - Mátxcơva: Williams, 2006. - 304 tr.

Linux đang phát triển nhanh chóng và trở nên phổ biến hơn, đặc biệt khi việc sử dụng Windows ngày càng giảm và nhiều lập trình viên đang nỗ lực cải tiến Linux bằng cách tạo ra các chương trình máy tính để bàn mới tương đương hoặc thậm chí tốt hơn các ứng dụng trên Windows và Mac OS X.

Một số lượng lớn các bản phân phối đang cố gắng làm cho Linux trở nên dễ dàng hơn đối với những người dùng mới trước đây đã sử dụng Linux hoặc Mac OS X. Điều này càng giúp quảng bá Linux đến với đại chúng.

Có rất nhiều ngôn ngữ lập trình cho Linux và hơn nữa, những ngôn ngữ mới lại xuất hiện hàng năm. Nhưng không phải tất cả các lập trình viên đều sử dụng chúng, bởi vì để tạo ra một ứng dụng đáng tin cậy, linh hoạt, hiệu quả, có thể mở rộng và quan trọng nhất là an toàn, bạn cần chọn đúng ngôn ngữ.

Trong bài viết này, chúng ta sẽ xem xét các ngôn ngữ lập trình phổ biến nhất cho Linux. Hãy xem xét những hệ điều hành này được phát triển trên đó và những hệ điều hành được sử dụng để tạo ứng dụng. Danh sách này thực tế không được sắp xếp theo mức độ quan trọng, tất cả các ngôn ngữ được sử dụng ở đây đều tốt. Tất cả chúng đều đa nền tảng và bạn có thể viết chương trình trên chúng cho bất kỳ hệ điều hành hiện có nào.

Tôi sẽ không quá lời nếu nói rằng ngôn ngữ này được tạo ra cho hệ điều hành này. Đây đã là một ngôn ngữ cũ. Nó được tạo ra vào những năm 70 bởi một kỹ sư của Bell Labs để viết nhân Unix. Thực tế là vào thời đó, các chương trình và hệ điều hành được viết bằng trình biên dịch mã và cần phải viết chương trình cho từng kiến ​​​​trúc riêng biệt, vì các tập lệnh khác nhau. Các nhà phát triển Unix cần một ngôn ngữ lập trình cấp cao để họ có thể viết Unix một lần và xây dựng nó cho tất cả các nền tảng. C đã trở thành một ngôn ngữ như vậy.

Nhân Linux dựa trên Unix và do đó cũng được viết bằng C; tất cả các mô-đun hạt nhân, trình điều khiển cũng như một lượng lớn phần mềm hệ thống cũng được triển khai bằng C. Nếu bạn đang thắc mắc Linux được viết bằng gì thì bây giờ bạn đã biết câu trả lời. Nhiều tiện ích từ bộ GNU, máy chủ X, bộ thư viện để làm việc với đồ họa GTK và hơn thế nữa, một số trình quản lý cửa sổ đã được phát triển trong C. Nhưng C ngày càng được sử dụng ít hơn để viết các chương trình mới; nó đã được thay thế bằng C++ sửa đổi theo định hướng khách quan.

2. C++

Đây là phiên bản cải tiến của C, nó xuất hiện không muộn hơn C. Vào năm 1980, Björn Stroustrup đang thực hiện nghiên cứu của mình và thiếu khả năng C tiêu chuẩn, vì vậy ông đã nghĩ ra một số cải tiến cho nó. Đột nhiên, ngôn ngữ này trở nên phổ biến trong số các đồng nghiệp của anh và anh không thể tự mình theo dõi sự phát triển của nó nữa.

Bây giờ nó là một trong những ngôn ngữ lập trình phổ biến nhất. Cả hai phong cách lập trình hướng mục tiêu và thủ tục đều có sẵn ở đây. Đúng là nó vẫn rất khó đối với người mới bắt đầu, giống như C. Điều này đòi hỏi độ chính xác rất cao trong việc quản lý bộ nhớ.

Rất nhiều phần mềm trong Linux được viết bằng C++, đây là những tiện ích GNU giống nhau, nhiều chương trình người dùng, môi trường đồ họa, trình duyệt. Khung đồ họa Qt được viết bằng C++, hiện được sử dụng cho môi trường máy tính để bàn KDE và một số lượng lớn các chương trình đa nền tảng. Qt vừa là một dự án thương mại vừa phi thương mại. Nếu bạn phát triển phần mềm miễn phí, bạn có thể sử dụng Qt miễn phí, nhưng không, bạn phải trả tiền cho giấy phép. Qt dễ dàng hơn nhiều cho người mới bắt đầu so với C hoặc C++ thuần túy.

C và C++ là ngôn ngữ lập trình phổ biến nhất cho Linux

3. Java

Đây là ngôn ngữ lập trình đa nền tảng, mạnh mẽ và hoàn toàn hướng tới mục tiêu, có nhiều cơ hội để tạo các ứng dụng máy tính để bàn cũng như các ứng dụng mạng và web.

Java ban đầu được Sun Microsystems phát triển vào những năm 1990 cho các thiết bị nhúng có sức mạnh xử lý thấp. Dành cho điện thoại di động, bộ vi điều khiển và các thiết bị khác. Mục tiêu của anh là đưa chức năng đa nền tảng lên một tầm cao mới. Chương trình được viết bằng Java, được chuyển đổi thành mã byte mà máy Java có thể thực thi trên mọi phần cứng, bất kể kiến ​​trúc và khả năng. Sau đó, Java bắt đầu được sử dụng để tạo các ứng dụng web trong trình duyệt và do đó các ứng dụng dành cho máy tính để bàn bắt đầu được tạo ra.

Java là một trong những ngôn ngữ lập trình tốt nhất, đặc biệt nếu bạn định phát triển các ứng dụng có thể chạy ở mọi nơi. Java rất có lợi về mặt tính di động, bạn có thể chạy chương trình trên Windows hoặc Linux mà không cần sửa đổi và nó cũng an toàn hơn vì chương trình chạy trong một máy ảo và chúng ta có thể kiểm soát mọi hành động của nó. Nhưng nhược điểm là tiêu tốn nhiều bộ nhớ và hiệu năng thấp so với C.

Không có nhiều chương trình được viết bằng Java, nhưng có một số chương trình nổi tiếng trong số đó, chẳng hạn như các môi trường phát triển như Netbeans, Eclipse, InteljIDE. Một số nhà sản xuất phần cứng phát hành các tiện ích để quản lý phần cứng của họ bằng Java để nó có thể hoạt động tốt như nhau trên Linux. Nhiều trò chơi đơn giản được viết bằng Java và nó cũng được sử dụng rộng rãi trong hệ điều hành Android.

3.Python

Python là một ngôn ngữ thông dịch cấp cao, có mục đích chung. Nó được phát triển bởi một người tên là Guido Van Rossum vào đầu những năm 80. Ông làm việc với ngôn ngữ này trong thời gian rảnh rỗi và mục tiêu là tạo ra một ngôn ngữ để dạy lập trình.

Ý tưởng chính của Python là sự đơn giản, tốc độ phát triển tối đa, lỗi tối thiểu, độ không chắc chắn tối thiểu. Cú pháp của ngôn ngữ giúp bạn viết chính xác và tránh sai sót. Điều này ngay lập tức khiến Python trở thành một trong những ngôn ngữ phổ biến nhất. Nhiều thư viện đã được phát triển để làm việc với các thành phần hệ thống, triển khai các thuật toán và bộ API để làm việc với các dịch vụ mạng. Giờ đây, bạn có thể viết cả trang web và ứng dụng Qt chính thức bằng Python, bằng chứng đầu tiên là nhiều trang web, bao gồm Yandex và thứ hai là trình chỉnh sửa video OpenShot phổ biến.

Ngoài ra, vô số tập lệnh hệ thống và tiện ích quản lý Linux đã được viết bằng Python. Đây là tiện ích thích hợp để cài đặt phần mềm trong Ubuntu, trình quản lý gói Emerge trong Gentoo và một số lượng lớn các tập lệnh nhỏ. Lý do cho điều này là sự đơn giản của ngôn ngữ. Lập trình viên dành vài giờ cho chương trình và nó hoạt động hoàn hảo trong vài năm.

4. Điện tử JavaScript / GitHub

JavaScript chủ yếu là ngôn ngữ lập trình để tạo các trang web động, được phát triển đặc biệt cho mục đích này vào giữa những năm 1990 bởi Brendan Eich tại Netscape. Cho đến gần đây, JavaScript đã được sử dụng để tạo các trang web động ở phía máy khách và trong các ứng dụng web. Nhưng sau đó dự án Node.js xuất hiện, cho phép bạn phát triển các chương trình máy chủ bằng JavaScript. Gần đây nhất, GitHub đã tạo ra khung Electron, dựa trên Node.js, giờ đây có thể sử dụng JavaScript để tạo các ứng dụng dành cho máy tính để bàn.

Electron cho phép bạn sử dụng các công nghệ HTML, CSS, JavaScript để tạo ra các chương trình máy tính để bàn đẹp mắt. Nền tảng này được nhóm và cộng đồng GitHub tích cực duy trì.

Mặc dù nền tảng này chỉ mới được phát hành gần đây nhưng có tới hàng trăm ứng dụng đã được viết trên đó, trong số đó nổi tiếng nhất là các trình soạn thảo mã tương tự Atom và LightTable, cũng như ứng dụng quản lý trang web WordPress và ứng dụng trò chuyện mới RocketCaht. Ngoài ra, JavaScript còn được sử dụng để phát triển các chương trình máy tính để bàn trên nền tảng Chrome, còn có nhiều chương trình như vậy, cùng trình soạn thảo Brackets, các tiện ích hữu ích như Google Keep, Pocket, Wunderlist và các chương trình khác từ cửa hàng Chrome.

5. Vỏ

Các lệnh đầu cuối Linux không chỉ cho phép bạn thực hiện các thao tác hàng ngày một cách tương tác mà còn là ngôn ngữ lập trình hoàn chỉnh với sự hỗ trợ cho các cấu trúc điều khiển rất đơn giản. Shell phổ biến nhất là Bash (Bourne Again Shell). Hầu hết các tập lệnh đều được viết theo cú pháp của nó, nhưng cũng có những tập lệnh khác, chẳng hạn như cùng một loại cá, sh, zsh, dấu gạch ngang, v.v.

Cú pháp của các cấu trúc điều khiển Bash hơi khó hiểu, nhưng nhiều tập lệnh hệ thống được viết trong đó, trước hết là tất cả các tập lệnh khởi tạo daemon trong SysVinit, tập lệnh duy trì máy chủ, sao lưu, chạy chương trình, v.v. Mỗi quản trị viên đều có một số tập lệnh được viết bằng Bash.

kết luận

Đây không phải là tất cả các ngôn ngữ lập trình Linux được sử dụng để tạo chương trình trong Linux; Ruby gần đây đã bắt đầu được sử dụng để tạo tập lệnh; Perl đã lỗi thời; các ngôn ngữ lập trình cụ thể hơn như Go, R, Vala và những thứ khác cũng được sử dụng. Đối với nhu cầu của tôi, tôi sử dụng Python và php, còn bạn có viết chương trình cho Linux không? Ngôn ngữ lập trình nào? Viết trong các ý kiến!

  • Jonathan Bartlett, “Lập trình các ứng dụng hiệu suất cao trên Bộ xử lý di động BE: Phần 4: Lập trình SPU để đạt hiệu suất” Phần này bao gồm các chủ đề như lập trình vector SIMD, loại bỏ nhánh, hủy vòng lặp, lập lịch thực hiện lệnh (lập lịch lệnh) và gợi ý nhánh kỹ thuật.

  • "8 công cụ phát triển mã nguồn mở và miễn phí tốt nhất theo InfoWorld"

  • "Kiểm thử từ A đến Z. Phần 1 - Nguyên tắc và cách tiếp cận cơ bản"

  • Per Kroll, "OpenUP Made Simple" Bài viết này giới thiệu OpenUP, một khung phát triển phần mềm mới được phát triển dựa trên các kỹ thuật phát triển linh hoạt bằng cách sử dụng Quy trình hợp nhất Rational.

  • "Kết quả nghiên cứu về sự phổ biến của ngôn ngữ lập trình"

  • Graiver Alexander và GIS-Lab, “Sử dụng Doxygen để làm việc với mã nguồn phần mềm GIS” Một trong những phương pháp để làm việc với khối lượng lớn mã của người khác, điều hướng qua mã đó và sử dụng các thành phần của nó trong các chương trình của riêng bạn.

  • Shevelev Denis, “Viết “DEMON” bằng chính đôi tay của chúng ta” Mục tiêu của chúng tôi là viết một trình nền mạng để kiểm soát thứ gì đó trên Linux từ trong Windows từ nhiều nơi khác nhau.

  • Martin Husemann, bản dịch - Sergey Kalichev, "Fighting the Lemmings" Mô tả các vấn đề điển hình phát sinh khi viết mã di động, một số vấn đề rất rõ ràng nhưng các lỗi liên quan đến chúng vẫn tiếp tục xuất hiện thường xuyên trong mã thực.

  • Cameron Laird, "Kỹ thuật gỡ lỗi sử dụng bộ nhớ" Lỗi bộ nhớ làm giảm đáng kể hiệu quả của ứng dụng và không nhiều nhóm phát triển có kế hoạch rõ ràng để loại bỏ những lỗi này. Nhưng có một tin tốt: lỗi bộ nhớ có thể khá dễ dàng phát hiện ra.

  • Avi Rozen, bản dịch của A. Tarasov, “Gỡ lỗi từ xa bằng GDB và GDBserver” Một phương pháp gỡ lỗi ứng dụng trên hệ thống từ xa, nền tảng của hệ thống này có thể khác với nền tảng của nhà phát triển, đang được xem xét.

  • E. Ivanov, Đánh giá về "Sách Rồng" - "Trình biên dịch: Nguyên tắc, Công nghệ và Công cụ" - bản dịch của cuốn sách (Trình biên dịch: Nguyên tắc, Kỹ thuật và Công cụ. Tái bản lần thứ 2. Alfred V. Aho, Monica S. Lam , Ravi Sethi , Jeffrey D. Ullman, 2007)

  • N.N. Ivanov, “Lập trình trên Linux từ đầu” Sách giáo khoa về lập trình trên Linux được phân phối miễn phí.

  • N. Ivanov đã đăng phần tiếp theo trong cuốn sách “Lập trình trên Linux từ đầu”: “6.4. Thay thế hình ảnh quá trình"

  • Andrey Borovsky, "Lập trình cho Unix/Linux"

  • A. Borovsky, “Lập trình cho Unix/Linux” Chuỗi bài viết về lập trình Unix/Linux, đăng trên tạp chí Linux Format

  • Andrey Borovsky, Bài báo “Quỷ dữ” trong loạt bài “Lập trình cho Linux”, đăng trên tạp chí Linux Format.

  • Valerie Henson, bản dịch: V. Cherkasov, "Giới thiệu về cách viết mô-đun hạt nhân Linux."

  • Nickolay Tarasenko, "Việc triển khai các yêu cầu hệ thống để làm việc với các ổ cắm trong nhân Linux. Tạo một ổ cắm."

  • K. Kaspersky, “Gỡ lỗi lõi cứng với Linice: học cách làm việc trong trình gỡ lỗi nhân bảng điều khiển” Linice là một cổng không chính thức của SoftICE huyền thoại dành cho Linux, giữ lại giao diện, hệ thống lệnh và hầu hết các khả năng của phần mềm sau.


  • D.V. Silkov, “Hiện trạng và triển vọng phát triển cơ sở hạ tầng LSB” Bài viết mô tả khía cạnh kỹ thuật của việc phát triển tiêu chuẩn Cơ sở Tiêu chuẩn Linux và cơ sở hạ tầng liên quan.

  • Federico Kereki, bản dịch - A. Dmitriev,

  • Rodrigo Ceron, "Bộ công cụ lập trình tuyến tính GNU: Phần 1: Giới thiệu về tối ưu hóa tuyến tính" Bài viết này mô tả GLPK (Bộ công cụ lập trình tuyến tính GNU), tiện ích máy khách glpsol và ngôn ngữ GNU MathProg để giải quyết các vấn đề tối ưu hóa vận hành.

  • Rodrigo Ceron, "Bộ công cụ lập trình tuyến tính GNU: Phần 2: Các vấn đề về độ phức tạp trung bình trong lập trình tuyến tính"

  • Rodrigo Ceron, "Bộ công cụ lập trình tuyến tính GNU: Phần 3: Các vấn đề khó khăn và giải pháp tinh tế"

  • V. Tsarkov đã gửi một liên kết để bạn có thể tải xuống cuốn sách "Lập trình từ đầu". Như Vladimir viết: “Đây là đường dẫn tới một cuốn sách xuất sắc về hợp ngữ cho môi trường GNU/Linux và khoa học máy tính nói chung.” Nhưng cuốn sách này bằng tiếng Anh và ở định dạng PDF.


  • Kenneth Ballard, "Lập trình an toàn với API OpenSSL, Phần 3: Đảm bảo dịch vụ đáng tin cậy" Với OpenSSL, bạn có thể tạo các ứng dụng phía máy chủ an toàn và mặc dù tài liệu này có vẻ đáng sợ nhưng nó không quá khó.

  • "Kết quả kiểm tra hiệu năng của 6 framework hàng đầu"

  • Alexander Miroch, "Thực thi các thư viện dùng chung trên Linux"

  • Devin Watson, "Linux Daemon HOWTO" (Bản dịch). Cách viết một daemon trong Linux.

  • D. Panteleichev, "Phát triển phần mềm cho Linux. Bộ công cụ".

  • Dmitry Panteleichev, "OpenGL. Lập trình đồ họa trong Linux" Khóa đào tạo mở rộng về lập trình đồ họa hai và ba chiều bằng OpenGL. Qt được sử dụng như một công cụ cửa sổ, kết hợp với tính chất di động của OpenGL, cho phép bạn viết các ứng dụng đa nền tảng thực sự.

  • Noel Rappin, "Xây dựng các ứng dụng GUI đa nền tảng bằng wxWidgets" Bộ công cụ wxWidgets cung cấp các công cụ phát triển giao diện người dùng đồ họa (GUI) đa nền tảng mạnh mẽ. Không chỉ C++ nguyên gốc mà các ngôn ngữ lập trình khác cũng cung cấp công cụ để sử dụng bộ công cụ này. Tìm hiểu cách sử dụng wxWidgets để tạo các ứng dụng GUI trang nhã và rất hữu ích bằng ngôn ngữ lập trình ưa thích của bạn.



  • K. Pfister, bản dịch tiếng Nga: Ermkov I.E., "Phần mềm thành phần",

  • Nikolay N. Ivanov, “Lập trình Linux từ đầu” Dự án tạo một cuốn sách về chủ đề được nêu trong tiêu đề. Tác giả của cuốn sách sẵn sàng xem xét mọi nhận xét và đề xuất của bạn. Viết!




  • Sevryugin A.I., "PCRE.RU" Bách khoa toàn thư phổ biến về các biểu thức chính quy theo tiêu chuẩn PCRE, tương thích với các ngôn ngữ Perl, PHP, Javascript.

  • "Lindevel.ru/" là một trang web dành riêng cho việc lập trình Linux. Điều thú vị nhất là kho lưu trữ danh sách gửi thư “Lập trình trên Linux từ đầu” trong phần “Bài viết”.

  • Matt Frye, bản dịch: Ivan Pesin, “Gỡ lỗi mã bằng strace” Bản dịch của một bài viết về việc sử dụng tiện ích strace làm công cụ gỡ lỗi mã.

  • Mark Wilkinson, do Ivan Pesin dịch "Tự động hóa quy trình xây dựng và thử nghiệm" Bài viết này giới thiệu với bạn về CruiseControl, một phần mềm nguồn mở mà bạn có thể sử dụng để tự động hóa quy trình xây dựng và thử nghiệm đơn vị trong các dự án có nhiều nhà phát triển.

  • Dmitry Bushenko,

  • Vadim Stankevich, .


  • Chris Herbort, "Phát triển phần mềm UNIX với Eclipse" Chuyển mã kế thừa sang IDE hiện đại.

  • Chris Anischuk, David Gallardo, "Bắt đầu với Nền tảng Eclipse"

  • "Loạt bài viết về JasperReports" - một trình tạo báo cáo tích hợp với Eclipse.

  • Nathan A. Good, "Xây dựng trình hướng dẫn Eclipse của riêng bạn" Một trong những điểm mạnh lớn nhất của công nghệ Eclipse với tư cách là nền tảng cơ sở hạ tầng và môi trường phát triển tích hợp là khả năng mở rộng của nó. Trong bài viết này, bạn sẽ tìm hiểu cách tạo nhanh trình hướng dẫn tự động hóa quá trình thêm tệp mới.

  • Prashant Deva, "Eclipse Makes Ant Editor Easy" Khám phá khả năng tích hợp của Ant trong IDE Eclipse và tìm hiểu cách viết, liên kết và sửa các lỗi mã trong Eclipse bằng trình soạn thảo Ant.

  • Nền tảng máy khách phong phú của Eclipse, Phần 2: Mở rộng Workbench cơ bản
    Hướng dẫn này tiếp tục phần tổng quan của chúng tôi về Nền tảng khách hàng phong phú của Eclipse. Nó cho thấy cách sử dụng chế độ xem, hành động và trình hướng dẫn để tạo một ứng dụng hoàn chỉnh.

  • "Cài đặt và sử dụng Eclipse cho Linux trên máy tính POWER" Eclipse là một môi trường phát triển tích hợp nguồn mở có khả năng mở rộng.

  • "Top 10 thủ thuật dành cho người mới sử dụng Eclipse" Bản dịch bài viết với 10 thủ thuật đơn giản để sử dụng hiệu quả môi trường phát triển Eclipse.

  • "Kiến trong mười bước" (Bản dịch Kiến trong mười bước của Russ Olsen). Ant là một công cụ được thiết kế để tự động hóa quá trình xây dựng phần mềm.

  • Matt Telles, Yuan Hsieh, chuyển giới. từ tiếng Anh S. Lunin, “Nghiên cứu những sai lầm nổi tiếng (và không quá nổi tiếng).” Một chương trong cuốn sách "Khoa học gỡ lỗi"


  • Dmitry Bushenko, "Lập trình trên Linux. Phần bốn. .NET trong Linux"

  • Dmitry Bushenko, "Lập trình .NET trên Linux. Phần 4. Các phần tử Gtk# trong ví dụ"

  • Dmitry Bushenko, “Lập trình bằng .NET trên Linux” Phần 3. Ứng dụng có cửa sổ trong GTK#.

  • Dmitry Bushenko, "Lập trình .NET trên Linux." "Phần 2. Ứng dụng đầu tiên trong Mono C#"



  • Nikolay N. Ivanov, "LẬP TRÌNH TRÊN LINUX".


  • Maciej Katafyazh, do Sergey Bezdenezhnykh dịch, "Những điều cơ bản về GTK+, Phần 2: Cách sử dụng GTK+"

  • "Sử dụng thư viện" Thư viện có thể tĩnh hoặc động.

  • David Madeli, bản dịch - Bezdenezhnykh Sergey, "Tạo widget bằng Cairo và GTK+ 2.8, phần 2"


  • Tony Gale, Ian Main và nhóm GTK, "Hướng dẫn dịch GTK+ 2.0"

  • "Bên trong Trình quản lý bộ nhớ. Lựa chọn, tiếp cận và triển khai các phương pháp phân bổ bộ nhớ động" thảo luận về các kỹ thuật quản lý bộ nhớ có sẵn cho các lập trình viên Linux.

  • Alexey Fedorchuk,

  • Andrei Dranitsa, "Linux cơ bản còn thô sơ và yếu kém" Đánh giá về các công cụ phát triển dành cho Linux.

  • LÀ. Vendrov, "Các công nghệ hiện đại để tạo phần mềm. Đánh giá"

  • Edsger W. Dijkstra, Dịch - Alf, 14 tháng 8 năm 2004, "Hai quan điểm về lập trình"

  • Đầu tiên, hãy đọc một phần từ bản dịch của Alex Ott, v1.3.2, ngày 22 tháng 2 năm 1999

  • "Phát triển mô-đun hạt nhân Linux triển khai thuật toán bảo vệ mật mã GOST 28147-89"

  • "Chạy chương trình được biên dịch bằng phiên bản khác của glibc" Một mẹo ngắn hữu ích.

  • Jasmin Blanchette, Mark Summerfield, Bản dịch: Andrey Kiselev, "Phát triển giao diện đồ họa sử dụng thư viện Qt3"

  • Steve Litt, bản dịch: Alexander Kubyshkin, “Tôn giáo so sánh” Cách chọn ngôn ngữ lập trình chính của bạn. Những ưu điểm và nhược điểm của C, C++, Java, Perl, Python, Ruby sẽ được thảo luận.

  • Jeff Tranter, bản dịch: Andrey Kiselev, “Cuộc gọi hệ thống sendfile” Cuộc gọi hệ thống sendfile đã được thêm vào nhân Linux tương đối gần đây và đã trở thành một bổ sung quan trọng cho các ứng dụng như ftp hoặc máy chủ web chỉ cần một cơ chế truyền tệp hiệu quả.

  • "Lập trình cho UNIX" Tiếc là không có tác giả cũng như năm xuất bản.

  • Evgeniy Khilko, "Thiết lập quá trình xây dựng ứng dụng win bằng trình biên dịch chéo mingw32 trong KDevelop"

  • "Công cụ viết" Chúng ta sẽ nói về phiên bản 3.2.0 của môi trường KDevelop trong bản phân phối SuSE 9.3.


  • Sandeep S, bản dịch: Andrey Kiselev, “Theo dõi quá trình sử dụng Ptrace”, phần 2. Đặc biệt, bài viết nói về cấu trúc của định dạng tệp thực thi - ELF.

  • Sandeep S., Bản dịch: Andrey Kiselev, "Theo dõi quy trình với Ptrace - Phần 3" Mục đích của phần này là trình bày kỹ thuật truy cập các mã định danh quy trình trong thời gian chạy. Phạm vi ứng dụng của kỹ thuật này rộng đến mức nó chỉ bị giới hạn bởi trí tưởng tượng của bạn.

  • V. Meshkov, “Chặn cuộc gọi hệ thống trong hệ điều hành Linux”

  • S. Gulenok, "Tòa nhà chim cánh cụt giải trí. Nền tảng" Trong các cuộc trò chuyện về Linux, tôi thường bắt gặp cụm từ "Linux được các lập trình viên viết cho các lập trình viên." Có phải vậy không?

  • Knyazev Alexey, “Phiên bản tiếng Nga của Trình điều khiển thiết bị Linux phiên bản thứ 2” Đây không phải là bản dịch mà là thứ gì đó “dựa trên” bản dịch cuốn sách hướng dẫn nổi tiếng của Alessandro Rubini & Jonatan Corbet.

  • "Linux Device Driver phiên bản thứ 2" Alexey Knyazev đã hoàn thành bản dịch chương 8 tiếp theo của Linux Device Driver phiên bản thứ 2. Tổng cộng, các chương 0-8 và 13 đã được dịch. Công việc dịch chương 9 đang được tiến hành.

  • Kuzin Andrey, Lập trình cho Linux
    Bước 1 - Biên dịch chương trình trong C/C++ (30/01/2002 - 2 Kb)
    Bước 2 - Thông tin gỡ lỗi (30/01/2002 - 4.2 Kb)
    Bước 3 - Biên dịch một số file (15/02/2002 - 3.7 Kb)
    Bước 4 - Thư viện tệp đối tượng (20/02/2002 - 3.0 Kb)
    Bước 5 - Tạo thư viện tĩnh (20/02/2002 - 3.7 Kb)
    Bước 6 - Tạo thư viện động (20/02/2002 - 5.2 Kb)
    Bước 7 - Sử dụng thư viện động (23/02/2002 - 4.9 Kb)
    Bước 8 - Các chức năng làm việc với thư viện động (23/02/2002 - 5.0 Kb)
    Bước 9 - Khởi tạo thư viện động (27/02/2002 - 3.5 Kb)
    Bước 10 - Chuyển các tùy chọn cho chương trình - getopt (15/10/2002 - 6.6 Kb)
    Bước 11 - Truyền các tùy chọn dài cho chương trình - getopt_long (19/12/2002 - 11.2 Kb)
    Bước 12 - Hiển thị thông báo lỗi chương trình (22/12/2002 - 7.5 Kb)
    Bước 13 - Lấy thông tin người dùng (22/12/2002 - 10.2 Kb)
    Bước 14 - Lấy dữ liệu từ mật khẩu ẩn (22/12/2002 - 5.5 Kb)
    Bước 15 - Làm việc với mật khẩu hệ thống bằng hàm crypt() (24/12/2002 - 10.0 Kb)

  • Kotelnikov Ruslan.

  • Ruslan Popov, "Giới thiệu về KDevelop"

  • I. Voronin, “Sử dụng CCache” Ccache giúp tăng tốc độ tuyệt vời khi xây dựng lại chương trình. Ví dụ: tôi đã lắp ráp nhân Linux trên một máy có bộ xử lý Pentium MMX/200 Mhz chỉ trong 10 phút.

  • Oleg Belenkov Chuyển ứng dụng từ Windows sang Linux [OPEN SYSTEMS, 2000/07-08]

  • S. Bogomolov, libdb

  • S. Bogomolov, Xây dựng và sử dụng thư viện dùng chung

  • S. Bogomolov, TclTk (cài đặt)

  • Hệ thống quản lý dự án phần mềm SCCS, T.A.Pivovarenok, Trung tâm siêu máy tính

  • Các cơ chế giao tiếp giữa các tiến trình trong hệ điều hành Unix, Sergey Kuznetsov, tài liệu giáo dục của hội nghị Công nghiệp lập trình 96,

  • ITology - khoa học về công nghệ thông tin, V. Sukhomlin, Trung tâm Nghiên cứu Máy tính Đại học Tổng hợp Matxcơva, tài liệu giáo dục của hội thảo Công nghiệp Lập trình 96, Trung tâm Công nghệ Thông tin

  • "Ngành lập trình"96" Tài liệu hội thảo, Trung tâm Công nghệ thông tin

  • Andrey Bondarenko Công cụ phát triển hình ảnh (IDE)

  • Đánh giá của Sergey Zhuravlev về IDE cho Linux

  • A. Chebotarev, "QT: giao diện, và không chỉ..."

  • LÀ. Vendrov, Công ty Argussoft. Công nghệ CASE Chú thích. Nội dung của công nghệ CASE. Các phương pháp và công cụ hiện đại để thiết kế hệ thống thông tin.

  • Wolfgang Mauerer, (bản dịch: Alexander Mikhailov) Gỡ lỗi trực quan trong DDD. Không có gì hoạt động như bình thường; tất cả các chương trình đều có lỗi; các thông số kỹ thuật sai và việc triển khai thực hiện hoàn toàn ngược lại với những gì được mong đợi. Việc tìm ra lỗi không chỉ là một phần tất yếu trong chu trình phát triển phần mềm mà còn là một thành phần quan trọng trong “đường đời” của bất kỳ chương trình nào.

  • Guido Socher, bản dịch: Pukhlykov Kirill, "Tại sao nó không hoạt động!? Các phương pháp phát hiện và sửa lỗi trong ứng dụng Linux"

  • Donald E. Knuth, "Sắp xếp và tìm kiếm" Nghệ thuật lập trình Tập 3

  • "Giới thiệu về Lớp DirectMedia Đơn giản" SDL là giao diện lập trình ứng dụng đa phương tiện đa nền tảng miễn phí. Được sử dụng để tạo trò chơi, thư viện trò chơi, chương trình demo, trình giả lập, trình phát MPEG và các chương trình khác.

  • Công cụ đồ họa cho chương trình Linux
    Công cụ đồ họa là thư viện các quy trình cho phép bạn thêm một bộ chức năng cụ thể, sử dụng ngôn ngữ lập trình này để tích hợp giao diện đồ họa vào chương trình của bạn.

  • Harvey Blume,

  • Denis Kolisnichenko, “Chuyển hướng I/O phần mềm” [Xuất bản 25/09/2002.]

  • "Dựa vào kịch bản" [OPEN SYSTEMS, 2002/09]

  • Konstantin Mikhailenko, “Phong cách song song” 01/03/2002, Bài viết về tính toán song song

  • Leonardo Giordani, "Lập trình song song - giao tiếp giữa các tiến trình."

  • Leonardo Giordani, bản dịch của Kirill Pukhlykov, “Lập trình song song - hàng đợi tin nhắn” phần 3.

  • Dựa trên tài liệu từ Dinil Divakaran, do X-Stranger chuẩn bị, “Trình biên dịch của riêng bạn dành cho Linux”

  • Vladimir Popov, “Và tôi đã làm theo cách này…” Không phải chuyên gia giàu kinh nghiệm nào cũng có thể trả lời câu hỏi của một người mới chơi nghiệp dư, nhưng bất kỳ ai cũng có thể chia sẻ kinh nghiệm của mình. Trong trường hợp này, chúng ta nói về việc biên dịch.

  • S.Sandeep, bản dịch: Andrey Kiselev, "Theo dõi quá trình sử dụng Ptrace - Phần 1." Lệnh gọi hệ thống ptrace là cơ sở để gỡ lỗi các chương trình như gdb, nhưng các nguyên tắc làm việc với lệnh gọi hệ thống này không được đề cập rõ trong tài liệu.

  • "ccache - cache cho trình biên dịch" Chương trình ccache lưu trữ các kết quả biên dịch, cho phép bạn tăng tốc đáng kể việc xây dựng lại ứng dụng lặp đi lặp lại.

  • V. Meshkov, “Lập trình thiết bị CD/DVD trên Linux” (tệp ở định dạng pdf). Cuốn sách thảo luận về quy trình điều khiển ổ đĩa bằng các thanh ghi điều khiển, cấu trúc logic của phương tiện lưu trữ quang, ví dụ về cách sử dụng trình điều khiển ATAPI và SCSI được tích hợp trong nhân Linux, các thuật toán ghi nhiều thông tin khác nhau vào đĩa CD và việc triển khai phần mềm các thuật toán này.

  • Davyd Madeley, bản dịch - Bezdenezhnykh Sergey, “Tạo tiện ích bằng Cairo và GTK+ 2.8” Bắt đầu với phiên bản 2.8, GTK+ kết xuất tất cả các thành phần giao diện của nó bằng thư viện đồ họa vector Cairo mạnh mẽ. Bài viết này hướng dẫn bạn cách có thể tự tạo tiện ích GTK+ bằng cách sử dụng thư viện Cairo để hiển thị tiện ích đó.

  • Ilya Evseev, "MPI dành cho người mới bắt đầu" MPI (Giao diện truyền tin nhắn = "Tương tác thông qua truyền tin nhắn") là một tiêu chuẩn cho các công cụ phần mềm nhằm cung cấp liên lạc giữa các nhánh của một ứng dụng song song.

  • "Qt không có KDevelop" Hướng dẫn này sẽ giúp bạn hiểu các tính năng của việc xây dựng chương trình sử dụng thư viện QT. Để sử dụng thư viện QT, tất cả những gì bạn cần là bảng điều khiển, trình soạn thảo văn bản và môi trường đồ họa (ví dụ: KDE).

  • Một trang web đã xuất hiện, http://corba.kubsu.ru/, dành riêng cho công nghệ CORBA. Như đã lưu ý trên trang chính, một hướng phụ của dự án này là chủ đề Linux, bởi vì một số lượng khá lớn các nhà phát triển sử dụng công nghệ CORBA phát triển phần mềm dành riêng cho hệ điều hành này. (Link gửi bởi Alexey Kurgan).

  • "SVGAlib"
  • GCC

  • Mulyadi Santosa, "Khám phá các lựa chọn GCC."

  • GCC là gốc rễ của mọi thứ bởi Lorne Bailey
    GCC là một trình biên dịch tuyệt vời, nhưng trang man không thân thiện với người dùng. Ghi chú nói về sự dễ sử dụng của trình biên dịch.

  • Sergei Karasiov, "Gcc thực sự hoạt động như thế nào"



  • gcc part1 Trình biên dịch cho các ngôn ngữ C, C++, Objective C (phần 1) Hướng dẫn sử dụng (gcc 2.7)

  • gcc part2 gcc: Trình biên dịch cho các ngôn ngữ C, C++, Objective C (phần 2) Chuyển sang kiến ​​trúc mới (gcc 2.7)

  • Tác giả: Jpiszcz, Bản dịch: Yury Prushinsky, "Tối ưu hóa GCC"
  • Trình biên dịch

  • Dmitry Gribenko, “Lắp ráp Linux dành cho lập trình viên C” Cuốn sách này hướng đến những lập trình viên đã biết C ở mức độ vừa đủ. Điều duy nhất hướng đến Linux là cú pháp trình biên dịch mã được sử dụng. Các lập trình viên hợp ngữ trên DOS và Windows sử dụng cú pháp Intel, nhưng trên các hệ thống *nix, người ta thường sử dụng cú pháp AT&T.

  • Ram Narayan, "Trình biên dịch Linux: So sánh GAS và NASM" Bài viết này giải thích một số khác biệt quan trọng nhất về cú pháp và ngữ nghĩa giữa hai trình biên dịch phổ biến nhất cho LinuxR - Trình biên dịch GNU (GAS) và Trình biên dịch Netwide (NASM), cũng như sự khác biệt trong cú pháp cơ bản, các biến và truy cập bộ nhớ, xử lý macro, các hàm và các quy trình bên ngoài, thao tác ngăn xếp và các kỹ thuật để lặp lại các khối mã đơn giản.

  • Rostyslav. "Trình biên dịch mã trong môi trường UNIX hoặc cách thức hoạt động của shellcode"

  • Alexey Yu. Ulasevich, "Các câu hỏi thường gặp về cách sử dụng trình biên dịch chương trình trong Unix."

  • Một lựa chọn các liên kết đến tài liệu trình biên dịch mã.

  • K. Boldyshev, từ tác giả.

  • Konstantin Boldyshev và F.-R. Rideau. Lắp ráp HOWTO. Trình biên dịch cho DOS, Windows và Linux. (bằng tiếng Anh).

  • Aleksey Ulasevich, "Các câu hỏi thường gặp về việc sử dụng trình biên dịch chương trình trong Unix"

  • Nếu bạn quan tâm đến việc lập trình cho Linux và các thiết bị của nó ở mức thấp nhất, hãy xem trang web "http://www.lowlevel.ru/". Ở đó bạn sẽ tìm thấy rất nhiều điều hữu ích, ví dụ: "Mô tả định dạng ELF", "hệ thống tệp EXT2" "Phần 1", "Phần 2".



  • Trang lập trình hợp ngữ Linux/i386 Một trang dành riêng cho lập trình hợp ngữ cho Linux.

  • Trình biên dịch trang chủ Linux & Assembler của Jan trong DOS và Linux.

  • Alexander Kuprin, ...Chúng tôi đang viết một hệ điều hành đồ chơi... Hãy tìm hiểu sâu hơn...

  • "Viết hệ điều hành đồ chơi (phần I)"

  • Krishnakumar R., Bản dịch: Alexander Kuprin, “Viết hệ điều hành đồ chơi (phần II)”

  • Bob, "Triển khai hỗ trợ PCI cấp thấp trong nhân Linux"

  • Giới thiệu về dịch ngược Ngay cả trình biên dịch lại tốt nhất cũng không thể khôi phục chính xác mã chương trình. Biên dịch là một chức năng một chiều. Trình biên dịch kết quả, và sau đó là mã máy, có các chi tiết cụ thể phụ thuộc vào nhiều yếu tố và việc phân tích trí tuệ không phải lúc nào cũng phù hợp...

  • Intuit, "Các nguyên tắc cơ bản về lập trình Netfilter trong ngôn ngữ hội." Một bài viết về cách làm việc với Netfilter, một hệ thống con kernel giúp mở rộng khả năng của HĐH khi làm việc với các khung mạng. Ngôn ngữ lập trình là trình biên dịch mã. Cú pháp GAS. Bài viết mô tả việc tạo các mô-đun đơn giản (LKM) để thể hiện khả năng của hệ thống con này.
  • Ngôn ngữ vỏ

  • Michael Stutz, "Biểu thức chính quy" Khái niệm biểu thức chính quy (regexps) - ký hiệu để mô tả các mẫu khớp với một tập hợp các chuỗi - rất phổ biến trong nhiều chương trình và ngôn ngữ lập trình. Các cách triển khai biểu thức chính quy khác nhau có chi tiết khác nhau nhưng các nguyên tắc cần thiết để tìm hiểu cách viết biểu thức chính quy đều giống nhau trong tất cả các cách triển khai.

  • "Mã hóa shell" Bài viết này thảo luận về các ví dụ đơn giản nhất về lập trình shell. Bài viết này không phải là hướng dẫn đầy đủ về lập trình shell, nhưng có thể hữu ích trong việc nắm vững các kiến ​​thức cơ bản về nó.

  • Mendel Cooper, Bản dịch: Andrey Kiselev, "Hướng dẫn viết kịch bản Bash nâng cao" hoặc "Nghệ thuật lập trình bằng ngôn ngữ kịch bản Shell" Hướng dẫn này không giả định rằng người đọc có kiến ​​thức về lập trình bằng ngôn ngữ kịch bản, tuy nhiên, nó nhanh chóng lấp đầy điều này khoảng cách. . . dần dần, từng bước bộc lộ sự khôn ngoan và vẻ đẹp của UNIX.

  • Ian Shields, "Mẹo về Linux: So sánh và kiểm tra các hàm trong Bash" Giải thích về các cấu trúc test , [, [[, ((, và if-then-else)


  • Sunil Thomas Thonikuzhiyil, bản dịch: Ivan Pesin, Alexander Kuprin, "Phát triển các giao diện đơn giản bằng hộp thoại/Xdialog". Bài viết xem xét việc sử dụng các chương trình hộp thoại và Xdialog để triển khai các giao diện đơn giản cho các tập lệnh. Điều này giả định rằng bạn đã quen với việc viết các tập lệnh shell.

  • Trình thông dịch ngôn ngữ lệnh Shell
    Trình thông dịch ngôn ngữ lệnh Shell



  • Jos Nazario, Bản dịch: Jan Bezus, "Giới thiệu về awk" Tài liệu này là tổng quan ngắn gọn về các khả năng và tính năng của awk (thao tác tệp dữ liệu, truy xuất và xử lý văn bản).

  • V. Kataev, "Cuộc sống trong Linux. Lời khuyên chuyên nghiệp. Từ kịch bản đến tác nhân."

  • Abramov Alexey, "Kịch bản giám sát sao chép MySQL trên shell"

  • Vadim Fedorov, "Làm cách nào để gửi thư có tệp đính kèm trong UNIX?" Làm cách nào để buộc tập lệnh được viết bằng bash hoặc shell gửi email có tệp đính kèm?

  • Trình thông dịch lệnh C-shell, M.P.Krutikov, Trung tâm siêu máy tính

  • Lập trình Shell (Unix) A. Soloviev,
    Cùng một cuốn sách, nhưng ở dạng văn bản.



  • SHuRuP   Mã hóa Shell: lập trình trong bảng điều khiển *nix

  • Andrey Golovin, Biểu thức chính quy.
    Biểu thức chính quy là công cụ mạnh mẽ nhất để làm việc với các chuỗi mà các lập trình viên hiện đại có thể nghĩ ra. Với sự trợ giúp của họ, bạn có thể phân tích chuỗi cho nội dung của chuỗi ký tự, thực hiện thay thế dựa trên lựa chọn này, chia chuỗi thành mảng, v.v.

  • S. Lapshansky, “Giới thiệu về tự động hóa [Xuất bản ngày 23/07/2002] Phần 2. Về các tập lệnh hữu ích và chạy chúng qua cron.

  • Vadim Khokhlov, “Cách Unix: “Gariki”, chúng cũng là “gariks” trong Linux.” Về một tập hợp các tập lệnh bash để chọn các câu lệnh thú vị khác nhau từ một số cơ sở dữ liệu.
  • Ngôn ngữ C và C++

  • N. Gorshkov, “Hướng dẫn lập trình C++ sử dụng libxml++” libxml++ là một API C++ dành cho trình phân tích cú pháp XML phổ biến libxml, được viết bằng C.

  • Alexander Sidorov, "MinGW + Qt + Emacs HOWTO (Windows)" Về việc thiết lập và sử dụng kết hợp MinGW, Qt4 và Emacs trong Windows để viết các ứng dụng cửa sổ đa nền tảng trong C++. Bài viết bàn về các vấn đề cài đặt trình biên dịch ngôn ngữ C++, thư viện cửa sổ đa nền tảng, cài đặt và cấu hình môi trường phát triển.

  • Irtegov Dmitry Valentinovich, “Lập trình đa luồng bằng luồng POSIX” Tài liệu của khóa học về phát triển các ứng dụng đa luồng trong C/C++ bằng Thư viện luồng POSIX.

  • Nikolay N. Ivanov, "Bí mật của con trỏ ngôn ngữ C. Phần I."



  • "API C/C++ cho SQLite 3" Hơn một nửa cuốn sách tham khảo "API C/C++ cho SQLite 3" đã được dịch sang tiếng Nga; quá trình dịch mô tả các lệnh SQL đã bắt đầu.

  • Gỡ lỗi tiện ích tạo
    Các tiện ích tạo ra, chẳng hạn như GNU make, System V make và Berkeley make, là những công cụ cơ bản cần thiết để đơn giản hóa quá trình xây dựng ứng dụng. Bài viết này sẽ giới thiệu cho các bạn cấu trúc của một makefile.

  • "Giải quyết vấn đề với các lệnh ./configure, make và make install" Đôi khi trình tự chuẩn để biên dịch chương trình không hoạt động. Nó bắt đầu hiển thị nhiều lỗi khác nhau và không biên dịch chương trình. Bài viết này mô tả cách loại bỏ nhiều lỗi phổ biến.

  • "Các tính năng của make.conf" /etc/make.conf là một tệp chỉ định các khóa tối ưu hóa cho trình biên dịch.

  • Tác giả: Raghu J Menon, bản dịch: Andrey Kiselev, “setjmp/longjmp trong ví dụ” Bài viết mô tả cách làm việc với một tập hợp các định nghĩa macro setjmp/longjmp được triển khai bằng ngôn ngữ lập trình C.

  • "Lịch sử ngôn ngữ C/C++" Về mặt lịch sử, ngôn ngữ này không thể tách rời khỏi hệ điều hành Unix, hệ điều hành hiện đang trong quá trình tái sinh.

  • Konstantin Taiturov, “Armor for Penguin” Hầu hết các triển khai hiện đại của trình biên dịch ngôn ngữ C không tạo ra mã kiểm soát tính toàn vẹn của các ranh giới biến đổi.

  • Mike Goblin, “Viết trình điều khiển cho Linux: Những bước đầu tiên” Đối với tôi, việc viết trình điều khiển cho Linux dường như luôn là một vấn đề cực kỳ khó khăn và bí ẩn. Nhưng hai tháng trước tôi cần phải tự mình viết một trình điều khiển như vậy. Quá trình này hóa ra không hề khó khăn chút nào và mang lại cho tôi rất nhiều niềm vui.
  • Mike Goblin, "Viết trình điều khiển Linux, Phần 2".

  • Kirill Kochetkov, "SPEC CPU2000. Phần 5 - Trình biên dịch. Phụ lục 2" So sánh ba trình biên dịch C cho Linux về mặt hiệu suất.

  • Rob Tougher, bản dịch: Andrey Kiselev "Tạo thư viện có thể tái sử dụng"

  • Rob Tougher, bản dịch: Andrey Kiselev, “Nền tảng tạo máy chủ ứng dụng trong C++”

  • "Bộ công cụ Fox. Bài học bằng tiếng Nga." Bộ công cụ FOX là bộ công cụ đa nền tảng nhanh chóng và tiện lợi (C++, ruby, python).

  • Tác giả: Bhaskaran, dịch: Andrey Kiselev, “Tạo trình điều khiển thiết bị mạng - Phần 1” Bài viết này nhằm giúp người đọc hiểu rõ nguyên tắc tạo trình điều khiển card mạng ethernet cho HĐH Linux. Nhưng nó cũng sẽ giúp bạn hiểu một cách đơn giản về cách kết nối card mạng.

  • Kotelnikov Ruslan, "Bắt đầu lập trình trên Linux"

  • Hyouck "Hawk" Kim, Bản dịch (c): Andrey Kiselev, "Cách khởi chạy hàm main() trong Linux"


  • Rob Tougher, Lập trình C++ với Ổ cắm trên Linux

  • Rob Tougher, Lập trình với Xlib trong C++

  • "Lập trình cấp thấp các cổng song song cho *nix",

  • Yu.Yu.Gromov, S.I.Tatarenko, Đại học Kỹ thuật Bang Tambov, Lập trình bằng ngôn ngữ C

  • Bjarne Stroustrup, Giới thiệu về C++

  • Bjarne Stroustrup Thiết kế và sự phát triển của ngôn ngữ C++. Cuốn sách được viết bởi người tạo ra ngôn ngữ C++, Bjarne Stroustrup, mô tả quá trình thiết kế và phát triển ngôn ngữ lập trình C++.



  • Hướng dẫn tham khảo C++ Bjarne Stroustrup, Thư viện M. Moshkov

  • Trình đọc về lập trình C trong Unix Andrey Bogatyrev, Thư viện M. Moshkov Sao chép

  • Marchenko A.L. C++. Con Đường Nhung. Các chương đã chọn

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


  • Người đàn ông để tạo ra (Bản dịch của Yu. Kozlov)

  • Dmitry Chernyak. Sử dụng GNU tạo



  • Vladimir Ignatov

  • Vladimir Ignatov "Sử dụng hiệu quả GNU Make"

  • Tác giả: (C) Tedi Heriyanto, Bản dịch: (C) Andrey Kiselev, “Hướng dẫn nhỏ để tạo Makefiles”

  • Richard M. Stallman và Roland H. Pesch Trình gỡ lỗi cấp nguồn GNU. Phiên bản thứ tám, dành cho GDB phiên bản 20000326. Tháng 3 năm 2000. Bản dịch của Dmitry Sivachenko.

  • Ivan Shmkov, "Trình gỡ lỗi GDB"


  • "Xử lý ngoại lệ trong C++". Ngôn ngữ C cung cấp cho người lập trình những lựa chọn rất hạn chế để xử lý các ngoại lệ phát sinh trong quá trình vận hành chương trình. Về mặt này, C++ phát triển hơn nhiều so với C. Ở đây, lập trình viên có khả năng xử lý trực tiếp các ngoại lệ lớn hơn đáng kể. Ủy ban Tiêu chuẩn C++ đã cung cấp một hình thức xử lý ngoại lệ rất đơn giản nhưng mạnh mẽ.

  • A. Kalinin, “Một công cụ cấp phát bộ nhớ đơn giản nhưng hữu ích” Ghi chú này là phần tiếp theo của “Postfix từ bên trong” theo nghĩa là postfix một lần nữa được lấy làm ví dụ. Nhưng nếu lần trước postfix được nhìn từ góc nhìn tổng thể thì bây giờ, ngược lại, một đoạn mã chương trình nhỏ không có bất kỳ chuyên môn nào sẽ được lấy và đưa ra làm ví dụ.


  • Lập trình vi điều khiển AVR bằng GCC của Guido Socher
    Bài viết này mô tả cách thiết lập môi trường phát triển cho bộ vi điều khiển Atmel AVR 8 bit.

  • Gaurav Taneja, Lập trình GUI trong C++ bằng Thư viện Qt, Phần 1



  • Ariel Ortiz Ramirez, Dịch thuật Andrey Kiselev, "Lập trình: C# - kiểu dữ liệu"

  • Tom Bradley, Bản dịch: Andrey Kiselev, "Thêm mô-đun mở rộng (plugin) vào chương trình."

  • Gleb Pakharenko, “Triển khai mạng trong hệ điều hành Linux” Trong bài viết này, việc triển khai mạng được xem xét ở cấp mã chương trình.

  • "thụt lề - một chương trình tự động định dạng nguồn C"
  • Pascal và Delphi

  • Joost van der Sluis, bản dịch của A. Tarasov, Free Pascal (FPC) phiên bản 2.2.0 vừa được phát hành. Trình biên dịch Pascal này là một trong những trình biên dịch mã nguồn mở đáng chú ý nhất hiện nay. Mỗi ngày, ngày càng có nhiều lập trình viên tìm hiểu về FPC và bắt đầu phát triển ứng dụng của họ trong Object Pascal. Điều này đặc biệt được ưa chuộng bởi sự phát triển của Lazarus, một môi trường phát triển đồ họa cho FPC, chứa một bộ công cụ mở rộng để phát triển các ứng dụng giao diện người dùng đồ họa (GUI).

  • Rudyuk S.A., "Lazarus - Delphi-đa nền tảng. Lập trình cho người tự do" Mục tiêu chính của cuốn sách này là chỉ ra khả năng tạo ra các sản phẩm thương mại chuyên nghiệp bằng Pascal. Các sản phẩm phần mềm này không chỉ phải hoạt động trong các hệ điều hành trả phí (ví dụ: Windows) mà còn trong các hệ điều hành miễn phí (ví dụ: FreeBSD, Linux). Điều rất quan trọng là việc phát triển chương trình được thực hiện mà không vi phạm thỏa thuận cấp phép và mua phần mềm đắt tiền (và đối với các chuyên gia, đây là một trong những vấn đề quan trọng nhất trong thời đại chúng ta).

  • Mikhail Prodan, "Lazarus - giới thiệu về Delphi miễn phí"

  • Anatoly Kamynin, “Pascal miễn phí: Phần mềm miễn phí dành cho những người tự do” Cuộc trò chuyện của chúng ta sẽ tập trung vào Trình biên dịch Pascal miễn phí (FPC), được phân phối bởi một nhóm nhà phát triển theo giấy phép công cộng GNU.

  • Andrey Borovsky, “X-Window: Unclassified windows” Bài viết này sẽ nói về cách làm việc với X-Window bằng Kylix. Chúng ta sẽ xem xét các tính năng hữu ích như tạo ảnh chụp màn hình của các cửa sổ và các điều khiển riêng lẻ, tìm kiếm một cửa sổ trong hệ thống phân cấp cửa sổ X-Window và một số tính năng khác

  • Marius Popa Adrian, bản dịch: Ruslan Denisenko, “Cài đặt môi trường phát triển pascal miễn phí trong Ubuntu Linux” Hướng dẫn từng bước bằng tiếng Nga để cài đặt trình biên dịch pascal miễn phí và môi trường phát triển lazarus giống delphi trên Ubuntu Linux.

  • Serdtsev A.A., "Khắc phục sự cố biên dịch trong Borland Kylix 3 bằng glibc 2.3.2"

  • Ilya Avvakumov, “Trình gỡ lỗi GNU GDB” Bài viết này mô tả các lệnh GDB cho phép gỡ lỗi từng bước một cách thuận tiện đối với các chương trình được viết bằng Free Pascal.

  • A. P. Polishchuk, S. A. Semerikov, “Lập trình trong X Window bằng Pascal miễn phí”. Cả một cuốn sách mà từ đó bạn có thể tìm hiểu không chỉ về lập trình mà còn về thiết bị X Window (nơi các tác giả bắt đầu)! Nói chung, trang web này dành riêng cho ngôn ngữ Pascal miễn phí, vì vậy tất cả những ai quan tâm đến lập trình cho Linux cũng nên xem tại đây.

  • I. L. Shikhalev, “Pascal miễn phí là gì và nó được ăn với cái gì?” Tổng quan chung về trình biên dịch Pascal miễn phí, các khả năng, tính năng của nó, v.v.

  • "Hướng dẫn Kylix" Chuỗi bài viết về môi trường lập trình Pascal cho Linux.


  • Arseny Chebotarev, "Ứng dụng cho Linux - Tùy chọn Kylix"

  • Goblin M., "Hướng dẫn Kylix" Mô tả cách cài đặt Kylix, làm việc với cơ sở dữ liệu qua dbExpress, v.v.

  • Đánh giá về Kylix (Delphi cho Linux) Được Borland phát hành gần đây, sản phẩm Kylix (Delphi cho Linux) đã thu hút được sự quan tâm lớn của các nhà phát triển. Ở giai đoạn phát triển trước khi phát hành, các ý kiến ​​​​về Kylix đôi khi hoàn toàn trái ngược nhau, từ cực kỳ nhiệt tình đến cực kỳ tiêu cực. Tác giả đã cố gắng trong bài viết này để bày tỏ ý kiến ​​​​của mình về sản phẩm này.

  • Thế giới của Borland Kylix Trang web này dành riêng cho việc lập trình trong môi trường Borland Kylix, một môi trường phát triển ứng dụng nhanh chóng cho hệ điều hành Linux.

  • Mikhail Golovanov Loạt bài viết. Hướng dẫn Kylix. 1. Cài đặt Vì vậy, chuyện xảy ra là khi đi ngang qua một gian hàng có đĩa CD, tôi nhìn thấy một chiếc hộp nhỏ gọn có nhãn màu xanh lam và dòng chữ Kylix kỳ diệu. Hay đúng hơn là có hai chiếc đĩa và cả hai đều được mua ngay. Tôi đã thử cài đặt Kylix trên RedHat Linux 7.0...

  • Mikhail Golovanov Loạt bài viết. Hướng dẫn Kylix. 2. Làm việc với cơ sở dữ liệu thông qua dbExpress Borland đã triển khai một công cụ mới để làm việc với cơ sở dữ liệu dbExpress trong Kylix và Delphi 6.


  • M.Goblin Loạt bài viết. Hướng dẫn Kylix. 2. Làm việc với cơ sở dữ liệu qua dbExpress. Những bước đầu tiên.

  • Vyacheslav Belyaev, Borland Kylix - cài đặt và làm quen lần đầu Làm quen với Borland Kylix - môi trường lập trình cho Linux [Published 01/06/2001]

  • Peter Coffee, "Linux to the Masses" Đánh giá hệ thống phát triển ứng dụng mới của Borland - Kylix, rất gợi nhớ đến Borland Delphi - một môi trường hướng đối tượng dựa trên ngôn ngữ Pascal.
  • ngôn ngữ Java

  • Nguồn tin tức mới bằng tiếng Nga về công nghệ Java - "javatech.info".

  • Brian Goetz, "Lý thuyết và thực hành Java: Kỹ thuật thiết kế an toàn"

  • Sergey Bezdenezhnykh, “Lập trình Java sử dụng GTK+” Trong bài viết này, bạn sẽ tìm hiểu về các công cụ cần thiết để tạo ứng dụng trong Java cho Gtk+ và Gnome.

  • Maxim Bobachenko, “Giới thiệu về các mặt máy chủ Java” Các mặt máy chủ Java (JSF) là một công nghệ hướng sự kiện, dựa trên thành phần để tạo các ứng dụng web bằng Java.

  • A. Fedotov, "Giám sát việc sử dụng bộ nhớ với Java SE 5"

  • "Tự lắp ráp JAVA(TM) 2 SE v.1.4.1 từ nguồn từ sun.com"


  • Matthias Kalle Dalheimer, bản dịch: Andi Peredri, "So sánh Qt và Java"

  • Lozoviuk A. Lịch sử Java. Cuộc cách mạng Internet bắt đầu như thế nào Để thấy trước tương lai, bạn cần hiểu quá khứ. Bản thân lịch sử của dự án Java rất thú vị và mang tính hướng dẫn. Nó cung cấp sự hiểu biết về những gì có thể được mong đợi trong tương lai. Mọi thứ trên thế giới đều phát triển theo quy luật chung, và ngành máy tính cũng không ngoại lệ.

  • Sponge Bob, "Java so với NET - một cái nhìn chủ quan"



  • Java2 mở đường cho Linux ( Michael Wizard, Dana Gardner, Paul Creel, COMPUTERWORLD RUSSIA #12, 99) Sun Microsystems Corporation, cùng với Nhóm Linux Blackdown Porting độc lập, đã tạo ra phiên bản Linux của bộ công cụ phát triển Java2 (Java2DK).


  • S.B.Dunaev. Truy cập cơ sở dữ liệu từ các chương trình Java và các vấn đề về Nga hóa
  • Ngôn ngữ JavaScript

  • Peter Seebach, "Giới thiệu ECMAscript" ECMAscript (thường được gọi là JavaScript) có một lịch sử khá thú vị, bởi vì nó bắt đầu như một sự khởi đầu từ các tiêu chuẩn.


  • P. Khramtsov. Giới thiệu thực tế về lập trình JavaScript

  • Đồ họa động trong các servlet Java. Làm cách nào để tạo bộ đếm lượt truy cập đồ họa? Sơ đồ hiển thị tải trên kênh đối với nhà cung cấp hoặc số lượng chữ cái trong hàng đợi? Nói một cách dễ hiểu, làm cách nào để tạo hình ảnh động dựa trên yêu cầu của người dùng? Bài viết đưa ra các phương án để giải quyết vấn đề này...

  • Melnikov M. "JavaScript: các chức năng hữu ích"
    Hãy tiếp tục cuộc trò chuyện về việc sử dụng tập lệnh trên các trang web. Và có lẽ chúng ta sẽ bắt đầu bằng cách viết một số hàm sẽ rất hữu ích cho chúng ta sau này.

  • Melnikov M. JavaScript và mô hình đối tượng
    Các ngôn ngữ kịch bản theo một cách nào đó đã đảo lộn thế giới và chính nhờ chúng mà DHTML xuất hiện, cho phép bạn thực hiện hầu hết mọi thứ với một trang. Như bạn đã biết, chỉ có hai ngôn ngữ được cho là kẻ chiến thắng trên trình duyệt. Đây là VBScript - một tập hợp con của Visual Basic và JavaScript. Đây là cái cuối cùng chúng ta sẽ giải quyết, vì nó là cái phổ biến nhất.
  • Perl

  • N. Anisimova, "Hướng dẫn sử dụng mô-đun Perl PDF::API2 cho người mới bắt đầu" Tài liệu đánh giá nhằm hỗ trợ các lập trình viên Perl trong công việc thực tế khi tạo tài liệu PDF.


  • Allan Peda, "Tạo hệ thống bỏ phiếu trong Perl/CGI"

  • "Nhóm người dùng Kiev Perl" Thật không may, không có nhiều tài nguyên trực tiếp về Perl trên Internet và RuNet, nhưng có lẽ nó sẽ hữu ích cho ai đó. Một số tài liệu thú vị đã được xuất bản ở đó...



  • Xavier Calbet, do A. Tarasov dịch, PDL là phần mở rộng của ngôn ngữ Perl để tính toán và vẽ đồ thị số. Bài viết này sẽ xây dựng tập Mandelbrot sử dụng PDL và các hệ thống tính toán số khác. So sánh chất lượng và hiệu suất đã được thực hiện.



  • "Bản dịch tài liệu Perl ở định dạng pdf", chẳng hạn như: sách tham khảo cho Perl:DBI cho MySQL, tài liệu cho mô-đun CGI.pm, hướng dẫn regrec, bản dịch tài liệu cho mô-đun Libwww-Perl, thông số kỹ thuật đầy đủ của DBI và DBD: :mysql.

  • Arseny Chebotarev, "Perl: bản trình bày hoàn chỉnh với các ví dụ"

  • Roman Imankulov, “Về những viên kim cương dưới chân chúng ta” Một chút về Perl và Makefile.

  • (20/12/2003) Trang web mới - "Perl 6" Các liên kết và ghi chú hữu ích về cách sử dụng Perl 6 và máy ảo Parrot. Một loại nhật ký học Perl 6....

  • V. Maksimenko, “Triển khai thử nghiệm Turing trong Perl” Bài viết mô tả phương pháp bảo vệ chống lại việc tự động hoàn thành và gửi biểu mẫu từ một trang web bằng cách tự động tạo hình ảnh có mã và xác nhận tính chính xác của đầu vào.

  • Sean M. Burke, Bản dịch: Dmitry Nikolaev, "Web Basics with LWP" LWP (viết tắt của "Library for WWW in Perl") là một nhóm mô-đun ngôn ngữ Perl rất phổ biến để truy cập dữ liệu trên Internet.

  • Dave Gross, bản dịch của Alex Ten. "Thay đổi hành vi của hàm băm bằng hàm tie" "Theo kinh nghiệm của tôi, hàm băm là cấu trúc dữ liệu tích hợp hữu ích nhất trong Perl."

  • Khóa đào tạo cấp tốc "Tạo ứng dụng máy chủ trong PERL".

  • Tuyển tập các tài liệu về ngôn ngữ Perl từ cùng một “trang web”


  • Guido Socher, dịch sang tiếng Nga: K. Pukhlykov, "Xử lý mã HTML trong Perl, HTML::TagReader"

  • "Larry Wall on Perl 6" Với sự cho phép tử tế của Larry Wall, người phát minh ra Perl, bạn sẽ được cung cấp bản dịch các bài viết về Perl 6 trong loạt bài này.

  • Stephen Wilhelm, bản dịch của Dmitriy A. Kuvshinov, "Mô tả Gtk-Perl" Người dịch yêu cầu trợ giúp hoàn thành bản dịch. Nếu bạn có mong muốn và cơ hội - hãy kết nối!

  • S. Bogomolov, Perl (cài đặt)

  • Alexander Smyslovsky. Perl mà mọi người sẽ đánh giá cao. Ngôn ngữ Perl được tạo ra vào năm 1986 và ban đầu được dùng để xử lý văn bản. Do đó tên của nó - Ngôn ngữ trích xuất và báo cáo thực tế. Nhưng nhiều năm đã trôi qua, Perl ngày nay đã được sử dụng để giải quyết nhiều vấn đề hơn. Đây là một trong những ngôn ngữ phổ biến nhất để viết tập lệnh CGI, đó là lý do tại sao mức độ phổ biến của nó tăng vọt trong những năm gần đây. Chúng ta hãy gặp nhau đi!

  • ru.Perl Câu hỏi thường gặp về Pavel Ammosov, Artur Penttinen, Mikhail Polykov, Grigory Strokin Bản sao

  • V. Maslov. "Giới thiệu về Perl"
    Sao chép

  • Randal Schwartz, Tom Christiansen "Learning Perl" Bản dịch từ tiếng Anh của C.M. Timacheva

  • Hướng dẫn sử dụng Perl 5.003 bằng tiếng Nga Tóm tắt. Từ đơn giản đến phức tạp. Triển khai chương trình Pearl. Cú pháp. Các biến tích hợp. Mẫu. Các nhà khai thác và ưu tiên. Chức năng tích hợp sẵn. Các chương trình con. Các định dạng báo cáo. Gỡ lỗi.



  • Igor Yarovinsky, "Tạo giao diện đồ họa trong Perl+Tk."


  • Hướng dẫn tham khảo Perl 5. Hướng dẫn Perl 5 của Johan Vromans. (bằng tiếng Anh).

  • PERL - Ngôn ngữ trích xuất và báo cáo thực tế. Để dễ dàng truy cập, sổ tay Perl được chia thành nhiều phần. Perl chia sẻ một số tính năng của C, sed, awk và sh, vì vậy những người quen thuộc với những ngôn ngữ đó sẽ không gặp khó khăn gì với nó. (bằng tiếng Anh).

  • Ben Okopnik, Ngọc trai học tập, Phần 1

  • Ben Okopnik, Học Perl, phần 2

  • Ben Okopnik, Học Perl. Phần 4.

  • "Lời nói đầu của Perl trong tháng: Tháng Tư là tháng tàn khốc"

  • Ben Okopnik, Bản dịch: Pavel Sokolov, "Perl One-liner của tháng: Cuộc phiêu lưu với các tập tin được đặt tên sai"

  • Ben Okopnik, Bản dịch: Pavel Sokolov, "Perl One Liner của tháng: Trường hợp so khớp UID"

  • Ben Okopnik, Bản dịch: Pavel Sokolov, "Perl One-liner của tháng: Cuộc phiêu lưu với các kho lưu trữ tùy ý."

  • Mark Nielsen, Đảm bảo dọn dẹp ổ cứng với Perl

  • Mark Nielsen, Sử dụng Perl và PostgreSQL cùng nhau

  • Cách “hồi sinh” một tập lệnh Perl/CGI Bài viết này nhằm giúp “khởi đầu nhanh” cho những ai quyết định xây dựng các ứng dụng Web “bằng chính đôi tay của mình” và chọn ngôn ngữ lập trình Perl (Practical Electric Rubbish Lister) làm ngôn ngữ lập trình phương tiện để tạo ra chúng.

  • Tạo chỉ mục cho trang web. Mô tả việc tạo tập lệnh Perl quét tất cả các trang của trang web để tìm mô tả meta và từ khóa meta và biên dịch bảng cuối cùng - chỉ mục hoặc chỉ mục chủ đề.


  • Tom Christiansen, Nathan Torkington, Perl: Thư viện của lập trình viên Cuốn sách bao gồm một bộ sưu tập phong phú các cách giải quyết hầu hết các vấn đề nảy sinh khi làm việc với ngôn ngữ Perl. Một loạt các chủ đề được đề cập: từ những điều cơ bản về kỹ thuật lập trình đến sự tinh tế chuyên nghiệp, từ thao tác chuỗi, số và mảng đến tạo cơ sở dữ liệu SQL, từ tập lệnh CGI và ứng dụng Internet đến phát triển hệ thống máy khách-máy chủ nghiêm túc.

  • WebScript.ru: tập lệnh và lập trình cho web (PHP, Perl). bài viết Perl.

  • Dmitry Lyalyuev, “Ba chữ cái trong Perl” Chúng tôi xem xét việc viết một tập lệnh bằng ngôn ngữ lập trình mạnh mẽ này để tạo và gửi thư.

  • Erizhokov A.A., PCRE Bài viết về một tập hợp các hàm hỗ trợ các biểu thức chính quy sử dụng cú pháp Perl.

  • Stas Bekman, "Tại sao lại mod_perl?" Bản dịch: Zakharova Inga

  • Stas Bekman, "mod_perl trong 30 phút. Phần I" Bản dịch: Inga Zakharova

  • Misko D. Cách “hồi sinh” tập lệnh Perl/CGI
    Bài viết này nhằm giúp “khởi đầu nhanh” cho những ai quyết định xây dựng ứng dụng Web “bằng chính đôi tay của mình” và chọn ngôn ngữ lập trình Perl (Practical Electric Rubbish Lister) làm phương tiện để tạo ra chúng.

  • "Khám phá các mô-đun Perl, phần 1. Tạo đồ họa nhanh chóng bằng GD"

  • Pradeep Padala, bản dịch của Alexey Cheglykov, "Khám phá các mô-đun Perl, phần 2: Vẽ sơ đồ bằng GD::Graph"

  • Arseny Chebotarev, “Perl vô dụng và lý thuyết chung về cải thiện thế giới” Mặt sau của mã nguồn với các ví dụ bằng ngôn ngữ Perl.

  • Pavel Golubev, “Tạo các trang web có khả năng in PDF bằng ví dụ về PDF::API2” Trình diễn các khả năng của mô-đun Perl PDF::API2 để tạo báo cáo PDF.
  • PHP

  • “Các vấn đề bảo mật điển hình của các tập lệnh PHP trong các ví dụ” Bài trình bày sử dụng rõ ràng các ví dụ đơn giản trong các tập lệnh PHP phổ biến để nói về những lỗi điển hình của các lập trình viên PHP dẫn đến các vấn đề bảo mật nghiêm trọng.

  • Sergej Ermkov, PHP với vai trò FastCGI và phân phối quyền

  • Robert Bradley, "Cách thêm hỗ trợ quốc tế cho các ứng dụng PHP của bạn"

  • "Tiết lộ đường dẫn: vấn đề du lịch" Về cách các tập lệnh PHP bị tấn công.

  • Học PHP Phần 3: Xác thực, làm việc với luồng dữ liệu, đối tượng và ngoại lệ
    Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng PHP để tạo ứng dụng hỗ trợ quy trình làm việc, tìm hiểu về xác thực HTTP, luồng dữ liệu, tạo đối tượng và xử lý ngoại lệ.

  • Học PHP Phần 2: Upload file lên server và sử dụng XML để lưu trữ thông tin file
    Trong hướng dẫn này, bạn sẽ học cách sử dụng PHP để tạo một ứng dụng hỗ trợ quy trình làm việc.

  • Học PHP, Phần 1: Trang đăng ký, biểu mẫu và tương tác cơ sở dữ liệu
    Trong hướng dẫn này, bạn sẽ học cách sử dụng PHP để tạo một ứng dụng quy trình công việc cơ bản, xây dựng các trang PHP bằng biểu mẫu HTML và truy cập cơ sở dữ liệu.

  • Phiên PHP. Phần 4 (có thể đọc phần tiếp theo và phần trước)

  • Boyko Sergey, "CMS của riêng bạn bằng PHP. Phần 1"

  • Harry Fuecks, bản dịch: Mullin Sergey, Kuzma Feskov, "Bộ nhớ đệm trong PHP"

  • John Lim, bản dịch của Kuzma Feskov, "Tối ưu hóa PHP"

  • Andi Gutmans, Stig Bakken và Derick Rethans, bản dịch - Vadim Kryuchkov, "Có gì mới trong PHP 5?"

  • Feskov Kuzma, “Những khả năng tuyệt vời của một trang web nhỏ” (Làm việc với kho lưu trữ Zip trong PHP).

  • Bản dịch: Edgar Mkrtchyan, “PEAR HTML_QuickForm: Hướng dẫn cho người mới bắt đầu” Đây là phần giới thiệu đơn giản về HTML_QuickForm - một trong những phần của PEAR (Kho lưu trữ ứng dụng và tiện ích mở rộng PHP).

  • Sterling Hughes, bản dịch: Dmitry Korolenko, “21 sai lầm của lập trình viên PHP” PHP rất dễ học. Điều này thu hút nhiều người; tuy nhiên, mặc dù có vẻ đơn giản nhưng việc học cách sử dụng ngôn ngữ này một cách chính xác và hiệu quả không phải là điều dễ dàng.

  • Sterling Hughes, "21 sai lầm của lập trình viên PHP."
    “Phần I
    "Phần II
    "Phần III "21 lỗi lập trình PHP hàng đầu" của Sterling Hughes, ngày 14 tháng 1 năm 2001 http://www.zend.com/zend/art/mistake2.php, Bản dịch: Danil Mironov.

  • "Thiết lập an toàn PHP cho hosting chia sẻ trên UNIX"

  • "Danh sách tệp" Thảo luận cách thực hiện các thao tác cơ bản với các nhóm tệp (đọc nội dung của thư mục, đọc đệ quy thư mục, đọc đệ quy thư mục cho các loại tệp cụ thể và in cây thư mục) trong PHP.

  • "PHP Inside" là tạp chí điện tử tiếng Nga (PDF) dành cho các lập trình viên web sử dụng PHP trong quá trình phát triển của họ.

  • Monte Ohrt, Andrei Zmievski, Sergei Suslenkov, 21/05/2004, "Smarty - một công cụ mẫu thời gian biên dịch" Mặc dù thực tế rằng PHP được gọi là "ngôn ngữ nhúng HTML", sau khi viết một số dự án trong đó PHP và HTML được trộn lẫn , nhiều người hiểu rằng việc tách biệt giữa hình thức và nội dung là một điều tốt!


  • David Lechnyr, bản dịch: Andrey Kiselev, “Bảo mật sử dụng mảng siêu toàn cầu trong PHP”



  • http://phpclub.unet.ru/ Câu lạc bộ các nhà phát triển PHP & MySQL. Các bài viết, đánh giá, danh sách gửi thư, tài liệu tiếng Nga về ví dụ mã PHP & MySQL. Thông tin hữu ích về cách tạo cửa hàng trực tuyến, cổng thông tin, cơ sở dữ liệu WWW. Có những phát triển làm sẵn (miễn phí).


  • D. Svirepchuk, “KHẢO SÁT CÁ NHÂN” Giới thiệu về tập lệnh PHP để tạo một cuộc khảo sát trên trang web.

  • Denis Migachev, "PHP và MySQL. Phần 1. Làm việc trực tiếp với MySQL"

  • Alexander Netkachev, “Thay thế cho DOM XML trong PHP (PHP4)”, 15/04/2004.

  • Alexander Netkachev, “Sự chuyển đổi sang PHP5” Trong bài đánh giá của mình, tôi đã cố gắng đưa ra bức tranh đầy đủ nhất về những thay đổi trong PHP5 càng nhiều càng tốt.

  • Alexander Netkachev, "Chúng tôi viết mã PHP có khả năng chống lỗi"
    "Chúng tôi viết mã PHP có khả năng chống lỗi"

  • S. Tarasenko. Làm việc với cookie trong PHP.

  • A. Orlov PHP: bí mật của tính tương tác

  • Ambersky R., “Tập lệnh hiển thị biểu ngữ trong PHP4” Các tập lệnh hiển thị biểu ngữ được nêu trong bài viết này khá cơ bản. Mô tả về biểu ngữ, số lần nhấp và số lần hiển thị được lưu trữ trong tệp văn bản, do đó không cần có MySQL.

  • HTTP Cài đặt bảo vệ trên một trang bằng MySQL và PHP. Đây là hướng dẫn được thiết kế để chỉ cho bạn những kiến ​​thức cơ bản về bảo mật trang web của bạn bằng xác thực HTTP. Thay vì phương thức .htaccess truyền thống (máy chủ Apache), chúng tôi sẽ sử dụng MySQL để lưu trữ dữ liệu người dùng và mật khẩu của họ. Theo tôi, tôi sẽ cố gắng giải thích nhiều nhất có thể những gì cần thiết đối với người mới bắt đầu học MySQL và PHP.

  • Primer on PHP and MySQL (file pdf) Công việc này không nhằm mục đích thay thế các hướng dẫn sử dụng PHP và MySQL. Cuốn sách này sẽ chỉ giúp bạn thực hiện những bước đầu tiên trong việc học PHP và cách tương tác với cơ sở dữ liệu MySQL.

  • Adam Trachtenberg và David Sklar (3/8/99) Bản dịch của N.V. Kostromina. (tất cả trong một tệp - ).

  • Osipov Alexey, “Thu thập số liệu thống kê bằng PHP” Mọi quản trị viên web đều muốn biết ít nhất một chút về khách truy cập của mình. Bài viết này chỉ cho bạn cách dễ dàng tạo một hệ thống thu thập dữ liệu khách truy cập đơn giản.

  • Stig Saeter Bakken và cộng sự, "Hướng dẫn PHP"

  • T. Rathschiller, T. Gerken "Truy cập cơ sở dữ liệu bằng PHP" Chương từ cuốn sách "PHP4: Phát triển ứng dụng web. Thư viện lập trình viên (+CD)"

  • Shawn Wallace Giới thiệu về Dịch thuật PHP: Mike J.K. ( [email được bảo vệ])

  • S. Losev. PHP và MySQL là những công cụ làm việc dành cho người xây dựng trang web.

  • S. Losev. Công cụ làm việc của người xây dựng trang web.
    Bài viết này thuộc loạt bài viết về “xây dựng trang web” hiện đại nói về hệ thống MySQL phổ biến và ngôn ngữ lập trình PHP, cách sử dụng chúng để giải quyết các vấn đề mà bất kỳ nhà phát triển trang web nào cũng gặp phải - chuẩn bị và hiển thị tin tức, nhập và hiển thị thông tin văn bản, tìm kiếm trên trang web, tổ chức các dịch vụ bổ sung ("sự công nhận" của khách truy cập, diễn đàn, khảo sát, v.v.). Cả hai công cụ này đều miễn phí và được cung cấp bởi tất cả các nhà cung cấp dịch vụ lưu trữ mà không có ngoại lệ.
    Phần 1. Lần đầu làm quen với PHP và MySQL
    Phần 2. Xung quanh có tin tức nhưng làm thế nào để nhập và hiển thị nó?
    Phần 3. Bài viết cho trang
    Phần 4. Dịch vụ bổ sung

  • Kỹ thuật lập trình an toàn các ứng dụng web bằng PHP Mục đích của bài viết này là trình bày một số kỹ thuật bảo vệ các ứng dụng web như trò chuyện WWW, sổ khách, diễn đàn web và các ứng dụng khác thuộc loại này... Sao chép.

  • Bryan Brunton, Đế chế giao dịch: lập trình vũ trụ của riêng bạn bằng PHP

  • WebScript.ru: tập lệnh và lập trình cho web (PHP, Perl). Các bài viết về PHP.

  • Ilyin S. Tôn giáo PHP PHP là ngôn ngữ thông dịch để tạo các trang Web hoạt động. Nó rất giống với Perl và ASP, nhưng nó thuận tiện hơn chúng rất nhiều. Hiện nay Apache với PHP là máy chủ web phổ biến nhất.

  • A.Kukharchik RHP dành cho tất cả mọi người!




  • Denis Kolisnichenko, Đánh giá các chức năng mạng PHP (Bản gốc: http://www.softerra.ru/review/program/16851/) Xuất bản: 21/03/2002

  • Andrey Goncharenko,