
                        Linuxήץˡ

                        Linus B. Torvalds 
                                 깯  (June. 27, 1997)

          ˥ޡʤɤԤμ̣ǲäΤǤ(^_^;;)
            ӡǤߤʤåɤǤߤƤ
            ʤʸϤLinuxͥ°Ƥޤ

ʸǡLinux ͥΥɤιޤñ
ߤޤץˡ¿ʬ˼̣ŪʤΤ顢ͤι̵ͤ겡
ĤĤϤޤ衣Ǥ⡢줫ΤͤǤʤ
ϤʤʤƤŬѤƤƤˤͤϼʬʤ
Ǥ⤳ˤǽ񤫤ƤɤΤˤʤȤפäƤޤơ
ʸƤƤǤ⤷ƤߤƤ͡

ǤϺǽ餫פäФޤ󡣤ޤϡGNU ɸץˡ
(GNU coding standards)ꤷưƤߤƤǤ⡢ɤि
ΤǤϤޤ󡣰ʪǳ䤹ΤǤε줬
ɽʤΤǤ V^_^V

ǤϡĴҤޤ礦


                裱ϡ

֤ϣʸȤǤ⣸ʸǤΡʸǤ
Ȥꡢˤϣʸñ̤Ǥ褦Ȥ褦ʰ۶̤αưޤǤ뤱
ɡϦСᣳȷƤޤȤĥƱ褦ʤΡ

ۤ⤽ԤȤΤϡ֥åλϤޤȽ꤬Ϥ
ʬ褦ˤ뤿ᡣ礭ʻƤСϢ³
˥įƤ褦ʻʤɤˤä˲ä´ǤΤǤ

ơͤˤäƤϡ֣ʸñ̤˻򤹤ȥץब˹Ԥ᤮
ơʸβ̤ǤɤߤˤʤäƤޤפȸǤ礦
ãˤϡ֣ʳ¿λ򤹤褦ʾϥץऽΤ
ɤʤ顢ľʤפȸäƤޤ礦

פˡʸñ̤λ򤹤Хץबɤߤ䤹ʤäơ
塢롼פ᤮ؿ񤤤ƤޤäηٹˤʤΤǤٹ
ľʹƤ͡



                裲ϡ̤ΰ

⤦ġøΥץˡǤ褯ˤʤΤ̤ΰ֡
ξȤϰ㤤ľäƤɤ˳̤򤪤ΤͥƤ뤫Ȥ褦
ŪʺϤޤ󡣤Ǥ⹥ޤ̤ΰ֤ȤΤϤäơ
KernighanRitchieξˤäŵ̾ K&RȸƤФ֥ץߥ
áסˤ˼ƤΤǤ֥åγϹԤι˳̤
ơ֥åκǽԤλϤޤĤ̤֤ȤΤǡʲΤ褦
ˤʤޤ

	if (xǤ) {
		y¹;
	}

ؿγ̤㳰ǡϤγ̤ϼιԤλϤޤ֤


	int ؿ̾(int x)
	{
		ؿ
	}

Ȥΰ۶̤ϡμ̵ʤȤ...
...ӤƤʤʸäƤޤɤο͡
(1)K&R(2)K&RΤȤ狼äƤΤǤˡ
⤽ؿȤΤϣä̤ʤΤʤΤǤʴؿ
ϤǤʤǤˡ

ǰդƤޤĤ̤̤Ĥ̤ιԤˤʤ
ɡĤ̤ʸʤˤϤιԤ³Ȥˤʤ롣Ū
ϡdoʸ while  ifʸ else 뤳Ȥäơ

	do {
		do롼פ
	} while (롼׷³);

䡢

	if (x == y) {
		..
	} else if (x > y) {
		...
	} else {
		....
	}

ʤɤȤʤΤǤ
			
ŵK&R١

ˡ褦˳̤֤Сɤߤ䤹ˤʤϰ
ǡäݤιԡʤȤۤȤɶιԡˤǾ¤ˤȤɤ뤳Ȥ
Ǥ硣̤ɽǤԤϸ¤Ƥ뤫ʻϣԤṳ̈
ǰƬ֤ä򤷤Ƥޤˡ̵̤Τʤ񼰤ǹԤͭѤƥ
ԤǤݤޤ礦


                裳ϡ̾

⤽øϥѥ륿ʤΤǤ顢ѿؿ̾⸷
ޤŪ̾ Modula-2  Pascal ΥץޤȤϰäơ
ץޤΤ ֤ѿϰŪ˻Ȥ륫󥿡ʤΤǤ
(ThisVariableIsATemporaryCounter)פʤɤȤĹ̾ѿϻȤ
󡣣äΥץޤʤ tmp Ȥñ֤̾ΤǤ񤭤䤹
Ǥƽʬʬ䤹ѿ֤̾ΤǤ

ǤޤդƤȡŪˤʸʸ򺮤褦Ķ
̾򤱤ɡХѿʤɤˤŪ̾ɬפǤ衣
Хؿhogehoge()ʤɤȤ̵̣̾դΤϸƱǡ

ХѿɬפʻˤȤäƤ͡ˤˤϰ̣褯ʬ̾
դƤХؿƱǡƥ֤ʥ桼륰
Хؿˤcount_active_users()Ȥä̾Ȥ٤ǡcntusr()
Ǥϥᡣ

ؿηؿ̾˴ޤ̾Υϥ󥬥꡼ˤʤƻȤϢɤ
Ƥ롣ʤȤ򤷤ʤƤ⥳ѥϷΤäƤ뤷
Ǥ롣ɤϥץ޼Ȥ𤵤ΤMicrosoft ԰
ʥץäƤΤ⤦ʤ͡

ѿ̾ûơѿ򥺥ХɽΤӤޤ
㤨С롼פμ¹ԲŬ󥿤 i ̾դΤ
ɤơ򤵤붲ʤΤ loop_counterȸƤǤ̵̤ʤ
줫顢ŪͤݻƥݥѿϷ˷餺 tmp ȸƤӤ
礦

ʤߤˡ⤷ѿѤƤޤä顢̤
ƤΤǤִؿĹۥԶѹվɸפȤĤǤ顢
ܤϼξϤ򸫤Ƥ

		
                裴ϡؿ

ؿûƤ襤Τ֡ĥäƿФƤϤޤ衣
ؿϣ̤̤˼ޤ褦ˤޤISO/ANSIβ̤80ʸ24
ȤΤΤäƤ͡ˡҤȤĤδؿϤҤȤĤνǰơ
򥭥åȹԤޤ礦

ؿĹϡδؿʣȴؿλοȿ㤷
ޤȤСñʽ򤹤ؿȤĤĹswitchʸȤ
ޤξ硢äȤ򤹤caseο¿Ǥ줾case
ñʤΤĹʤäƤɤǤ礦

ʣʽ򤹤ؿäơʿޤʥץޣǯˤϲ
ꤿΤǤʤʡפȻפä顢狼䤹뤿
к򤷤äǤĤ٤ˤϡ狼䤹̾
ȤäƤߤƤؿƽФˤȤʤ®㲼ˤʤ
פä顢ѥ˥饤ŸƤ館Ф褤ΤǤ¿ʬʤ
ȤŸ⤦ޤäƤޤ衣

ؿ¬⤦Ĥʪϡѿοѿϣ
ĤˤȤɤ٤ǡۤ褦äؿ߷׼Τ꤬롣
ϴؿľȤʬ䤹٤Ǥʹ֤Ǿϣ
餤ޤǤλ򵤷ڤ¹Ԥư뤱ɡʾϺθʤ
ͥʤΤϤʤȤɤΤäƤޤ˽񤤤Τ
ʬȴ򤷤Ȥϻפޤ


                裵ϡ

ȤΩĤΤɡȤդʤȤռƤ
äơȤǥץλȤߤ褦ȤƤϤ
ޤ󡣥ץ򸫤ǻųݤǤ褦˽񤤤
ڤˤ褤ΤǤʬˤץɬ˥ȤդΤ
̵֤̤Ǥ

̥Ȥˤϥץब򤷤Ƥ뤫񤭤ʤΤɡ
λȤߤ褦ȤϤޤ͡줫顢ؿ
Ȥ񤯤ΤϤޤ礦ؿʣؿ˥Ȥ
ɬפȻפäΤʤ顢裴ϤɤľƤ줫顢ֶ
ƹ̯ʥ略ʱȤ⤤ˤȤäפդˤϤä
ȤդƤɤǤꤹʤǤޤȤȡ
ִؿɤʽ򲿸ΤΤ褦ʥȤؿƬ
褦פȤȤǤ


                裶ϡä

פǤԤïǤ⤹ΤǤ¿ʬʤ⡢ĹǯUNIXλȤ
ɥХƤ褦ڤ GNU EmacsϼưŪˣäΥ
ƤפȶäƼưθƤޤäΤǤ礦ͤ
ǰʤ顢Emacs ΥǥեϤޤ깥ޤΤǤϤʤǤ
ʻפڤäƸȡGNU Emacs μưŬ˥ץ񤤤
ޤɤΥ뤬 GNU Emacs˸äƥץǤǤ⡢
ޤȤʥץϷ褷ƤǤޤ󡣡

ϣġGNU Emacs ȤΤ뤫äȷˤ
ƻȤǤˤˤϡۡǥ쥯ȥΡ.emacsפ˼
ͤʻؼƤУϣˡ

(defun linux-c-mode ()
  "C mode with adjusted defaults for use with the Linux kernel."
  (interactive)
  (c-mode)
  (setq c-indent-level 8)
  (setq c-brace-imaginary-offset 0)
  (setq c-brace-offset -8)
  (setq c-argdecl-indent 8)
  (setq c-label-offset -8)
  (setq c-continued-statement-offset 8)
  (setq indent-tabs-mode nil)
  (setq tab-width 8))

ǡM-x linux-c-mode ޥɤȤ褦ˤʤ롣⥸塼Υ
ɤ򤤤ʤ顢ƬΣԤΤɤˡ -*- linux-c -*- פȤ
ʸ򤤤ƤмưŪ linux-c-mode ˤʤޤ˶Ťäơ
/usr/src/linux ˤ륽ɥեˤϼưŪ
Υ⡼ɤˤʤ褦ˤʤ顢Ʊ.emacsץեˡ

(setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.[ch]$" . linux-c-mode)
                       auto-mode-alist))

ȲäƤУϣˤǤ

ˡEmacsˤޤȤ򤵤ʤäƤ⡢ޤפǤindent 
ޥɤȤеߤޤ

GNU  indentޤ GNU Emacs ƱͤŪʥǥեˤʤ
ƤޤǡindentȤˤϥޥɥ饤󥪥ץɬפ
ʤäƤޤΤǤǤ⡢ޤ󤶤ΤƤʪǤϤޤGNUǤ
indentäϢǤʤ K&R ̵뤷ƤϤޤ̤ˡGNUϢ
椬ȤĤϤޤ衣Ϣϡåץν񼰤˴ؤ
ɼƻ򳰤ƤޤäˡǤ顢indent ˡ-kr -i8פȤ
ץդɤΤǤΥץϡK&R ˽äơ
(indentats)ϣʸˤʤȤؼǤ

¤ indent ޥɤˤ¿Υץ󤬤Τǡä˥Ȥ
ˡ˴ؤƤϥޥ˥奢ڡ򸫤ƤΤɤȻפޤ
indentϥץޡΰȤľƤϤʤפȤȤ˺ʤ
Ǥ͡

