〜まずは構造と“考え方の違い”を理解する〜
■ この記事で分かること
✔ AS400のざっくりした構造
✔ Linuxとの違い(重要)
✔ プログラムがどう動くのか(流れ)
■ はじめに
LinuxやWeb系の開発を経験してきて、
AS400(IBM i)に触れたとき、最初にでてくる違和感はこれです。
- ディレクトリ構造じゃない?
- DBってどこにあるの?
- 同じ名前なのに見つからない?
- なにがどこにあるのかわからない
👉 独特の環境なので混乱する最初のポイント
この記事では
**「システム開発する上で何がどう違うのか」**にフォーカスして整理します。
■ AS400の基本構造

ざっくり分けるとこうなります👇
例:慣習としてライブラリIDはうしろにLIBを付与することがおおい(ライブラリのこと)
[ソース] ISRCLIB
[DB] IDBLIB
[プログラム] IOBJLIB
[外部連携] IFS
■ ポイント:ライブラリは役割ごとに分ける
AS400では通例として、用途ごとにライブラリを分けて管理します。
ソース用ライブラリ → ISRCLIB
DB(データ)用ライブラリ → IDBLIB
プログラム用ライブラリ → IOBJLIB
✔ なぜ分けるのか?
① 管理しやすい
👉 ソース・データ・プログラムを切り分けて扱える
② 環境分離がしやすい
DEV_***
PRD_***
③ LIBL(探索順)と相性がいい
👉 どのプログラム・データを使うか制御しやすい
■ AS400の開発〜実行の流れ(重要)
① ソース作成(ISRCLIB)
↓
② コンパイル
↓
③ プログラム生成(IOBJLIB)
↓
④ 実行(LIBLで探索)
↓
⑤ DBアクセス(IDBLIB)
↓
⑥ ジョブ内で処理実行
■ ここが重要
✔ ソースと実行体は別物
✔ 実行時はLIBL(探索順)で決まる
👉
「どこにあるか」ではなく
「どの順番で探すか」で動く
■ Linuxの構造(比較)

Linuxはシンプルです👇
/home
/var
/etc
/bin
👉 すべてはファイルとして管理
■ Linuxの開発〜実行の流れ
① ソース作成
↓
② ビルド or スクリプト
↓
③ 実行(パス指定)
↓
④ DB接続
↓
⑤ プロセスとして実行
例:
./app
■ AS400とLinuxの違い(核心)
◆ 違い①:管理単位
- Linux → ファイル
- AS400 → オブジェクト
👉
Linux:ファイルを置く世界
AS400:オブジェクトを管理する世界
◆ 違い②:実行方法
- Linux → パス指定
- AS400 → LIBLで探索
👉
同じ名前でも結果が変わる
◆ 違い③:DB
- Linux → 外部サービス
- AS400 → OS内蔵
👉
AS400はDB込みのOS
◆ 違い④:実行単位
- Linux → プロセス
- AS400 → ジョブ
■ なぜ分かりにくいのか
理由はシンプルです👇
👉 Linuxの常識が通用しない
特にこの2つ:
- パスではなく「探索順」で動く(LIBL)
- ファイルではなく「オブジェクト」で管理される
■ まとめ
👉
AS400は
「ファイルシステム」ではなく
「オブジェクト管理システム」
最初はクセが強いですが、
慣れると一貫性があります。
■ あるある
- プログラムあるのに動かない
→ LIBLにない - 更新したのに反映されない
→ 別ライブラリ見てる - 処理が止まる
→ ロック
