Linux là một nền tảng phát triển hoàn chỉnh?


8

Tôi muốn làm cho Fedora Linux của tôi có khả năng theo dõi:

  1. Sử dụng Linux cho nền tảng phát triển hoàn chỉnh mà không yêu cầu bất kỳ cài đặt hệ điều hành nào khác nhưng vẫn có thể xây dựng và thử nghiệm các chương trình dưới các nền tảng khác nhau.

  2. Thay thế hoàn toàn máy Windows cho tất cả các công việc khác, ví dụ như Office, Paint, Remote Desktop, v.v.

Bạn có thể đề xuất các dự án và công cụ nguồn mở để đạt được các mục tiêu trên không?


Bạn muốn kiểm tra chương trình của mình trên các nền tảng khác với việc cài đặt chúng? Hay tôi hiểu nhầm phần đó
Michael Mrozek

3
Câu hỏi này được đặt ra rất chung chung và do đó không dễ trả lời. Nó sẽ giúp nếu bạn có thể chỉ định gần hơn một chút chính xác những gì bạn muốn làm. Có thể các nền tảng nhất định được hỗ trợ bởi một giải pháp, nhưng không phải tất cả các nền tảng có thể. Hơn nữa, bạn có chấp nhận VM không?
txwikinger

Câu trả lời:


3

Bạn có thể dễ dàng thực hiện phát triển đa nền tảng cho dù bạn là lập trình viên hệ thống, nhà phát triển web hay nhà phát triển ứng dụng máy tính để bàn. Nếu bạn vào hệ thống, thì mọi tiện ích và / hoặc trình điều khiển bạn viết cho linux có khả năng hoạt động tốt cho các * nix khác với các sửa đổi rất tối thiểu. Với điều kiện bạn viết mã C tiêu chuẩn và không sử dụng quá nhiều cuộc gọi cụ thể của hệ thống, chúng có thể dễ dàng chuyển đến các cửa sổ.

Nếu bạn là nhà phát triển ứng dụng máy tính để bàn, bạn có thể nhắm mục tiêu GTK, QT hoặc wxWidgets và ứng dụng của bạn có thể sẽ hoạt động tốt trên 3 nền tảng chính hiện nay (* nix, Windows, Mac). Một lần nữa, giữ các cuộc gọi cụ thể của hệ thống đến mức tối thiểu hoặc cách ly chúng vào thư viện trình bao bọc sẽ là hệ thống cụ thể. Bạn cũng gọi một máy ảo như JVM và / hoặc CLR, cho phép ứng dụng hoạt động trên bảng.

Nếu bạn là một nhà phát triển web, thì có khả năng bạn sẽ gặp quá nhiều lựa chọn thay thế khác nhau để lựa chọn. Tôi thích một máy chủ web nhỏ tên là Cherokee và tôi phát triển và chạy các ứng dụng ASP.NET (mono) và Django chạy trên nó và sử dụng một phụ trợ PGS.

Vì vậy, kết luận là việc phát triển đa nền tảng trong Linux có thể được thực hiện, miễn là bạn có thể biên dịch mã trên nền tảng đích và bạn ghi nhớ điều đó trong khi viết mã hoặc nếu bạn nhắm mục tiêu VM. Điểm khác là bạn có thể gặp phải Nghịch lý của sự lựa chọn và không biết nên sử dụng cái gì. Cho rằng đọc bên dưới câu trả lời của tôi cho câu hỏi thứ hai.

Đối với câu hỏi thứ hai, tài nguyên tốt nhất mà tôi đã tìm thấy được gọi là Giải pháp thay thế nguồn mở . Trang web này liệt kê ra phần mềm thương mại và các lựa chọn thay thế nguồn mở của họ. Hầu như tất cả các lựa chọn thay thế chạy trên Linux và FreeBSD.



Xin lỗi, nhưng trình điều khiển thiết bị phụ thuộc rất nhiều vào kernel (và thậm chí cả phiên bản chính xác của nó). Các phần tương tác trực tiếp với kernel không phụ thuộc nhiều hay ít vào nó (những thứ như glibc, ps (1), mount (8)), các phần "hệ thống" khác ít hơn nhiều (ví dụ: sắp xếp (1) hoặc bash (1) là các chương trình C / C ++ "chỉ" chạy, sẽ biên dịch và chạy chính xác như nhau trên các Unice các loại). Toàn bộ công cụ GUI là độc lập với kernel, nhưng có các quy tắc riêng.
vonbrand

4

Xác định "nền tảng". Bạn không thể kiểm tra phần mềm một cách hợp lý có nghĩa là sử dụng trên Windows hoặc Mac mà không thực sự chạy các hệ điều hành đó, ngay cả khi có thể sử dụng trình biên dịch chéo để xây dựng nó trên Linux. Để thử nghiệm thực tế trên các hệ điều hành khác, VMware là một công cụ tuyệt vời.

Phần thứ hai của câu hỏi của bạn có lẽ nên là một câu hỏi hoàn toàn riêng biệt. Nhưng bạn có thể sử dụng OpenOffice.org hoặc Google Docs để thay thế MS Office, Pinta hoặc GIMP hoặc bất cứ điều gì để thay thế Paint, VNC hoặc Empathy + Vinagre để thay thế Remote Desktop, v.v.

Sẽ dễ dàng hơn để trả lời những câu hỏi này nếu bạn đưa ra một số trường hợp sử dụng cụ thể hơn.


Bạn có thể muốn nhớ rằng Apple chỉ cấp phép cho MacOSX chạy trên các máy tính mang nhãn hiệu Apple. Hoặc bạn có thể bỏ qua điều đó, tùy thuộc vào cách bạn cảm nhận về giấy phép thu nhỏ.
David Thornley

Đúng vậy, tất nhiên bạn có thể sử dụng OS X làm HĐH máy chủ của mình và chạy Linux và Windows với VMware Fusion.
Sandy

2

Weeeeeeel, # 1 là khá doozie, thưa ông. Tôi không biết rằng có bất kỳ cách nào để đạt được mục tiêu này. Việc biên dịch chéo với các * nixes khác có thể được thực hiện ( với một chút đau đầu ) trên hộp phát triển của bạn, nhưng chính xác thì bạn phải chạy mã đó như thế nào nếu không có hệ điều hành và kiến ​​trúc phù hợp? Có rất nhiều bước đột phá vào việc mô phỏng hệ thống ngoài kia, nhưng cuối cùng thì đây là một mánh khóe. Nếu bạn muốn kiểm tra phần mềm trên HĐH / kiến ​​trúc, hãy chạy nó trên HĐH / kiến ​​trúc đó!

Bây giờ, mặt khác, có những công cụ hiện có giúp đơn giản hóa việc xây dựng cùng một dự án trong phạm vi cấu hình rộng lớn. Cmake có lẽ là nổi tiếng nhất và được thử nghiệm tốt. Ít nhất điều này sẽ hỗ trợ bạn trong việc thử nghiệm dự án của bạn trên các hệ thống khác hoặc khuyến khích người khác làm điều đó cho bạn.

Để được giá vé, tôi khá chắc chắn điều này là không thể đối với các Hệ điều hành khác.

# 2 dễ dàng hơn nhiều

và trên và trên. Tôi sẽ giúp nhiều hơn, nhưng câu hỏi của bạn giảm mạnh.


1

Nó phụ thuộc vào nền tảng mục tiêu của bạn. Nếu bạn đang phát triển cho một nền tảng ảo (Java hoặc thậm chí .NET), bạn sẽ ổn hơn. Có một số nền tảng thậm chí còn thân thiện hơn trên Linux so với trên Windows (ví dụ: Ruby).

Đối với Linux là máy tính để bàn, bạn chỉ cần liệt kê phần mềm bạn đang tìm kiếm. Ngày nay hầu như không có phần mềm máy tính để bàn nào không có Linux thay thế.


1

MonoDevelop sẽ có thể giúp bạn xử lý về phía phát triển:

MonoDevelop là một IDE được thiết kế chủ yếu cho C # và các ngôn ngữ .NET khác. MonoDevelop cho phép các nhà phát triển viết nhanh các ứng dụng Web trên máy tính để bàn và ASP.NET trên Linux , WindowsMac OSX . MonoDevelop giúp các nhà phát triển dễ dàng chuyển các ứng dụng .NET được tạo bằng Visual Studio sang Linux và duy trì một cơ sở mã duy nhất cho tất cả các nền tảng.

(nhấn mạnh là của tôi)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.