アカウント名:
パスワード:
ユーザー名を指定する個所で数字で始まるユーザー名を指定すると、そのユーザーの代わりに「root」が指定されたことになってしまう
な? 障害者レベルの設計だろ?
おまけにsystemdの開発者がクソなのは、PulseAudioやAvahiの時点で既に分かっていたので、今回の「数字で始まるユーザー名が不正なのであってsystemdのバグではない」という返答が帰ってくるまでが想定の範囲内という酷さ。こいつらは、PID 1で常時動作するようなサービスマネージャーを、そこらの3分間クイックハックレベルの思考で設計してる。
かつての1ツイート(140字以内)でsystemdをクラッシュさせる方法 [gihyo.jp]やrm -rf バグ [preining.info]の時も感じたが。systemdがクソなのは、これやその他バグ自体ではなく、なぜこんなシンプルで重大なバグが何年ものあいだ放置されていたのか、いったいどんな品質保証プロセスを通ってきたのかという点。Ayerの意見には諸手を挙げて同意したい。
systemdは本業のinitと、やってもudev & dbus業務だけに専念してて。余計なことまでしゃしゃってこないで。わりとマジで。
Q: なぜこんなバグが放置されていたのか?A: つぶす前に増やしたから。十分に目があっても、それ以上に手指があるから。
「コードは書くんじゃない、消すものだ」とはよく言ったものだ。
rootがユーザーの本質なんだから、そこの思想がおかしいとは思わんけどな。もちろん、現代的な倫理観に照らせば変だけど、そういうのはOSより上のレイヤが処理すべき話だろう。
>rootがユーザーの本質
な、なにを言い出したのこの人…。
>OSより上のレイヤが処理すべき話
???
きっと何か大事な事を言ってる振りがしたかっただけ。俺は分かってるんだぞって。
# つまりは厨二病。滑稽だね。
ユーザー切り替え機能もSystemdも一般的にはOSの機能に含まれると思っていたのだが…OSの不始末はOSで処理すべきだろう。尤も開発元がそれは仕様であり問題ないと言っている以上Systemd以外(OSより上のレイヤでもいい)で何とかするしかないのだが。それかSystemdをなんとかするか?#3240496の主張は意味不明だな。#タスケテオビワンケノービ?
> ユーザーの認証/切り替えに失敗したのに、rootのまま実行されるのは Linux の問題とは言える
いやいや、完全に systemd の問題でしょ。アプリケーションが、一時的に別のユーザーになろうとして失敗したとき、そのまま処理するかどうかを決めるのはアプリケーションの責任以外の何物でも無い。
もしやWindowsのUACという仕組みに毒されすぎていないか
# Administratorが本質でUACはその上のレイヤってこと?
まったく同意。ソフトウェアの進化について、バージョン2はとにかく機能を入れ込んで肥大化して使い物にならない、バージョン3で不要なものを分離・切り落としてやっと使いものになる…という話が昔あったような気がするが、その話でいうと systemd は今のところまだバージョン2の状態のように見える。
素朴な疑問なんだが、なんでこんなに問題の多い代物が多くのディストリビューションで採用されているんだ?
抱き合わせ商法みたいな感じ
SysV initがslowだから
そんなのを無視できるほど、コアの性能は向上してると思うのだが。少しくらいマルチコアに対応してなくとも、別に気にならんのでは。
IO待ちや周辺機器の応答待ちなどでCPUがほぼ遊んでたからinitは遅かったんだよ。CPUのコアの性能が向上しようが殆ど影響ない
開発者に合ったことはないけどレインマンみたいな感じなのかな
# 本人は善意でやってると思われ
逆だ!逆!レインマンの弟みたいなやつに任せるからこうなった!レインマンに頼めばこんなことにはなってない!
うそー。弟の方が物覚えもよく、優しくていいもの作れそう。兄貴だと、バグレポートもハッタリかまして切り抜けようとしてにっちもさっちもいかなくなるぞ。
systemdの開発者は、その悪いとこ取り。
(古典的)c言語の思想が根幹に染み付いたプログラマ(のコミュニティ)なら当然の考え方でしょ引数の正当性は渡す側が責任を持つもので渡された側でチェックして対処するなんて非効率
ご冗談を。どこでそんな偏見を覚えましたか?C言語の API で入力チェックしてなかったら、即バグ扱いだよ.普通。
仕様書読んだら嫌でも覚えるんじゃないですかね。 fopen() のアクセスモード引数に既定のもの以外の文字列を渡した場合の動作は未定義です、 free() に alloc 系の関数が返したのではないポインタを渡した場合の動作は未定義です、 strcpy() にオーバーラップする文字列を渡した場合の動作は未定義です、 etc etc...
「未定義」は言語やライブラリの仕様としての話であり、OS、あるいはそれに類するレイヤーの実装としては、できる限りの安全策、つまり、引数のチェックを行うべきであるってことですよね。
> パフォーマンスに影響するため、チェックをしない(最小限にしている)システムはいくらでもある。
というより、そういう実装を許すために他の言語ではチェックを義務付けているようなものも言語仕様で未定義にしている。ゼロオーバーヘッドの代償。
fclose(NULL); とか知らない?
うーん。ポインタ・デリファレンスの問題と引数のはなしを混同している時点でまともに C言語でプログラムしたことがないのがわかってしまうのだが...
このあたりの誤解されやすさが、C言語の欠陥なんだろうな。
fclose は引数の NULL チェックをしていないぞ、という指摘なんだがどこにポインタ・デリファレンスが絡んでくるの?
いや、もうこれ、「知りたかったら勉強してねとしか」としか答えようがないな。
開いていないファイルを閉じる意味はないのでNULLチェックも不要だろう…ついでにいうとファイルを開いて閉じるだけのソフトは実用上意味がないのでfcloseにNULLを参照しているポインタを渡すようなプログラムは多分他にもバグがある。
>開いていないファイルを閉じる意味はないのでNULLチェックも不要だろう…『C言語の API で入力チェックしてなかったら、即バグ扱いだよ.普通。』って言ったのは (#3240550) だからね。
fcloseは普通のAPIではなく特殊なAPIなので問題ない。ではだめですか?正直これに関しては下手にチェックするよりエラー吐かせるほうがデバッグが楽。くどいようだが実用上この関数にNULLを渡すようなプログラムは危ない。
>そこで不正ポインタのチェックをしていないだけ(そもそもCではできない)その理屈だと free には NULL を渡しても問題ないこととの整合性が取れない。
分かりやすい例として fclose を挙げたけど、それだけじゃないのは#3240584 [srad.jp]が示してるとおりなんだよなぁ…他にも fs0x7f 氏が昔日記で挙げた事例 [srad.jp]なんかもある。
memcpy()の使い方を間違えた馬鹿に対してLinusの言葉http://gihyo.jp/dev/clip/01/orangenews/vol60/0007 [gihyo.jp]
memcpy()の使い方を間違えた馬鹿に対してLinusの言葉 http://gihyo.jp/dev/clip/01/orangenews/vol60/0007 [gihyo.jp]
ふむ。
memcpy()の実装変更でFlashが動かなくなった件で、「どっちの責任なのよ」てな論争にLinusが参戦していた、というのは理解した。だが、この記事の中に「memcpy()の使い方を間違えた馬鹿に対してLinusの言葉」はどこにあるんだ?
確かに、
Linus側は「Linuxカーネルは『no regression』ルールを厳守しなければならず,よほどの理由がないかぎり利用側に影響を与える変更は行ってはならない」とglibcチームを非難しています。
とあるが、これはLinusの言葉とはこの記事の書き方
pulseaudio の欠陥って何ですか?
私は、以前、pulseaudio を嫌っていて、細かいプログラムを書いて、私の環境から排除したりしていたのですが、ある時、使いみちを思いついて、今現在は使っています。
当初よりは、効率性も上がっているのか、CPU 使用率もそれほど高くない気がします。
以前、私自身が pulseaudio の、どの部分を嫌っていたのか忘れてしまったのですが、欠陥と呼べるような、明らかな誤りって指摘されていたりするのでしょうか?
今はもうバグは少ないと思います。以前PulseAudioをめちゃくちゃ批判していた人も謝罪 [blogspot.jp]しています。何が嫌われたかというと、苦労してOSSからALSAに移行したばかりのタイミングでRedHatの七光を使ってバグだらけのまま低品質な製品を押しつけただけであり、デザイン自体は悪くなかったはずなんです。実際バグを減らした今では受け入れられています。昔のバグを知りたいのであれば、JeffreyさんのブログでもPAのトラッカーでもいくらでも見ることができますよ。
> RedHatの七光を使ってバグだらけのまま低品質な製品を押しつけただけであり、> デザイン自体は悪くなかったはずなんです。
ここだけ読むと systemd のことのようだ。
systemdの設計思想に文句を言えるほど知ってるわけではないので、そっちは置いておくとして。
先頭数字のユーザ名でrootになるのは。「お、おう。。。」という感じでスルーするぐらいライトユーザです。。もちろん、そういう設定しませんので。
> 余計なこと
systemdの「余計」は何ですかね。
単なるユーザとしては、コマンドをサービスにできる標準的方法として、便利に使ってるのですが。ログまで制御してくれるので、おせっかいというか、便利というか微妙なところですが。
特に、止まったら再度起動してくれるのは、前のinitはしてくれなかった機能ですが、よく使うので採用してます。
なので「init」にはなかなか「普通」が定義できず、Fatも悪くないような気がします。入ってる機能がいやなら使わなければいいだけだし。。
こういう表面的な言葉だけで議論を拒否して思考停止するやつばかりだから世の中どんどんアホばかりになってくるんだよなぁ…
アホだからこういう字面にしか突っ込めないし、字面に押さえきれない感情が発生しちゃうんだよ。
ああ、言ってること同じか。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
systemdはそもそもの設計からして欠陥品 (スコア:4, すばらしい洞察)
ユーザー名を指定する個所で数字で始まるユーザー名を指定すると、そのユーザーの代わりに「root」が指定されたことになってしまう
な? 障害者レベルの設計だろ?
おまけにsystemdの開発者がクソなのは、PulseAudioやAvahiの時点で既に分かっていたので、今回の「数字で始まるユーザー名が不正なのであってsystemdのバグではない」という返答が帰ってくるまでが想定の範囲内という酷さ。
こいつらは、PID 1で常時動作するようなサービスマネージャーを、そこらの3分間クイックハックレベルの思考で設計してる。
かつての1ツイート(140字以内)でsystemdをクラッシュさせる方法 [gihyo.jp]やrm -rf バグ [preining.info]の時も感じたが。systemdがクソなのは、これやその他バグ自体ではなく、なぜこんなシンプルで重大なバグが何年ものあいだ放置されていたのか、いったいどんな品質保証プロセスを通ってきたのかという点。Ayerの意見には諸手を挙げて同意したい。
systemdは本業のinitと、やってもudev & dbus業務だけに専念してて。
余計なことまでしゃしゃってこないで。わりとマジで。
Re:systemdはそもそもの設計からして欠陥品 (スコア:1, 興味深い)
Q: なぜこんなバグが放置されていたのか?
A: つぶす前に増やしたから。十分に目があっても、それ以上に手指があるから。
「コードは書くんじゃない、消すものだ」とはよく言ったものだ。
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
> な? 障害者レベルの設計だろ?
Unix 系の OS ではユーザー切り替えやろうとすると
「デフォルトユーザーとして root にならないようにする」
という処理を加えないと、そうなっちゃうんだよ。
Windows とか Trusted Unix と呼ばれる類だと、デフォルトユーザーを意識しなければ、unknown とか NOUSER とか、何の権限もない状態になるからありえない話だが Unix系では何も考えないと root になるという仕様なのだからな。
Re: (スコア:0)
rootがユーザーの本質なんだから、そこの思想がおかしいとは思わんけどな。もちろん、現代的な倫理観に照らせば変だけど、そういうのはOSより上のレイヤが処理すべき話だろう。
Re: (スコア:0)
>rootがユーザーの本質
な、なにを言い出したのこの人…。
>OSより上のレイヤが処理すべき話
???
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
きっと何か大事な事を言ってる振りがしたかっただけ。俺は分かってるんだぞって。
# つまりは厨二病。滑稽だね。
Re: (スコア:0)
ユーザー切り替え機能もSystemdも一般的にはOSの機能に含まれると思っていたのだが…
OSの不始末はOSで処理すべきだろう。
尤も開発元がそれは仕様であり問題ないと言っている以上Systemd以外(OSより上のレイヤでもいい)で何とかするしかないのだが。
それかSystemdをなんとかするか?
#3240496の主張は意味不明だな。
#タスケテオビワンケノービ?
Re: (スコア:0)
systemd を擁護するなら、ユーザーの認証/切り替えに失敗したのに、rootのまま実行されるのは Linux の問題とは言える。 Windows や 商用のUnix なら、そんな問題は起きないのだから。
とはいえ systemd って Linux 専用で作ってる(移植はあるにしても)のだから、Linux に合わせた実装しろよって話で、言い訳にはならんよな。
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
> ユーザーの認証/切り替えに失敗したのに、rootのまま実行されるのは Linux の問題とは言える
いやいや、完全に systemd の問題でしょ。アプリケーションが、一時的に別のユーザーになろうとして
失敗したとき、そのまま処理するかどうかを決めるのはアプリケーションの責任以外の何物でも無い。
Re: (スコア:0)
もしやWindowsのUACという仕組みに毒されすぎていないか
# Administratorが本質でUACはその上のレイヤってこと?
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
まったく同意。
ソフトウェアの進化について、バージョン2はとにかく機能を入れ込んで肥大化して使い物にならない、バージョン3で不要なものを分離・切り落としてやっと使いものになる…
という話が昔あったような気がするが、その話でいうと systemd は今のところまだバージョン2の状態のように見える。
# mishimaは本田透先生を熱烈に応援しています
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
Re: (スコア:0)
素朴な疑問なんだが、なんでこんなに問題の多い代物が多くのディストリビューションで採用されているんだ?
Re: (スコア:0)
抱き合わせ商法みたいな感じ
Re: (スコア:0)
SysV initがslowだから
Re: (スコア:0)
そんなのを無視できるほど、コアの性能は向上してると思うのだが。
少しくらいマルチコアに対応してなくとも、別に気にならんのでは。
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
IO待ちや周辺機器の応答待ちなどでCPUがほぼ遊んでたからinitは遅かったんだよ。CPUのコアの性能が向上しようが殆ど影響ない
Re: (スコア:0)
開発者に合ったことはないけどレインマンみたいな感じなのかな
# 本人は善意でやってると思われ
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
逆だ!逆!
レインマンの弟みたいなやつに任せるからこうなった!
レインマンに頼めばこんなことにはなってない!
Re: (スコア:0)
うそー。
弟の方が物覚えもよく、優しくていいもの作れそう。
兄貴だと、バグレポートもハッタリかまして切り抜けようとして
にっちもさっちもいかなくなるぞ。
systemdの開発者は、その悪いとこ取り。
Re: (スコア:0)
(古典的)c言語の思想が根幹に染み付いたプログラマ(のコミュニティ)なら当然の考え方でしょ
引数の正当性は渡す側が責任を持つもので渡された側でチェックして対処するなんて非効率
Re: (スコア:0)
ご冗談を。どこでそんな偏見を覚えましたか?
C言語の API で入力チェックしてなかったら、即バグ扱いだよ.普通。
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
仕様書読んだら嫌でも覚えるんじゃないですかね。 fopen() のアクセスモード引数に既定のもの以外の文字列を渡した場合の動作は未定義です、 free() に alloc 系の関数が返したのではないポインタを渡した場合の動作は未定義です、 strcpy() にオーバーラップする文字列を渡した場合の動作は未定義です、 etc etc...
Re: (スコア:0)
「未定義」は言語やライブラリの仕様としての話であり、
OS、あるいはそれに類するレイヤーの実装としては、できる限りの安全策、つまり、引数のチェックを行うべきであるってことですよね。
Re: (スコア:0)
Re: (スコア:0)
> パフォーマンスに影響するため、チェックをしない(最小限にしている)システムはいくらでもある。
というより、そういう実装を許すために他の言語ではチェックを義務付けているようなものも言語仕様で未定義にしている。ゼロオーバーヘッドの代償。
Re: (スコア:0)
fclose(NULL); とか知らない?
Re: (スコア:0)
うーん。ポインタ・デリファレンスの問題と引数のはなしを混同している時点でまともに C言語でプログラムしたことがないのがわかってしまうのだが...
このあたりの誤解されやすさが、C言語の欠陥なんだろうな。
Re: (スコア:0)
fclose は引数の NULL チェックをしていないぞ、という指摘なんだがどこにポインタ・デリファレンスが絡んでくるの?
Re: (スコア:0)
いや、もうこれ、「知りたかったら勉強してねとしか」としか答えようがないな。
Re: (スコア:0)
開いていないファイルを閉じる意味はないのでNULLチェックも不要だろう…
ついでにいうとファイルを開いて閉じるだけのソフトは実用上意味がないのでfcloseにNULLを参照しているポインタを渡すようなプログラムは多分他にもバグがある。
Re: (スコア:0)
manにあるようにEBADF返すケースはあるわけでしょ
そこで不正ポインタのチェックをしていないだけ(そもそもCではできない)
Re: (スコア:0)
Re: (スコア:0)
>開いていないファイルを閉じる意味はないのでNULLチェックも不要だろう…
『C言語の API で入力チェックしてなかったら、即バグ扱いだよ.普通。』って言ったのは (#3240550) だからね。
Re: (スコア:0)
fcloseは普通のAPIではなく特殊なAPIなので問題ない。
ではだめですか?正直これに関しては下手にチェックするよりエラー吐かせるほうがデバッグが楽。
くどいようだが実用上この関数にNULLを渡すようなプログラムは危ない。
Re: (スコア:0)
>そこで不正ポインタのチェックをしていないだけ(そもそもCではできない)
その理屈だと free には NULL を渡しても問題ないこととの整合性が取れない。
Re: (スコア:0)
分かりやすい例として fclose を挙げたけど、それだけじゃないのは#3240584 [srad.jp]が示してるとおりなんだよなぁ…
他にも fs0x7f 氏が昔日記で挙げた事例 [srad.jp]なんかもある。
Re: (スコア:0)
Re: (スコア:0)
memcpy()の使い方を間違えた馬鹿に対してLinusの言葉
http://gihyo.jp/dev/clip/01/orangenews/vol60/0007 [gihyo.jp]
Re: (スコア:0)
memcpy()の使い方を間違えた馬鹿に対してLinusの言葉
http://gihyo.jp/dev/clip/01/orangenews/vol60/0007 [gihyo.jp]
ふむ。
memcpy()の実装変更でFlashが動かなくなった件で、「どっちの責任なのよ」てな論争にLinusが参戦していた、というのは理解した。
だが、この記事の中に「memcpy()の使い方を間違えた馬鹿に対してLinusの言葉」はどこにあるんだ?
確かに、
Linus側は「Linuxカーネルは『no regression』ルールを厳守しなければならず,よほどの理由がないかぎり利用側に影響を与える変更は行ってはならない」とglibcチームを非難しています。
とあるが、これはLinusの言葉とはこの記事の書き方
Re: (スコア:0)
pulseaudio の欠陥って何ですか?
私は、以前、pulseaudio を嫌っていて、細かいプログラムを書いて、私の環境から排除したりしていたのですが、
ある時、使いみちを思いついて、今現在は使っています。
当初よりは、効率性も上がっているのか、CPU 使用率もそれほど高くない気がします。
以前、私自身が pulseaudio の、どの部分を嫌っていたのか忘れてしまったのですが、
欠陥と呼べるような、明らかな誤りって指摘されていたりするのでしょうか?
Re:systemdはそもそもの設計からして欠陥品 (スコア:2, 参考になる)
今はもうバグは少ないと思います。
以前PulseAudioをめちゃくちゃ批判していた人も謝罪 [blogspot.jp]しています。
何が嫌われたかというと、苦労してOSSからALSAに移行したばかりのタイミングで
RedHatの七光を使ってバグだらけのまま低品質な製品を押しつけただけであり、
デザイン自体は悪くなかったはずなんです。実際バグを減らした今では受け入れられています。
昔のバグを知りたいのであれば、JeffreyさんのブログでもPAのトラッカーでもいくらでも見ることができますよ。
Re:systemdはそもそもの設計からして欠陥品 (スコア:1)
> RedHatの七光を使ってバグだらけのまま低品質な製品を押しつけただけであり、
> デザイン自体は悪くなかったはずなんです。
ここだけ読むと systemd のことのようだ。
Re: (スコア:0)
systemdの設計思想に文句を言えるほど知ってるわけではないので、そっちは置いておくとして。
先頭数字のユーザ名でrootになるのは。「お、おう。。。」という感じでスルーするぐらいライトユーザです。。
もちろん、そういう設定しませんので。
> 余計なこと
systemdの「余計」は何ですかね。
単なるユーザとしては、コマンドをサービスにできる標準的方法として、便利に使ってるのですが。
ログまで制御してくれるので、おせっかいというか、便利というか微妙なところですが。
特に、止まったら再度起動してくれるのは、前のinitはしてくれなかった機能ですが、
よく使うので採用してます。
なので「init」にはなかなか「普通」が定義できず、Fatも悪くないような気がします。
入ってる機能がいやなら使わなければいいだけだし。。
Re: (スコア:0)
これで満足ですか?
Re: (スコア:0)
こういう表面的な言葉だけで議論を拒否して思考停止するやつばかりだから
世の中どんどんアホばかりになってくるんだよなぁ…
Re: (スコア:0)
アホだからこういう字面にしか突っ込めないし、
字面に押さえきれない感情が発生しちゃうんだよ。
ああ、言ってること同じか。