HTML source code, style-sheets, scripts, and images for deployment on mingw.osdn.io
修订版 | 346e50fd696d650a2aa27c0499dac9407602ae18 (tree) |
---|---|
时间 | 2022-01-08 23:59:52 |
作者 | Keith Marshall <keith@user...> |
Commiter | Keith Marshall |
Add "What is Cygwin?" reference to FAQ.
* faq.html (General Enquiries): Add question, and answer incorporating
JonY's original MinGWiki description of Cygwin.
@@ -110,6 +110,50 @@ of native MS‑Windows applications, with no implicit dependency on any | ||
110 | 110 | 3rd‑party C‑Runtime DLL. |
111 | 111 | </p> |
112 | 112 | </div><!-- answer --> |
113 | +<button>What is Cygwin, and how does it differ from MinGW?</button> | |
114 | +<div class="answer"> | |
115 | +<p>Originated by Steve Chamberlain, in 1995, like MinGW, | |
116 | +Cygwin is a system which aims to make (primarily) GNU tools | |
117 | +available on the MS‑Windows platform; | |
118 | +however, the two systems adopt <em>entirely different</em>  | |
119 | +methodologies to achieve this objective. | |
120 | +</p> | |
121 | +<p>Both systems are based on GNU tooling, | |
122 | +and both use the GNU Compiler Collection (GCC) as the means | |
123 | +of production for their respective application suites. | |
124 | +Since GNU is fundamentally a POSIX system, | |
125 | +both MinGW and Cygwin tools exhibit a POSIX feel; | |
126 | +however, whereas MinGW strives to minimize its POSIX influence, | |
127 | +using the MS‑Windows API <em>directly</em>,  | |
128 | +and thus, | |
129 | +MinGW applications may be classified as <em>native</em>  | |
130 | +MS‑Windows applications, | |
131 | +Cygwin has a much loftier objective ... it aims to provide a complete | |
132 | +emulation of the <em>entire</em>  POSIX.1 API! | |
133 | +This emulation is encapsulated within a single <code>cygwin1.dll</code> | |
134 | +shared object library, which serves as a bridge between the POSIX.1 API | |
135 | +and the MS‑Windows API, and upon which <em>all</em>  | |
136 | +Cygwin applications are dependent; consequently, | |
137 | +Cygwin applications are <em>not</em>  classified | |
138 | +as <em>native</em>  MS‑Windows applications. | |
139 | +</p> | |
140 | +<p>The availability of the POSIX.1 API, | |
141 | +furnished by <code>cygwin1.dll</code>, does generally reduce | |
142 | +the effort required to port GNU applications to Cygwin, | |
143 | +(for example, POSIX functions such as <code>fork()</code>, | |
144 | +<code>mmap()</code>, and <code>ioctl()</code> may not be | |
145 | +<em>readily</em>  implemented in terms of the MS‑Windows API, | |
146 | +and would require <em>significant</em>  porting | |
147 | +effort — if indeed it is even | |
148 | +feasible — to | |
149 | +support them in MinGW applications); | |
150 | +however, the reduced porting burden of Cygwin <em>does</em>  | |
151 | +incur the cost of the dependency on <code>cygwin1.dll</code>, | |
152 | +and its attendant commercial, | |
153 | +or strict “<em>copyleft</em> ” (GPL), | |
154 | +licensing requirement. | |
155 | +</p> | |
156 | +</div><!-- answer --> | |
113 | 157 | <button>What is MSYS?</button> |
114 | 158 | <div class="answer"> |
115 | 159 | <p>A contraction of “Minimal SYStem”, |