나는 Linux를 더 많이 사용하고 싶고 모든 프로그래밍과 개발은 Windows에서 이루어집니다. 하지만 Windows보다 Linux를 사용하는 것의 핵심 이점이 무엇인지 알고 싶습니다. Windows에서는 할 수 없지만 Linux에서는 무엇을 할 수 있나요?
답변1
다음 사항 중 다수는 모든 POSIX 운영 체제 및 기타 여러 대체 운영 체제에 동일하게 적용됩니다.
- 파이프, 리디렉션 및 백그라운드 프로세스를 갖춘 강력한 터미널 에뮬레이터입니다. bash는 기본 셸이며 일상적인 시스템 관리에 사용할 수 있는 프로그래밍 언어입니다. DOS보다 훨씬 더 강력하기 때문에 많은 사람들이 IDE 대신 터미널과 텍스트 편집기를 사용하기로 선택합니다.
- Linux는 다양한 유형의 프로세스 간 통신을 제공합니다. 소켓, 공유 메모리, 파이프, FIFO 등
- Linux의 포크 실행 모델을 사용하면 동시 프로그램 작성이 더 쉬워집니다.
- 배포마다 약간 다르지만 표준화된 파일 시스템 레이아웃을 사용하면 자동화된 설치 스크립트를 생성할 수 있습니다.
- 위의 이유 때문에: 패키지 관리자는 자동으로 새 라이브러리와 프로그램 및 해당 종속성을 설치합니다. Windows에서는 대부분의 라이브러리를 수동으로 설치해야 합니다.그리고Linux에서 컴파일러를 구성하고 "apt-get install", "yum install" 또는 "emerge"(각각 Debian/Ubuntu, Fedora 및 Gentoo의 경우)를 입력하세요. 이는 대중이 사용할 수 있는 소프트웨어를 배포하는 좋은 방법이기도 합니다.
- 무료이며 지속적으로 업데이트됩니다. 운영 체제를 업그레이드하기 위해 비용을 지불할 필요가 없습니다.
- 더 나은 커뮤니티 및 커뮤니티 지식. Linux 프로그래머는 A) 소스 코드를 읽고, B) 소스 코드에 더 가까이 다가가고, C) 내부 작동에 대한 더 많은 참조를 찾을 수 있기 때문에 운영 체제의 기능에 대해 더 많이 알고 있습니다. 그들은 또한 메일링 리스트, 포럼, 웹사이트를 통해 더 많은 의사소통을 합니다. 오픈 소스 소프트웨어는 Linux에서 명백하게 드러났으며 우리는 코드 공유를 좋아합니다.
- 더 나은 문서화. 프로그램을 실행하는 방법을 모르시나요? "남자"를 입력하세요. C 함수의 작동 방식을 알고 싶으십니까? "Man" 또는 때로는 "Man 3".
- 맞춤 제작. 커널을 포함하여 무엇이든 사용자 정의할 수 있습니다. 데스크탑 GUI를 변경하거나 창 관리자 타일링을 시도할 수도 있습니다. 대부분의 배포판에서는 ext4, XFS, JFS, Reiser 등을 포함한 여러 가지 파일 시스템 중에서 선택할 수 있습니다. 이는 또한 Linux 사용자가 운영 체제에 대해 더 자세히 알 수 있도록 도와줍니다.
답변2
특정 업체에 얽매이지 않는다는 점이 가장 큰 장점이라고 생각합니다. 예를 들어 GNU C가 마음에 들지 않으면 Clang을 사용할 수 있습니다. Apache가 마음에 들지 않으면 lighttpd, Nginx 또는 cherokee를 사용하십시오. 특정 기술 스택의 극소수 부분만이 대안을 허용하지 않습니다.
공급업체에 종속되지 않는 또 다른 측면은 거의 모든 것에 대해 존재하는 표준, 즉 서면 표준입니다. 이는 "소유의 세계"에서 온 사람이 상상할 수 있는 것보다 더 큰 이점입니다. 사람들은 서면 표준을 사용하여 문서를 작성합니다. 사람들은 (적어도 대부분의) 서면 표준을 준수하는 코드를 작성합니다. 대형 소프트웨어 공급업체가 *기침* BEA *기침*하는 일을 하는 사람은 없습니다. 버그 수정을 거부하는 프로젝트는 결국 "포크"되고 교체되므로 립서비스 *기침*OOXML*기침*보다는 실제로 표준을 고수하는 경향이 있습니다.
답변3
나는 항상 친구들에게 Linux가 개발자를 자식처럼 대한다고 말합니다. 프로그램을 라이브러리와 연결하는 것은 정말 쉽습니다. 사용할 수 있는 훌륭한 편집기가 많이 있고(vi, emacs, Code::Blocks, Geany...), bash는 매우 유연하며(처음에는 사용하지 않을 것입니다) (그러나 시작하면 몇 가지 작업이 더 쉬워진다는 것을 알게 될 것입니다.) 원하는 경우 기본적으로 모든 것에 대한 코드를 편집할 수 있습니다.
하지만 나에게 가장 중요한 것은 패키지 관리자(페도라의 경우 yum, 우분투의 경우 apt, 아치의 경우 pacman)입니다. 패키지 관리자는 설치하려는 모든 소프트웨어 및 라이브러리의 모든 종속성을 확인하고 설치합니다. 모든 업데이트를 확인합니다. 전반적으로, 그것은 당신의 삶을 더 쉽게 만듭니다.
Windows 자체에는 그런 것이 없습니다.
또한 Linux는 POSIX와 호환됩니다. 이는 FreeBSD, OpenBSD, OpenSolaris, 심지어 Mac OS/X와 같은 다른 POSIX 호환 운영 체제용 크로스 플랫폼 소프트웨어를 만드는 것이 더 쉬워야 함을 의미합니다. 거의 모든 Linux용 라이브러리는 표준입니다(Windows에는 MFC 또는 DirectX와 같이 Linux에서만 작동하는 매우 구체적인 구현이 많이 있습니다). 따라서 Windows용 소프트웨어 버전을 만드는 것도 그리 어렵지 않습니다.