Linuxの父がついに説得:30年前のLinuxカーネルC言語はC11にアップグレードされる
最近嬉しいニュースがありましたが、これまで使用されてきた C 言語 Linux カーネルの 1989 年版がついにメジャーアップグレードされたということです。現代テクノロジーのペースは止まらず、本日、Linux オープンソース コミュニティは、カーネルの C 言語バージョンを C11 標準にアップグレードするという驚くべき計画を発表しました。この大規模な改革は、来る 5 月の Linux バージョン 5.18 以降に施行される予定です。この重要な動きは、Linux カーネルに無限の潜在的な機会をもたらし、Linux カーネルが最新のテクノロジーのニーズによりよく適応できるようにするでしょう。
この決定は突然でした。質問を開始してから公式声明が発表されるまで、わずか 1 週間しかかかりませんでした。Linux の頑固な父である Linus Torvalds を説得するのは簡単ではありません。事の原因はちょっとした偶然のようだ。
問題の原因は、先週の Linux コミュニティのディスカッションにあります。
Jakob Koschel という博士課程の学生は、カーネルのリンク リスト プリミティブに関連する予測実行の脆弱性の防止を研究しているときに、このような問題を発見しました。
Linux カーネルは、struct list_head で定義された二重リンク リストを広範囲に使用します: リーリー この構造は通常、他の構造内に埋め込まれます。このようにして、関連する構造タイプを使用してリンク リストを作成できます。
さらに、カーネルは、リンク リストの走査と操作に使用できる多数の関数とマクロも提供します。 list_for_each_entry () はその 1 つで、制御構造を装ったマクロです。問題はこのマクロにあります。カーネルに次の構造が含まれていると仮定します:
リーリーlist の要素を使用して、foo 構造体の二重リンクリストを作成できます。このようなリンク リストの先頭として宣言された foo_list という構造体があるとします。このリンク リストは次のコードを使用して走査できます:
リーリーlist 引数は、foo 構造内の list_head 構造の名前をマクロに伝えます。このループは、リスト内の要素ごとに 1 回実行され、反復子はその要素を指します。これにより、USB サブシステムにバグが発生しました。マクロに渡されたイテレータは、マクロの終了後も使用できる可能性がありました。
これは危険なことなので、Koschel はループ後の反復子の使用を停止することでバグを修正する修正を提出しました。

しかし、Linus Torvalds 自身はこのパッチをあまり気に入っておらず、予測される実行の脆弱性との関係を理解していません。 Koschel 氏が詳細に説明した後、Linus 氏はそれが単なる一般的なバグであることを認めました。
しかし、物事はそれほど単純ではありませんでした。Linus はすぐに真の根本原因に気づきました。リンク リスト トラバーサル マクロに渡されるイテレータは、ループ自体の外側のスコープで宣言する必要があるということです。この予測不能なバグは、C89 には「ループ内の変数の宣言」がないために発生します。
list_for_each_entry () のようなマクロは、基本的に常に最後の HEAD エントリをループの外にリークします。これは単純に、ループ自体でイテレータ変数を宣言できないためです。
自分自身を宣言できるイテレータ リスト トラバーサル マクロを作成できれば、イテレータはループの外側には表示されず、そのような問題は発生しません。ただし、カーネルは C89 標準に準拠しているため、ループ内で変数を宣言できません。
Linus は決断したので、アップグレードしましょう。C99 標準に移行する時期が来たのかもしれません。これも 20 年以上前のものですが、少なくとも C89 よりは新しく、ループ内で変数を宣言できます。
C89 は非常に古いものですが、なぜ何年も経っても変わらないのでしょうか? Linus 氏は、古い gcc コンパイラーのバージョンの一部で奇妙な問題が発生し、気軽にアップグレードできないためだと述べました。
ただし、現在、Linux カーネルは gcc の最小要件をバージョン 5.1 に引き上げているため、過去の奇妙なバグはもう存在しないはずです。
もう 1 人のコア開発者である Arnd Bergmann は、C11 以上に確実にアップグレードできると信じています。ただし、C17 または C2x にアップグレードすると gcc-5/6/7 のサポートが終了するため、C11 にアップグレードする方が簡単です。
最終的に、Torvalds 氏はこのアイデアに同意しました:「わかりました、思い出してください。5.18 マージ ウィンドウの早い段階で試してみましょう。」次の C11 への移行はいくつかの予期せぬバグを引き起こす可能性がありますが、すべてがうまくいけば、次は A Linux カーネルのバージョンは正式に C11 に移行します。
以上がLinuxの父がついに説得:30年前のLinuxカーネルC言語はC11にアップグレードされるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Linuxオペレーティングシステムのコアは、コマンドラインインターフェイスで、コマンドラインを介してさまざまな操作を実行できます。 1.ファイルおよびディレクトリ操作は、ファイルとディレクトリを管理するために、LS、CD、MKDIR、RM、その他のコマンドを使用します。 2。ユーザーおよび許可管理は、useradd、passwd、chmod、その他のコマンドを介してシステムのセキュリティとリソースの割り当てを保証します。 3。プロセス管理は、PS、Kill、およびその他のコマンドを使用して、システムプロセスを監視および制御します。 4。ネットワーク操作には、Ping、Ifconfig、SSH、およびネットワーク接続を構成および管理するためのその他のコマンドが含まれます。 5.システムの監視とメンテナンスは、TOP、DF、DUなどのコマンドを使用して、システムの動作ステータスとリソースの使用を理解します。

導入 Linuxは、柔軟性と効率性により、開発者、システム管理者、およびパワーユーザーが好む強力なオペレーティングシステムです。しかし、頻繁に長く複雑なコマンドを使用することは退屈でERです

Linuxは、サーバー、開発環境、埋め込みシステムに適しています。 1.サーバーオペレーティングシステムとして、Linuxは安定して効率的であり、多くの場合、高電流アプリケーションの展開に使用されます。 2。開発環境として、Linuxは効率的なコマンドラインツールとパッケージ管理システムを提供して、開発効率を向上させます。 3.埋め込まれたシステムでは、Linuxは軽量でカスタマイズ可能で、リソースが限られている環境に適しています。

はじめに:Linuxベースの倫理的ハッキングでデジタルフロンティアを保護します ますます相互に接続されている世界では、サイバーセキュリティが最重要です。 倫理的なハッキングと浸透テストは、脆弱性を積極的に特定し、緩和するために不可欠です

基本的なLinux学習の方法は次のとおりです。1。ファイルシステムとコマンドラインインターフェイス、2。LS、CD、MKDIR、3。ファイルの作成と編集などのファイル操作を学習するマスター基本コマンド、4。

Linuxは、サーバー、組み込みシステム、デスクトップ環境で広く使用されています。 1)サーバーフィールドでは、Linuxは、その安定性とセキュリティにより、Webサイト、データベース、アプリケーションをホストするための理想的な選択肢となっています。 2)埋め込みシステムでは、Linuxは高いカスタマイズと効率で人気があります。 3)デスクトップ環境では、Linuxはさまざまなユーザーのニーズを満たすために、さまざまなデスクトップ環境を提供します。

Linuxの欠点には、ユーザーエクスペリエンス、ソフトウェア互換性、ハードウェアサポート、学習曲線が含まれます。 1.ユーザーエクスペリエンスは、WindowsやMacOほどフレンドリーではなく、コマンドラインインターフェイスに依存しています。 2。ソフトウェアの互換性は他のシステムほど良くなく、多くの商用ソフトウェアのネイティブバージョンがありません。 3.ハードウェアサポートはWindowsほど包括的ではなく、ドライバーは手動でコンパイルされる場合があります。 4.学習曲線は急で、コマンドラインの操作をマスターするには時間と忍耐が必要です。

linuxisnothardtolearn、butthedifficultydependsonyourbackgroundandgoals.forthosewithosexperience、特にcommand-llinefamparsition、linuxisaneasyytransition.beginnersmayteeper relearningcurvebutcanagewithpersources.linux'sopen-sourcenature


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
