タグ

OSとunixに関するakaneharaのブックマーク (5)

  • シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

    はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シェルスクリプト特有の問題、シグナルやトラップ、サブシェルや子プロセスの問題、さらには特定のシェル固有の仕様やバグなどさまざまな問題に対処する必要があり大変です。独自実装の例では古いロックファイルが残ってしまい、それをいつどのタイミングで片付ければ安全なのか?

    シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
  • 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) を移植した話 - 豆腐の豆腐和え
  • xv6 - Wikipedia

    xv6は、ANSI Cによる、Sixth Edition Unixのマルチプロセッサx86システムへの再実装である。xv6はMITにおけるオペレーティングシステムエンジニアリング (6.828) コースにて、教育を目的として使われている。 LinuxやBSDとは異なり、xv6は1セメスターで学習するのに十分なほどシンプルであり、Unixの重要な概念と構造を含んでいる [1]。 このコースでは、オリジナルのV6のコードを学習するのではなく、xv6を使う。それは、PDP-11マシンは簡単には手に入らないし、オリジナルのV6は非常に古いANSI C以前のC言語で書かれているためである。

    xv6 - Wikipedia
  • 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
  • UNIX/Linux 環境でのコマンドライン操作に慣れる…前の基礎知識 - Qiita

    前置き このテキストは「格的にターミナルにこもって作業をはじめる前にとりあえず知っておいた方が良いこと」をまとめたものです.情報系の研究室に配属されたばかりの新4年生,というかなり絞られた対象を想定読者にしているため,一部偏った記述があるかもしれません.レベル感としては「ls とか cd が何をするコマンドなのかは分かるし,C のプログラムをターミナルから emacs を叩いて書いたこともある.標準入力とかパイプとか言われれば使えるような気がする.が,複雑なコマンドを書かれるとよく分からないし,ターミナルの中で生活しているわけではない」…くらいを想定しています. 参考文献の列挙など,今後加筆・修正をおこなう可能性は高いです.誤りがあればコメント欄などでご指摘いただけると助かります. はじめに コマンド とは,いわゆる黒い画面で打ち込まれるアレのことです.たとえば学生実験などで触ってきた

    UNIX/Linux 環境でのコマンドライン操作に慣れる…前の基礎知識 - Qiita
  • 1