이 두 가지 사실을 조정해야합니다.
- 나는 리눅스에서 일하는 것에 익숙하지 않다.
- Linux 용 소프트웨어를 개발해야합니다.
일부 배경 : Windows에서 10 년 이상의 프로그래밍 경험 (거의 독점적으로 C / C ++이지만 일부 .NET도 있음)을 가지고 약 3 년 정도 집에서 FreeBSD를 사용했습니다. Windows), 나는 리눅스와 함께 운이 없었습니다. 이제 Linux 용 소프트웨어를 개발해야합니다. 계획이 필요합니다.
Windows에서는 프로그래밍 언어, 코딩하는 API, IDE (VisualStudio) 및 문제 해결을위한 매우 기본적인 도구 (Depends, ProcessExplorer, DebugView, WinDbg)를 알면됩니다. 다른 모든 것은 자연스럽게옵니다.
리눅스에서는 매우 다른 이야기입니다. Firefox 플러그인에서 링크하면 어떤 DLL (죄송합니다, 공유 객체)이로드 될지 어떻게 알 수 있습니까? 소스에 __asm int 3 / DebugBreak ()를 삽입하고 프로그램을 실행 한 다음 OS가 디버거를 호출하게하는 것과 동등한 Linux는 무엇입니까? hell release 빌드가 appLoader라고 불리는 것을 사용하는 이유는 무엇입니까? 최악의 경우 : Linux 개발 환경을 프로비저닝하는 방법은 무엇입니까?
따라서 증오심을 고려하는 것은 대개 충분한 지식이없는 것과 관련이 있습니다. 무엇을 추천 하시겠습니까? 나는 이맥스와 GCC에 괜찮다. Linux 관리자 / 사용자로 교육해야하며 위에서 언급 한 것과 동등한 적절한 문제 해결 도구 (strace is cool, btw)를 배워야합니다.
Scratch에서 Linux를 수행해야합니까? 아니면 일부 책을 읽어야합니까 (Kernighan의 "UNIX 프로그래밍 환경"과 Stevens의 "Advanced Programming ..."을 읽었지만 좀 더 실용적인 것을 배워야합니다)? 또는 가정용 컴퓨터에 Linux 배포판이 있어야합니까?
man
는 당신의 친구입니다. 나는 것 man nm
와 man ld
출발점으로.