Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

1
Debianブリーディングエッジの作成
私は自分のコンピューターにDebian 6をインストールしていますが、1年前にインストールしたとき、私は自分のニーズに合った安定したシステムを持っていることについてすべてでした。パッケージの最新性は気にしませんでした。今、私の意見は逆転しました。安定よりも最先端を必要としています。Debian Bleeding Edgeを作成する方法はありますか?Ubuntuの場合、特定のパッケージを更新し続けるようなPPAをいくつか見つけましたが、Debian向けの良いガイドが見つかりませんでした。 任意のヒント?
14 debian 

2
フルスクリーンアプリケーション後のGNUスクリーンのクリア
通常のxterm(「実際の」端末についてはわからない)で作業している場合、manやvimなどのフルスクリーンプログラムが閉じられると、画面が表示されたままになります。閉じたプログラムを起動しました。 ただし、GNU Screen内で実行している場合、プログラムを閉じてもクリアされませんが、単に上にシフトされてプロンプトが表示されます。私にとってこれは見苦しいため、「通常の」動作を再開できるかどうかを知りたいと思います。 私は自分で手動で画面をクリアできることを理解していますが、a)私は望んでいませんし、b)私が望んでいるものではなく、完全にクリアな画面になります。

3
ページキャッシュに100%ページインされたファイルが別のプロセスによって変更されるとどうなりますか
ページキャッシュページが変更されると、ダーティとマークされ、ライトバックが必要になることがわかりますが、次の場合はどうなりますか。 シナリオ: 実行可能ファイルであるファイル/ apps / EXEは、ページキャッシュに完全にページインされ(そのページはすべてキャッシュ/メモリにあり)、プロセスPによって実行されています 連続リリースは、/ apps / EXEをまったく新しい実行可能ファイルに置き換えます。 前提1: プロセスP(および古い実行可能ファイルを参照するファイル記述子を持つ他の人)は、メモリ内の古い/ apps / EXEを問題なく使用し続け、そのパスを実行しようとする新しいプロセスが取得されると仮定します新しい実行可能ファイル。 仮定2: ファイルのすべてのページがメモリにマップされていない場合、ファイルのページを置き換えるページフォールトが発生するまで問題はなく、おそらくセグメンテーション違反が発生すると仮定しますか? 質問1: ファイルのすべてのページをvmtouchのようなものでロックすると、シナリオはまったく変わりませんか? 質問2: / apps / EXEがリモートNFS上にある場合、違いはありますか?(私は仮定しない) 2つの仮定を修正または検証し、2つの質問に答えてください。 これが、ある種の3.10.0-957.el7カーネルを備えたCentOS 7.6ボックスであると仮定しましょう。 更新:さらに考えてみると、このシナリオは他のダーティページシナリオと何の違いもないのではないかと思います。 新しいバイナリを書き込むプロセスは、すべてページングされているため、すべてのキャッシュページを読み取り、すべてのキャッシュページを取得し、それらのすべてのページがダーティとしてマークされると仮定します。ロックされている場合、参照カウントがゼロになった後、コアメモリを占有する無駄なページになります。 現在実行中のプログラムが終了すると、他のものはすべて新しいバイナリを使用すると思われます。それがすべて正しいと仮定すると、ファイルの一部のみがページインされる場合にのみ興味深いと思います。

1
このbashコマンドラインをクリアするために12文字を挿入する必要があるのはなぜですか?
xtermターミナル(80列x 24行)を開き、を実行して$ bash --norc --noprofile、$ ttyターミナルのファイル名を取得します/dev/pts/9。出力はです。 私が実行する別の端末から: $ printf foo >/dev/pts/9 fooは、最初の端末のシェルコマンドラインに出力されます。 を押しC-uて実行するとunix-line-discard(で指定された関数の名前$ bind -P | grep -i c-u)、foo削除されません。 11個のスペースを挿入してを押すC-uと、スペースは削除されますが削除されませんfoo。 12個のスペースを挿入してを押すC-uと、スペースも削除されますfoo。 カーソルが直後にあるfooときに押すと削除できないのはなぜC-uですか?また、削除するには12文字を挿入する必要があるのはなぜですか? 環境: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial $ bash --version | head -n1 GNU bash, …

5
ドライブ/パーティション番号がまだ使用されているのはなぜですか?
多くの場合、特にブートローダーをいじくり回しているときは、数値のドライブ番号とパーティション番号が使用されているのがわかります。たとえば、/boot/grub/grub.cfg私が見るところではset root='hd0,gpt2'、私のUEFIブートエントリはドライブ/パーティション番号を参照することが多く、ブートローダーが関係するほとんどすべての状況で発生するようです。 UUIDとPARTUUIDが用意されたので、この方法でパーティションをアドレス指定することは非常に不安定に思えます(ただし、ドライブが常に同じ順序でマウントされることは保証されていません。 したがって、私の質問は2つあります。 このアドレス指定スキームは、上記で説明したように不安定ですか?このスキームが予想よりもはるかに信頼性が高いことを意味する標準に何かが欠けていますか、またはこのアドレス指定スキームは、ドライブが単に順序を変えたり、マザーボードの異なるスロットに差し込んだりしますか? 上記の質問に対する答えが「はい」の場合、なぜこのアドレッシングスキームが引き続き使用されるのですか?すべてにUUIDまたはPARTUUIDを使用すると、はるかに安定し、一貫したものになりませんか?

2
$ RANDOMを使用すると、結果が不均一に広がるのはなぜですか?
ウィキペディアでRNGを読み、TLDPで$RANDOM機能しますが、実際にはこの結果を説明していません。 $ max=$((6*3600)) $ for f in {1..100000}; do echo $(($RANDOM%max/3600)); done | sort | uniq -c 21787 0 22114 1 21933 2 12157 3 10938 4 11071 5 約2倍以上の値が3、4、5よりも0、1、2になる傾向があるのに、最大モジュロを変更すると、10個すべての値にほぼ均等に広がるのはなぜですか? $ max=$((9*3600)) $ for f in {1..100000}; do echo $(($RANDOM%max/3600)); done | sort | uniq -c 11940 0 11199 1 …
14 random 

2
引数として「-」で始まるファイルをBash拡張が渡さないようにするにはどうすればよいですか?
私は文字列を再帰的に検索しようとしていますがgrep、これが得られます: $ grep -r "stuff" * grep: unrecognized option '---corporate-discount.csv' Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. Bashが-引数として始まるファイルを渡さないようにするにはどうすればよいですか?
14 shell  grep 

4
Linuxでファイルシステムドライバードライバーを実装するにはどうすればよいですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 10か月前に閉鎖されました。 私が新しいファイルシステムを発明したと仮定して、今それのためにファイルシステムドライバーを作成したいと思います。 このファイルシステムドライバーをどのように実装しますか?これはカーネルモジュールを使用して行われますか? また、ファイルシステムドライバーはどのようにしてハードディスクにアクセスできますか?ファイルシステムドライバーにハードディスクにアクセスするためのコードが含まれているべきですか、またはLinuxにはすべてのファイルシステムドライバーが使用するハードディスクにアクセスするためのデバイスドライバーが含まれていますか?

2
ダブルハイフン(-)で始まるこのシバンはどのように機能しますか?
RosettaCodeページで次のようなシバンを見つけました。 --() { :; }; exec db2 -txf "$0" Db2でも機能し、Postgresでも同様です。しかし、私は全体の行を理解していません。 ダブルダッシュはSQLのコメントであり、その後、ファイル自体をファイルとして渡すいくつかのパラメーターを使用してDb2実行可能ファイルを呼び出します。しかし、括弧、中括弧、コロン、セミコロン、および実際のシバン#を置き換える方法はどうでしょうか。? https://rosettacode.org/wiki/Multiline_shebang#PostgreSQL

3
常に存在し、「通常の」ユーザーがlstatできないファイルがありますか?
これは単体テストに必要です。パラメーターとして渡されたファイルパスでlstatを実行する関数があります。lstat失敗したコードパスをトリガーする必要があります(コードカバレッジが90%に達する必要があるため) テストは1人のユーザーでのみ実行できるため、Ubuntuに常に存在するファイルがあるのではないかと思っていましたが、通常のユーザーにはそのファイルまたはそのフォルダーへの読み取りアクセス権がありません。(lstatrootとして実行されない限り、失敗します。) 存在しないファイルは解決策ではありません。そのための別のコードパスがあり、既にそれをトリガーしています。 編集:ファイルのみへの読み取りアクセスの不足は十分ではありません。それでlstatまだ実行できます。/ rootにフォルダーを作成し、その中にファイルを作成することで、(ルートアクセス権を持つローカルマシンで)トリガーできました。そして、フォルダにパーミッション700を設定します。そのため、ルートでのみアクセス可能なフォルダーにあるファイルを検索しています。


2
CentOSでのコマンドiotopのエラー
新しくインストールしたCentOS 7.5のターミナルでsudo iotop(最新バージョン0.6-2.el7)を使用すると、次のエラーメッセージが表示されます。 Traceback (most recent call last): File "/sbin/iotop", line 17, in <module> main() File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 620, in main main_loop() File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 610, in <lambda> main_loop = lambda: run_iotop(options) File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 508, in run_iotop return curses.wrapper(run_iotop_window, options) File "/usr/lib64/python2.7/curses/wrapper.py", line 43, in wrapper return func(stdscr, *args, …
14 centos  python  iotop 

3
アプリケーションが最初からより低いレベルで実行できる場合、セキュリティのためにサンドボックスをchrootするのはなぜですか?
私はCでHTTPサーバーデーモンを書いています(理由があります)、systemdユニットファイルで管理しています。 私は20年前、1995年頃に設計されたアプリケーションを書き直しています。そして、彼らが使用するシステムは、chrootしてからsetuidするというもので、標準的な手順です。 さて、私の以前の仕事では、通常のポリシーでは、ルートとしてプロセスを実行することは決してありませんでした。そのためのユーザー/グループを作成し、そこから実行します。もちろん、システムはルートとしていくつかのことを実行しましたが、ルートにならずにすべてのビジネスロジック処理を実現できました。 HTTPデーモンの場合、アプリケーション内でchrootしなければ、rootなしで実行できます。アプリケーションをrootとして実行することは決して安全ではありませんか? 最初からmydaemon-userとして実行する方が安全ではありませんか?root、chrooting、setuidでmydaemon-userで起動する代わりに?
14 chroot  daemon 

3
systemctl \ {restart、status} \ sshd \;が実行されない理由 作業?
エコーを通過した場合の上記コマンドの出力は次のとおりです。 # echo systemctl\ {restart,status}\ sshd\; systemctl restart sshd; systemctl status sshd; 出力を端末に貼り付けても、コマンドは機能します。しかし、コマンドを直接実行しようとすると、次のようになります。 # systemctl\ {restart,status}\ sshd\; bash: systemctl restart sshd;: command not found... 2つの質問があります。 この置換と拡張の方法は正確に何と呼ばれていますか?(そうすれば、私はそれを研究し、それとそれを適切に使用する方法についてさらに学ぶことができます)。 ここで何を間違えましたか?なぜ機能しないのですか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.