fork
「fork」とは・「fork」の意味
「fork」は、英語で「分岐」や「叉」という意味を持つ単語である。また、日常生活においては「フォーク」として食器の一種を指すことが一般的である。さらに、プログラミングやスラング用語としても使用されることがあり、それぞれ異なる意味を持つ。「fork」の発音・読み方
「fork」の発音は、英語で /fɔːrk/ となる。日本語での読み方は「フォーク」となり、英語の発音に近い形で発音することが望ましい。「fork」の語源・由来
「fork」の語源は、古英語の「forca」やラテン語の「furca」であり、どちらも「分岐」や「叉」を意味する言葉である。これらの言葉が時代を経て英語に取り入れられ、現在の「fork」という単語になったと考えられる。「fork」を含む様々な用語の解説
「fork(プログラミング用語)」とは
プログラミングにおける「fork」は、ソフトウェアのソースコードを元に、新たな開発プロジェクトを立ち上げることを指す。forkすることで、元のソースコードとは別の方向性で開発を進めることが可能となる。オープンソースソフトウェアでは、誰でも自由にforkして新たなプロジェクトを始めることができる。「Fork(スラング用語)」とは
スラング用語としての「Fork」は、主にオーストラリアで使われる言葉であり、「分かれ道」や「選択肢」を意味する。また、俗語としては「困難な状況」や「窮地」を指すこともある。「FORK(ラッパー)」とは
「FORK」は、日本のラッパーであり、ヒップホップグループ「KANDYTOWN」のメンバーである。彼の音楽は、独特のリリックやフロウが特徴的であり、多くのファンから支持を受けている。「fork」の使い方・例文
1. Please pass me the fork.(フォークを渡してください。)2. The road forks ahead.(道路が先で分岐する。)
3. They decided to fork the project and develop their own version.(彼らはプロジェクトをforkして独自のバージョンを開発することを決めた。)
4. We're at a fork in the road of our relationship.(私たちの関係は分かれ道に立っている。)
5. The lightning forked across the sky.(稲妻が空に叉状に走った。)
6. The tree has a fork near the top.(その木は上部近くで分岐している。)
7. The software was forked to create a new version with additional features.(ソフトウェアは、追加機能を持つ新しいバージョンを作成するためにforkされた。)
8. He found himself in a fork when he had to choose between his career and his family.(彼はキャリアと家族の間で選択を迫られる困難な状況に立たされた。)
9. The river forks into two smaller streams.(川は2つの小川に分岐する。)
10. The new feature was added after the project was forked.(新しい機能は、プロジェクトがforkされた後に追加された。)
フォーク【fork】
ホーク【fork】
フォーク
FORK
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/08/11 13:43 UTC 版)
FORK | |
---|---|
出生名 | 田中貴之 |
生誕 | 1980年3月11日(44歳) |
出身地 | 日本 神奈川県横浜市 |
ジャンル | ヒップホップ |
職業 | ラッパー |
活動期間 | 1996年 - |
レーベル | HAMMERHEAD RECORDS |
FORK(フォーク、本名:田中 貴之〈たなか たかゆき〉、1980年3月11日 - )は、日本のラッパー。ICE BAHNのメンバー。
来歴
元来ストリート的なスタイルに憧れを抱き中学生時代からスケートボードをしていた[1]。1995年に発売されたキングギドラの1stアルバム『空からの力』、さんぴんCAMPのDVDなどの影響を受けてラップを始めた[2]。TIME LINEの行ったインタビューでは、始めはノリでしていた日本語ラップだが自然と続けていくうちに自身の人生として大切なものとなっていったと語っている[1]。
MCバトル
2006年にULTIMATE MC BATTLEで優勝[3]。『フリースタイルダンジョン』(テレビ朝日)では、隠れモンスターとして登場したのち、4th seasonから2代目モンスター、7th seasonからは3代目モンスターとしてとして出演。3代目モンスター時には本編無敗を記録した。2021年に「KING OF KINGS vs 真・ADRENALINE」で優勝。それまで審査員を務めていたKING OF KINGS本戦に出場し優勝。
出演
- フリースタイルダンジョン(テレビ朝日、2017年8月 - 2020年7月)
- フリースタイルティーチャー(テレビ朝日、2021年11月)
関連項目
脚注
- ^ a b TIMELINE - タイムライン (2017-11-24), フリースタイルダンジョン無敗のFORKが語るHIPHOPが変えた人生 2019年7月15日閲覧。
- ^ “価格.com - 「フリースタイルダンジョン」2018年8月22日(水)放送内容 | テレビ紹介情報”. kakaku.com. 2019年7月15日閲覧。
- ^ “ICE BAHN|INTERVIEW[インタビュー|Amebreak[アメブレイク]]”. web.archive.org (2008年10月21日). 2024年8月11日閲覧。
外部リンク
- ICE BAHNオフィシャルサイト
- FORK (@FORK_IB) - X(旧Twitter)
- BAHN/ ICE_BAHN (ICE BAHN) - Facebook
fork
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/09 07:40 UTC 版)
ナビゲーションに移動 検索に移動fork(フォーク)とは、プロセスのコピーを生成するものである。UNIXおよびUnix系OSではシステムコールのひとつで、新たに作り出されたプロセスを子プロセス、fork()
を呼び出したプロセスを親プロセスと呼び、fork()システムコールの戻り値によって親と子の処理を区別する。子プロセスではfork()の戻り値は0であり、親プロセスの戻り値は新たに生成された子プロセスのプロセス識別子、エラーが起きた場合は-1である。また、マルチスレッド環境でスレッドのコピーを作ることもforkと呼ぶことがある。
forkが呼び出されると、子プロセスのためのアドレス空間が新たに作成される。子プロセスのアドレス空間には親プロセスが持っていた全セグメントのコピーがあるが、コピーオンライト機能によって実際の物理メモリの確保は遅延される(すなわち、一時的に同じ物理メモリセグメント群を親子で共有する)。親プロセスと子プロセスは同じコードセグメントを持つが、独立して実行される。
Unixにおけるforkの重要性
Unixにとってforkは重要な機構概念であり、フィルタの開発を奨励している設計哲学の重要な部分を担っている。 Unixでのフィルタは標準入力を入力とし標準出力を出力とする(通常小さな)プログラムである。シェルがフィルタをパイプで連結することで、複雑な処理を実現できる。例えば次のようにfind(1)
コマンドの出力をwc(1)
コマンドの入力に連結すると、拡張子が ".cpp" のファイルをカレントディレクトリ配下で探し、見つかったファイル数を表示できる。
$ find . -name "*.cpp" -print | wc -l
このコマンド行を入力すると、シェルは自分自身をforkし、プロセス間通信の1つであるパイプを使って find
コマンドの出力を wc
コマンドの入力に結びつける。パイプは2つの新たなファイル識別子を生成し、2つの子プロセスを生成する(それぞれ find
と wc
に対応)。2つの子プロセスはまず dup2(2)
で対応するパイプのファイル識別子を複製して標準入力と標準出力に置き換える。そしてそれぞれの子プロセスがexec(3)
ファミリのシステムコールを使って、実行すべきコマンドのプログラムで自身をオーバーレイする。
より一般的に、シェルはユーザーがコマンド行を入力するたびにforkを行っている。子プロセスはシェルがforkを行うことで生成され、子プロセスがexec
でオーバーレイを行い、実行すべきプログラムのコードをマッピングする。
プロセスのアドレス空間
実行ファイルを実行しようとすると、プロセスが生成される。実行ファイルはセグメントと呼ばれるブロックにグループ化されたバイナリコードを含んでいる。各セグメントは特定の種類のデータを格納するのに使われる。典型的なELF形式の実行ファイルには、以下のようなセグメントが存在する。
- text — 実行可能なコードを格納したセグメント
- .bss — 初期値がゼロのデータを格納したセグメント
- data — 初期値のあるデータを格納したセグメント
- symtab — プログラムのシンボル群(例えば、関数名、変数名など)を格納したセグメント
- interp — 使用すべきインタプリタの名前を格納したセグメント
readelf
コマンドを使えば、ELF形式のファイルの詳細を表示できる。そのようなファイルを実行するためにメモリ上にロードすると、セグメント群がメモリにロードされることになる。実行ファイル全体を連続なメモリ位置にロードする必要はない。メモリはページと呼ばれる同じ大きさ(通常4KB)の部分に分けられている。したがって実行ファイルをメモリにロードする際、実行ファイル内のそれぞれの位置がそれぞれ異なるページに置かれる(ページ群は連続とは限らない)。大きさが10KBのELF形式の実行ファイルがあるとする。そのOSのサポートするページサイズが4KBなら、そのファイルは4KB、4KB、2KBという3つの部分に分けてロードされる(他にコールスタックも必要)。この3つのフレームはメモリ中の任意のフリーなページに置くことができる[1]。
forkとページ共有
fork()
システムコールを実行すると、本来ならばOSが子プロセスのために親プロセスの持つ全ページを物理メモリ上の別の位置にコピーすることになる。しかし、場合によってはその必要はない。子プロセスがfork()
直後に "exec
" システムコール(実行ファイルを実行するときに使用する)を実行する場合や終了する場合である。親プロセスが何らかのコマンドを実行するためだけに子プロセスを生成した場合、子プロセスのアドレス空間は実行すべきコマンドですぐに置換されるので、親プロセスのページ群をコピーする必要はない。
そのため、コピーオンライト (COW) という技法が使われる。COWでは、fork時に親プロセスのページ群を子プロセスにコピーしない。その代わりページ群は親プロセスと子プロセスの間で共有される。親子いずれかのプロセスがページの内容を更新しようとしたとき、そのページだけコピーを作成し、書き込もうとしたプロセスの当該ページだけが更新される。書き込んだプロセスはその後その新たにコピーしたページを使用する。もう一方のプロセス(共有ページに書き込まなかったプロセス)は、コピー元のページを使用し続ける(共有状態は解消される)。何らかのプロセスが書き込もうとしたときにページがコピーされるので、この技法をコピーオンライトと呼ぶ。
vforkとページ共有
vfork
はもう1つのプロセス生成用UNIXシステムコールである。vfork()
システムコールで子プロセスを生成すると、子プロセスが終了するかexecve()
ファミリのシステムコールで新たな実行イメージに切り換えるまでそのシステムコールの延長上で親プロセスが待ち合わせる。vfork
でも親プロセスと子プロセスでページ群を共有するが、コピーオンライトは必要としない。子プロセスが共有ページに更新を加えてもコピーは作成せず、親プロセスからもその更新が見える。ページを全くコピーしないので、子プロセスでコマンドを実行する場合には非常に効率的である。
実装によっては vfork()
は fork()
と同じである[2]。
vfork()
とfork()
の唯一の違いは、親プロセスと子プロセスがコードとデータを共有できる点である。これによって複製は劇的に高速化されるが、使い方を誤ると親プロセスの一貫性が壊れる危険性がある。
直後に exec
または _exit()
を呼び出す以外のvfork()
の使用は推奨されない。特にLinuxのmanページではvforkそのものの使用が推奨されていない[3]。
Linuxが過去からこの幽霊を蘇らせたことはやや不幸である。BSDのmanページには「このシステムコールは妥当なシステム共有機構が実装された場合には削除される。ユーザは vfork() のメモリ共有機能に依存するべきではない。何故ならば、このシステムコールが削除された場合には、それは fork(2) の同義語とされるからである」と記されている。
vfork()
で生成した子プロセスがvfork()
を呼び出したルーチンからさらに外側に復帰した場合、親プロセスのコールスタックを書き変えてしまうので、vfork()
から親プロセスが戻ったときの動作を保証できない。また、execせずに子プロセスを終了する場合、_exit()
ではなくexit()
を使用すると、標準I/Oチャネルをフラッシュしてクローズするため親プロセスの標準I/O構造にダメージを与える危険性がある。なお、fork()
の場合でも子プロセスがexit()
を呼び出すのは危険である。
vfork()
後に子プロセスでシグナルハンドラが呼び出された場合、子プロセスの他のコードと同じ規則に従う必要がある[2]。
MMUのないシステム
組み込みシステムではメモリ管理ユニット (MMU) が存在しない場合があり、fork()
でのコピーオンライトの実装ができないことがある。システムがプロセス毎のアドレス空間を他の何らかの機構で(例えばセグメント方式で)サポートする場合、プロセスの使用する全メモリをコピーすれば実質的には同じである。しかしそれは非常に時間がかかるし、多くの場合すぐに別の実行ファイルのイメージで書き換えられるので無駄である。
全プロセスが単一のアドレス空間を共有している場合、例えば全メモリページをスワップしてコンテキストスイッチするというfork()
の実装も考えられる。μClinuxベースのOSなどの組み込みOSが採用しているのは、fork()
を廃して vfork()
だけを実装するという方法である。そのため、forkを使っているところを全てvforkで動作できるように書き換えている。
Unix以外でのフォーク
Unix系やLinuxでのfork機構は、基盤となっているハードウェアにある種の前提を課している。リニアなメモリ空間とページング機構を持ち、連続なアドレス範囲のメモリコピーを効率的に行えるという前提である。VMS(現在のOpenVMS)の当初の設計では、コピー操作後に少数の具体的なアドレスの内容書き換えを行うフォークは危険だとみなされていた。現在のプロセス状態におけるエラーが子プロセスにコピーされるかもしれない。そこでプロセスのスポーン(産卵)というメタファーが使われた。すなわち、新しいプロセスのメモリレイアウトの各コンポーネントを一から新たに構築する。ソフトウェア工学的観点からすれば後者(スポーン)の手法の方がきれいで安全だが、フォークの方が効率的なのでよく使われている。スポーン方式は後にマイクロソフトのOSで採用された。
fork を使ったコード例
C の例
#include <stdio.h> /* printf, stderr, fprintf */
#include <sys/types.h> /* pid_t */
#include <unistd.h> /* _exit, fork */
#include <stdlib.h> /* exit */
#include <errno.h> /* errno */
int main(void)
{
pid_t pid;
/* 子プロセスと親プロセスの両方の出力が
* 標準出力に書かれる。
* 両者は同時に動作する。
*/
pid = fork();
if (pid == -1)
{
/* エラー:
* fork()が-1を返す場合、エラーが起きたことを示す。
* 例えばプロセス数が制限に達した場合など。
*/
fprintf(stderr, "can't fork, error %d\n", errno);
exit(EXIT_FAILURE);
}
if (pid == 0)
{
/* 子プロセス:
* fork()が0を返す場合、子プロセスである。
* 1秒に1ずつ、10まで数える。
*/
int j;
for (j = 0; j < 10; j++)
{
printf("child: %d\n", j);
sleep(1);
}
_exit(0); /* exit() を使わない点に注意 */
}
else
{
/* fork() が正の数を返す場合、親プロセスである。
* その値は生成した子プロセスのPIDである。
* ここでも10まで数える。
*/
int i;
for (i = 0; i < 10; i++)
{
printf("parent: %d\n", i);
sleep(1);
}
exit(0);
}
return 0;
}
Perl の例
#!/usr/bin/env perl -w
use strict;
if (fork) { # 親プロセス
foreach my $i (0 .. 9) {
print "Parent: $i\n";
sleep 1;
}
}
else { # 子プロセス
foreach my $i (0 .. 9) {
print "Child: $i\n";
sleep 1;
}
exit(0); # forkした子プロセスの終了
}
exit(0); # 親プロセスの終了
Python の例
#!/usr/bin/env python3
import os
import sys
import time
def doTask():
"This function create a task that will be a daemon"
with open("/tmp/tarefa.log", "w") as log_file:
while True:
log_file.write("{}\n".format(time.ctime()))
log_file.flush()
time.sleep(2)
def createDaemon():
"This function create a service/Daemon that will execute a det. task"
try:
pid = os.fork()
if pid > 0:
print("PID: {}".format(pid))
sys.exit()
except OSError as error:
print("Unable to fork. Error: {} ({})".format(error.errno, error.strerror))
sys.exit(1)
else:
doTask()
if __name__ == "__main__":
createDaemon()
Fork-Exec
Fork–Execは、UNIXで一般的に使われる手法であり、新たなプログラムをプロセスとして実行する。fork()は親プロセスを2つの同一内容のプロセスに(フォークの先のように)分岐させるシステムコールである。fork()によって子プロセスが親プロセスのコピーとして生成され、子プロセスがexec()システムコールを呼び出すことで(子プロセス)自身の内容を置き換える。
親プロセスが子プロセスの終了を待ち合わせる場合、子プロセスの終了コード (exit code) を受け取ることができる。子プロセスがゾンビプロセスとなるのを防ぐには、親プロセスがwaitシステムコールを使用する必要があり、そのタイミングは定期的でもよいし、SIGCHLDシグナルを受け取った際でもよい。
子プロセスがexec()を呼び出すと、そのアドレス空間の内容は全て失われ、指定されたプログラムを実行するためのアドレス空間のマッピングが新しく設定される。これをオーバーレイと呼ぶ。アドレス空間は全て置き換えられるが、オープン済みファイルのファイル記述子群は close-on-exec が指定されたときだけ exec()時に自動的にクローズされる。この特徴を利用して、fork()を呼び出す前にパイプを作成しておき、exec()で指定された新しいプログラムとの通信を行うというUNIX特有の手法が実現されている。
なお、Microsoft Windows では fork() 単独に相当するシステムコールがなく、fork-exec モデルを採用していない。代わりにspawn()ファミリ関数が process.h で定義されており、fork-exec に相当する働きをする。
脚注
- ^ 正確には、これはページング方式の仮想記憶の場合である。また、.bssは実行ファイル上では対応するデータが存在せず、単に仮想空間の範囲だけが確保される。
- ^ a b The Open Group Base Specifications Issue 6 - POSIX.1-2001 (IEEE Std 1003.1) Copyright © 2001-2004 The IEEE and The Open Group
- ^ VFORK
参考文献
- "File descriptors across fork(2)/exec(2)", Operating Systems (Course 304-427B), Franco Callari, Electrical Engineering Department, McGill University
- Advanced Programming in the UNIX Environment, W. Richard Stevens, Addison-Wesley ISBN 0-201-56317-7
- Unix Power Tools, Jerry Peek, Tim O'Reilly, Mike Loukides, O'Reilly, ISBN 1-56592-260-3
関連項目
外部リンク
fork(2)
– JM Project Linux System Calls マニュアル- Lightwolf, A library that implements thread forking for Java
- NetBSD: Why implement traditional vfork()
- Fork and Exec ケンブリッジ大学 Computing Help
- Unix Programming Frequently Asked Questions 日本語訳 1.1.3 forkによる子プロセスを終了するときにexitよりも_exitを使うのはなぜですか?
フォーク (食器)
フォーク(ホーク、英: fork)は、先端部が分かれて櫛状になった飲食用・調理用の器具。たいてい3つ又か4つ又になっている。古くは飲食用でも2つ又で、今日でも果物やケーキなどを食べる際のデザート用や、ステーキを焼く際に使う大振りのものでは、2つ又のフォークが見受けられる。漢字を当てて肉匙、肉刺[注 1]、肉叉とも表記された[1][2]。
用途と種類
飲食用
飲食時に食べ物が動かないように突き刺して押さえたり、食べ物を突き刺して口へ運んだりするための食器である[3]。日本語では「突き匙」「肉叉(にくさ)」という訳語があてられる。主に金属製であるが、プラスチック製や竹製のものもある。柄の部分が別部材でできている別柄型のものと一体成型のものとがある[3]。
フランス料理などのテーブルセッティングでは、位置皿(ディナープレート)の左側に、外側からオードブル用フォーク、魚用フォーク、肉用フォークの順に配置する。また、位置皿の上側にデザートフォークを配置する。フォークの背に飯をのせて食べたり洋食コースに飯が出るのは日本だけで、普通のフォーク使いで食べた方が、こぼれず良い[4]。正式にはパスタもリゾットもフォークのみで食し、スプーンは使わない[5]。
スプーンと合体させた食器として、spork(→先割れスプーン)がある。こちらはもっぱら、簡便な食事に便宜的に用いられる簡易食器的な性格が強く、正統なテーブルマナー中には spork を使うものは見られない。
調理用
調理用のものとして調理用フォークがある[3]。サラダフォーク[3]やバーベキューフォーク[3]などがある。
機能
- 押さえる(ナイフとの組み合わせ)
- 刺してまとめる
- 絡める
歴史
起源
フォークのもともとの語源は、ラテン語の熊手を意味する furca である。 紀元前2000年頃の中国では餐叉(さんさ)と呼ばれるフォークと同じ形状の物が使われていた[6]。
古代ギリシャでは給仕用として用いられていた[7]。ローマ帝国では青銅や銀のフォークが使われたが[8][9]、その使用法は地域、社会階層、食物によってばらばらだった。その後の中世ヨーロッパでは、ビザンチン帝国に関連した文献で散見される程度である。
西ヨーロッパで食卓用フォークの使用を促進したのは、ビザンチン帝国の2人の王女だと言われている。神聖ローマ皇帝オットー2世の妻テオファヌと、ヴェネツィアのドージェ・ドメニコ・セルヴォの妻テオドラである。その後11世紀までに、食卓用フォークがイタリアに伝わった[10]。11世紀のベネチアの豪族が三つまたの道具で食事をしていたと文献にある。
ヨーロッパでの広がり
フォークが導入されるまでは、西ヨーロッパではスプーンでスープを飲み、ナイフで肉を切りながら、主に手づかみで食べていた。
16世紀後半の戦国時代・安土桃山時代の日本でキリスト教の布教を行ったイエズス会の宣教師であるルイス・フロイスは、著書の『日欧文化比較』の中で、16世紀当時、日本人が箸で食事していた一方で、ヨーロッパ人が手づかみで食事していたことを記録している。
初期のフォークは歯が2つしかなかった。単に肉を切るときに切りやすくする道具であり、歯はまっすぐで食べ物に突き刺すにはよかったが、すくって口元に運ぶのには適していなかった。
イタリアでは14世紀にフォークがよく使われるようになった。一般的に使用されるようになるのは、16世紀に礼儀作法の一部となってからである。1600年頃までには商人や上流階級の間でごく一般的に使用されるようになった。
一方、南欧以外のヨーロッパでは、フォークがなかなか浸透しなかった。フランスには、イタリア出身のカトリーヌ・ド・メディシスが1553年にフランスのアンリ2世王に嫁入りした際、イタリア料理人と共に嫁入り道具としてフォークも伝わったといわれる。それまでフランスにはフォークを用いる文化はなかった[10]。
英語の文献に初登場するのは、1611年のトーマス・コライヤットのイタリア紀行文だと見られている。しかし長年にわたって、女々しいイタリア文化への偏愛とみなされていたようである。イギリスで一般人がフォークを使うようになるのは、18世紀に入ってからである。
4本歯のテーブルフォークの誕生
1770年代、庶民の風俗を深く愛したナポリ国王フェルディナンド4世が、宮廷で毎日スパゲッティを供することを命じた。しかしスパゲッティを手で食べる場合、頭上にかざして下から口ですするという、当時の価値観でも非常に見苦しいものとなり、このような作法がハプスブルク家出身の王妃マリア・カロリーナに承認されるはずもなかった。そこで、賓客がより上品にスパゲッティを食べられるように、料理長ジョヴァンニ・スパダッチーノ(Giovanni Spadaccino)に命じて、もともと口に運ぶものでなく料理を取り分けるためにあったフォークを食器として使わせた。
このとき、工学エンジニアのチェーザレ・スパダッチーニが、先が長く3本だったフォークをもとにして、口に入れても安全でスパゲッティがうまくからむ様に先を短く4本にしたフォークを、王のために考案したといわれている[11]。
現代では一般的な弓なり型のフォークは、18世紀中頃にドイツで発明された。そして4本歯のフォークが一般的に使われるようになるのは、19世紀初頭である。
備考
農業用の干草を分けるための同じ形をした巨大な農具が同じフォークという名で呼ばれていた。現代のイタリア語では農具のフォークは forca、食器のフォークは指小辞をつけて forchetta と呼び分けられている。
脚注
注釈
出典
- ^ 見坊豪紀ほか 編「フォーク」『三省堂国語辞典』(第七)三省堂、2014年。
- ^ 小川環樹ほか 編「肉」『角川新字源』(改訂新)KADOKAWA、2017年。
- ^ a b c d e 意匠分類定義カード(C6) 特許庁
- ^ クロワッサンNo.1007号24ページ
- ^ NHKEテレ趣味どきっ!「大使夫人のおもてなし」でイタリア大使夫人
- ^ 黒須正明、人工物進化学から考える意味性と審美性─ 箸を例として 放送大学研究年報, 2016 33巻 p.97-107, ISSN 0911-4505
- ^ “Forks”. 2011年6月8日閲覧。
- ^ “Fitzwilliam Museum - A combination Roman eating implement”. 2011年6月8日閲覧。
- ^ Sherlock, D. (1988)[要出典] A combination Roman eating implement (1988). Antiquaries Journal [comments: 310-311, pl. xlix]
- ^ a b 石毛直道 他共著 『文化と人類』 朝日新聞社 1973年 p.202
- ^ Schwartz, Arthur. Naples at Table. Harper Collins, New York, 1996. p.130
関連項目
FORK
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/01 10:01 UTC 版)
連装シリーズ。水平に20発もの小型ミサイルを同時に発射する。他のシリーズに比べて射程が短い。単発リロード式で1発あたりの威力こそ低いものの、誘導性能は極めて高い。旧作のソルリングに相当。
※この「FORK」の解説は、「地球防衛軍3」の解説の一部です。
「FORK」を含む「地球防衛軍3」の記事については、「地球防衛軍3」の概要を参照ください。
固有名詞の分類
- FORKのページへのリンク