タグ

unixに関するy_uukiのブックマーク (79)

  • MINIXの30年の歴史から学んだこと

    (文書はAndrew S. Tanenbaum教授の許可をいただいて島慶一が翻訳しました。) MINIXの30年の歴史から学んだこと (原題: Lessons learned from 30 years of Minix) 著者: Andrew S. Tanenbaum (収録: Communications of the ACM, Vol. 59 No. 3, March 2016, Pages 70-78) Linuxのことはみなさんよくご存知だと思いますが、その直接の祖先であるMINIXも齢三十を迎え、古参のソフトウェアとしてはまだまだ元気にやっています。MINIXの生い立ち、またMINIXやLinuxの始まりの物語はあまり知られておらず、だからこそMINIXの開発から多少なりとも学ぶべきことがあるのではないかと思うのです。これからお話しすることには、オペレーティングシステム特有の

    y_uuki
    y_uuki 2018/04/07
  • What is the difference between 'env' and 'printenv'?

    Are there any historical reasons for there being two commands instead of one? There was, just history manner. History Bill Joy wrote the first version of printenv command in 1979 for BSD. UNIX System III introduced env command in 1980. GNU followed UNIX System's env in 1986. BSD followed GNU/UNIX System's env in 1988. MINIX followed BSD's printenv in 1988. GNU followed MINX/BSD's printenv in 1989.

    What is the difference between 'env' and 'printenv'?
    y_uuki
    y_uuki 2017/07/15
  • UNIXという考え方読んだ - はこべにっき ♨

    誕生日に id:aereal さんに頂いた。ありがとうございます! UNIXという考え方―その設計思想と哲学 作者: Mike Gancarz,芳尾桂出版社/メーカー: オーム社発売日: 2001/02メディア: 単行購入: 40人 クリック: 498回この商品を含むブログ (141件) を見る たいへん有名な。原著は1994年に書かれていて、古典という感じ。 大きな一枚岩のソフトウェアよりも、cat、sort、uniq、sedやawkのような小さくて便利なツールを組み合わせることが好まれる。UNIXの世界には、こういった、UNIX開発者やユーザがが大事にしている哲学があり、そのおかげで、このが書かれた1994年、そして現代においてもUNIXが広く使われることになった。このでは、そういったUNIXの考え方のエッセンスの部分を9つの定理にまとめてとして詳しく教えてくれる。 スモール

    UNIXという考え方読んだ - はこべにっき ♨
    y_uuki
    y_uuki 2017/06/26
  • UNIXプログラミング環境 - asciidwango

    カーニハンとパイクによるUNIX入門書の名著。 その哲学も学びながら、UNIXを使いこなすために必要な知識を解説します。使い方を紹介する入門書ではありませんが、書の内容はUNIX環境のより深い部分を知ることができます。 Brian Kernighan, Rob Pike著、石田晴久 監訳、野中浩一 訳 定価: 3,456円 (体3,200円) 発売日:2017年5月31日 形態:A5(480ページ) ISBN:978-4-04-893057-4 Amazonで購入する サポート/追加情報 ◆UNIXのプログラミング哲学を学ぶ 「書の目的は、このUNIXのプログラミング哲学を知ってもらうことにある。UNIXシステムとそのコンポーネントをうまく使うためには、プログラムの使い方だけではなくそれをどうやって環境に合わせるかを理解しなくてはならない。」(書「はじめに」より) 基的な使い方か

    UNIXプログラミング環境 - asciidwango
    y_uuki
    y_uuki 2017/05/16
  • Unix の歴史と思想

    これは、自分がプログラミングを始めた頃に読みたかった(読むべきだった)というつもりの文章である。 Unix の歴史Linux 登場までの歴史を簡単にまとめた。省いているところも多い。 Unix の誕生ベル研究所の Ken Tompson が、1969年に開発したゲーム用プラットフォームが起源である。当時はメインフレームで動く TSS が実験されていた (Multics) が、大規模で複雑なプロジェクトだった。 ベル研究所は Multics プロジェクトから脱退したが、彼らは対話的コンピューティングを必要としていた。その後ゲーム開発を可能にするプログラム(=カーネル)が生み出された。これが Unix の元となった。Unix の語源は、Multics (Multiplexed information and computer system) を意識した UNiplexed Informatio

    y_uuki
    y_uuki 2017/05/04
  • http://2ndscale.com/rtomayko/2009/unicorn-is-unix

  • 論文紹介: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 - みずぴー日記

    ICSE 2016勉強会に参加するために論文リストを確認していたら、40年間のC言語のプラクティスの変遷を追った論文がおもしろかったので紹介する。 対象の論文 論文: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 論文中で使われれたデータ: https://github.com/dspinellis/unix-history-repo 要約 過去40年間のUnixのソースコードを分析し、コーディングスタイルの変化を調査した。その結果、以下のことが分かった。 新しい言語機能は価値のあるものならば採用される レジスタ割り当てをコンパイラに任せるようになる スペースをどこにいれるかなどのコードの書き方が統一されていく 分析対象 1972年以降にリリースされた計66個

    論文紹介: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 - みずぴー日記
    y_uuki
    y_uuki 2016/06/08
    おもしろい
  • https://dl.acm.org/doi/10.1145/361011.361061

  • Unix考古学 Truth of the Legend - asciidwango

    Unix考古学 Truth of the Legend 今日のITを語るうえで欠かせないUnixがどのように生まれ、どのように発展してきたのか。数々の伝説に彩られたUnixの真実を探ります。 藤田昭人 著 定価: 2,808円 (体2,600円) 発売日:2016年4月28日 形態:B5変形(272ページ) ISBN:978-4-04-893050-5 Amazonで購入する サポート/追加情報 ◆そこにはいつもUnixがあった C言語、インターネット、オープンソースなど、今日の情報社会を支える基盤技術の成立には、Unixの存在が欠かせません。Unixの開発はどのように行われたのでしょうか。 書は、社会情勢や技術動向も確認しながら、Unix開発の歴史を追いかけていきます。仮想記憶に代表されるOS研究の成果がどのように反映されていったのか、プログラミング言語Cがどのような経緯で開発された

    Unix考古学 Truth of the Legend - asciidwango
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • Elastic tabstops - a better way to indent and align code

    Intro - the status quo sucks Since the days of the character mapped display, programmers have argued over whether tabs or spaces should be used to line up text. While both strategies can be used if all of a project's programmers can agree on how many spaces wide a tab should be, experience has taught us that this is not always the case. Even if all of the programmers working on a project are dilig

  • UNIX/Linux互換OSをゼロから作った話 - Qiita

    こんにちはredcap97です。 私は、UNIX互換OSをゼロから作っています。 ある程度動くようになったので紹介したいと思います。 デモ 現在、QEMUの上で動作するようになっています。CPUはx86ではなくARMを対象に作っています。シェルと基的なコマンドが動作するようになっていて、リダイレクトやパイプも利用できます。 Dockerを使うと簡単にOSを動かすことができます。 概要 33のシステムコールを実装している システムコールはLinuxと互換性がある シェルはDashが利用できる Coreutilsのコマンドが使える libcはmusl libcを使用している ファイルシステムはMinix File Systemを実装している 以上です。 私は実装がとても遅いので、ここまで作るのに2年ぐらいかかっています。 Linusの偉大さを肌で感じなら、これからもノロノロと作っていきたいと

    UNIX/Linux互換OSをゼロから作った話 - Qiita
    y_uuki
    y_uuki 2015/12/20
    すごい
  • Goでフィルタコマンドを怠惰に書く - Qiita

    この記事は、2015年の Go その3 Advent Calendar の4日目の記事です。 最近、Goでサーバ管理用のコマンドばかり書いています。実際Goは、管理用ツールを作るのにとても便利です。 すべて1バイナリにstaticリンクしてくれるし、クロスコンパイラも完備なので、手元ビルドしたものをサーバにscpするだけで動きます。 サーバ管理者にあれやこれやとビルド環境とかライブラリとか、インストールのお伺いを立てる必要もありません。 管理者に黙って勝手ツールを使い放題ですね(ぇ というわけで、皆もっとGoでコマンドを実装しましょう! フィルタコマンドこそが言語の優劣を決する コマンドラインのツールといえばやはりフィルタコマンドでしょう。 ご存知の通り、フィルタコマンドとは標準入力(STDIN)から何かを受け取って結果を標準出力(STDOUT)に書き出すコマンドの総称です。grep とか

    Goでフィルタコマンドを怠惰に書く - Qiita
  • パイプとフィルタ ~ソフトウェア工学における有用なアーキテクチャ~ | POSTD

    パイプライン は、最近のソフトウェアエンジニアリングにおいて、非常に便利な(そして驚くほど活用されていない)アーキテクチャパターンです。ソフトウェアでデータの流れを制御するためにパイプとフィルタを用いる考え方は、最初のUNIXシェルが作られた1970年代からあります。もしターミナルエミュレータでパイプ” | ”を使ったことがあるなら、”パイプとフィルタ”を活用できていることになります。以下の例を見てみましょう。 cat /usr/share/dict/words | # Read in the system's dictionary. grep purple | # Find words containing 'purple' awk '{print length($1), $1}' | # Count the letters in each word sort -n | # Sort l

    パイプとフィルタ ~ソフトウェア工学における有用なアーキテクチャ~ | POSTD
    y_uuki
    y_uuki 2015/12/01
  • GitHub - koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts
  • 2015年Webサーバアーキテクチャ序論 - ゆううきブログ

    2023年03月31日追記:この記事を基に、@sadnessOjisanさんより、コードレベルにより踏み込んだ、かつ、グリーンスレッドベースの新しいWebサーバアーキテクチャも含めて整理された記事 Webサーバーアーキテクチャ進化論2023 | blog.ojisan.io が公開されました。 主に新卒のWebエンジニア向けに、古典的なWebサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介します。 この辺りの話題がWeb界隈で流行っていたのは数年以上前というイメージですが、Webサービスは相変わらずWebサーバの上で動いているので、流行り廃り関係なく学ぶべき内容だと思っています。 また、HTTP/2がいよいよRFC化し、既にh2oやtrusterdなどのHTTP/2のサーバ実装があり、今後Webサーバアーキテクチャを再訪することが増えるような気がしています。 ところが、We

    2015年Webサーバアーキテクチャ序論 - ゆううきブログ
    y_uuki
    y_uuki 2015/05/28
    若者向けです
  • 【翻訳】Web世代のデベロッパーのためのmake - MOL

    Original:Make for the Web Generation (2015-02-28)by Casper Beyer イントロ JavaScriptの普及に伴いビルドツールが盛んだ。人気なものをいくつか挙げれば、grunt、gulp、slush、broccoliやbrunchなどがあるが、結局、名前をつけただけにすぎない。 多かれ少なかれ、これらのツールはファイルコピーからzipファイル作成のようなシンプルなタスク処理でさえ、すべてプラグインに依存しているので、それらのタスクを実行するためにプラグインを必要とするだろう。 これらのツールは理想論的には大きな柔軟性をもたらすものとされているが、実際はUNIXのエコシステムをただ複製しているだけにすぎない。このために君のプロジェクトは早々に、大きな開発依存性のバンドルを持つことであろう、そして、やっているタスクは単なる普通のコピー、

    【翻訳】Web世代のデベロッパーのためのmake - MOL
  • 500マイル以上離れた場所にメールが送れないのだが

    http://web.mit.edu/jemorris/humor/500-miles From: Trey Harris <trey@sage.org> 今から私が書く話は、起こりようのない問題についてだ。この話を広く一般に公開してしまうのは惜しい。というのも、いい酒の話のネタになるからだ。この物語は、退屈な詳細や問題を隠すために、多少事実を変えていて、物語を面白く脚色している。 数年前、私はキャンパスのメールシステムを保守する仕事をしていて、統計学部の学部長から電話を受けた。 「大学の外にメールを送るのに不具合が発生しているのだが」 「どんな問題でしょう?」と私はたずねた。 「500マイル以上メールを送れないのだよ」と学部長は説明した。 私はラテを吹き出した。「何だって?」 「ここから500マイル以上離れた場所にメールを送信できないのだよ」と学部長は繰り返した。「実際は、もう少しあるの

  • Unix philosophy - Wikipedia

    Ken Thompson and Dennis Ritchie, key proponents of the Unix philosophy The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. It is based on the experience of leading developers of the Unix operating system. Early Unix developers were important in bringing the concepts of modularity and reusability into

    Unix philosophy - Wikipedia
    y_uuki
    y_uuki 2015/03/20
  • GitHub - Soulou/curl-unix-socket: Run HTTP requests over UNIX socket

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - Soulou/curl-unix-socket: Run HTTP requests over UNIX socket