問題タブ [low-level]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
programming-languages - 高レベルと見なされないプログラミング言語は?
情報理論では、常に高水準言語と低水準言語について聞いたり読んだりしています。
しかし、今日使用されているアセンブラ以外に (関連する) 低レベル言語がないため、なぜこれがまだ関連しているのか理解できません。
したがって、次のようになります。
低レベル
- アセンブラ
決して低レベルではない
- ハ
- ベーシック
- フォートラン
- コボル
- ...
上級
- C++
- ルビー
- パイソン
- PHP
- ...
また、アセンブラが低レベルの場合、たとえば C を同じリストに入れるにはどうすればよいでしょうか。つまり、Cはアセンブラに比べて非常に高レベルです。COBOL、Fortran などでも同様です。
- では、アセンブラーが本当に唯一の低水準言語であるのに、なぜ誰もが高水準言語と低水準言語について言及し続けるのでしょうか?
nosql - (非リレーショナル)DBMS設計リソース
個人的なプロジェクトとして、私は基本的なDBMSを構築することを目指しています。Elmasri&Navathe(5ed)の関連するセクションを読みましたが、E&Nが非常に深くなっただけなので、より焦点を絞ったテキストを使用できます。
摩擦は、私が新しい非リレーショナルデータモデルで遊びたいということです。多くのE&Nは、特に実装の詳細のインデックス作成に優れていましたが、より高度なDBMS実装は、リレーショナルモデルのみを対象としていました。
より良い基盤が得られるまで、可能であれば、DBMSソースを見つめるのをしばらく延期したいと思います。何か案は?
linux - Linux が TSS 経由でハードウェア コンテキスト スイッチを使用しないのはなぜですか?
次の声明を読みました。
x86 アーキテクチャには、ハードウェア コンテキストを格納するために、タスク状態セグメント (TSS) と呼ばれる特定のセグメント タイプが含まれています。Linux はハードウェア コンテキスト スイッチを使用しませんが、システム内の個別の CPU ごとに TSS を設定する必要があります。
不思議なんだけど:
- Linux がコンテキスト スイッチのハードウェア サポートを使用しないのはなぜですか?
- ハードウェア アプローチは、ソフトウェア アプローチよりもはるかに高速ではありませんか?
- ハードウェア コンテキスト スイッチを利用する OS はありますか? Windowsはそれを使用しますか?
最後に、いつものように、あなたの忍耐と返信に感謝します。
- - - - - -追加した - - - - - - -
http://wiki.osdev.org/Context_Switchingに説明があります。
私と同じくらい混乱している人は、それを見ることができました。8^)
pointers - 現在のプロセスのヒープの開始アドレスを取得していますか?
私はシステムの下位レベルの仕組みを調査しておりmalloc
、ヒープの開始アドレスをどのように決定するのか疑問に思っていました。ヒープは一定のオフセットにありますか、それとも開始アドレスを取得するための何らかの呼び出しがありますか? スタックはヒープの開始アドレスに影響しますか?
c# - プリミティブ ssh 接続 (低レベル)
小さな (大きな) 趣味のプロジェクトとして、C# で (非常に原始的な) ssh-2.0 クライアントを作成することに着手しました。これは、DH を調査して理解を深め、暗号化の知識を深めるのに役立ちます :)
RFC 4253 に従って、次のように初期接続を開始しました。
(varsなどの無関係な事前設定を除外します)
RFC 4253 の 16 ページにあるように、10 個の名前リストを提供することが期待されています。これらは単に文字列であると想定されていますか、または各リストの開始/終了をどのようにマークしますか (単純に改行 \n で)? 私はここで正しい軌道に乗っていますか?(この時点以降は DH と暗号化を処理することに注意してください。私の質問は、これまでの最初の連絡のみに基づいています)。
ヘルプやコメントは大歓迎です。
PS: ライブラリが存在することは承知していますが、これは私のプロジェクトには関係ありません。
macos - Mac OS X でディスプレイ ドライバの描画コマンドをトラップするにはどうすればよいですか?
Mac OS X ですべてのディスプレイ ドライバ描画コマンドをトラップするクリーンでエレガントな方法を見つけようとしています。これにより、物理的なディスプレイ ドライバに行く前に、画面に描画されるものすべてを可視化できます。単純なビットマップではうまくいきません。変更された領域に関する通知だけでなく、実際の描画コマンドが必要です。
これは、Quartz 描画コマンドまたは純粋な OpenGL である可能性があります。十分に詳細である限り、任意の API を使用できます。
その OpenGL コマンドなどをキャッチするために Quartz Extreme に入る方法はありますか?
前もって感謝します!
optimization - 最新のIntelまたはAMDCPUでの分散書き込み速度と分散読み取り速度の比較
線形配列を取得し、各要素を別の配列の任意の場所(CPUの観点からはランダムなど)に書き込むことで、プログラムを最適化することを考えています。私は単純な書き込みのみを行っており、要素を読み戻すことはしていません。
従来のCPUのスキャット読み取りは、アクセスごとにキャッシュミスが発生し、プロセッサが待機するため、非常に遅くなる可能性があることを理解しています。しかし、プロセッサが結果を待機していないため、分散書き込みは技術的に高速である可能性があると考えていました。したがって、トランザクションが完了するのを待つ必要がない場合があります。
残念ながら、私は従来のCPUメモリアーキテクチャのすべての詳細に精通していないため、これも非常に遅くなる可能性のあるいくつかの問題が発生する可能性があります。
誰かがこれを試しましたか?
(私は自分が抱えている問題を逆転させようとしていると言わなければなりません。現在、任意の値を読み取る線形配列(分散読み取り)があり、すべてのキャッシュミスのために非常に遅いです。私の考えはこの操作を分散書き込みに反転して、速度を大幅に向上させることができます。)
multithreading - キャッシュコヒーレンシのポイントは何ですか?
キャッシュコヒーレンシを提供するx86のようなCPUでは、これは実用的な観点からどのように役立ちますか?1つのコアで行われたメモリの更新を、他のすべてのコアですぐに表示できるようにするという考え方を理解しています。これは便利なプロパティです。ただし、コンパイラは変数の割り当てをレジスタに格納し、それらをメモリに書き込むことはできないため、アセンブリ言語で記述しない場合は、これに大きく依存することはできません。これは、他のスレッドで行われたことが現在のスレッドで表示されるようにするために、明示的な手順を実行する必要があることを意味します。したがって、実用的な観点から、キャッシュコヒーレンシは何を達成しましたか?
low-level - システムクロック値を読んでいますか?
コンピュータの起動時に独立して実行される仮想/システム クロックはありますか?
その値をどのように読み取ることができますか?
macos - WindowServerを強制終了するための低レベルのホットキーkext?
非常に単純な機能を実行する kext を作成する必要があります。キーの組み合わせが押されるたびに、kext はたまたま「WindowServer」であるプロセスを強制終了する必要があります。
問題の性質上、kext でなければなりません。システムの UI から独立している必要があるため、ハングアップした場合は、この組み合わせを押して再起動できます。
誰かが出発点を提供できますか? キー ハンドラーの作成方法が好きですか。