1. Cygwin란?
• Windows에서 POSIX기반의 소프트웨어를 구동 및 개발할 수 있는 환경을 제공하는 프로그램
- POSIX (Portable Operating System Interface)
- Cygwin을 사용하면, UNIX와 유사한 환경에서 windows 기반의 응용 프로그램을 개발 및 테스트할 수 있음
- cygwin은 리눅스 프로그램을 windows에서 바로 실행하도록 하는 프로그램이 아니다. 윈도우에서 실행시키기 위해선, 해당 파일의 소스를 cygwin에 알맞게 컴파일을 한 후 사용해야 한다.
- MinGW 보다는 무겁지만, 더 쉽게 Unix 소프트웨어를 port할 수 있음
- 사용자는 Unix 쉘 (Bash, zsh)등을 Cygwin에서 사용가능
•
• GNU GPL로 배포되어 자유롭게 사용가능
• GNU collection
- GNU: A large collection of free software used as an operating system and open-source tools similar to UNIX but designed for windows
- GNU 및 Berkely Software Distribution tools을 포함한 많은 무료 툴들을 제공함
• cygwin website: https://www.cygwin.com/
1) Cygwin의 기능
• MinGW를 사용하여 네이티브 응용 프로그램 작성
• sh 쉘 스크립트 지원
• rsh, ssh 등의 원격 접속 프로그램 지원
• X 및 openGL 등 지원
2) cygwin1.d11
- 하부 유닉스 응용 프로그램 인터페이스 (Susbtatial Unix API)를 제공하는 Unix Emulation Layer.
- 해당 파일은 POSIX의 시스템 호출과 동등한 기능을 가지고 있으므로,
[1] http://mwultong.blogspot.com/2006/07/cygwin-cygwin.html
[2] https://www.ciokorea.com/news/37474
Cygwins과 비슷한 프로그램?
1. MobaXterm
2. MinGW
- GCC compiled for Windows and gives windows binary
- desinged to use GNU development tools such as GCC to build native Windows applications
- defined as a free and open source software development environment that create Microsoft windows applications
- provide minimum GNU compilers (a minimal set of POSIX tools)
- designed to compile applications
- Doesn't have unix-like designs
- an alternative to Microsoft visual C++ compiler
Cygwins과 MinGW를 같이 쓰는 방법
S.N. | Cygwin | Mingw |
1. | Cygwin is designed to use POSIX API written a source code, and we can build them and run that build on Windows application. POSIX is the Portable Operating System Interface that is a family of standards that maintains compatibility between operating systems. |
Whereas, Mingw is designed to use the GNU development tool which is GCC to build window applications. GNU is a large collection of free software which we can use as an operating system and GCC is a development tool. |
2. | In Cygwin, multiple POSIX applications are distributed and that has been recompiled to run on windows application. | Whereas Mingw has small storage of POSIX tools only to support running GNU development tools. |
3. | These are built by using POSIX API and the user needs to install the Cygwin DLL, it requires Cygwin DLL compatibility layer because the programs are distributed with source code. | Mingw tool uses Windows API to compile the applications, POSIX is cannot be used here. It does not require a compatibility DLL layer because the programs are not distributed with source code. |
4. | In Cygwin, the Cygwin DLL is used to translate the POSIX API calls into Window API calls. | But in Mingw there is no DLL is used for translating the applications API, because Mingw is dependent on Windows API calls. |
5. |
Cygwin is able to compile Unix applications. | It is not able to compile some Unix applications. |
6. | Cygwin does not need to run through an interpreter. | It contains a compiler and a ‘C’ library. |
7. | It does not provide the ‘win 32 API’ functionality. | It provides functions that are supplied by ‘win 32 API’. |
8. | Cygwin also provides Unix-specific functionality that is case-sensitive filenames. | Whereas Mingw does not provide any specific functionality of Unix. |
9. | Cygwin is a command-line interface that is similar to Unix but designed for a Microsoft-based platform. | On other hand, it is a command prompt where the user can run the ‘.configure’ file and then allow building applications. |
10. | If we want to use the advantage of POSIX advanced programming features and tools in Windows then use Cygwin. | On other hand, if we want to use the advantage of the GCC cross-platform compiler in Windows then use Mingw. |
GNU Development tool | YES | YES |
Full set of POSIX tools (similar to a Linux Distribution) | Yes | Nop |
Allow you to compile native Windows API applications | Yes | Yes |
Allow you to compile POSIX API applications | No | Yes |
Appendix
일반적으로 GCC는 윈도우에서 설치가 될 수 있기는 하지만, 특별히 유용하지 않다. 이는 GCC가 UNIX환경을 위해 디자인이 되었고 UNIX 환경에서 운용이 되는 것을 가정했기 때문이다. 이러한 UNIX 환경은 GCC으로 생성된 코드들이 윈도우에서는 호환이 되지 않을 수 있음을 의미한다.
'컴퓨터 & IT (Computer & IT) > Windows and Powershell' 카테고리의 다른 글
[Windows] Windows 터미널, 단축키 터미널 꾸미기 (0) | 2022.12.31 |
---|---|
[Windows] Microsoft windows search indexer 및 높은 CPU 점유율 해결방법 (0) | 2022.12.27 |
[Cygwin] wget 및 apt-cyg 설치하기 (0) | 2022.03.19 |
[PowerShell] Prompt에 현재 폴더 이름만 표기하기 (0) | 2022.02.19 |
[PowerShell] float 및 Double 소수점 출력 (0) | 2021.01.26 |
댓글