タグ

UNIXに関するrin51のブックマーク (28)

  • デザインの「悪い方がよい」原則 The Rise of "Worse is Better"

    デザインの「悪い方がよい」原則 The Rise of "Worse is Better" rpg@lucid.com 日語訳: daiti-m@is.aist-nara.ac.jp 私や Common Lisp と CLOS のデザイナーのほとんどは、MIT/Stanford 方式の設計に親しんでいる。 この方式の核心は、「正しい」やり方をせよ、という ことにつきる。デザイナーにとっては、以下の点をすべて正しく満たすことが 重要である。 簡潔性 デザインは実装と使用法の両面において単純でなければならない。 このとき、使用法が単純な方が、実装が単純なことより重要である。 正当性 デザインはすべての点において正しいものでなければならない。 誤りは許されない。 一貫性 デザインは一貫性を欠いたものであってはならない。一貫性を保つ ためには完全性は少しだけ犠牲にしてもよい。一貫性は 正当性と同

  • Home | Robert Nordier

    Overview I work for a US-based semiconductor company as lead software engineer responsible for C compiler development. The software made available here generally reflects an interest in C and UNIX, and the earlier history of computing. Classic BCPL BCPL was apparently first implemented by Martin Richards at MIT around 1967, and was a widely-used systems programming language during the 1970s. Howev

    rin51
    rin51 2020/11/26
    UNIX v7
  • PAMによる認証の仕組みを調べてみた - GeekFactory

    /etc/pam.d/system-authが気になって夜も眠れないので調べてみました。この設定ファイルはOS全体の認証*1を司るものです。コンソールでログインするとき、SSHで接続するとき、su(switch user)するときなど、多くの場面で利用されます。 /etc/pam.d以下にあるファイルは下記の書式になっています。 タイプ コントロールフラグ モジュール [オプション] タイプは4種類あります。 auth 認証を許可するかどうかです。ユーザが物であるかを、パスワードなどの入力によって確認をします。また認証方法を変更することも可能です。 account パスワードの有効期間や認証時の時間などでアカウントの有効性をチェックします。authとセットで使用されます。 password 認証方法を変更するメカニズムを提供します。通常はパスワードの設定/変更する場合です。 sessio

    PAMによる認証の仕組みを調べてみた - GeekFactory
  • UNIX Network Programming Source Code

    UNIX Network Programming, Volume 1, Third Edition Source Code Here's a GitHub repo containing the source code used in this book, with a few small updates to allow it to build on modern systems. https://github.com/unpbook/unpv13e The original tar file produced when the book was published is also available: Gzipped tar file (905630 bytes).

  • ネットワーク測定ツールiperfの使い方 - Qiita

    ストリームでベンチマークしよう! ネットワークの帯域を計測する場合、非常に便利なツールです。 UNIX系ではnetperfが有名かと思いますが、UDPの計測に関してはIperfの方が使いやすいと思います。 AWSなどでストリーミングサーバーを立ち上げた場合のトラフィックチェックなどにも使うことができます。 WindowsLinuxなど各種OSで使用できます。 ダウンロード NLANR/DAST : Iperf - The TCP/UDP Bandwidth Measurement Tool MacOS

    ネットワーク測定ツールiperfの使い方 - Qiita
  • Xv6を使ってみる – dyama's page

    Xv6 というのは、マサチューセッツ工科大の院生向け教材として、UNIX V6 を ANSI の C で書き直し、x86 CPU 向けに書き直したオペレーティング・システムです。 講義用の資料とソースコード、ビルド環境( MakeFile や QEMU オプション )などの一式が、無料で公開・配布されています。 詳しい情報は、下記のページを参考にしてください。 Xv6, a simple Unix-like teaching operating system xv6Wikipedia, the free encyclopedia なお、V6 を含む UNIX のソースコードは次の URL で BSD ライセンスのもと公開されています。 The Unix Tree クイック・スタート とりあえず動かしてみます。C の x86 コンパイラセットと、QEMU、Git 環境を整えます。最近の

    rin51
    rin51 2015/09/26
  • Xv6, a simple Unix-like teaching operating system

    The lastest version of xv6 is at: xv6 Introduction Xv6 is a teaching operating system developed in the summer of 2006 for MIT's operating systems course, 6.828: Operating System Engineering. We hope that xv6 will be useful in other courses too. This page collects resources to aid the use of xv6 in other courses, including a commentary on the source code itself. History and Background For many year

    rin51
    rin51 2015/09/26
  • xv6 を読む

    xv6.md 書いたもの xv6を学ぶ上での準備 https://gist.github.com/kaishuu0123/5235498#file-xv6_0-md 起動処理を読む(main.c の main() が呼ばれるまで) https://gist.github.com/kaishuu0123/5235498#file-xv6_1-md main() からmpmain()が呼ばれるまで https://gist.github.com/kaishuu0123/5235498#file-xv6_2-md xv6_0.md xv6 を学ぶ上での準備 xv6 って何? Unix v6 を x86 マルチプロセッサシステムに移植したxv6 講義資料はこれ: http://pdos.csail.mit.edu/6.828/2012/xv6.html なんでxv6を読むのか Linux からとっ

    xv6 を読む
    rin51
    rin51 2015/09/26
  • KMC Staff Blog:UNIX v6 を x86 マルチプロセッサシステムに移植した xv6

    2009年08月17日 UNIX v6 を x86 マルチプロセッサシステムに移植した xv6 MIT教育システムは当にすごいですね。 xv6 という、MIT の OS の講義のために、UNIX v6 を ANSI C で書き直して、x86 マルチプロセッサシステムに移植したものが存在することを、ひらさんの twitter で知りました。 wikipedia がよくまとまっています。Lions のように、読みやすくソースコードが編集された PDF へのリンクもあります。OS のソースコード全部で、たったの 75 ページと、非常にコンパクト。 http://en.wikipedia.org/wiki/Xv6 他にも MIT は、初級計算機科学の講義のために書かれた SICP (日語訳 : 計算機プログラムの構造と解釈)などでも非常に有名です。(こちらは Scheme でプログラムが

    rin51
    rin51 2015/09/26
  • xv6 - Plan9日記

    twitterでなぜだかUNIX V6ネタが盛り上がっていたのだが、たまたまググっていて見つけたのが、xv6。KMC Staff Blogでも取り上げられているので後追い(「UNIX v6 を x86 マルチプロセッサシステムに移植した xv6」)。 xv6(x86 version 6)は、MITのOperating Systems Engineering (6.828)という大学院生向け講義の教材として使うために、UNIX V6をANSI Cに書換え、x86に移植したOS。(reading listにはPlan9やrcが入っているねぇ。)Lions' Commentaryをpre K&RやPDP-11という時点で挫折した人は読んでみるとよい。やっぱりx86は嫌だとの強情な人は、2238クラブを要チェック。 公開されているコードは、1万行弱。仮想記憶を実装したり、スケジューラを改造したり、

    xv6 - Plan9日記
    rin51
    rin51 2015/09/26
  • The Unix and Internet Fundamentals HOWTO

    この文書では、PC 系のコンピュータや Unix ライクなオペレーティングシステム、 およびインターネットに関する実用的な基礎知識について、技術的な専門用語を 使わずに解説しています。 Table of Contents1. はじめに1.1. この文書の目的1.2. この文書の新バージョン1.3. フィードバックと訂正1.4. 関連リソース2. コンピュータ解剖学入門3. コンピュータの電源を入れた時に何が起こるのか?4. ログインしたときに何が起こるのか?5. シェルからプログラムを起動したとき何が起こるか?6. 入力デバイスや割り込みはどのように動作しているのか?7. コンピュータはどうやって複数のことを同時に行うのか?8. コンピュータはどうやって複数のプロセスが干渉しあわないようにしているのか?8.1. 仮想メモリ:簡易バージョン8.2. 仮想メモリ:詳細バージョン8.3. メモリ

    rin51
    rin51 2013/07/10
    > この文書では、PC 系のコンピュータや Unix ライクなオペレーティングシステム、 およびインターネットに関する実用的な基礎知識について、技術的な専門用語を 使わずに解説しています。
  • 暇な人はやってみるといいプログラミングの万能練習法

    練習メニューだけ考えてみました。どんな言語にでも使える万能メニューです。あたしゃ暇じゃないのでやりません。手順は以下の通り。 使いたい言語を選択する 書きたい POSIX のコマンドを1つ選択する man 等を読みつつ,仕様を頭に入れる 設計 コーディング テスト(納得いくまで 5 と 6 を往復する) C の場合はソースを読んで答合わせ(※正しい答とは限らない),C じゃない場合はもっといい実装はないか考える(これはちょっとキツいか) 終了(POSIX のコマンドがまだ残っている場合は,2 に戻る) 言語によっては簡単に終わっちゃったりするかもしれないけれど,なかなかいい練習メニューじゃないでしょうか。この練習メニューのいいところは,コーディングの練習になるのと当時に以下の特典が付くことです。

  • 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) - Glamenv-Septzen.net

    ホーム 検索 - ログイン | |  ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか

    rin51
    rin51 2012/12/11
    ぐう...APUE(詳解UNIXプログラミング)は読んだはずだが....
  • wrong, rogue and booklog

    積読・読書途中のに関する雑感や、オンライン上の面白コンテンツ、そして世の中の不合理に対する暴言を脊髄反射的に記す。 yutakashino (柏野 雄太) another weblog: kashino.exblog.jp Archive これはスゴイ。Unixの神達のインタビュー。デニス・リッチーとかケン・トンプソンとかブライアン・カーニハンとか、アルフレッド・エイホとか。彼らの中年時のインタビューである。 というか、リッチーとカーニハンが同じ色の同じようなセーターを着ているのがムチャクチャ気になるんだが。"C Programming Language"の表紙にあるロゴのCの色。 いやね、わかってますよ、オヤジの追憶だということは…。 AT&T Archives: The UNIX Operating System (by ATTTechChannel)

    wrong, rogue and booklog
    rin51
    rin51 2012/09/09
  • 「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは - ITジャーナリスト星暁雄の"情報論"ノート

    UNIXの歴史にはある大きな転換点があり、そこには「もう一つの未来」の可能性が開けていました。この転換期に起こった出来事は「UNIX戦争」として知られていますが、その背景に「UNIXをC++で分散OSに書き直す」という野心的な計画があったことは、今ではほとんど語られることはありません。 私は、この一連の出来事の時期に、『日経エレクトロニクス』の記者としてUNIXの動向を追っていました。当時の出来事の概要を、取材者の視点から書き記しておきたいと思います。多くの読者にとって初耳の情報も含まれていると思います。 一連の出来事の発端は1987年に発表された、Sun、AT&T、Microsoftによる統合UNIXの発表です。この発表の前夜がどういう時代だったか、という話がまず必要でしょう。 統合前夜 1980年代後半は、コンピュータの歴史でも重要な時期でした。この時期、32ビット・マイクロプロセッサ

    「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは - ITジャーナリスト星暁雄の"情報論"ノート
  • unix のシグナル処理あれこれ - Emacs ひきこもり生活

    Linux で signal + マルチスレッド、というとハンドラであれこれしようとすると、これはもう悪夢のように大変でひとつ signal 処理用スレッドを用意するのが定石のようです。 さてはて、そんなことで FreeBSD もそういうコードを書いて fork した子供を回収してやろうとしたところ、全く動いていません… orz これはどうしたんだろう??と調べた結果 空の signal handler を signal でしこんでやると動きだすことがわかりました。 はてさて、これはカーネルにどんな実装の差があるのでしょうか? そして、他のBSDではどうなっているのでしょうか? これが今回の疑問です。 実験 ひとまずこんなコードを使って引数に 0-3 を渡して実験します。中身はこんな感じのプログラムです。 #include <stdio.h> #include <signal.h> #in

    unix のシグナル処理あれこれ - Emacs ひきこもり生活
  • 書体関係 Wiki - unixuser200403-2

    Pango とその周辺 図?? に Pango におけるフォントの取り扱いに関するフローチャートを示す。この図の中で、実線はデータが直接やりとりされることを表している。また、点線はデータが間接的に (プロセス間通信を使って) やりとりされることを表している。そして線の色については、 ピンク フォントファミリ名による一覧の取得 緑 XLFD による一覧の取得 黄色 グリフのレンダリング 赤 フォントファイルへのアクセス という意味を表している。 ★「図? Pango におけるフォントの取り扱い」 gdk-font-diagram.eps.gz Pango は次の3つのフォントシステムを使用する。 FreeType2? Xft Xlib (コアフォントシステム) これらのフォントシステムのうち、実際にどれを使用するかを決定するのは GDK*7 である。 FreeType2? は、GDK が D

  • 初めてのOS source code reading(UNIX 6th source code readingのススメ) - やる気のないブログ(A boring diary)

    このエントリはhttp://d.hatena.ne.jp/takahirox/20120131/1328006885を和訳したものです。 はじめに 最近UNIX 6thのソースコードの読書メモを書き終えました。 みさなんにもUNIX 6thのソースコードを読むことをオススメします。 その理由をこのエントリで書いていきます。 まとめ UNIX 6thは初めてOSのソースコードを読む人にうってつけ! 今すぐ読み始めましょう! UNIX 6thのソースコードはこちらなどで読むことができます。 http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6 UNIX 6thのソースコードを読むことをオススメする理由 たったの10,000行 最近のLinuxカーネルのソースコードは100万行を超えています。全てを理解するのは至難の業です。 一方、UNIX 6thのカー

    初めてのOS source code reading(UNIX 6th source code readingのススメ) - やる気のないブログ(A boring diary)
    rin51
    rin51 2012/02/12
    > UNIX 6thのカーネルは、デバイスドライバを含んでも約10,000行です。それぞれのデバイスドライバも100行やそこらで書かれていて、ロジックもシンプルです。
  • Unix Programming Frequently Asked Questions 日本語訳 - Table of Contents

    このFAQについて 1 プロセス制御 1.1 新しいプロセスの生成: fork() 1.1.1 fork()は何をするのですか? 1.1.2 fork()とvfork()の違いは何ですか? 1.1.3 forkによる子プロセスを終了するときにexitよりも_exitを使うのはなぜですか? 1.2 環境変数 1.2.1 どうすればプログラム内で環境変数の値を取得・設定できますか? 1.2.2 どうすれば全ての環境変数を調べられますか? 1.3 どうすれば一秒未満のsleepができますか? 1.4 粒度の細かいalarm()はどうすれば得られますか? 1.5 どうすれば親プロセスと子プロセスの間で通信できますか? 1.6 どうすればゾンビプロセスができることを防ぐことができますか? 1.6.1 ゾンビプロセスってなんですか? 1.6.2 どうすればゾンビプロセスになることを防げますか? 1.7

  • UNIX 6th code reading - fork, exec, breakシステムコール - やる気のないブログ(A boring diary)

    はじめに 今回は12章の続きを追います。 システムコールのfork, exec, breakを見ていきます。 Lionsではexec, fork, breakの順に扱っていますが、fork, exec, breakの順に見ていきます。こちらの方が理解しやすいと思います。 fork & exec system call forkとexecシステムコールはセットで使用されることが多いです。まずはそれぞれの概要を見ていきます。 forkとは forkはプロセスを新たに生成するシステムコールです。内部でnewproc( )を呼び出します。 新しいプロセスはforkシステムコールを呼び出したプロセスのコピーと言えます。ただしpidは新しいid, ppidはforkシステムコールを呼び出したプロセスのpidになります。詳細はnewproc( )の1861-1869あたりや以前のエントリを参考にしてく

    UNIX 6th code reading - fork, exec, breakシステムコール - やる気のないブログ(A boring diary)