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

macOSカーネルとLinuxカーネルの違いは何ですか

同様のコマンドと同様のソフトウェアを処理できるため、macOSとLinuxカーネルには類似点があると考える人もいるかもしれません。 AppleのmacOSはLinuxをベースにしていると考える人さえいます。真実は、両方のカーネルが非常に異なる履歴と機能を持っているということです。今日は、macOSカーネルとLinuxカーネルの違いを見ていきます。

macOSカーネルの歴史

macOSカーネルの歴史から始めましょう。 1985年、スティーブ・ジョブズは、CEOのジョン・スカリーとアップルの取締役会との脱落によりアップルを去りました。その後、彼はNeXTという名前の新しいコンピューター会社を設立しました。 Jobsは、新しいコンピューター(新しいオペレーティングシステムを搭載)を迅速に市場に投入したいと考えていました。時間を節約するために、NeXTチームはカーネギーメロン大学のMachカーネルとBSDコードベースの一部を使用してNeXTSTEPオペレーティングシステムを作成しました。

NeXTは、ジョブズがまだAppleにいるようにお金を使う習慣があったこともあり、経済的な成功を収めることはありませんでした。その間、Appleは何度かオペレーティングシステムの更新を試みましたが、IBMと提携することさえできませんでした。 1997年、AppleはNeXTを4億2900万ドルで購入しました。契約の一環として、Steve JobsはAppleに戻り、NeXTSTEPはmacOSとiOSの基盤となりました。

Linuxカーネルの歴史

macOSカーネルとは異なり、Linuxは商業活動の一環として作成されたものではありません。代わりに、フィンランドのコンピュータサイエンスの学生であるLinusTorvaldsによって1991年に作成されました。もともと、カーネルは、Linusの新しい80386プロセッサを利用したかったため、Linusのコンピュータの仕様に合わせて作成されていました。 Linusは、1991年8月に新しいカーネルのコードをUsenetに投稿しました。すぐに、彼は世界中からコードと機能の提案を受け取りました。翌年、OrestZborowskiはXWindowSystemをLinuxに移植し、グラフィカルユーザーインターフェイスをサポートできるようにしました。

過去27年間で、Linuxはゆっくりと成長し、機能を獲得してきました。それはもはや学生の小さな時間のプロジェクトではありません。今では、世界のほとんどのコンピューティングデバイスと世界のスーパーコンピューターを実行しています。ぼろぼろではありません。

macOSカーネルの機能

macOSカーネルは正式にはXNUとして知られています。頭字語は「XNUはUnixではありません」の略です。 AppleのGithubページによると、XNUは、「カーネギーメロン大学で開発されたMachカーネルと、ドライバを作成するためのFreeBSDおよびC++APIのコンポーネントを組み合わせたハイブリッドカーネル」です。コードのBSDサブシステム部分は、「通常、マイクロカーネルシステムのユーザースペースサーバーとして実装されます」。 Machパーツは、マルチタスク、保護されたメモリ、仮想メモリ管理、カーネルデバッグのサポート、コンソールI/Oなどの低レベルの作業を担当します。

Linuxカーネルの機能

macOSカーネルはマイクロカーネル(Mach))とモノリシックカーネル(BSD)の機能を組み合わせていますが、Linuxはモノリシックカーネルにすぎません。モノリシックカーネルは、CPU、メモリ、プロセス間通信、デバイスドライバー、ファイルシステム、およびシステムサーバー呼び出しの管理を担当します。

1行でのMacカーネルとLinuxカーネルの違い

macOSカーネル(XNU)はLinuxよりも長く使用されており、2つのさらに古いコードベースの組み合わせに基づいていました。一方、Linuxは新しく、ゼロから作成されており、さらに多くのデバイスで使用されています。

この記事がおもしろいと思ったら、ソーシャルメディア、Hacker News、またはRedditで共有してください。



Linux
  1. env と set (Mac OS X または Linux) の違いは何ですか?

  2. ls と l はどう違いますか?

  3. カーネルでのありそうな呼び出しとありそうもない呼び出しの違いは何ですか?

  1. Unix、Linux、BSD、GNU の違いは何ですか?

  2. partx と kpartx の違いは何ですか?

  3. unlink と rm の違いは何ですか?

  1. InnoDBとMyISAMの違いは何ですか?

  2. Linuxコンテナとイメージの違いは何ですか?

  3. Linux –ユーザースペースとカーネルスペースの違いは?