パスワードを忘れた? アカウント作成
4171 story

アレゲな新コンソールレイヤ 39

ストーリー by Oliver
3270化 部門より

yosshy 曰く、 "Linux kernel 2.5 statusをふらふらと眺めていて、Rewrite of the console layerが目に留まったのでリンクを辿ってみました。このプロジェクトは、既存の問題点を解決しつつ、新しい(怪しい)機能を盛り込もうというものですが、

  • 1つのシステムに複数のキーボードとグラフィックボード(+モニタ)をつないで作る、バーチャルならぬリアルなマルチコンソール
  • (上記に必要な)キーボード毎のキーマップ定義
  • グラフィックボードとキーボードのホットプラグ
  • 仮想端末毎に異なるフォントとテキストモード
  • 漢字や BiDi の直接表示

など、アレゲ花盛りでなかなか痺れます。CPUパワーがあり余る昨今、学校教育機材用に、本体1つ+画面3つのシステムなんて如何?"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • BiDi (スコア:5, 参考になる)

    by kubota (64) on 2002年10月23日 12時03分 (#188174) ホームページ 日記
    UTF-8 and Unicode FAQ [cam.ac.uk] で有名な Markus Kuhn [cam.ac.uk] さんは、ターミナル上での BiDi のサポートに強硬に反対しています。 たとえば右から左へと書き進む書法は、不合理な宗教的な理由で使われている [xfree86.org]なんか、アラビア人が読んだら激怒すると思いますし。

    非ヨーロッパ言語系の人々から見ればかなり独善的なことをばしばし言う人ですが、なぜか、けっこう大きな発言力を持っているみたいです。

    が、BiDi に関しての、実装は、BiDi に関するターミナルの動作をきちっと定義してからにしろ [xfree86.org]という意見は、まともな意見に思えます。mlterm [sourceforge.net] は「便利だったらいいや」というノリなので FriBidi を使った BiDi サポートを実装しましたが、BiDi に関しては ライブラリによって動作が微妙に違う [nmsu.edu]ということがあるようで、動作を定義しないことにはその上で動くアプリケーションソフトも作れない、といった状況に陥る可能性があります。

    ちなみに、オフトピになりますが、全角文字に関して、彼はこんなこと [xfree86.org]を言ってます。つまり、全角文字を横切るようなカーソル移動コントロールコードの動作について、文字単位にすべきか、カラム単位にすべきか、ということです。MS-DOS プロンプトや N88-BASIC(86) や kterm をはじめ、ぼくが知る限りありとあらゆる日本語ターミナルが「カラム単位」の動作をしますが、それは「文字単位」であるべきだ、というのが彼の論旨です。

    • by iwao (5896) on 2002年10月23日 13時20分 (#188212) ホームページ
      MuleというかEmacsの端末は、カーソルの移動は文字単位ですよ。
      M-x terminal-emulator で動作するモードのことです。
      親コメント
      • Re:BiDi (スコア:3, 参考になる)

        by kubota (64) on 2002年10月23日 13時51分 (#188231) ホームページ 日記
        カーソルキーや Backspace キーの動作 (つまり、ユーザインターフェース) じゃなくて、コントロールコード (0x08 とか) の動作のことです。ユーザインターフェースとしては、文字単位になるのが自然です。(たとえば全角文字のあとで Backspace キーを押すと、0x08 0x08 0x20 0x20 0x08 0x08 というコントロールコードがターミナルに送られるべきで、bash の場合には 2.05b 以降でこれが実現しています。ここで 0x08 はカラム単位の移動との前提です)。

        が、結合文字がはいってくると、ユーザインターフェースとしてどういう動作が好ましいか、ということ自体が分からなくなってきます。

        M-x terminal-emulator の動作ですが、それはシェルの動作に依存するのではないですか?

        親コメント
        • Re:BiDi (スコア:2, 参考になる)

          by iwao (5896) on 2002年10月23日 17時30分 (#188351) ホームページ
          たしかにM-x shell はコマンドライン シェル(bash等)に
          依存するのですが,terminal-emulator は kterm と同様に
          ptyを作るし、依存しないはずです。
          terminal-emulator で (tty;stty raw -echo;cat) としておいて
          別の端末から 漢字混じりのテキストを対応するttyに
          リダイレクトして送ると エミュレータ側にテキストが出ます。
          そして \bを送ると、確かに一文字ずつ消えます。

          手元の GNU Emacs 20.7.2(X版)で確認しました。
          親コメント
          • by kubota (64) on 2002年10月23日 23時07分 (#188574) ホームページ 日記
            なるほど。とすると、こんどは、0x08 がカラム単位で動作する環境 (ほとんどのターミナル) と文字単位で動作する環境 (M-x terminal-emulator) との両方で bash-2.05b がうまく動くのはなぜか、というのが問題になってきますね。

            ところで、\b ってカーソルを1カラム (1文字?) 左へと移動させるだけで、文字を消すのではないと思いますが、なぜ消えるのでしょうか?

            親コメント
            • by numa (4467) on 2002年10月25日 1時00分 (#189314) ホームページ 日記
              \b ってカーソルを1カラム (1文字?) 左へと移動させるだけで、文字を消すのではない

              だから,カーソルがどこまで動いたのかを知るためには,文字を上書きしてみせる必要があるのですよ。

              たとえば,

              echo 漢字文字列^H^Ha > /dev/pts/123

              とかやってみて (ここで ^H は Backspace 文字を示す。入力時には Control-V Control-H と打ち込む),出力が

              漢字文字a

              となるか,あるいは

              漢字文a列

              となるかで,^H 一個で「一カラム」ぶん動いたのか,「一文字」ぶん動いたのか調べるわけです。ちなみに,手元の emacs では後者の動作を示しました。(中間に空白は入りませんでした)

              しかしまあ,Backspace の動作の話題になると,毎回,

              • 端末に対するカーソル移動コマンドとして Backspace (0x08) を出力した場合の動作
              • エディターのコマンドとして,Backspace キー (カーソル位置直前の文字を削除) を押したときに起こる動作
              • エディターのコマンドとして,Delete キー (カーソル位置にある文字を削除) を押したときに起こる動作
              • エディターのコマンドとして,カーソル移動キー (→キーとか) を押したときの動作
              • UNIX の tty の canonical モードの場合に,ERASE 文字を入力したときの画面上の動作
              • UNIX の tty の canonical モードの場合に,ERASE 文字を入力したときのバッファの操作

              あたりの話がすべてごっちゃになって出てくるのは,何とも言えませんなあ。

              親コメント
    • by SHNSK (10099) on 2002年10月23日 14時00分 (#188238)
      カラム単位ではなくてセル単位ですね?

      全角文字は 1文字で 2セル分なので、バックスペースで
      1文字消した後 1セルしかカーソルが戻らないと半文字のところで
      カーソルが止まってしまい、動作がおかしくなるという話です。

      エディタ等のプログラマにしか関係ない話と言えばそれまでですが...
      親コメント
      • Re:BiDi (スコア:3, 興味深い)

        by kubota (64) on 2002年10月23日 14時46分 (#188254) ホームページ 日記
        んーと、#188231 [srad.jp] に書いたとおり、ユーザインターフェースの問題 (どのキーを押したときにどんな動作をすべきか) ではなくて、コントロールコードの問題なんですが。

        ユーザインターフェース的には、文字単位の処理になっていることが必要です。というのは、Shift_JIS や EUC-JP では全角文字についてもバイト数とカラム数が一致していたので、Backspace キーを 2 回押すことでなんとかごまかしが効きましたが、UTF-8 ではそれは一致しないですし (かなやハングルや日常で使う漢字のほとんどは 2 カラム 3 バイト、ロシア文字やギリシャ文字やその他多くの文字は 1 カラム 2 バイト)、結合文字 (0 カラム) なんてのもあります。

        まさしくプログラマに関係する話です。エンドユーザにはあまり関係しません。

        ところで、カラムとセルってどう違うのですか?

        親コメント
        • by Jadawin (2174) on 2002年10月23日 19時44分 (#188437) 日記
          瑣末なところにダウト。

          > EUC-JP では全角文字についてもバイト数とカラム数が一致していた

          あの忌まわしき(いわゆる)半角カナは2バイトですよん。

          #SS2 + JIS 0201 右半面(MSB on)とでも言うか。
          親コメント
          • by kubota (64) on 2002年10月23日 20時08分 (#188452) ホームページ 日記
            やられました。ついでに言うと、JIS X 0212 は 2 カラム 3 バイトでしたね。

            まあ、ふつうは ASCII + JIS X 0208 しか使わないということで。

            親コメント
            • by oku (4610) on 2002年10月24日 0時53分 (#188700) 日記

              厳密には SS2 なり SS3 なりは CR やら LF やらと同じ制御シーケンスの一種と (ISO-2022 的には) 考えるべきなんじゃないですかね? もちろん、JIS X 0201 カナや JIS X 0212 補助漢字は 2 / 3 バイトと数える人が殆どでしょうし、実際そのように考えた方が便利だからこそ eucJP が使われるわけですが。

              ところで、こういう用途って UTF-8 (というよりも ISO-10646 そのもの) はあんまり向いてないんじゃないですかね? 下手にきちんと扱い得る潜在能力があるだけに、却って泥沼化しそうな気がするんですけど。

              親コメント
              • by kubota (64) on 2002年10月24日 7時49分 (#188824) ホームページ 日記
                厳密には SS2 なり SS3 なりは CR やら LF やらと同じ制御シーケ ンスの一種と (ISO-2022 的には) 考えるべきなんじゃないですかね?

                その通りかもしれませんが、いまは、Backspace キーを押したときにシェルが内部バッファから何バイト削除しないといけないかという話ですので、それが正しく実現できさえすれば、どちらの考えに立っても構いません。

                ところで、こういう用途って UTF-8 (というよりも ISO-10646 そのもの) はあんまり向いてないんじゃないですかね?下手にきちんと扱い得る潜在能力があるだけに、却って泥沼化しそうな気がするんですけど。

                なにが「下手」なのか、「泥沼化」とは具体的にどういうことかが分からないのですが、EUC-JP や Shift_JIS においては偶然バイト数とカラム数が (JIS X 0208 について) 一致するという幸運に恵まれてきたわけですが、そういう幸運に頼ることのできない言語があり (タイ語など; 0 カラムの文字がありますが、それらを 0 バイトにすることはできません)、どうせ「きちんと扱」う必要が出てきます。

                親コメント
              • by Anonymous Coward
                話がそれてますが、

                >Backspace キーを押したときにシェルが内部バッファから何バイト削除しないといけないかという話ですので、

                UIに関しては「1文字削除」で問題ないでしょう。
                現在の2バイトの日本語文字も、ちゃんと対応してない環境では2回BackSpaceを押さないといけないことがありますが、
                そのような動作を本来望んでいるユーザーはいないでしょう。
                まして「UTF-8でもBackSpaceは1バイト削除」なんて考えられません。

                ただ、「Unicodeの1文字」が「当該スクリプトの削除単位として望ましい1文字」であるかどうかは別ですが。
                ともかく、単純なバイト数より上のレイヤ
              • Re:BiDi (スコア:2, 興味深い)

                by kubota (64) on 2002年10月24日 19時47分 (#189118) ホームページ 日記
                全角文字をどうするか、BiDiをどうするか、とかいってなかなかモデルが決まらな いことがまさに「泥沼化」なのでは。

                なるほど。そうですね。

                が、これは Unicode のせいではありません。現実に使われている文字が (全角はさておき) BiDi であったり結合文字であったりするので、 Unicode を使おうと、ISO-2022 や TRON コードなど別の文字コードを使おうと、 文字コードの側でそれをなかったことにすることはできません。

                まあ、全部いっぺんにつめこむ「だけ」なら、できると思います。 問題は、各々の言語圏で従来まで使われてきた慣例どうしの擦り合わせでしょう。 誰がどこまで妥協すべきか。

                親コメント
    • by Anonymous Coward
      >全角文字を横切るようなカーソル移動コントロールコードの動作について、文字単位にすべきか、カラム単位にすべきか

      >ぼくが知る限りありとあらゆる日本語ターミナルが「カラム単位」の動作をしますが、それは「文字単位」であるべきだ、というのが彼の論旨です。
  • Xだけなら (スコア:2, 参考になる)

    by unpush (1574) on 2002年10月23日 9時36分 (#188075)
    Linux で複数の XFree ローカルユーザー [internet.com]
    こういうの出来てたようです。

    私はデュアルディスプレイで止めて置きましたが(マシンを共有する彼女がいないもので)
    --
    unpush] $ /.
  • 「3270化」の文言を見た時はドキッとしましたが、タレコミ文をよくよく読んで安心しました。(…なんでビクついたんだろうか…)
    確かに教育の現場とかには使いでがありそうですね。

    私はそのような教育を受けたことがないのでよく分からないのですが、テレビなどで取り上げられている「IT教育」(笑)の現場では二人に一台とかってのが多いような感じがします。
    で、アレって効率が悪かろーなーと思ってるのですが、この仕組みがうまく動けば多少はコスト削減出来そうですね。

    将来的にはCPU自体も多重化しそうな気もしますし、有り余るCPUパワーの有効利用としては有望かも。

    でも、各ユーザごとに仮装マシン上にWin系OSを載っけてってコトになったら、逆にやたらとマシンパワーを喰っちゃうのでそのために高価なマシンを買ってって、アホなことになるか?(笑)
    --
    -+- 想像力を超え「創造力」をも凌駕する、それが『妄想力』!! -+-
    • by Quo Vadis (10810) on 2002年10月23日 2時08分 (#188021)
      テレビなどで取り上げられている「IT教育」(笑)の現場では二人に一台とかってのが多いような感じがします。
      で、アレって効率が悪かろーなーと思ってるのですが、
      何を言うのですか。子供の頃からペアプログラミングに慣れさせ、底辺からXPの普及を図ろうという、深遠で有意義な計画なのです!

      # 書いててむなしくなったけどID
      親コメント
      • by G7 (3009) on 2002年10月24日 22時41分 (#189209)
        >子供の頃からペアプログラミングに慣れさせ

        同一のキーボードや画面を使いまわすという貧乏臭さ(笑)がペアプロの特徴です。
        それを阻害(ぉ)するマルチキーボード環境はペアプロには不要っす!!

        #画面配色やエディタやキーバインドすら好みのものを使えないなんて、ペアプロって大丈夫なのか?と心配だからG7
        親コメント
      • by Anonymous Coward
        おやつは500円までで、バナナはおやつに入らないんですね?
    • > 「3270化」の文言を見た時はドキッとしましたが、

      端末の論理デバイス化を進めてVTAMを…

      > (…なんでビクついたんだろうか…)

      年齢って奴では :)
      --
      みんつ
      親コメント
  • by pantora (11989) on 2002年10月23日 8時11分 (#188052)
    と、どうやってホットスワップさせるんじゃろ?
    普通のマシンだとグラフィックボードの
    チップFANに手が絡まるとか。
    高温になったチップをさわってやけどするとか。
    かなりリスクあると思うんだが。。
    --
    PCにECC Registeredメモリの利用を推奨します。
    • by nackey (3237) on 2002年10月23日 11時09分 (#188135)
      DELLの8450 [dell.com]のように、機種によってはホットスワップ可能なPCIバスなんてのもあります。
      もちろん、こっちはハードウェア的にホットスワップ可能なだけで、実際に抜き差しするためにはOS側の支援はきっと必要なんでしょうけど。
      親コメント
    • by Anonymous Coward on 2002年10月23日 8時22分 (#188054)

      ホットプラグといっても稼働中のものをそのまんま引き抜くんではなくて、
      RAIDのホットスワップと同様にカードへの電源供給を止めて機能を停止させて(場合によっては冷えるまで待って)から交換という形です。

      PCIやその延長であるAGPについては各スロットごとに供給有無を決められたはず(未確認)なので、必要性はともかく「可能」ということでしょう。

      親コメント
      • by Anonymous Coward
        > RAIDのホットスワップと同様にカードへの電源供給を止めて機能を停止させて(場合によっては冷えるまで待って)から交換

        どこが同様?、うちのはArrayのHDDは稼動中に引きぬいて交換するよ? と思ったのは私だけか。
        #動揺を隠せないのでAC
        • たとえばAdaptec AAA-131はディスクを停止してから数十秒でディスクを交換しやがれっていう
          アレイアダプタですので、同様ではないと断言もできないように思いますが、
          これらをホットスワップと称するのは抵抗有りですね。

          ホットスワップというからには、システムの動作なんぞは知ったことではなく
          好きなときにほいほい抜き差しできるべきです。
          ハイエンドサーバ用のマザーボードには本当にホットスワップ可能なPCIスロットが
          ぶら下がっていたりするようですが。

          #AdaptecのUW-SCSIケーブル目当てでAAA-131をジャンクで買ったのでID
          親コメント
          • >ハイエンドサーバ用のマザーボードには本当にホットスワップ可能なPCIスロットがぶら下がっていたりするようですが。

            これって、PCIカードの留め具が電源供給ON/OFFになってるんで
            (即時電源オフとはいえ)AAA-131とあんまり条件変わらん気が。
          • > ハイエンドサーバ用のマザーボードには本当にホットスワップ可能なPCIスロットが
            > ぶら下がっていたりするようですが。

            電気的に・・・・でしょ?
            OSがパニくりますよー、ホントにぶち抜いたら。
            IBMの技術で将来的には、自律できるようになるでしょうかねぇ?
    • 確か、「ノートPCでマルチディスプレイ」って触れ込みで、PCカード型グラフィックボードとかがあったはず。

      USBとかでも可能なんじゃないでしょうか。
      親コメント
  • by TxG (7966) on 2002年10月23日 9時52分 (#188084)
    オフィスの中にはPCが一台。それをみんなで共有、っていう太古のスタイルに戻るんでしょうか(笑)
typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...