関数は、引数を変数とする自動の実行処理で、変数が変わると処理する内容が変わります。OSを作りたいなら、カーネルはLinuxカーネルを使って、ウィンドウシステムを独自に作ると良いでしょう。1つ1つ必要なメソッドを考え、処理を考え、フローチャートを書き、実行内容を作っていきます。入門としては、Delphi、PHP、C#、そしてWikipediaなどによくあるマクロを参考にし、オブジェクト指向やLispを考え学ぶのが効率的です。ワープロアプリケーションなら、ページクラスを作って、ページ数分だけページオブジェクトを表示します。その中に、文字列オブジェクトを作って、ページクラスの方でワープロ的に表示します。パソコンは機械語で動作しています。機械語にコンパイル可能な文法でソースコードを作ります。ソースコードは階層的で、分割可能で、利用可能です。それぞれの言語にオブジェクト指向、手続き型、関数型、バイトコード、メモリ管理などのパラダイムがあります。変数は、型宣言した通りにメモリを使います。関数は実行可能で、パソコンはメモリと関数を計算する機械です。オープンソースプロジェクトのページに移動するhttp://trac.edgewall.org/。