問題タブ [bsd]

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.

0 投票する
2 に答える
3878 参照

posix - スリープ状態のスレッドでシステム時刻を変更すると、どのような影響がありますか?

すべての BSD で使用可能であり、実際には POSIX 標準の一部として定義されているclock_gettime()関数を見ると、少なくとも 3 種類のクロックがサポートされていることがわかります (多くのシステムでは、これらのクロックよりも多くのクロックがサポートされています)。 、しかし実際には POSIX 標準では 1 つの存在のみが要求され、他のすべてはオプションです):

  • CLOCK_REALTIME - POSIX はこれが存在することを要求します。これが壁掛け時計です。

  • CLOCK_MONOTONIC - これが何なのか (そして SI 秒が何を意味するのか) はわかりませんが、この時計が逆方向にジャンプすることはなく、値が単調に増加することしかできないことは理解しています。

  • CLOCK_UPTIME - これが CLOCK_MONOTONIC とどのように異なるのかわかりません (アップタイムも後方にジャンプすることはありません) が、少なくともカーネルの起動時にこのクロックがゼロから始まることはわかっています (一方、カーネルの起動時に CLOCK_MONOTONIC が持つ初期値は定義されていません)。 )

他の時計はしばらく無視しましょう。CLOCK_REALTIME が単調にカウントアップすることは保証されていませんよね? これが実際の「システム時間」です。システム時刻を自由に変更できます。過去 3 か月または未来 5 年間に設定できますが、システムがネット上の NTP サーバーを使用して時刻を同期するたびに、時刻が前後する可能性があります。

現在、BSD システムには 2 つのスリープ関数があります。sleep()nanosleep()。確かではありませんが、sleep() が nanosleep の上に実装されることを期待します。結局、nanosleep() を使用して sleep() を簡単にエミュレートし、構造体の timespec で秒数を設定するだけで、ナノ秒をゼロに保つことができます。 .

私は多くの情報源で、これらの関数が実際にウェイクアップ時間を計算することで機能し(現在の時間を取得し、それにスリープ時間を追加する)、現在の時間がウェイクアップよりも遅いかどうかをシステムが定期的にチェックすることを読みましたその場合は、スレッドを再び起動します。これが間隔を置いてのみチェックされるという事実が、現在のスリープが少なくともこの時間 (信号によって中断された場合のみ) スリープするが、それより長くスリープする可能性がある (頻度によっては) とマニュアルページに記載されている理由です。システムは、ウェイクアップ時刻をすでに過ぎているかどうかをチェックし、スケジューラがこのスレッドの再実行を許可するまでの時間に応じてチェックします)。

これは私にとって完全に正気です...しかし、常に私を悩ませていた質問が1つあります。

さまざまな情報源によると、スリープ (少なくとも nanosleep) は内部でクロックとして CLOCK_REALTIME を使用します。つまり、nanosleep() に 30 秒間スリープするように指示してから、システム クロックを将来の 1 時間に変更すると、スレッドはほぼ即座にウェイクアップします (将来の 1 時間は、ウェイクアップ時間 nanosleep( ) 計算)。これも全然オッケーです。しかし、私が 30 秒で目を覚ますと言った後、ユーザーが自分のシステム時計が 1 時間進んでいることに気づき、時計を 1 時間遅らせたらどうなるでしょうか? 次に、私のスレッドは 1 時間 30 秒間スリープしますか? それはかなり悪いでしょう。

0 投票する
3 に答える
533 参照

linux - Linux の代わりに BSD システムを選択することが推奨されるのは、どのような状況ですか?

新しいハードウェアを日常的に使用するユーザーにとって、Windows に代わるものを探している場合、Linux は自然な選択のように思えます。しかし、BSD バリアントを試してみる価値があるのはいつでしょうか?

0 投票する
3 に答える
2371 参照

macos - MacOS でたった 1 人のユーザーの ACL エントリを削除しますか? 妙に難しい

johndoe の ACL セットを、ドライブの 1 つですべてのフォルダから再帰的に削除しようとしていますが、他のエントリはありません。他のグループ/ユーザー用に既に存在する ACL に影響を与えにこれを行う方法を知っている人はいますか?

「setfacl -du:johndoe」に相当する Mac を探しています

chmod を使用して複数のファイルからルールを削除できることは知っていますが、インデックス (例: すべてのフォルダーの 5 番目のエントリ) を介してルールを削除し、ユーザーのエントリが勝ったため、私が見た唯一の方法は機能しません。常に同じインデックスになるとは限りません。

なぜこれをしたいのですか?グループではなく多数の個人ユーザーを持つ非常識なファイル システムを継承し、既にアクセス権を持っている個人だけを削除したいとします。

0 投票する
5 に答える
3415 参照

linux - オペレーティングシステムのスケジューリングアルゴリズム

I / Oが多いがCPU使用率が低い10Kの同時スレッドをサポートするアプリケーションをスケジュールするために使用するのに最適なアルゴリズムは何ですか?論文へのリンクをいただければ幸いです。

0 投票する
4 に答える
612 参照

multithreading - オペレーティング システムがスレッドの使用方法の特性を理解する利点はありますか?

オペレーティング システムがスレッドの使用方法の特性を理解する利点はありますか? たとえば、新しいスレッドを作成するときに、集中的な CPU 計算に使用され、I/O でブロックされることを示す方法が Java にあるとしたらどうなるでしょうか。これが機能であれば、スレッドのスケジューリングは改善されないでしょうか?

0 投票する
8 に答える
1494 参照

multithreading - 1024 CPU のカーネル スケジューリング

Azul Systems には、何千ものキャッシュ コヒーレント CPU をサポートするアプライアンスがあります。何千もの同時実行スレッドをスケジュールするために、オペレーティング システムにどのような変更を加える必要があるかについての洞察が欲しいです。

0 投票する
3 に答える
1561 参照

encryption - BSDオペレーティングシステム用のオープンソースのフルディスク暗号化?

パスワードを入力しないとマシンが起動しない、Pointsec (チェック ポイント製品) などのフル ディスク暗号化製品に相当するオープン ソースを知っている人はいますか?

0 投票する
2 に答える
993 参照

selenium - bsdのselenium-rc

bsdでselenium-rcを実行しようとすると、次のエラーが発生します

私のパスにfirefox-binを追加しても役に立ちません。2番目のオプションは何ですか?(「またはこのようにFirefoxへのパスを明示的に指定する」)

解決策はありますか?

0 投票する
4 に答える
3660 参照

linux - ゼロから強化された BSD

Hardened Linux from Scratchプロジェクトは、独自のカスタマイズおよび強化された Linux システムを完全にソースから構築するための段階的な手順を提供するプロジェクトです。BSDで同等のものは何ですか?