리눅스에 어느 정도까지 정통합니까?
다음으로 몇 년간의 개인 개발 경험과 리눅스, 유닉스 시스템, 오픈 소스 소프트웨어 문화로 리눅스의 학습 방법과 주의해야 할 몇 가지 사항에 대해 이야기하겠습니다.
내가 방금 말했듯이, 많은 학우들이 이전에 리눅스가 무엇인지도 몰랐을 수도 있고, 유닉스는 말할 것도 없다. 그래서 기초부터 시작합시다. Linux 와 UNIX 의 역사는 더 이상 말하지 않고 바로 입문 학습으로 들어간다.
리눅스 입문은 매우 간단합니다. 문제는 네가 인내심이 있는지 없는지, 고생을 좋아하고, 중장과 같은 대수술을 배제하지 않는 것이다. 던지지 않는 것은 리눅스를 잘 배우지 못한다고 할 수 있다. 새 형은 리눅스의 파티션 메커니즘을 진정으로 이해하려면 Linux 사용에 상당히 능숙하다고 말했다. 20 회 이상의 조작이 없으면 리눅스 설치 경험을 쌓을 수 없기 때문에 들볶는 것을 두려워하지 마라. (윌리엄 셰익스피어, 리눅스, 리눅스, 리눅스, 리눅스, 리눅스, 리눅스, 리눅스, 리눅스)
모두가 Windows 를 사용했기 때문에, 나는 이' 초보' 들을 돌보기 위해 최선을 다했다. 내 제안은 당신이 리눅스 초보자라면 가상 머신에서 먼저 시도해 보는 것이다. 가상 시스템 가상 상자를 추천합니다. VM 은 폐쇄원이고 유료이기 때문에 VM 사용을 제창하지 않습니다. 나는 해적판을 홍보하고 싶지 않다. 물론, 충분한 돈이 있다면 VM 을 시도해 볼 수 있지만, VM 조차도 반드시 좋은 것은 아니라는 것을 말하고 싶습니다.
유료 소프트웨어가 반드시 좋은 것은 아니다.
첫째, 가상 상자는 작습니다. Windows 플랫폼의 설치 패키지는 약 80MB 이고 VM 은 600MB 입니다. 매우 강력하지만 많은 자원을 소모하는데, 하물며 당신의 요구는 완전히 가상 상자로 만족시킬 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언) 그러니 직접 고르세요.
가상 머신을 어떻게 사용하는지는 너의 일이다. 이것은 너에게 가르치지 않을 것이다. 왜냐하면 매우 간단하기 때문이다. 그렇지 않다면 구글이나 바이두를 사용할 수 있습니다. 영어를 잘하면 공식 서류를 직접 볼 수 있다. 이제 리눅스 배포에 대한 지식을 소개하겠습니다.
보시다시피, Linux 릴리스는 Linux 가 아닙니다. Linux 는 운영 체제의 커널만을 나타냅니다. 잘 훈련된 학생으로서 나에게 설명하지 마라, 나도 시간이 없다.
다음 릴리스를 권장합니다.
UBUNTU 는 초보자에게 적합하고 안정적인 공식 지원을 추구하고, 시스템 안정성에 대한 요구가 약하고, 최신 앱을 좋아하고, 들볶는 개발자를 비교적 좋아하지 않는다.
UBUNTU 보다 훨씬 어려운 릴리스인 Debian 은 안정적이고 사용하기 쉬운 패키지 관리 시스템이 특징이며, 기업이 지원이 부족해 지역사회 개발에 의해 구동된다는 단점이 있다.
아치, 패션을 쫓는 개발자의 선호는 패키지 업데이트가 상당히 빨라 원활한 업그레이드가 가능하며, 한 번에 설치할 수 있다는 장점이 있다. UBUNTU 와 같은 버전 개념이 없습니다. 전문적인 점은 롤링 업그레이드라고 하며 시스템을 최신 상태로 유지합니다. 결점이 뚜렷하고 불안정하다. 동시에 구성을 설치하는 것은 데비안보다 좀 번거롭다.
Arch 보다 더 어려운 Gentoo 는 시스템 설치에서 미세 조정, 커널 컴파일에 이르기까지 사용자의 종합적인 수준을 테스트합니다. Gentoo 는 전문가 및 해커 전시 기술 수단으로 필요에 따라 요구 사항에 맞는 시스템을 구성하는 데 선호됩니다.
Slackware 는 Gentoo 와 유사합니다.
CentOS 는 커뮤니티가 유지 관리하는 RedHat 의 복제판으로, RedHat 의 소스 코드를 완전히 사용하여 다시 컴파일되며 이론적으로 RedHat 와의 호환성이 가장 좋습니다. 네트워크 관리 및 웹 사이트 구축과 같은 리눅스 서버에 집중한다면 CentOS 가 당신의 선택입니다.
LFS, 궁극적인 해커 과시 도구, 소스 코드에서 컴파일 시스템을 완전히 설치합니다. 을 (를) 설치하기 전에는 하나의 문서만 얻을 수 있습니다. 당신이해야 할 일은 당신의 지시에 따라 단계별로, 한 단계씩, 한 단계씩, 한 명령씩, 한 패키지씩, 한 번에 하나씩 당신의 Linux 를 만드는 것입니다. 완전히 당신의 통제 속에 있고, 당신이 원하는 것은 무엇이든지 할 수 있다. (존 F. 케네디, 희망명언) 만약 당신이 LFS 를 해본 적이 있다면, 그것은 당신의 리눅스 지식이 상당히 좋다는 것을 증명한다. Linux 문서를 유연하게 사용하고 소스 코드에서 임베디드 시스템으로 리눅스를 이식할 수 있다면 국내 기업과 잘 어울릴 수 있을 것 같습니다.
1, 리눅스 재단
자신에게 적합한 시스템을 선택하고 가상 시스템에 설치하여 사용해야 합니다. 만약 당신이 Linux 를 빨리 배우고 싶다면, 나는 한 가지 제안이 있는데, 당신은 그래픽 인터페이스를 잊어버려라. 그래픽 인터페이스가 당신의 질문에 대한 답을 제공할 수 있을지 생각하지 말고, 전 세계를 돌아다니며 어떻게 명령줄로 문제를 해결할 수 있는지 물어보라. (존 F. 케네디, 공부명언)
이 과정에서, 당신은 리눅스를 잘 파악하는 것이 가장 좋다. 적어도 자주 사용하는 명령을 알고, 자신의 지식 기반을 구축하는 것은 네가 축적한 모든 지식을 포함하고 있다.
2. 리눅스 플랫폼의 C/C++ 개발 및 기본 스크립트 [Bash].
다음 단계에서는 Linux 플랫폼의 C/C++ 개발 및 Bash 스크립트를 배워야 합니다. 만약 당신이 그것에 관심이 있다면 Java 도 있습니다. 마찬가지로, VIM 부터 그래픽 인터페이스의 IDE 를 포기하는 것이 좋습니다. 왜 Emacs 대신 VIM 입니까? 나는 편집기 대전을 일으킬 의도는 없었지만, VIM 은 초보자와 손이 느린 개발자에게 적합하다고 생각한다. Emacs 의 버튼이 너무 많아서 너무 복잡해서 깜짝 놀랐어요. 그리고 GCC, Make, eclipse (자바, C++ 또는) 가 있습니다.
Eclipse 에 C++ 가 나열되어 있지만 Linux 로 C++ 를 개발하지 않는 것이 좋습니다. 이는 리눅스의 문화가 아니기 때문에 주의해야 할 몇 가지 문제를 쉽게 간과할 수 있습니다. IDE 는 너를 게으르게 하고 돼지처럼 게으르게 한다. 프로그램 디버깅과 테스트에 관심이 있다면 GDB 는 반드시 잘 배워야 한다. GDB 가 아니라면 필수 과목이기도 합니다. 이것이 발전의 첫걸음이다. 나는 Linux 시스템 API 의 내용을 언급하지 않았고, 이 단계에서도 이것에 관심이 없다. 모두 당신이 해야 할 경험을 축적 하 고 리눅스 플랫폼에서 경험을 개발 합니다.
내가 추천하는 책은 다음과 같습니다: c 언어 프로그래밍. C 언어, 백지가 당연히 더 좋다. C++ c++프리미어 플러스 권장. 나는 자바를 좋아하지 않아 추천하지 않는다. 나는 다른 사람의 책 한 부를 첨부했다: 자바 입문서. 도구 측면에서 VIM 의 공식 설명서, GCC 중국어 문서, GDB 중국어 문서, GNU 오픈 소스 소프트웨어 개발 가이드 (전자책) 및 어셈블리 언어 프로그래밍 (라이브러리, 링크, 임베디드 어셈블리 및 컴파일러 최적화 옵션에 대한 예비 이해, 깊이 없음) 을 추천합니다.
이 단계를 넘기지 못하면 갈 필요가 없다. 이것은 최종선이자 가장 기본적인 기초이다. 그렇지 않으면, 떠나, 호호 리눅스를 개발하지 마라. 프로답지 않은 리눅스 개발자가 만든 프로그램은 리눅스 문화나 유닉스 문화를 거스르는 프로그램이다. 프로그램은 그리 멀리 갈 수 없고 Bash 와 Linux 처럼 될 수도 없다. 그래서 네가 할 수 없다면 떠나라.
유닉스 환경에서의 고급 프로그래밍
유닉스 환경에서의 고급 프로그래밍은 걸작이며 고전중의 고전이다.
다음으로 리눅스 시스템 프로그래밍, 유일한 선택, APUE, Linux 환경 고급 프로그래밍, 반복해서 읽고, 10 이 너무 적습니다. 만약 당신이 대학에서 이 책을 뒤집을 수 있다면, 그 안의 내용은 모두 연습하고, 작품이 있고, 당신의 구어 표현력이 충분히 강합니다.
(약간 과장될 수도 있지만, APUE 는 확실히 성서 독서이며, Windows 프로그래머들조차도 구글 창업자의 책상 책, Zalbock 의 머리맡 독서와 같은 양분을 섭취한다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 독서명언) ) 을 참조하십시오
이 책을 다 읽으면 Linux 시스템 프로그래밍에 대해 잘 알 수 있을 것이다. Linux 와 Windows 플랫폼의 차이점은 무엇입니까? 그것들의 장단점은 무엇입니까? 내 결론은 다음과 같습니다. Windows 플랫폼 개발은 매우 어렵습니다. Microsoft 의 시스템 API 는 계속 확장되고 있습니다. 너는 항상 최신 트렌드, 가장 효율적인 기능, 현재 유행하는 시스템에 가장 적합한 기능을 사용하는 것을 배워야 한다. Linux 는 아닙니다. Linux 시스템의 핵심 API 는 100 입니다. 기억력이 좋으면 외울 수 있습니다. 그리고 오래 지속될 것이다. 왜 안돼? UNIX 와 호환되어야 하고 POSIX 표준을 준수해야 하기 때문입니다. 따라서 Linux 플랫폼의 개발은 대부분 기본 또는 서버 프로그래밍에 집중되어 있습니다.
이것이 그것의 장점이다. 물론 그래픽은 리눅스의 약점이지만, 개발자의 관점에서 볼 때, 나는 명령줄에 적응할 수 있기 때문에 개의치 않는다. 더 좋은 그래픽 인터페이스가 있다면 선물로 드리겠습니다. 게다가, Windows 는 꺼져 있고, 당신은 시스템이 무엇을 했는지 모른다. 너는 영원히 마이크로소프트에 끌려갈 것이다. 생각해 보세요. Microsoft 가 Win8 이 QQ 를 지원하지 않는다고 하면 텐센트도 울지 않는다. 그리고 리눅스는 완전히 오픈 소스입니다. 기술이 충분하다면 스스로 바꿀 수 있는 것을 좋아하지 않는다.
또한 Windows 는 많은 사람들을 사용하지만, 사용상황은 비교적 단일한 것으로, 데스크톱을 위주로 한다. Linux 는 클라우드 컴퓨팅, 서버 소프트웨어, 임베디드 분야, 엔터프라이즈 애플리케이션 등 모든 방면에서 호환성이 뛰어납니다. POSIX 가 지원되므로 UNIX 시스템에서 원활하게 실행할 수 있습니다. 애플의 Mac 와 IBM 의 AS400 시리즈는 모두 완벽하게 지원됩니다. 또한 Linux 개발 환경은 C/C++, Java, Bash, 파이썬, PHP, 자바스크립트 등 절대적으로 일류 환경을 지원합니다. 。 。 。 。 。 C# 까지 지원합니다. 그리고 Microsoft 는 Visual Stdio 키트 외에는 별로 친절하지 않죠?
APUE 를 읽은 후 많은 감정을 가지고 있다면, 당신의 생각이나 경험을 검증하고 유닉스 프로그래밍 예술을 추천하면, 세계 최고의 해커들이 당신과 그의 관점을 공유할 것입니다.
4. 방향 (네트워크, 그래픽, 임베디드, 장치 드라이버) 을 선택합니다.
네트워크 방향: 서버 소프트웨어 프로그래밍 및 고성능 동시 프로그래밍
이제 분류술을 해야 한다. 일반적으로 네트워크, 그래픽, 임베디드, 장치 드라이브의 네 가지 방향으로 나눌 수 있습니다.
네트워크를 선택하고 세분화하면 다른 것은 익숙하지 않고 서버 소프트웨어 프로그래밍과 고성능 동시 프로그래밍을 말하는 것이다. (윌리엄 셰익스피어, 템플릿, 네트워크, 네트워크, 네트워크, 네트워크, 네트워크, 네트워크, 네트워크, 네트워크, 네트워크) 상대적으로 말하자면, 이것은 네트워크 프로그래밍에서 가장 기술적인 내용이자 가장 낮은 수준이다. 많은 경험, 많은 책, 많은 프로젝트가 필요합니다.
나의 관점은 다음과 같은 순서로 책을 읽는 것이다.
더 읽기-특히 프로세스, 스레드, IPC, 소켓.
멀티 코어 프로그래밍-pthread 는 반드시 철저히 먹어야 합니다. 당신은 NB 입니다.
유닉스 네트워크 프로그래밍–볼륨 1 볼륨, 볼륨 2
TCP/IP 네트워크 상세 설명-위 두 권의 책을 다시 한 번 읽으면 바로 읽어야 합니다.
5.TCP/IP 네트워크 상세 설명-제 2 권 제 2 권을 보면 비슷해요. 물론, 내가 읽은 제 3 권이 더 좋다. 나는 최선을 다해 읽을 것이다.
6.Lig/7 1706.html