私はアンドロイド携帯電話のカーネル開発に興味があります。私はアンドロイドカーネル開発についてインターネット上で検索し、Linuxマシン上でカーネルを構築する方法を知っているのは、カスタムカーネルを作成するためのツールの使い方だけですが、アンドロイドカーネルを作るためのコードを書く方法を知りたいのです。どのようにCプログラミングとALPで始める。私を案内してください。linuxを使ったAndroidカーネル開発
答えて
AndroidはLinuxカーネルを使用しているため、まずLinuxに精通している必要があります。
投稿から私はあなたがCプログラミング言語をあまり知らないと推測しています。カーネルの作業を始める前に、Cでアプリケーションを書くことができるはずです。アプリケーションを書くことができなければ、おそらくカーネルを理解できないからです。
C言語を学習するには、数十のリソースがありますので、Brian W. Kernighanの書籍「Cプログラミング言語」をお勧めします。 Denis M. Ritchie(Cの発明者)。
アプリケーションは、いわゆる「ユーザーモード」で動作し、カーネルによって仮想メモリにアクセスできます。アプリケーションが仮想空間にないメモリにアクセスしようとすると、カーネルはアボート信号を送信します。これにより、システムがクラッシュするのを防ぎます。カーネルはカーネルが「カーネルモード」で動作し、何か間違ったことが起きたときにシステム全体の停止から永続的なストレージの抹消などに至るまで、アドレス空間全体にアクセスできるため、カーネルではそうではありません。
最初にアプリケーションを書く方法を学んでください。ネイティブアプリケーションの場合は、「システムコール」について学習してカーネルが提供する機能を使用してみてください。この目的のために、私はMark Mitchelによる "Advanced Linux Programming"という本をお勧めします。そのウェブサイトはhttp://advancedlinuxprogramming.com/で自由にホストされています。あなたはここでいくつかの参照を見つけることができますhttps://en.wikibooks.org/wiki/The_Linux_Kernel。
Linuxカーネルが提供するCとサービスの両方に慣れている場合は、あなたがカーネルに潜入することを考え始めるよりも、非常に人気のある本はRobert Loveの "Linux kernel development"です。私はそれが非常に最新ではないと思うが、それはその主題に関連する主要なトピックをカバーすべきである、おそらくもっと最新のリソースがあるだろう。
これは長い旅であり、あなたが実際にそれを "ユーザー空間"で行うことができるかもしれないことに応じて、まずそれについて考えるべきです。
- 1. linuxカーネル開発
- 2. Linuxカーネル開発
- 3. Linuxカーネル開発を始めるにあたって
- 4. Linuxカーネル開発初心者向けエディタ
- 5. Linuxカーネルの開発とデバッグを開始するには?
- 6. 企業向けLinuxカーネル開発のためのGitワークフロー
- 7. Linuxカーネル開発のためのNetbeans/Eclipseの設定
- 8. カーネル開発
- 9. Linuxカーネル3.3 Android用アプリケーション
- 10. Android Linuxカーネルの詳細
- 11. EclipseでLinuxカーネル開発のためのasmヘッダディレクトリを含めるには?
- 12. Android開発ワークステーションの推奨Linuxディストリビューション
- 13. Monodevelop + LinuxとAndroid Xamarinの開発
- 14. Android Linuxカーネルのカーネルコマンドラインパラメータの取得
- 15. Linuxカーネルのモジュールをコンパイル中にエラーが発生しました
- 16. Linuxカーネル2.6.39.4をコンパイル中にエラーが発生しました
- 17. Linux GUI開発
- 18. AppceleratorとTitaniumを使ったAndroidモジュールの開発
- 19. 開発用Webサービスを使用したAndroidアプリケーションの開発
- 20. アームLinux sshd-telnetdカーネルおっとトラッキング
- 21. Linuxカーネルにエラーが発生しました
- 22. Linuxカーネル `min`マクロ
- 23. cleanup_module Linuxカーネル
- 24. Linuxカーネルのインストール
- 25. Linuxカーネルのlist.h
- 26. Linuxカーネル機能
- 27. Linuxカーネルのバディシステムアロケータ
- 28. Linuxカーネルのメジャーページフォルトハンドラ
- 29. ガットエラー:Linuxカーネル
- 30. Linuxカーネルでは
ありがとうございます。私は、メモリ管理ファイルの操作などを処理するポインタ構造のデータまでCプログラミングを知っています。しかし、私が言ったように私はサービスについて知らない。これはLinuxカーネル開発を開始するのに十分です –
私があなただったら私はCをマスターし、私があなたに示したリンクを見ます。少数のアプリケーションを書いて、それまで気づいたらカーネルについての本を手に入れ、理解していないことを常に調べます。また、カーネルの特定の部分を選択する必要があります。例えば、デバイスドライバやファイルシステムを作成したいですか?あなたには多くの要因があるので、あなたを導くことは非常に難しいです。 –
私を案内してくれてありがとう。 –