タグ

プログラミングとUnixに関するslay-tのブックマーク (13)

  • 名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita

    はじめに そりゃまあ 30 年も経てば古くなりますよ。「入門UNIXシェルプログラミング」は今もシェルスクリプトに関するオススメのとして名前が挙がる名著です。しかしこのは古いです。POSIX でシェルが標準化される以前ので、内容から判断するとおそらく 1990 年ぐらいの常識に基づいて書かれています。 古いから参考にならないと言うつもりはありません。しかしどれだけ優れたでも時間の流れには勝てません。良書であると思っているからこそ、古くなってしまった内容は訂正する必要があると考えています。なおシェルスクリプトに関する古いはこれだけではありません。オライリーから出版されているも古いばかりです。いつ頃に(原書が)書かれたなのかを確認した方が良いでしょう。 ということでレビューというていで、古くなってしまった内容の訂正を行いたいと思います。新しく「入門UNIXシェルプログラミング

    名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita
  • Linuxのターミナルをテレタイプで出力する実験 | inajobのいろいろレビュー

    LOGGING INTO LINUX WITH A 1930S TELETYPEから発見。画像もここから転載。 エスケープシーケンスというのはさかのぼればタイプライターの時代の産物です。 ということで、この記事ではLinuxのターミナル出力を物のタイプライターと接続するという実験を行っています。 過去の遺物であるこのテレタイプをASCIIコードに対応させたり、Linuxのttyをシリアル接続に流し込んだりする必要があるようです。 見慣れたログインシェルがじわじわとタイピングされて表示される様子は感慨深いものがあり、ついついじっと見入ってしまいます。

    Linuxのターミナルをテレタイプで出力する実験 | inajobのいろいろレビュー
  • プログラマが入門書の次に読めばよさげな書籍 - 覚書

    はじめに 記事は2010年10月に某所で書いた記事を2016/2/2に編集したものです。 プログラムの入門書を読んだ上でプログラムを書いた経験があるけれども、そこからステップアップするために何をしていいのかわからないという人向けのをいくつか紹介したいと思います。なるべく平易な文書で書いてあるものを選びました。ただし、筆者の趣味の問題で、Linux/UNIX関連のが多いです。 「これらを読むだけで凄腕エンジニアになれます」などという無責任なことは言わないですが、飛躍するための1ステップとしては十分役立つのではないかと思います。 珠玉のプログラミング コンピュータシステムを使って物事を解決しようとするとき、どんな状況でどのようなデータ構造、アルゴリズムを使うことによって、結果がどうなったかという面白いエッセイを掲載しています。データ構造やアルゴリズムを扱ったは数式がたくさん出てきて一目

    プログラマが入門書の次に読めばよさげな書籍 - 覚書
  • sudo su とかしてる人はだいたいおっさん

    sudo su と sudo -s はほぼ同じ。実行されるシェルが異なることがある。 sudo su - と sudo -i もほぼ同じ。環境変数のクリア的な意味だと sudo su - の方が強い。 以下は別に読まなくてもいい。 su 別のユーザーでシェルを実行するコマンド。自分は「す」とか「えすゆー」とかと呼んでる。 元は super user とか switch user とか substitute user の略だったらしい。 デフォルトでは root になるが、引数でユーザー名を指定するとそのユーザーになる。 新ユーザーのデフォルトのシェルとして設定されているシェルが実行される。 入力するパスワードは新ユーザーのパスワード。 ~% su Password: (rootのパスワード) root@hostname:/home/tmtms# id uid=0(root) gid=0(r

    sudo su とかしてる人はだいたいおっさん
  • anyenvをやめて、asdfに移行した - 半空洞男女関係

    Apple Siliconの載ったMacBookAirが届いた。せっかくの機会なのでdotfilesを整理したり、周辺環境を整備しているが、プログラミング環境を整備してくれるanyenvをやめて、asdfに移行した。 Start using asdf instead of anyenv · mactkg/dotfiles@94d515d · GitHub 同僚がanyenvの代わりにasdfを紹介していたのがきっかけでasdfを知ったのだが、asdfはshell scriptとして書かれていて、結構レスポンスがいい。anyenvは結構起動時間などに時間がかかっていて、微妙にストレスを感じていたので、asdfの軽さに満足している。 移行に関しては anyenv から asdf に移行した - a.out の記事を参考にした。この記事にあるように、あらゆるアプリケーションのバージョン切り替えを

    anyenvをやめて、asdfに移行した - 半空洞男女関係
  • CPU実験で自作CPUにUNIXライクOS (xv6) を移植した話 - 豆腐の豆腐和え

    今年のCPU実験では、有志からなる我らがX班が、おそらくCPU実験史上初である自作CPUへのOS (xv6) 移植に成功しました。コア係とコンパイラ係の面々がそれぞれまとめ記事を書いていたので、OS係から見たOS移植のまとめも書こうかなと思います。こんなことしてましたってことが伝わればいいなと思います。 この記事を読む後輩やらなんやらがいたら、ぜひ僕らがやったようなことはさっさとクリアしちゃって、さらにさらに面白いことをする踏み台にしていってほしいですね。 どなたが読んでもある程度概要が伝わるよう、まずCPU実験とは何かということをさらっと書いた後、実際にxv6を移植するにあたってやったことをまとめたいと思います。 CPU実験とは CPU実験は僕の学科(理学部情報科学科)で3年冬に行われる、半年間にわたる学科名物演習です。 最初の週で4~5人程度の班に分けられた後、それぞれの班でオリジナル

    CPU実験で自作CPUにUNIXライクOS (xv6) を移植した話 - 豆腐の豆腐和え
  • Unixデーモンの仕組み

    Home Subscribe Unixデーモンの仕組み 12 March 2015 おはこんばんちは!! 尾藤 a.k.a. BTO です。 みなさん、Unixデーモンよく使ってますよね。 Webエンジニアなら、Webサーバ、メールサーバ、DBサーバ、cronなどがよく使われるのではないでしょうか。 24時間365日黙々と働き続けるUnixデーモン達。 身近な存在だと思いますが、実はどういう仕組みで動いているのかご存じない方も多いのではないでしょうか。 先日、オトバンクでUnixデーモンの仕組みについて勉強会をやったので、その内容をまとめます。 デーモンとは では、デーモンとはいったい何なのでしょうか。 Unixライクシステムにおいて、バックグランドで動作して様々な処理を実行してくれるプロセスがデーモンです。 デーモンには明確な定義はありませんが、だいたい次のような条件を満たすプロセスが

    Unixデーモンの仕組み
  • fork()は失敗するんだぜ、覚えときな

    fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。

  • Talpa memorandum

    橘玲の『「読まなくてもいい」の読書案内』を読んだので、感想とメモをまとめておく。 この、タイトルは『「読まなくてもいい」の読書案内』だが、実際には「読まなくていい」はほとんど紹介されていない。紹介されているのは、当たり前の話かもしれないが読むべきだ。他の読書案内と異なっているのは、”こういうは読まなくて良い”と、ばっさり切り捨てているところ。読むべきか・読まなくてもよいかの基準は、20世紀後半に爆発的に進歩した科学研究の成果に置いている。著者は、この時期に起きた科学研究の大幅な進歩を”知のビッグバン”、”知のパラダイム転換”と呼び、これ以前に書かれたは(とりあえず)読む必要がないと言い切る。古いパラダイムで書かれたは捨てて、新しいパラダイムで書かれたを読もうという話だ。ちょっと乱暴な分け方ではあるが、1980年代に大学生だった私には案外納得できるものだった。学生時代に最

  • tmuxでコンソール共有が便利すぎる - くだらぬみちくさにっき ---- To waste one’s time on the road might be good, I think.

    「ふええプログラミング分からない><」とか「ふええコンパイルうまくいかない><」とか、 場合によっては環境に依存しそうな問題を友人から持ちかけられたことって多いとおもいます。 というかぼくは持ちかける側なのですが(´・ω・`) 普通は「いまPATHは〜で、これを実行するとこういう結果がでて...」みたいにSkypeでログを切り貼りしながら話を進めたりするんですが、これ結構心が折れる。「ここがおかしい」「ここってどこ!!」「(スクリーンショットを貼る)」みたいなこともよくあるし。 で、えりっくさんなりの解決策が1つ見つかったのでご紹介。 tmuxを使うことで、相談してきた相手の見ているコンソールをまんま自分の目の前に再現し、さらにそのまま相手の権限で操作を行うことができます(ちょっと危険)。 ちなみに学校やVPSのように外部からSSHアクセスできる環境が条件となります(ローカルのひとごめんね

    tmuxでコンソール共有が便利すぎる - くだらぬみちくさにっき ---- To waste one’s time on the road might be good, I think.
  • 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note

    日付型の変換処理 Date/Timestamp変換のまとめ - Yuta.Kikuchiの日記 10言語のプログラミング言語に対してそこそこの知識を保有している@yutakikucです。いろんなプログラミング言語を使用していると文法を覚えるのは大変ですよね。PHP書いている途中からJavaScriptの文法を誤って書き始めたり... それぞれの言語の文法の違いを事細かく覚える事は無理に近いです。今日はそんな各種言語仕様の記述で難解なDateTime/TimeStampについて紹介したいと思います。扱うのはWeb系のメジャープログラミング言語のSQL/C++/Java/JavaScript/Perl/PHP/Python/Rubyになります。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと

    誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note
  • デーモンについての覚書 - すがブロ

    ちょっと会社でデーモンとは、みたいのを話す機会があったので整理がてらメモ。当はコードも合わせて載せたかったけど、時間がなくて断念したw あやふやな部分もあるので識者の方にはぜひ訂正をお願いしたく……! デーモンとは? ぶっちゃけて言えば無限ループのプログラムなんだけど、詳しくは http://ja.wikipedia.org/wiki/デーモン_(ソフトウェア) とかを見ると良いだろう。 自分で作るのであればおおまかに以下の点を気をつければ良いかなぁと思う。 プロセスを端末から切り離す 入出力を一度閉じる(使うなら明示的にオープンしたものを使おう) SYSLOGなり何がしかの出力ファイルに動作を出力する SIGNALを受け取る PIDファイルを作る 厳密にやろうと思うとumaskを0にするだとか、'/'に移動するだとかもあったりするけど、ゆとりなのでプロセスから切り離すを含めdaemon

    デーモンについての覚書 - すがブロ
  • 親プロセスは2度死ぬ - デーモン化に使うダブルforkの謎 - シリコンの谷のゾンビ

    デーモンプロセスを作る場合には,教科書によく書かれている2度forkは不要ではないか? ということを以前の記事に書いた. [c][unix]UNIXネットワークプログラミングのお勉強 (2) デーモンの作り方 - 睡眠不足?! 確かにBSDのdaemon(3) のコードでは,forkは1回しか呼んでいない. 「きっとプレセスがセッションリーダだと不都合があるのだろう.でもなぜ?」 というのがopen questionだった. それに対する答えを「詳解UNIXプログラミング」[1] に見つけた. SVR4においては,この時点でforkを再度呼び,親を終了することを勧める人がいる. 2番目の子がデーモンとして動作する.これは,デーモンはセッションリーダではなく, SVR4の規則 (9.6節) から,セッションリーダでなければ制御端末を取得できない,ということを保証する. あるいは,制御端末を取

    親プロセスは2度死ぬ - デーモン化に使うダブルforkの謎 - シリコンの谷のゾンビ
    slay-t
    slay-t 2012/02/22
    オベンキョオベンキョ
  • 1