トップページunix
1001コメント270KB

OpenSolaris総合スレッド その3

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2009/08/19(水) 07:20:38
OpenSolarisプロジェクト、派生ディストリビューション総合スレ
SUNからリリースされる本家「Solaris」に関しては専スレでお願いします

前スレ:OpenSolaris総合スレッド その2
http://pc12.2ch.net/test/read.cgi/unix/1236772561/

プロジェクト公式サイト ttp://opensolaris.org/

テンプレ:>>2-5
0592名無しさん@お腹いっぱい。2009/12/12(土) 15:16:49
ホントだ。www.genunix.org にも上がってるね。
0593名無しさん@お腹いっぱい。2009/12/13(日) 13:27:40
OpenSolarisはなぜ本物のunix(ベース?)なのにlsやらrmやらのコアユーティリティがGNU製なの?
GNU製のほうがよかったからあとから置き換えたの?
0594名無しさん@お腹いっぱい。2009/12/13(日) 13:28:42
あ、もしかして"Open"Solarisだからか。
本家Solarisの方は自前のを使ってるけどソース出したくないからOpenSolarisではGNUのに置き換えてる??
0595名無しさん@お腹いっぱい。2009/12/13(日) 13:38:54
本物のUNIX・・・・w
0596名無しさん@お腹いっぱい。2009/12/13(日) 13:46:30
>>593
お前はいろいろ間違ってる。
0597名無しさん@お腹いっぱい。2009/12/13(日) 15:18:00
OpenSolarisは、Solarisのカーネルを使ったLinuxです。
0598名無しさん@お腹いっぱい。2009/12/13(日) 15:22:12
>>594
"Open"Solaris ですから、ソースコードはきちんと公開されていますよ。
疑問を持たれたら、まず一次情報をお確かめになった方が良いと思います。

OpenSolaris の ls と rm
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/ls/ls.c
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/rm/rm.c

ちなみに GNU の ls や rm はこちら
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/rm.c
0599名無しさん@お腹いっぱい。2009/12/13(日) 15:57:14
>>593
>GNU製のほうがよかったからあとから置き換えたの?

良いかどうかは別として、機能が多いし、ユーザも多いからね。
ls とか rm みたいなユーティリティは自前主義に拘っても仕方が無いし。
0600名無しさん@お腹いっぱい。2009/12/13(日) 18:07:18
>>598 はブラクラ。
悪意はないんだろうけど、実際踏んでクラッシュした。
0601名無しさん@お腹いっぱい。2009/12/13(日) 18:24:57
古い携帯から見たか、おかしなブラウザ使ってたんだろ。
ドメインを見れば分かるが何の問題も無いサイトだぞ。
0602名無しさん@お腹いっぱい。2009/12/13(日) 18:35:29
>>598
lsのソースだけ今見たけど、かなりひどいなw
ネストがそこそこ深い上に、そいつが長いんだもん。
もう少し読みやすいコード書けよ・・・。
{}の対応どっかで見失いそうになるな・・・
0603名無しさん@お腹いっぱい。2009/12/13(日) 18:51:08
単に読み慣れてないだけじゃないかな。
ネストが深いのはフラグの操作している所だけだし、複雑なコードでもないしね。

折角だから UTS の下も読んでみると良いですよ。

http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/
0604名無しさん@お腹いっぱい。2009/12/13(日) 18:58:35
3つ以上深くなるのは避けたくなるけどなぁ。
そうかこんなもんか・・・。
0605名無しさん@お腹いっぱい。2009/12/13(日) 19:12:56
普段業務プログラムとかしか書いてないと、
システム系のプログラムはなかなか追えない。
0606名無しさん@お腹いっぱい。2009/12/13(日) 19:32:02
lsのスイッチの部分は下手にバラバラにされるよりは見やすいと思うよ
ネストが少ない方がいいのは確かだけど、意味のあるまとまりは
まとめておきたい。C++とかのソースでよく見る、無意味に細切れに
する傾向の方が閉口する。

ただ、OpenSolarisのls.cの最後の xmalloc ってなんかやばそう

   3156 void *
   3157 xmalloc(size_t size, struct lbuf *p)
   3158 {
   3159     if ((p = malloc(size)) == NULL) {
   3160         perror("ls");
   3161         free_sysattr(p);     ←多分この先でsegmentation fault
   3162         nvlist_free(response);
   3163         exit(2);
   3164     }
   3165     return (p);
   3166 }
 

0607名無しさん@お腹いっぱい。2009/12/13(日) 19:44:13
3133 void
3134 free_sysattr(struct lbuf *p)
3135 {
3136 int i;
3137
3138 if (p->exttr != NULL) {
3139 for (i = 0; i < sacnt; i++) {
3140 if (p->exttr[i].name != NULL)
3141 free(p->exttr[i].name);
3142 }
3143 free(p->exttr);
3144 }
3145 if (p->extm != NULL) {
3146 for (i = 0; i < sacnt; i++) {
3147 if (p->extm[i].name != NULL)
3148 free(p->extm[i].name);
3149 }
3150 free(p->extm);
3151 }
3152 }
3153

ほんとだ、どうみてもNULL渡せない
0608名無しさん@お腹いっぱい。2009/12/13(日) 19:54:15
んあ?しかも struct lbuf **pで *p=malloc(size); じゃなくて、
pに直接mallocの返り値代入すんのかよ。

これあってんの?
0609名無しさん@お腹いっぱい。2009/12/13(日) 20:42:29
つまり、セグフォるSolaris版コマンドのバグが取れないので
GNU版コマンドに置き換えたのですね。
0610名無しさん@お腹いっぱい。2009/12/13(日) 20:49:12
>>609
流れをちゃんと読めよ。バグ有り版がネイティブだっつの
0611名無しさん@お腹いっぱい。2009/12/13(日) 20:54:23
>>610
日本語をちゃんと読めよ。ネイティブのバグ有り版を回避するために
OpenSolarisではGNU版をデフォにしたんだろ? って >>609 は言ってるんだが。
0612名無しさん@お腹いっぱい。2009/12/13(日) 20:56:27
おまいら喧嘩するなよ…
V7 版のソースコードも置いておきますね。

http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/ls.c.html
0613名無しさん@お腹いっぱい。2009/12/13(日) 21:01:06
V7って何ですか??
0614名無しさん@お腹いっぱい。2009/12/13(日) 21:03:29
"本物の"Unixだよ
0615名無しさん@お腹いっぱい。2009/12/13(日) 21:03:41
えーと、プログラムさっぱりな俺に教えてください。
malloc()で確保失敗してるpを
free_sysattr()内で参照してるからやべぇー!って話だよね?
0616名無しさん@お腹いっぱい。2009/12/13(日) 21:08:10
ネストに関しては
2328 for (cp = s; *cp; ) {
2329 if (isascii(c = *cp)) {
2330 if (!isprint(c)) {
2331 if (qflg) {
2332 c = '?';
2333 } else {
2334 curcol += 3;
2335 (void) putc('\\', stdout);
2336 c = '0' + ((*cp >> 6) & 07);
2337 (void) putc(c, stdout);
2338 c = '0' + ((*cp >> 3) & 07);
2339 (void) putc(c, stdout);
2340 c = '0' + (*cp & 07);
2341 }
この辺ひどくね?
このifはANDでまとめてしまって良いと思うんだ。
0617名無しさん@お腹いっぱい。2009/12/13(日) 21:21:07
お前らそんな文句ばっか言うなら、
書き直してコミットしろよw

>>612
こっちの方がやっぱきれいだなw

>>615
だいたいあってる
06186102009/12/13(日) 21:27:04
>>611
スレタイもよめねーのか。このスレでネイティブっつったらOpenSolarisのネイティブだろjk
0619名無しさん@お腹いっぱい。2009/12/13(日) 21:39:25
>>618
だから、OpenSolarisのネイティブのコマンドがバグってるから、
GNU版のコマンドを追加して、そっちをデフォにしたって話だろ。
0620名無しさん@お腹いっぱい。2009/12/13(日) 21:47:15
まぁひとつ落ち着け。
0621名無しさん@お腹いっぱい。2009/12/13(日) 21:50:37
>>612
いいねえ
ls のスイッチを調べる while とかこんなですよ。
"*++*"なんてはじめて見た

>> while (*++*argv) switch (**argv) {
0622名無しさん@お腹いっぱい。2009/12/13(日) 21:53:10
お前ら>>612のコード見てしまったばっかりにライセンスに汚染されたなw
もう>>598みたいなコードは書きたくなくなるはずだ。
だがしかし、お前らはもう書けない。
0623名無しさん@お腹いっぱい。2009/12/13(日) 22:01:08
どうせここにいる連中がコード書いてるわけでも、コミットしてるわけでもないだろ
0624名無しさん@お腹いっぱい。2009/12/13(日) 22:26:20
これを見て1ヶ月後に書いたコードがたまたま似たようなものになってしまった場合、パクったことになるの?
0625名無しさん@お腹いっぱい。2009/12/13(日) 22:36:34
恐怖のGPL汚染の逆バージョンかw

>>624
どこまで権利を主張するかによるけど、場合によっては十分ありうるよ。
0626名無しさん@お腹いっぱい。2009/12/13(日) 22:50:01
つ http://en.wikipedia.org/wiki/Ancient_UNIX_systems
0627名無しさん@お腹いっぱい。2009/12/13(日) 22:51:03
VMware Playerに入れたところ
使うのは7以来

そういえばSunView用のプログラムをコンパイルできるかな
0628名無しさん@お腹いっぱい。2009/12/14(月) 13:38:41
V7 なんかまだプロプラだと思ってるやつがいるんだな..
ほんとなんも知らんねんなぁ、バカゾウどもは。こまったもんだ。
0629名無しさん@お腹いっぱい。2009/12/14(月) 13:50:12
>>627
7だとできたのかw?
0630名無しさん@お腹いっぱい。2009/12/14(月) 13:52:40
>>594
/usr/gnu/binにパス通してるあるだけで、置き換えてなんかないわけだが。
rm -rf /usr/gnu してもなんの問題もなく使えるよ、まともな Unixユーザーならねw
0631名無しさん@お腹いっぱい。2009/12/14(月) 13:57:01
>>630
>/usr/gnu/binにパス通してるあるだけで、

それを「置き換える」という。
0632名無しさん@お腹いっぱい。2009/12/14(月) 13:58:18
>>630
>rm -rf /usr/gnu してもなんの問題もなく使えるよ

ダウト。
gccが使えなくなる。
0633名無しさん@お腹いっぱい。2009/12/14(月) 14:00:29
あまり追い詰めてやるな
0634名無しさん@お腹いっぱい。2009/12/14(月) 15:07:31
>>632
代わりに pkg_add するもんで。pkgsrcね。

>633
はぁ? おもしれーな、追い詰めてみろよ、バカゾウ君w
0635名無しさん@お腹いっぱい。2009/12/14(月) 15:09:42
>>631
ls や rmは /bin にあるのがネイティブ。/usr/<なんとか> なんてのは
典型的なオプション部品。いらん機能盛りすぎなんだよ、GNUのはたいてい。
tarなんかよかったけどね。もう長いこと paxしか使ってない。
0636名無しさん@お腹いっぱい。2009/12/14(月) 17:03:55
Sunのコンパイラもタダで入手できるよな、確か。
オープンソースになったんだっけか?
06376102009/12/14(月) 21:40:33
SunStudioはまだオープンソースじゃなかったと思う。
0638名無しさん@お腹いっぱい。2009/12/14(月) 21:46:35
Eclipseがある今、SunStudioとか存在意義ないだろ・・・。
0639名無しさん@お腹いっぱい。2009/12/14(月) 21:48:33
いや、SunStudioにはオリジナルのコンパイラが付いていることがEclipseとは異なる。
性能は知らんけど
0640名無しさん@お腹いっぱい。2009/12/14(月) 22:17:20
>>638
>>637 が言ってるのはコンパイラの事だと思われ。
性能はこことかに載ってるよ。

http://blogs.sun.com/BestPerf/entry/free_compiler_wins_nehalem_race
0641名無しさん@お腹いっぱい。2009/12/14(月) 22:34:30
なにこれこわい
0642名無しさん@お腹いっぱい。2009/12/14(月) 23:04:29
Intelコンパイラ使いの俺には関係ねぇや
0643名無しさん@お腹いっぱい。2009/12/14(月) 23:04:36
OpenSolarisてIntelコンパイラでビルドできますけ?

いやね、linux kernelがgccでビルドすることしか想定されてない
gcc独自マクロべったべたなので、
OpenSolarisはどんなもんかなーって。
0644名無しさん@お腹いっぱい。2009/12/14(月) 23:10:39
ASM もあるし、どんなコンパイラでもと言うのは難しいんじゃないの
0645名無しさん@お腹いっぱい。2009/12/14(月) 23:11:50
しかし、gcc拡張を使わない配慮くらいはできるだろ。
0646名無しさん@お腹いっぱい。2009/12/14(月) 23:18:51
SunStudio入れるといっしょにはいる
SUNのコンパイラでビルドするのが
基本なんでしたっけ?
OpenSolarisは。
0647名無しさん@お腹いっぱい。2009/12/14(月) 23:24:59
そうデス。
ARM port は GCC でビルドしているみたいなので、
アセンブラさえ何とかできれば良いのかもしれませんが、
自分は無理です。
0648名無しさん@お腹いっぱい。2009/12/15(火) 21:00:09
ARM port って x86 じゃない小型の NAS とかでも
zfs 使いたくて始めたとかですかねえ?

0649名無しさん@お腹いっぱい。2009/12/16(水) 09:47:57
ホビーストじゃないよ。NECがやったんでしょ。何屋さんだろうねぇ。
ネットワーク機器か?
0650名無しさん@お腹いっぱい。2009/12/16(水) 10:46:55
個人の趣味
NetBSDと同発想
0651名無しさん@お腹いっぱい。2009/12/16(水) 12:45:49
確かにメモリ喰いのzfsをわざわざARMでってのはないか。
0652名無しさん@お腹いっぱい。2009/12/16(水) 14:25:18
ちがうって。対応ハードウェア見てみな。個人が入手するようなボードじゃない。
0653名無しさん@お腹いっぱい。2009/12/16(水) 14:32:14
>>650
NetBSDでも組込み方面のポートはたいてい企業人がやってるよ。業務でね。
古いとこだと DECや SiByteとかも。日本の会社も結構ある。

その程度の知識もないで「個人の趣味」とか。笑うわw
0654名無しさん@お腹いっぱい。2009/12/16(水) 14:39:53
カーナビだった。NaviEngine1 だそうな。
ttp://eetimes.jp/article/23101
0655名無しさん@お腹いっぱい。2009/12/16(水) 15:50:54
確かにカーナビ用ではあるけど、
単にARM11 MPCoreの評価ボードってだけだから
何のために移植したかはやっぱりわからんよ。
0656名無しさん@お腹いっぱい。2009/12/16(水) 16:54:50
はぁ? 証拠でも出せ、ってか?w キモいぞ
0657名無しさん@お腹いっぱい。2009/12/16(水) 17:21:49
単にportの明確な意図が明かされてないから
外部からはわからないと思っただけで
NaviEngine1 と Qemu で動くとリリースノートに書いてあることに
文句言ったわけじゃないじゃないの。
どうして何でも煽りのように受け取って答えるのですか。
いつも同じ人ですか?
0658名無しさん@お腹いっぱい。2009/12/16(水) 17:38:43
>>651
メモリ節約版のZFSが組み込まれてるらしいけど詳細はしらん
0659名無しさん@お腹いっぱい。2009/12/16(水) 18:33:28
>>657
> 外部からはわからないと思っただけで

そんなもん最後までわかんねーだろうが。自明。キモいんだよ君。
0660名無しさん@お腹いっぱい。2009/12/16(水) 19:54:19
>>657
煽り口調な人は、殆どの場合、レスが欲しいから
わざと罵声を浴びせる様な書き方をしてるんだよ。
好きな子に意地悪する感覚と似てるのかも。
0661名無しさん@お腹いっぱい。2009/12/16(水) 22:07:23
>>657
うるさい。だまれ
0662名無しさん@お腹いっぱい。2009/12/17(木) 12:13:26
>>660
違うぜ、バカにはバカって言っとかないとな。気がつかないから。
0663名無しさん@お腹いっぱい。2009/12/17(木) 12:16:13
そこまで卑下しなくても
0664名無しさん@お腹いっぱい。2009/12/17(木) 15:16:55
Solaris使う人も普段からクロスコンパイルよくするものですか?
x86でSPARCバイナリbuildして実機に持ってたりしますの?
0665名無しさん@お腹いっぱい。2009/12/17(木) 15:59:14
SPARCマシン使うようなところが、そんな貧乏くさいことせんだろw
0666名無しさん@お腹いっぱい。2009/12/17(木) 18:12:47
Solaris on x86なので・・・
0667名無しさん@お腹いっぱい。2009/12/17(木) 19:43:14
>>664
自分は殆ど遊びで使ってるからコンパイラもインストールして
ネイティブで -fast を付けてコンパイルするよ。
0668名無しさん@お腹いっぱい。2009/12/18(金) 01:19:40
ARM版のZFSは省メモリで動くよ
すげえ、ダイエットしてる
0669名無しさん@お腹いっぱい。2009/12/18(金) 02:07:14
http://www.osdevcon.org/2009/slides/arm_vineeth_pillai.pdf

czfs, czpool というのが用意されてるのね。
試してみたいな。
0670名無しさん@お腹いっぱい。2009/12/18(金) 09:34:24
開発環境がx86で実行環境がSPARCじゃなかった?
中の人?
06716642009/12/18(金) 12:42:18
ARM の CrossCompile はどうかってことの前置きで
聞いたんですけど、皆あまり普段はしなさそうですね。
0672名無しさん@お腹いっぱい。2009/12/18(金) 23:13:49
たった1日で結論付けるんだ


ふ〜ん
0673名無しさん@お腹いっぱい。2009/12/18(金) 23:21:30
クロスコンパイルはLinuxやgccの文化。Solarisではやらない。
0674名無しさん@お腹いっぱい。2009/12/19(土) 00:25:40
>>671
>ARM の CrossCompile はどうかってことの前置きで

それを書かないと誰も分からないよ。
>>664 には x86 で SPARC バイナリって書いてあるし。

クロスコンパイルはターゲットのコンパイル環境が貧弱ならするし、
そうじゃないならしない。好き嫌いとか流儀の問題じゃなくて、
必要か必要じゃないかの問題だから、必要ならやるよ。
0675名無しさん@お腹いっぱい。2009/12/19(土) 05:51:15
Sun/NEC連合は、ARM上のセルフコンパイラを提供してないよね。
カナディアンクロスしてコンパイラを自前で用意までするかというと微妙だな。
0676名無しさん@お腹いっぱい。2009/12/19(土) 14:08:36
セルフでもクロスでも、使う側が好きに用意するだろ。
初心者が心配する事じゃないと思うが。
0677名無しさん@お腹いっぱい。2009/12/21(月) 10:57:35
>>673
んなアホなww クロスコンパイルは Linuxなんかこの世に無い頃から
フツーに行われてますがな。組込みもんは Unix上にクロス環境作るのが
フツーだったし。今でもルネサスのやつとか除いたらそうだと思うが。
0678名無しさん@お腹いっぱい。2009/12/21(月) 14:19:50
だな。
そのころは、CAD/CAE=ワークステーション=Sunのマシンっていう時代だったもんな。
0679名無しさん@お腹いっぱい。2009/12/21(月) 14:39:36
いまどき実機上でコンパイルやってもそんなに困る事はないだろ。
昔と違って携帯でFlashや3Dが動く時代だぞ。
0680名無しさん@お腹いっぱい。2009/12/21(月) 15:05:56
通常SolarisとOpenSolarisとJarisのどれを選んだらいいですか?
0681名無しさん@お腹いっぱい。2009/12/21(月) 15:18:54
>>679
いや。困る場合は多いよ。
0682名無しさん@お腹いっぱい。2009/12/21(月) 15:20:56
もちろんSolaris。
OpenSolarisはSolarisのLinux版なので却下
0683名無しさん@お腹いっぱい。2009/12/21(月) 15:24:54
?
0684名無しさん@お腹いっぱい。2009/12/21(月) 15:25:39
Solarisの場合、実機上でのセルフコンパイルと、
別環境でのクロスコンパイルとでは結果のバイナリーが微妙に異なって
結局クロスの方は使えないことが多い。

Linuxではクロスコンパイラもセルフコンパイラも同一バイナリーが生成され、
クロスコンパイラがきちんと作られてることがわかる。
よってクロスコンパイラはgcc/Linuxの文化。
0685名無しさん@お腹いっぱい。2009/12/21(月) 15:28:47
>>680
SolarisかOpenSolarisのどっちか。
OpenSolarisはコードが全部手に入るから、俺ならこっちを奨める。

>>682
Linuxと似てるだけで、嫌ならイジればいいじゃん
0686名無しさん@お腹いっぱい。2009/12/21(月) 15:31:52
>>684
完璧な結論だな
Solaris ⊂ Unixということに目を瞑ればよぉ〜
0687名無しさん@お腹いっぱい。2009/12/21(月) 15:45:52
>>684
オイオイ、クロスコンパイラって、何するものかわかってるか?
そもそも、セルフでも、コンパイラって何するものか理解できてれば、
そんなワケわからん発言はしないもんだよ。
セルフとクロスで同じもん作れないのは、環境作るウデがない、ってことだよ。
0688名無しさん@お腹いっぱい。2009/12/21(月) 15:47:43
クロス環境を作ることが目的と化してるな
0689名無しさん@お腹いっぱい。2009/12/21(月) 15:48:18
環境作るのにウデって・・・(笑)
0690名無しさん@お腹いっぱい。2009/12/21(月) 16:29:04
>>688,689
やったことないんなら、そう言えばいいのに。どんどんミジメになるだけだぜ?
0691名無しさん@お腹いっぱい。2009/12/21(月) 17:52:28
次のネタ持ってきた。

「な、なんだってー!?」Mac・Windows・Linuxのファンは、それぞれをこう見てる
ttp://labaq.com/archives/51340188.html
ttp://image.blog.livedoor.jp/laba_q/imgs/e/9/e9a35982.jpg

・正確なことを言えば、どれももう古い。今はオープン・ソラリスだ。
・ここにソラリス・ファンのリストも加えると、彼らのPCは神の絵で、それ以外はうんちの山だろう。
■ このスレッドは過去ログ倉庫に格納されています