Source Physical Files vs. the IFS: Two Ways IBM i Stores Your Code
IBM i developers today work with source code in two fundamentally different storage models, and knowing both — along with why the industry is steadily shifting from one to the other — is essential context before writing any RPG.
The traditional model is the source physical file, a specialized type of database file where individual pieces of source code are stored as members. Each member holds one piece of source — an RPG program, a CL program, a physical or logical file definition — organized under a shared file name inside a library. This model has been part of the platform since its earliest days, and countless production shops still store their source this way.
The newer model is the Integrated File System, or IFS — a hierarchical, directory-based file system that looks and behaves much like what you'd find on Linux or Windows. Source lives in ordinary stream files organized into folders and subfolders, addressed with familiar slash-delimited paths rather than library and member names.
The shift toward IFS-based source isn't just a stylistic preference. It's driven by real, practical advantages. Git and other modern version control systems work naturally with directory-based file structures but awkwardly, at best, with source physical files. Continuous integration and deployment pipelines, code review tooling, and modern editors like RDi and VS Code all assume a file-and-directory model. As IBM i shops modernize their development practices, moving source into the IFS is frequently one of the first infrastructure changes they make.
That doesn't make source physical files obsolete or unimportant to understand. Plenty of production applications — including large, well-maintained ones — still store their source in members, and a developer who only understands the IFS will be lost the first time they need to work in one of those shops. The two models coexist across the industry, and fluency in both is simply part of being effective on this platform.
The practical takeaway is straightforward: know how to locate and browse source in a source physical file using tools like PDM, and know how to navigate and work with source in the IFS using RDi or command-line tools. Which one a given shop uses tells you something about where they are in their modernization journey — and either way, you'll need to be comfortable working in it.
This lesson is Lesson 3 of IBM i Platform Foundations in IBM i ILE RPG Mastery, building the platform fluency that makes every later lesson on modern ILE RPG development land with real context.