2011-04-30 5 views
0

목표 C가 모든 장치 드라이버 개발에 사용되는지 여부? 지금 ios 개발자로 일하고 있습니다.이 경험으로 다른 도메인에서 작업 할 수 있습니까?장치 드라이버 개발

+0

나는 마지막 문장이 의미하는 바를 잃어 버렸다. 질문으로 생각하십니까? 또는 iOS 개발자로 일하는 이유입니다. – Wes

+0

그것의 질문 .... 나는 C++ 및 C ...에 경험이있다. 그러나 ios 개발자로서 새로운 직업을 얻었으므로 .... 이제 내 미래에 대해 생각하는 목표 C..i를 공부하고있다. – Ramz

답변

3

질문을 으로 태그 했으므로 Mac OS X 용 장치 드라이버라고 가정합니다. C++로 개발되었고 I/O Kit를 사용합니다. 자세한 내용은 herehere입니다.

1

장치 드라이버 개발은 매우 특정한 도메인입니다. 개발자가 애플리케이션 개발자 였고 드라이버 개발을 지원하는 프로그래밍 언어를 알고 있다고해도 드라이버 개발을 쉽게 전환 할 수는 없지만 모든 개념, API 등을 익히고 좋은 결과를 얻을 수 있습니다. 왜냐하면 드라이버 (커널 모드)가 고장 나면 전체 시스템이 다운되기 때문입니다. 나는 Objective-C가 드라이버 개발에 사용되지 않는다고 생각한다. 이 영역은 C 또는 경우에 따라 C++ 용입니다. 몇 가지 드라이버 개발을 수행하고 응용 프로그램 개발이 느껴지면 드라이버 개발과 같이 드라이버 개발과 마찬가지로 하드웨어에 대해 이야기하고 하드웨어와 OS간에 데이터를 다시 전달하는 코드를 작성할 것입니다. 당신은 놀라운 것들을 많이 할 수 있습니다, 당신의 상상력은 유일한 한계입니다 :)

+0

나는 둘 다 알고있다. C and C++ .... 그리고 지금 Objective C를 공부 중입니다. Objective C와 Xcode iphone 개발의 초보자입니다. – Ramz

2

저는 커널 레벨 프로그래밍에서 왔고 지금은 아이폰과 안드로이드 개발에 종사하고 있습니다. 그리고 저는 그 경험을 통해 당신에게 말할 것입니다.)는 두 가지를 비교할 수 없습니다.

시스템 수준 코딩의 99 %는 C에서 발생하고 커널 프로그래밍에서는 C의 가장 순수한 형태가 사용됩니다. 디버깅은 다음과 같습니다. 매우 어려운 다시 말하자면, 애플리케이션 프로그래밍의 세분화 오류는 커널 프로그래밍에서 커널 패닉 (유일한 해결책은 재부팅 됨)입니다. 재부팅하지 않아도되지만 재부팅시 손실 된 전체 정보 (실패한 프로젝트에 대한 정보 충돌)가 발생합니다. 디버그가 매우 어렵다는 사실을 알고 있습니다. 커널 프로그래밍과 디바이스 드라이버 개발은 더욱 어려워집니다.

+0

C와 C++를 모두 알고 있습니다 ... 그리고 이제 Objective C ...를 공부하고 있습니다. 초보자입니다. Objective C 및 Xcode – Ramz

+0

"확실히 커널 프로그래밍 및 장치 드라이버 개발이 더 어렵습니다." 더 어려울 수도 있지만 응용 프로그램 개발 수준에서 필요한 창의력을 필요로하는 것은 아닙니다. DD 개발에서의 도전은 우리가 구식 컴퓨팅에서 설계된 이러한 모 놀리 식 커널 기반 운영 체제와 DD 개발 중에 커널 API와 맞서 싸우게 될 것이기 때문에 당신 자신의 드라이버 로직보다 더 많은 것입니다. – Ankur

+0

나는 당신과 거기에 동의합니다. 당신은 항상 커널 자체와 싸우고 있습니다. 그리고 어플리케이션 레벨에서 일하는 누군가가 이해하는 것은 매우 어려울 것입니다. 당신이 붙잡힐 기회가 더 많습니다. 머리를 쾅쾅 거리는 기회가 더 많습니다. 또한 가장 중요한 것은, 당신이 붙어있을 때 도움을 얻는 것은 더욱 어렵습니다. – Krishnabhadra

관련 문제