92747
##### 質問内容

以下の条件で操作するOSを作成したいのですがまずはどんな知識が必要なのでしょうか？  
沢山検索しましたが以下の事がわからないので知りたいです。

##### 知りたい事

linuxベースとはそもそもなにか？  
コーディング方法？  
使う言語アセンブラ？C言語？  
とりあえず画面にHello worldを表示させるまでよ手順

##### 調べたこと

PCが起動するまでの仕組みを調べました。  
bios,ブートローダ、カーネルについて調べました  
OSが起動するまでの順序等を調べました。

##### 条件

Raspberry Pi 4 model B で動作するlinux OS

##### 参考サイト

A: <https://kozos.jp/kozos/>  
B: <http://yuma.ohgami.jp/x86_64-Jisaku-OS/>  
起動の仕組み: <https://www.pmi-sfbac.org/linux-kernel/>  
linux: <https://ja.wikipedia.org/wiki/Linux>  
linux カーネル:
<https://ja.wikipedia.org/wiki/Linux%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB>  
linux カーネルダウンロード: <https://www.kernel.org/>  
PC起動: <https://behind-memoirs.hatenablog.com/entry/2017/11/14/021856>
CC BY-SA 4.0
2022-12-13T08:44:57.637
92744
2022-12-14T03:46:42.667
2022-12-14T03:46:42.667
55177
55177
question
raspberry-pi
ラズベリーパイで動作する自作OSを作るには何を勉強すべきなのか知りたい。
> linuxベース

[Unix-like](https://en.wikipedia.org/wiki/Unix-like) な OSには各種あり
(リンク内の図を参照のこと),  
[BSDの子孫](https://ja.wikipedia.org/wiki/BSD%E3%81%AE%E5%AD%90%E5%AD%AB) や
[System V](https://ja.wikipedia.org/wiki/UNIX_System_V)系がある中, どちらでもない OSとして
Linuxがあります。  
先の 各 familyにはいくつもの OSが存在してるけど, Linuxは単独

Linuxは 正しくは(OS全体ではなく) カーネルを指し, ディストリビューションとは(カーネル以外の)各種ソフトなど組み込んだもの  
例えば Debian系ディストリビューションと Red Hat系ディストリビューションでは, パッケージ管理ツールなど含め 各種の違いがあります

(伝わるかわからないが) メーカー製パソコン / 自作パソコン の違いで,
(ディストリビューションの違いは)自作パソコンの組み立て方(パーツの選択)の違い, という感じでしょうか？

参考:
[Linuxディストリビューション](https://ja.wikipedia.org/wiki/Linux%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3)

* * *

> コーディング方法？  
>  使う言語アセンブラ？C言語？

カーネルに機能を組み込むには, C言語 もしくは Rust言語 で行うことになります

そうではなく (自作パソコンで言うところの) 組み立てたいと言うことなら, まずは PCで行ってみるのがよいでしょう

  * [Linux From Scratch](https://www.linuxfromscratch.org/)

    * [LFSブック日本語版 (lfsbookja)](http://lfsbookja.osdn.jp/)
  * [Gentoo Linux](https://www.gentoo.org/)

後者は (目的が異なり) 組み立てではないが, ほぼ全てビルドするので雰囲気は伝わりやすいかも (学習できるかどうかは別として)
CC BY-SA 4.0
2022-12-13T10:17:25.080
92747
2022-12-13T10:17:25.080
43025
92744
answer