Linux는 운영 체제, 플랫폼, 생태계 및 문화입니다. 데스크톱 컴퓨팅을위한 Windows 및 Mac OS의 지속적인 지배로 인해 미개척 소비자는 Linux가 극단적 괴짜와 운영 체제 비용을 지불하고 싶지 않은 사람들을위한 일종의 프린지 옵션이라고 가정하지만, 문제의 진실은 Linux는 지구상에서 가장 많이 사용되고 가장 중요한 운영 체제입니다. 웹, 인프라, 세계 최대 수퍼 컴퓨터에 전력을 공급합니다..
Linux를위한 개발은 약간의 도전이 될 수 있지만 매우 보람이있을 수 있습니다. 이 짧은 안내서는 Linux 프로그래밍을 시작하는 데 필요한 정보와 리소스를 소개합니다. 리눅스 개발의 4 가지 영역, 즉 커널에 기여, 새로운 모듈 구축, Linux 용 응용 프로그램 개발 및 쉘 스크립팅.
1 리눅스 커널 개발
1.1 당신이 알아야 할 것은
1.1.1 개발 기술
1.1.2 리눅스 이해
1.1.3 과정과 문화
2 커널 모듈 개발
2.1 당신이 알아야 할 것은
3 Linux 운영 체제 용 응용 프로그램 개발
3.1 당신이 알아야 할 것은
4 리눅스에서의 스크립팅
4.1 당신이 알아야 할 것은
4.1.1 배쉬 리소스
4.1.2 파이썬 자료
4.1.3 펄 리소스
5 일반적인 리눅스 자료
리눅스 커널 개발
리눅스 커널은 아마도 지구상에서 가장 야심 찬 소프트웨어 개발 프로젝트 일 것입니다. 약 3 개월마다 새로운 안정적인 릴리스가 출시되며 각 릴리스에는 수십 개국에서 일하는 수천 명의 개발자가 참여합니다..
역설적으로 커널 개발에 참여하는 것은 생각보다 쉬울뿐 아니라 엄청나게 어렵다. 채용 과정, 인터뷰, 관료주의가 없기 때문에 생각보다 쉬운 편입니다. 자신이 무엇을하고 있는지 아는 사람이라면 누구나 코어를 개발하고 패치를 제출할 수 있습니다. 반면에 커널이 매우 복잡하기 때문에 매우 어렵습니다. 또한 커널 개발 커뮤니티는 어떤면에서는 환영을 받고 있지만 아마추어 샤니 건을 잘 견디지 못합니다. 그것은 두꺼운 피부를 갖는 데 도움이되지만 실제로 당신이하는 일을 아는 것 대신에 아무것도 없습니다. 핵심을 개발하는 것은 꽤 심각한 컴퓨터 과학을 포함하는 매우 심각한 비즈니스입니다. 운영 체제 개발을 시작한 경우 실제로 시작해야 할 곳이 아닙니다..
당신이 알아야 할 것은
Linux 커널 프로그래밍은 C에서 수행됩니다. C ++이 아니라 C ++이 아니라 C ++이 아닙니다. 가장 먼저해야 할 일은 C 프로그래밍 언어를 매우 잘 배우는 것입니다.
또한 특히 Linux 시스템과 관련하여 운영 체제 이론을 깊이 이해해야합니다. 다음 섹션에서 더 자세히.
C 프로그래밍 언어 : 언어에 대한 확실한 안내서. 무료 PDF로도 이용 가능.
운영 체제 개념 : 운영 체제 개발 이론 및 실습에 대한 철저한 소개.
리눅스 이해
당연히 사용자와 개발자 모두 Linux를 이해해야합니다. 여기에는 Linux 커널의 구조와 다양한 하위 프로젝트가 어떻게 조화를 이루는 지에 대한 상당히 깊은 이해가 포함됩니다..
리눅스 커널 초보자
과정과 문화
마지막으로 Linux 개발 프로세스가 실제로 어떻게 작동하는지 이해해야합니다. 여기에는 커뮤니티 전체, 문화, 개발 커뮤니티의 다양한 구성원이 서로 어떤 관계가 있는지에 대한 느낌이 포함됩니다. 또한 분산 버전 제어 및 개발 릴리스주기를 이해한다는 의미입니다..
Linux 커뮤니티 참여 방법 : 필수 자료. 여기서 시작.
초보자가 Linux 커널에 참여하는 3 가지 방법 : 참여에 대한 짧고 친근한 가이드.
공식적인 것들 :
리눅스 커널 아카이브
리눅스 커널 메일 링리스트
커널 버그 추적기
linux-kernel에서 Moron이 됨 : Linux Kernel (또는 다른) 메일 링리스트에서 동작하지 않는 방법에 대한 안내서. (권장 사항 : 게시하기 전에 6 개월 이상 숨어 있어야합니다.)
커널 모듈 개발
Linux 커널에서 핵심 개발을 시작하기 전에 Linux 프로그래밍에 대한 지식과 전문성을 높이는 좋은 방법은 커널 모듈에서 작업하는 것입니다. 이들은 완전한 운영 체제로 기능하기 위해 커널과 함께 작동하는 독립적으로 개발 된 소프트웨어입니다. 커널 모듈에는 다양한 하드웨어 주변 장치를위한 장치 드라이버, 파일 관리자 및 기타 저수준 운영 체제 기능이 포함됩니다..
일반적으로 커널 모듈 작업에 대한 진입 장벽은 일반적으로 Linux 커널 작업보다 훨씬 낮습니다. 많은 다른 팀과 개인이 개발 한 수백 개의 모듈이 있으므로 개발을위한 하나의 게이트 키퍼 세트는 없습니다. 또한 모듈 개발로 인해 지분이 약간 낮아졌습니다..
커널 자체와 같은 커널 모듈은 일반적으로 C로 작성됩니다. (C ++에서 커널 모듈을 개발하는 것에 대한 약간의 논쟁이 있으며,이를 달성하기위한 몇 가지 방법이 있습니다. 추천합니다.)
하드웨어에 대한 장치 드라이버를 작성하는 경우 하드웨어 유형과 그에 내장 된 펌웨어에 대해 약간의 지식이 필요합니다. 또한 Linux 기반 커널과 커널 모듈과 상호 작용하는 방식에 대한 이해가 필요합니다. 마지막으로 기존 커널 모듈에 기여하는 경우 해당 절차 및 개발주기에 대해 알아야합니다..
리눅스 커널 모듈 프로그래밍 가이드 : 매우 철저한 가이드.
간단한 예제를 사용하여 자신의 Linux 커널 모듈을 작성하는 방법 : 유용한 연습 자습서.
Linux 커널에서 파일 시스템 작성 : 상대적으로 따라하기 쉬운 단계별 자습서.
또한 커널 개발 섹션에서 위의 리소스 목록을 참조하십시오..
Linux 운영 체제 용 응용 프로그램 개발
우리는 운영 체제 개발의 어려움에서 벗어나 Linux 운영 체제 용 실제 응용 프로그램 개발에 대해 이야기하기 시작하면 작업이 조금 쉬워지고 진행 방법에 대한 옵션이 훨씬 더 많아집니다. 거의 모든 프로그래밍 언어에 대한 컴파일러와 인터프리터는 Linux 플랫폼에서 사용할 수 있으며, 종종 특정 언어에 대해 둘 이상을 사용할 수 있습니다.
Windows 또는 Mac OS 개발에 익숙하다면 Linux 개발시 가장 큰 충격은 아마도 다양한 Linux 환경 일 것입니다. 수십 개의 Linux 배포판이 있으며 모든 Linux 사용자는 특정 환경의 작동 방식을 상당히 많이 변경할 수 있습니다. 이것은 무엇보다도 의존성 관리에주의를 기울여야한다는 것을 의미합니다..
특히 Windows 시스템과 비교할 때의 또 다른 차이점은 많은 Linux 사용자가 소스 코드에서 애플리케이션을 컴파일하는 것을 선호한다는 것입니다. 이것은 Mac OS에서도 발생하지만 빈도는 적습니다. Linux 세계에서는 많은 사용자가 설치 관리자 패키지를 사용하지 않고 항상 소스에서 응용 프로그램을 컴파일하는 것을 선호합니다. 소프트웨어 개발 및 배포에 대한 생각에 영향을 줄 수 있습니다..
대부분의 Linux 중심 개발은 C, C ++, Perl 또는 Python에서 수행됩니다. 이러한 언어를 잘 배우고 위에서 언급 한 자료 (커널 및 모듈)와 아래 (스크립팅)를 살펴보면 많은 도움이 될 것입니다.
Linux에서의 C 프로그래밍 : C 언어로 Linux 응용 프로그램을 프로그래밍하는 방법에 대한 철저한 소개 및 자습서.
Linux 개발자 교육 : Linux Foundation에서 제공하는 Linux 개발 교육 과정.
리눅스에서의 스크립팅
아마도 리눅스에서 프로그래밍의 “최하위 수준”은 쉘 스크립팅 일 것입니다. 그러나 이것은 다른 것보다 “프로그래밍”하는 것이 아닙니다. Linux의 셸 스크립팅은 일상적인 작업을 자동화하고 더 짧은 시간에 더 많은 작업을 수행 할 수있는 좋은 방법입니다. 또한 고급 셸 스크립팅을 파고 들면 Linux 운영 체제에 대한 더 깊은 지식과 이해를 얻을 수 있습니다. 쉘 스크립팅은 초보 Linux 소비자와 고급 Linux 사용자를 구분하는 것입니다..
다른 옵션이 있지만 가장 일반적인 스크립팅 언어는 Bash입니다. 고급 스크립팅 언어로 넘어갈 계획이더라도 Bash를 처리하면 모든 유형의 운영 체제 스크립팅에 대해 올바른 시작을 시작할 수 있습니다. 생산성을 높이기위한 방법으로 스크립팅을하는 대부분의 사람들은 대부분의 작업에 Python 또는 Perl을 사용합니다. 배쉬에서 쉽게 달성 할 수있는 것을 벽에 부딪힌 후에는 아마도 그 언어 중 하나로 넘어 가고 싶을 것이다..
배쉬 리소스
초보자를위한 배쉬 가이드
고급 배쉬 스크립팅 안내서
리눅스 쉘 스크립팅 튜토리얼
파이썬 자료
Python 어려운 방법 배우기 : Python 개발에 대한 가장 인기있는 소개 중 하나.
파이썬으로 지루한 것들을 자동화하십시오 : 초보자를위한 실용 프로그래밍 : 파이썬에서 스크립팅 ( “개발”과 반대)에 대한 훌륭한 소개. 온라인으로 비디오 코스로 무료로 제공.
펄 리소스
Perl 초보자 입문
Perl에서 쉘 스크립트를 작성하는 방법
유닉스, 쉘 스크립팅 및 펄 소개
일반적인 리눅스 자료
Linux.org : Linux의 모든 것을위한 중앙 포럼.
Linux Documentation Project : 위의 모든 주제에 대한 거대한 Linux 안내서 라이브러리와 기타 여러 가지 사항이 있습니다. 이곳은 심도있는 Linux 정보를 얻는 가장 중요한 장소 중 하나입니다..
그것은 야생의 타는 것이었다! 리눅스 커널 프로그래밍부터 쉘 스크립팅까지. Linux 운영 체제를 프로그래밍하는 방법은 끝이 없습니다. 이 가이드와 함께라면 잘 지낼 수있을 것입니다.