タグ付けされた質問 「operating-system」

オペレーティングシステム(OS)は、リソースのソフトウェア要求と利用可能なハードウェアの間の抽象的な層である役割を持つ基本的なソフトウェアであり、デバイス(他の基本的なタスクの中でも特に)入出力の管理、メモリの割り当て/割り当て解除、ファイルシステムコンピュータ)は行う必要があります。

25
ネストされたディレクトリを安全に作成するにはどうすればよいですか?
ファイルが書き込まれるディレクトリが存在するかどうかを確認し、存在しない場合はPythonを使用してディレクトリを作成する最もエレガントな方法は何ですか?これが私が試したものです: import os file_path = "/my/directory/filename.txt" directory = os.path.dirname(file_path) try: os.stat(directory) except: os.mkdir(directory) f = file(filename) どういうわけか、私は逃したos.path.exists(カンジャ、ブレア、ダグラスに感謝)。これは私が今持っているものです: def ensure_dir(file_path): directory = os.path.dirname(file_path) if not os.path.exists(directory): os.makedirs(directory) これを自動的に行う「オープン」のフラグはありますか?

30
プロセスとスレッドの違いは何ですか?
プロセスとスレッドの技術的な違いは何ですか? 「プロセス」という言葉が使いすぎて、ハードウェアとソフトウェアのスレッドもあるような気がします。Erlangのような言語での軽量プロセスはどうですか?ある用語を他の用語よりも使用する決定的な理由はありますか?


28
オペレーティングシステムの開発を始めるためのリソースにはどのようなものがありますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新することがありますので、Stack Overflowのトピックと。 5年前休業。 私が常にやりたかったことの1つは、独自のオペレーティングシステムを開発することです(LinuxやWindowsのように必ずしも派手ではありませんが、既に実行した単純なブートローダーより優れています)。 簡単な「Hello World」OSの作成を過去のものにするリソース/ガイドを見つけるのに苦労しています。 多くの人がおそらくLinuxやBSDを検討することを勧めるでしょう。しかし、そのようなシステムのコードベースは(おそらく)非常に大きいため、どこから始めればよいかわかりません。 助言がありますか? 更新:Googleを介してこの投稿にアクセスした人が簡単に利用できるように、ここにいくつかのOS開発リソースがあります。 独自のオペレーティングシステムを作成する(Adamに感謝) Linux From Scratch(ありがとうJohn) SharpOS(C#オペレーティングシステム)(lomaxxに感謝) Minix3およびMinix2(ありがとうMike) OS Dev Wikiとフォーラム(Steveに感謝) BonaFide(ありがとうSteve) ふすま(スティーブに感謝) 自分のおもちゃのUNIXクローンOSを作ろう(Steveに感謝) Broken Thorn OS開発シリーズ その他のリソース: MikeOSという素晴らしいリソースを見つけました。「MikeOSはシンプルなOSがどのように機能するかを示す学習ツールです。BIOSアクセスに16ビットのリアルモードを使用するため、複雑なドライバーを必要としません。」 2008年11月14日更新 Freebyteのガイド... OSKitやExOSライブラリなどのキットにリンクするフリーおよび非フリーのオペレーティングシステムにいくつかのリソースを見つけました。これらは、OS開発の開始に非常に役立つようです。 2009年2月23日更新 リック東京はこの質問でnanoosを推薦しました。NanoosはC ++で書かれたOSです。 2009年3月9日更新 Dinahは、意欲的なOS開発者に関するいくつかの有用なスタックオーバーフローの議論を提供しました。カスタムオペレーティングシステムの作成における障害は、OSの開発中に遭遇する可能性のある落とし穴について議論し、OS開発はより一般的な議論です。 2009年7月9日更新 LBは、OS開発を学ぶ学生向けに設計された教育用OS 、Pintos Projectへのリンクを提供しました。 2009年7月27日更新(引き続き強力に!) 23の講義を取り上げたバークレーのオンラインOSコースに偶然出会いました。 TOMOSはのフォークですMikeOS少しメモリマネージャとマウスのサポートが含まれています。MikeOSとして、それは教育プロジェクトになるように設計されています。NASMアセンブラーで書かれています。 2009年8月4日更新 スライドとその他の資料が、上記のバークレーのオンライン講義に沿っているのがわかりました。 2009年8月23日更新 stackoverflowでosdevとタグ付けされたすべての質問 OS / 161はcで記述されたアカデミックOSであり、シミュレートされたハードウェアで実行されます。このOSはナチョスで似ています。Novelocrat、ありがとう! …

20
プログラムでJavaのオペレーティングシステムを確認するにはどうすればよいですか?
Javaプログラムがプログラムで実行しているホストのオペレーティングシステムを確認したい(たとえば、WindowsプラットフォームかUnixプラットフォームかに基づいて、さまざまなプロパティをロードできるようにしたい)。100%の信頼性でこれを行う最も安全な方法は何ですか?

16
アプリケーションバイナリインターフェイス(ABI)とは何ですか?
私はABIが何であるかを明確に理解したことがありません。ウィキペディアの記事を紹介しないでください。理解できたらここまでそんなに長い投稿はしないでしょう。 これは、さまざまなインターフェイスに関する私の考え方です。 テレビのリモコンは、ユーザーとテレビの間のインターフェースです。これは既存のエンティティですが、それ自体では役に立ちません(機能を提供しません)。リモコンのこれらの各ボタンのすべての機能は、テレビに実装されています。 インターフェース:それは間の「既存のエンティティ」層であり、 functionalityかつconsumerその機能の。インターフェイス自体は何もしません。背後にある機能を呼び出すだけです。 ユーザーが誰であるかに応じて、さまざまなタイプのインターフェースがあります。 コマンドラインインターフェイス(CLI)コマンドは既存のエンティティであり、コンシューマがユーザーであり、機能は背後にあります。 functionality: 私たちがこのインターフェースを説明しているいくつかの目的を解決する私のソフトウェア機能。 existing entities: コマンド consumer: ユーザー グラフィカルユーザーインターフェイス(GUI)ウィンドウ、ボタンなどは既存のエンティティであり、コンシューマがユーザーであり、機能は背後にあります。 functionality: このインターフェイスについて説明している問題を解決するソフトウェア機能。 existing entities: ウィンドウ、ボタンなど consumer: ユーザー アプリケーションプログラミングインターフェイス(API)関数(またはより正確には)のインターフェイス(インターフェイスベースのプログラミングの場合)は既存のエンティティであり、コンシューマーはユーザーではなく別のプログラムであり、機能はこのレイヤーの背後にあります。 functionality: このインターフェイスについて説明している問題を解決するソフトウェア機能。 existing entities: 関数、インターフェイス(関数の配列)。 consumer: 別のプログラム/アプリケーション。 Application Binary Interface(ABI)ここからが私の問題の始まりです。 functionality: ??? existing entities: ??? consumer: ??? ソフトウェアをさまざまな言語で作成し、さまざまな種類のインターフェース(CLI、GUI、API)を提供しましたが、ABIを提供したことがあるかどうかはわかりません。 ウィキペディアは言う: ABIは次のような詳細をカバーします データ型、サイズ、および配置。 関数の引数の受け渡し方法と戻り値の取得方法を制御する呼び出し規約。 システムコール番号、およびアプリケーションがオペレーティングシステムに対してシステムコールを行う方法。 他のABIは次のような詳細を標準化します C ++名のマングリング、 例外の伝播、および …

4
プライベートバイト、仮想バイト、ワーキングセットとは何ですか?
perfmon windowsユーティリティを使用して、プロセスのメモリリークをデバッグしようとしています。 これは、perfmonが用語を説明する方法です。 ワーキングセットは、このプロセスのワーキングセットの現在のサイズ(バイト単位)です。ワーキングセットは、プロセス内のスレッドによって最近アクセスされたメモリページのセットです。コンピュータの空きメモリがしきい値を超えている場合、ページは使用されていなくてもプロセスのワーキングセットに残ります。空きメモリがしきい値を下回ると、ページはワーキングセットから削除されます。それらが必要な場合、メインメモリを離れる前に、ワーキングセットにソフトフォールトされます。 仮想バイトは、プロセスが使用している仮想アドレス空間の現在のサイズ(バイト単位)です。仮想アドレス空間の使用は、ディスクまたはメインメモリページの対応する使用を必ずしも意味しません。仮想空間は有限であり、プロセスはライブラリをロードする能力を制限する可能性があります。 Private Bytesは、このプロセスが割り当てた、他のプロセスと共有できないメモリの現在のサイズ(バイト単位)です。 これらは私が持っている質問です: 共有ライブラリが関与していないためプロセスにリークがあるかどうかを確認するために測定する必要があるのはプライベートバイトですか?リークが発生した場合、プロセス自体から発生しますか? プロセスによって消費されるメモリの合計はどれくらいですか?それは仮想バイトですか、それとも仮想バイトとワーキングセットの合計ですか? プライベートバイト、ワーキングセット、仮想バイトの間に何か関係がありますか? メモリ使用量をよりよく把握できる他のツールはありますか?

11
簡単に説明すると、ファイル記述子とは何ですか?
ウィキペディアのものと比較して、ファイル記述子のより単純化された記述は何でしょうか?なぜそれらが必要なのですか?たとえば、シェルプロセスを例に取って、それをどのように適用しますか? プロセステーブルに複数のファイル記述子が含まれていますか?はいの場合、なぜですか?

13
Windows、Mac OS X、Linuxはどの言語で書かれていますか?
私は、Windows、Mac OS X、Linuxがどのプログラミング言語で構成され、OSの各部分(つまり、カーネル、プラグインアーキテクチャ、GUIコンポーネントなど)にどの言語が使用されているのか、誰が知っているのかと思っていました。 それぞれに複数の言語があると思いますが、LinuxカーネルがCで記述されていることは明らかです。 Mac OS XにはNeXTから派生したAppleの言語であるため、Mac OS Xには多くのObjective-Cコードが含まれていると私は完全に推測しています。 Windowsには、C、C ++、Intelアセンブリが含まれていると聞きました。LinuxまたはMac OSにはアセンブリコードが含まれていますか? また、OSの一部をスクリプト化するためにOS開発者が使用するRuby、Pythonなどのスクリプト言語はありますか?OSのどの部分が各言語で記述されますか?

13
スレッド間で共有されるリソースは何ですか?
最近、インタビューでプロセスとスレッドの違いは何ですかと質問されました。本当に、私は答えを知りませんでした。私は少し考えて、非常に奇妙な答えを出しました。 スレッドは同じメモリを共有しますが、プロセスは共有しません。これに答えた後、インタビュアーは私に邪悪な笑顔を与え、私に次の質問をしました Q. プログラムが分割されるセグメントを知っていますか? 私の答え:はい(簡単なものだと思いました)スタック、データ、コード、ヒープ Q. では、スレッドを共有するセグメントを教えてください。 私はこれに答えることができず、それらすべてを言うことになりました。 プロセスとスレッドの違いについて、誰でも正確で印象的な答えを提示できますか?

26
その後、Context.startForegroundService()はService.startForeground()を呼び出しませんでした
使ってます ServiceAndroid O OSでClassをしています。 Serviceバックグラウンドで使用する予定です。 Androidのドキュメントと述べています アプリがAPIレベル26以上をターゲットにしている場合、アプリ自体がフォアグラウンドにない限り、システムはバックグラウンドサービスの使用または作成に制限を課します。アプリがフォアグラウンドサービスを作成する必要がある場合、アプリはを呼び出す必要がありますstartForegroundService()。 を使用するstartForegroundService()と、Serviceは次のエラーをスローします。 Context.startForegroundService() did not then call Service.startForeground() これの何が問題になっていますか?

3
オペレーティングシステムなしでプログラムを実行する方法
オペレーティングシステムを実行せずに、プログラムを単独でどのように実行しますか?コンピュータを起動時にロードして実行できるアセンブリプログラムを作成できますか?たとえば、フラッシュドライブからコンピュータを起動し、CPU上のプログラムを実行しますか?

6
Linuxが一体型カーネルと呼ばれるのはなぜですか?
Linuxは一体型のカーネルだと私は読んだ。モノリシックカーネルとは、完全なカーネルコードをコンパイルして実行可能ファイルにリンクすることを意味しますか? Linuxがモジュールをサポートできる場合、すべてのサブシステムをモジュールに分割し、必要に応じてそれらをロードしてみませんか?その場合、カーネルは最初にすべてのモジュールをロードする必要はなく、モジュール内の関数のインデックスを維持し、必要に応じてそれらをロードすることができます。


16
プリプロセッサディレクティブでOSを確認するにはどうすればよいですか?
コードがコンパイルされるオペレーティングシステムに基づいて、さまざまなことを行うためにコードが必要です。私はこのようなものを探しています: #ifdef OSisWindows // do Windows-specific stuff #else // do Unix-specific stuff #endif これを行う方法はありますか?同じことをするより良い方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.