GNU/Linux >> Linux の 問題 >  >> Linux

Linux の Win32 API に相当するものは何ですか?

システムコールとは何かを理解する必要があります。 Linux では、これらは可能な限り低いユーザー ランド API です (対照的に、Win32 API はおそらく実際のカーネル syscall といくつかのライブラリ関数を混在させます。libc Linux でもそのような混合を行います)。 fork(2)、execve(2)、open(2)、pipe(2)、mmap(2)、read(2)、poll(2)、close(2)、dup2(2)、sigaction(2)重要な syscalls (ただし、約 300 あります。正確な Linux カーネルに依存するリストについては、syscalls(2) を参照してください)。

Windows の各機能が Linux で利用できるとは思わないでください (その逆も同様です)。

そのような等価物を考えることさえしないでください.

Linux に対する考え方を変える

(特に、Linux と Windows ではプロセスが大きく異なります)。

Linux はフリー ソフトウェアであることを忘れないでください 、および Linux で使用しているすべての関数のソース コードに飛び込むことができます。読んで、検索して、改善してください.....

最初に intro(2) のマニュアル ページを読み、他のいくつかのマニュアル ページ (特に syscalls(2)、intro(3) など) を読みます。も読んでください。高度な Linux プログラミングと高度な Unix プログラミング。

一部のライブラリは、Posix (Linux など) と Windows の両方に共通の抽象化を除外して提供しようとします。特に Qt (および Gtk または FLTK または POCO、および Web アプリケーション用の Wt、データベース用の sqlite)。

一部のオープン ソース サーバー ソフトウェア (lighttpd、exim、postgresql など) は、Linux と Windows の両方で実行できます (もちろん、再コンパイル後)

グラフィカル インターフェイスに興味がある場合は、X11 の重要な役割を理解してください (X11 サーバーは画面とキーボードに最も近いことに注意してください。ほとんどのグラフィカル アプリケーションは X11 クライアントです)。 2016 年または 2020 年には、X11 は Wayland に取って代わられる傾向があります (ただし、Qt または GTK に対してコーディングする場合、実装の「詳細」に気付かないでしょう。これは本当に主要なものです)。

標準の C++ 関数に加えて、Qt や POCO 呼び出し (Linux または Windows に固有であると文書化されていないもの) のみを使用してアプリケーションを作成する場合、Linux から Windows へ、またはその逆にソース ポータブルである必要があります。


Win32 呼び出しを使用するアプリケーションを移植する場合は、WineLib を使用することをお勧めします。これは Wine の基盤となるライブラリを使用しますが、Wine を使用してアプリケーションを実行することと同じではありません。WineLib 共有ライブラリを使用するだけで、アプリケーションを Linux アプリケーションとして再コンパイルします。ただし、UI レイヤーを変更しない限り、Windows アプリケーションのように見えます。

回答の他の場所で述べられているように、Linux には Win32 に直接相当するものはありません。Win32 のさまざまなビットがさまざまなコンポーネントによって提供され、コンポーネントを選択できる場合もあります。これが可能になるのは、Win32 の一部に相当するものが下位レベルでネイティブに実装されているためです。たとえば、Win32 は UI コンポーネントを提供します。これと同等のものは、GTK、Qt、または任意の数の他のツールキット (WineLib など) で利用できます。低レベルの API 呼び出しを使用して独自のコンポーネントを描画するのではなく、通常 Win32 のコンポーネントを使用するのと同じように、X を直接使用するのではなく、高レベルの UI ツールキットのコンポーネントを通常使用します。


Linux
  1. DOS の一時停止に相当する Linux は何ですか?

  2. Registered I/O に相当する Unix/Linux は何ですか?

  3. Mac 用の Linux の updatedb コマンドに相当するものは何ですか?

  1. Linuxを持続可能なOSにする理由

  2. Windows の Linux の File コマンドに相当するものは何ですか?

  3. Linux の Active Directory に相当するものは何ですか

  1. Linuxコミュニティが特別な理由は何ですか?

  2. LinuxとUnix:違いは何ですか?

  3. Win32 API の Posix popen() に相当するものは何ですか?