タグ付けされた質問 「history」

Unixシステムとその主要コンポーネントの歴史。シェル関連の質問にはこのタグを使用しないでください。代わりに「command-history」を使用してください。




4
UNIX / POSIXシステムコールの命名がなぜ読みにくいのですか?
Unix やの場合、and やorのようなtimeandのcreat代わりに、多分もっと適切な、そのようなアンテリングシステムコール名を使用する理由は何ですか。それは次の点に私を連れて行きます:なぜ誰かがそれを読みやすくするためにキャメルケースや少なくともアンダースコアなしのようなものが欲しいのですか?もちろん、呼び出しにはより多くの文字が含まれますが、コードの可読性がより重要であることは誰でも知っていますか?getCurrentTimeSecscreateFileget_current_time_secscreate_filecfsetospeed

1
UNIXシステムコールのkillが「kill」という名前になっているのはなぜですか?
私は名前の歴史に興味があり、「kill」システムコールは「signal」と名付けられ、「signal」システムコールは「handle」と名付けられたようです。 システムコールの元の使用は、単に別のプロセスを強制終了することであったのではないかと考え、システムの開発に合わせて、より一般的な信号送信メカニズムにその使用を広げたのかもしれませんが、これは私の推測です。 誰か知っている?
41 kill  history 

1
bzip1はどうなりましたか?
bzip2は、長年にわたって非常に強力な圧縮の事実上の標準でした。私自身bzip2、これまでに何千回もコマンドを入力していたので、bzipまたはbzip1はどうなったのでしょうか?グーグルはそれについてあまり語っていないようで、興味深い歴史の教訓になりそうだ。


3
ユーザー空間を壊さないLinuxカーネルポリシーがあるのはなぜですか?
Linux Kernel Mailing listのエチケットの文脈でこの問題について考え始めました。世界で最もよく知られ、ほぼ間違いなく最も成功している重要なフリーソフトウェアプロジェクトとして、Linuxカーネルは多くの報道を受けています。そして、プロジェクトの創設者でありリーダーであるLinus Torvaldsは、ここで紹介する必要はないことは明らかです。 ライナスは時折、LKMLの炎で論争を呼び起こします。これらの炎は、彼自身の容認により、ユーザー空間の破壊に関係していることが多い。それは私の質問に私をもたらします。 ユーザー空間を壊すことがなぜそんなに悪いことなのか、歴史的な見方をすることはできますか?私が理解しているように、ユーザースペースを壊すにはアプリケーションレベルでの修正が必要になりますが、カーネルコードを改善する場合、これはそんなに悪いことですか? 私が理解しているように、Linusのポリシーは、ユーザー空間を壊さないことがコード品質を含む他のすべてよりも優先するというものです。なぜこれがそんなに重要なのか、そしてそのようなポリシーの長所と短所は何ですか? (Linusは時折、まさにこのトピックに関するLKMLのトップ中euと「意見の相違」を持っているため、一貫して適用されるこのようなポリシーには明らかにいくつかの短所があります。


3
パイプラインはメモリ使用量をどのように制限しますか?
ブライアン・カーニハンは、このビデオで、メモリ制限に基づいている小さな言語/プログラムに対する初期のベル研究所の魅力について説明しています 大きなマシンは64 Kバイト(MまたはGではなくK)であるため、個々のプログラムはあまり大きくできず、小さなプログラムを作成する傾向があり、次にパイプメカニズム、基本的に入出力のリダイレクトにより、あるプログラムを別のプログラムにリンクすることが可能になりました。 しかし、プログラム間でデータを転送するためにデータをRAMに保存する必要があるという事実を考慮すると、これがどのようにメモリ使用を制限するのか理解できません。 ウィキペディアから: ほとんどのUnixライクなシステムでは、パイプラインのすべてのプロセスが同時に開始されます[強調鉱山]、ストリームが適切に接続され、マシン上で実行されている他のすべてのプロセスとともにスケジューラーによって管理されます。これの重要な側面は、Unixパイプを他のパイプ実装とは別に設定することです。バッファリングの概念です。たとえば、送信プログラムは毎秒5000バイトを生成し、受信プログラムは毎秒100バイトしか受け入れられませんが、データが失われます。代わりに、送信プログラムの出力はバッファに保持されます。受信プログラムがデータを読み取る準備ができると、パイプラインの次のプログラムがバッファから読み取ります。Linuxでは、バッファーのサイズは65536バイト(64KB)です。必要に応じて、より大きなバッファを提供するために、bfrと呼ばれるサードパーティのオープンソースフィルターを使用できます。 これは小さなプログラムの目的を完全に無効にするため、さらに混乱します(ただし、それらは一定の規模までモジュール化されます)。 私の最初の質問(メモリの制限はサイズデータに依存する問題)の解決策として考えることができる唯一のことは、当時大きなデータセットが単に計算されておらず、実際の問題パイプラインは解決することでしたプログラム自体が必要とするメモリ量。しかし、Wikipediaの引用文の太字のテキストを考えると、これでも混乱します。1つのプログラムが一度に実装されないためです。 一時ファイルが使用されている場合、これは非常に理にかなっていますが、パイプがディスクに書き込まれないことは私の理解です(スワップが使用されない限り)。 例: sed 'simplesubstitution' file | sort | uniq > file2 sedファイルを読み込んで行ごとに吐き出しているのは明らかです。しかしsort、リンクされたビデオでBKが述べているように、完全に停止しているので、すべてのデータをメモリに読み込む必要がありますか(またはそれを行いますか?)、それはに渡されますuniq(私にとっては) -ラインアットアタイムプログラム。しかし、最初のパイプと2番目のパイプの間では、すべてのデータがメモリ内にある必要がありますか?
36 pipe  history 


4
viはファイルの最後に改行(LF)を静かに追加しますか?
私は奇妙な動作を理解するのに苦労しています:vi は、ファイルの最後に改行(ASCII:LF、Unix(AIX)システムであるため)を追加するようです。 viでファイルを編集します(最後に改行を入力しないように注意してください): # vi foo ## Which I will finish on the char "9" and not input a last newline, then `:wq` 123456789 123456789 123456789 123456789 ~ ~ ## When I save, the cursor is just above the last "9", and no newline was added. 私はviがそれを「そのまま」保存することを期待していますので、39バイト:最初の3行(数字1から9、それに続く改行(私のシステムではLF))のそれぞれに10 ASCII文字、最後に9文字行(文字1から9、終了改行/ LFなし)。 しかし、保存すると40バイト(39バイトではなく)になり、odは終了LFを表示します。 …
36 vi  history  text 

9
実際の端末が接続された大型コンピューターはどのように見えますか?
Linuxターミナルがそのように動作する理由をよりよく理解するために、コンピューターの歴史を研究しています。1970年代半ばから1980年代半ばに、ほとんどの人が(ターミナルエミュレータではなく)実際の端末を使用して大型コンピュータと通信することを読みました。これは実際の端末の例です。 しかし、実際の端末が接続されたこれらの大型コンピューターに関する情報を見つけることができません。誰でもそのような大型コンピューターの名前/写真を提供できますか?
35 terminal  history 

5
mv -fのポイントは何ですか?
以下のためのGNUのCoreutilsマニュアルはmv言います: -f --force Do not prompt the user before removing a destination file. ただし、これはすでにのデフォルトの動作のmvようですので、この-fオプションは不要なようです。例えば、GNU Bashバージョン4.3.11の場合: $ ls -l total 0 $ touch 1 2; mv -f 1 2; ls 2 $ touch 1 2; mv 1 2; ls 2 -fフラグの意図がオーバーライドする可能性は低いようですalias mv="mv -i"。なぜなら、より簡潔に、コマンド間で一貫性のある方法でこれを行うエイリアスをオーバーライドする(たとえば、使用する)標準的な方法がいくつかあるため\mvです。 マニュアルでは、「-i、-f、-nオプションのうち複数を指定すると、最後のオプションのみが有効になります」と書かれていますが、-fフラグの意図は-i一般的にフラグをオーバーライドすることではないようです。同等の挙動は、単に使用することによって達成することができるので、mvはるかに簡潔で使用するよりも分かりやすいがあります、mv -if。 その場合、-fフラグの目的は何ですか?なぜ存在するのですか?
34 files  history  mv 

2
Linuxで動作する最も古いバイナリ?
ではLinuxのカーネルとGUIのABIでの後方互換性に関する議論、Alan Cox氏のノートは「と、まだ1992年に建てられたXローグバイナリを実行する私の3.6rcカーネルは、Linuxよりもはるかに古いアプリケーションに戻って互換性があります。」 Linuxはどれだけ後方互換性がありますか アプリケーションバイナリインターフェイスますか? 数年前に実際に作成およびコンパイルされた、最も古いバイナリ実行可能ファイルとは何ですか?それは、現代の汎用Linuxディストリビューションで引き続き実行されますか? これらの言葉はすべて解釈の対象になると確信しています。私の主な概念は、エミュレーターや専用の仮想マシンまたはバイナリトランスレーターを介して実行することはフェアではないということですが、そのようなものはおそらく現代のディストリビューションに組み込まれているので、それについて学ぶことはここでの楽しみの一部です。 ハードウェアアーキテクチャ、実行可能ファイル形式、言語、および主要なライブラリの動的読み込みの依存関係によるバリエーションも重要です。 ルールが緩和された場合、さらに遡る1つの例に注意してください。2002 Webページ現代のRed Hat Linux上で実行ファイルa.outを実行して使用することについて協議本当に古いLinuxのプリELFのa.out形式の実行ファイルやった後modprobe binfmt_aout と取得/lib/ld.soとlibc.so.4 、この質問のための周辺機器の関心のだが、物事の種類を示していることを再びそのさらに掘り下げるときに関与する可能性があります。 更新:あなたBSDのファンのためには、それはiBCS2のが(のようなゾーク/ダンジョン-2.5.6 1990年から)とSCO OpenServerの最近(2008年)のNetBSD 4.0.1のように5.0.xのアプリの古いXENIXアプリケーションをサポートしていることを確認するために素晴らしいことだiBCS2の& NetBSD | 仮想化をお楽しみください。しかし、NetBSD 5.0.xでも同じことが壊れているようです。 更新2:1年後、この質問の「アナウンサー」バッジを取得した後でも、私はまだ答えを探しています。そして、明確にするために、これはAPIについてであるため、少なくともほとんどの場合は元の方法で機能する「実際の」バイナリ(長さ0以外)でなければなりません。

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