01/10/2018, 12:06

Về việc chạy 1 ứng dụng window trên linux?

cho mình hỏi mỗi ứng dụng khi được viết ra thì đã xác định là nó chỉ có thể chạy trên 1 số hệ điều hành nào đó rồi đúng ko ? …ví dụ như những ứng dụng được viết để chạy trên window thì không thể chạy trên linux được phải ko , vậy nếu mình muốn nó chạy được trên linux mình phải code lại toàn bộ hay sao ???

Đỗ Nhiên viết 14:12 ngày 01/10/2018

bạn dùng java đa nền tảng là viết 1 lần chạy mọi nơi

Dark.Hades viết 14:23 ngày 01/10/2018

Nếu thích và học C++ thì cứ STL mà viết, port đâu cũng được, ngoài ra có thể dùng Qt

Cứ nhẹ mà dùng, tội gì phải nặng nhọc cài cả đống thứ để chạy 1 phần mềm.

Cong 5 viết 14:21 ngày 01/10/2018

hix ở đây là mình thấy có 1 số game hay nhưng không chơi đc trên linux nên tìm hiểu xem làm sao để chạy trên linux thôi chứ trình đâu mà viết lại nguyên cái game…@@

Đỗ Nhiên viết 14:16 ngày 01/10/2018

máy mạnh thì dùng ssd rồi cài máy ảo

Dark.Hades viết 14:09 ngày 01/10/2018

Nếu chơi của steam thì không lo nhiều vì khá nhiều game của nó được viết có thể port mọi nơi

Còn những nhà làm game hiện nay họ chủ yếu tập trung vào nền tảng windows nên việc game có trên windows nhiều là đương nhiên

Tuy nhiên nếu muốn chơi trên linux thì cài wine/playonlinux, khá đơn giản, hỗ trợ khá nhiều soft/game

Văn Dương viết 14:11 ngày 01/10/2018

Đơn giản nhất là qua Wine.
Nhưng không phải cái nào cũng chạy được.
Và có chạy được cũng như hạch

Ice Tea viết 14:07 ngày 01/10/2018

Bạn đã nghe những thuật ngữ này chưa

  • Cross platform
  • Write once, run anywhere => Write code => Build ra file đóng gói => Chạy file đó trên OS nào (thực ra là cũng có giới hạn) cũng được. Ví dụ, Java build thành file .jar, bạn chạy file này trên Windows, Linux, MacOS đều được, nhưng với điều kiện phải cài máy ảo Java (JVM). Điểm mấu chốt ở đây là máy ảo, máy ảo chịu trách nhiệm thực thi file chứ không phải hệ điều hành.
  • Write once, compile anywhere => Write code => Muốn chạy trên OS nào thì đem source code lên OS đó build. VD, C, C++, Pascal nhưng với điều kiện là chỉ dùng Standard Library của ngôn ngữ hoặc các thư viện support cross-platform (Qt, Lazarus…). VD khác là Go, nó có điểm mạnh ở chỗ là có thể build cho nhiều nền tảng khác nhau mà không cần đem sang từng thằng để build. Ngôn ngữ loại này tạo cho bạn một lớp Abstraction hay Interface, bạn code theo interface đó còn xử lý thế nào cho từng hệ điều hành thì không phải lo.
  • Hybrid app => VD, Cordova, Ionic, PhoneGap, đóng gói Web App (HTML5, CSS, Javascript) thành Mobile App và thực thi thông qua WebView, nó là 1 dạng web browser. Ở 1 diễn biến khác, chúng ta có Electron, NW.js…, dùng để đóng gói Web App cho Desktop App, thực chất là 1 browser thu nhỏ.
Nguyen Tran Minh Tuan viết 14:21 ngày 01/10/2018
  1. Mỗi nhân ( intel x86, ARM…) sẽ khác nhau về machine code. Nên cần dùng cross compiler để biên dịch lại. Ví dụ code C/C++ bạn muốn chạy trên linux sẽ cần dùng GCC/G++ để biên dịch lại. Hoặc ARM bạn cần gcc-arm…
  2. Muốn viết code 1 lần chạy nhiều nền tảng bạn dùng:
    • QT(C/C++)
    • Java ( cài JVM) code 1 lần chạy trên nhiều nền tảng khác nhau
Bài liên quan
0