저는 Linux 플랫폼이 아닌 Linux 플랫폼에서 Hiawatha 웹 서버를 구현할 계획입니다.리눅스 기반 응용 프로그램을 uC/OS-II 플랫폼에 이식하는 방법
Linux 종속 API를 RTOS 플랫폼으로 이식하는 데 도움이 필요합니다.
RTOS에서 Linux를 이식 할 수있는 라이브러리를 이미 만들었 으면 좋겠습니다. 사전에
감사
저는 Linux 플랫폼이 아닌 Linux 플랫폼에서 Hiawatha 웹 서버를 구현할 계획입니다.리눅스 기반 응용 프로그램을 uC/OS-II 플랫폼에 이식하는 방법
Linux 종속 API를 RTOS 플랫폼으로 이식하는 데 도움이 필요합니다.
RTOS에서 Linux를 이식 할 수있는 라이브러리를 이미 만들었 으면 좋겠습니다. 사전에
감사
일부 포팅 노력이 필요합니다 단지 표준 C 라이브러리 이상을 사용하는 모든 코드 - 비 - 표준 및 OS 특정 라이브러리를 호출합니다 노력이 필요하거나 결정합니다 만들어진다 정도를 그러한 항구의 타당성.
대부분의 Linux 코드에는 POSIX API가 필요하며 네트워킹 코드에는 BSD 소켓이 사용됩니다. 멀티 스레드 코드는 pthreads를 사용합니다. uC/OS-II에는 이들 중 어느 것도 없습니다. 스케줄링, 타이밍, 동기화 및 프로세스 간 통신 만 처리합니다. 그것은 스케쥴링 커널이며 리눅스와 같은 의미의 완전한 OS가 아니라 파일 시스템을 가지고 있기 때문에 대부분의 리눅스 코드가 필요합니다. 물론 추가 라이브러리 및 확장 기능을 추가하면 필요할 수도있는 일부 또는 전체를 제공 할 수 있습니다.
또한 uC/OS-II의 단순한 우선 순위 별 스케줄러는 일반적인 Linux 멀티 스레드 코드를 의도 된 방식대로 스케줄하기 어렵게 만듭니다. 대부분의 RTOS (uC/OS-III 포함)는 동일한 우선 순위 레벨에서 라운드 로빈/타임 슬라이싱 스케줄링을 지원하지만 uC/OS-II는 그렇지 않습니다. 이 작업에 적합하지 않을 수 있습니다.
uC/OS-II가 순서대로되어 있거나 아마도 uC/OS-II에 더 적합한 코드를 사용했을 수도 있습니다. 예를 들어 eCos은 임베디드 시스템에서 훨씬 더 완벽한 RTOS입니다. 오픈 소스이며 POSIX API, 파일 시스템 지원 및 소켓 API를 포함합니다. Linux 코드를 이식하는 것이 훨씬 쉬울 것입니다. 마찬가지로 uC/OS-II 및 기타 간단한 RTOS 또는 심지어 전혀 OS에 적합하지 않은 많은 경량 임베디드 웹 서버 예제가 있습니다. 예를 들어, LwIP은 uC/OS-II 포트가 있고 작은 포트가 있고 web server examples 인 소형 임베디드 시스템 용 TCP/IP 스택입니다.
요점은 Linux가 uC/OS-II는 비교할 수 없다는 것입니다. 하나는 코드의 < 10Kb가 필요하고, 다른 하나는 약 4Mb의 최소 발 프린트가 있습니다! 이러한 시스템에서 Linux 코드를 실행하려면 누락 된 서비스를 제공하기 위해 많은 추가 코드를 추가해야하며 대상 플랫폼에서 실행되지 않을 수도 있습니다.
[편집 : 2012 7월 8일]
당신이 Micrium's own TCP/IP stack and μC/HTTPs web-server add-on를 사용하여 생각 해 봤나? uC/OS-II와 더 잘 통합되고 RTOS가 아닌 제 3 자 코드보다 우수한 성능을 제공하는 것은 유사합니다.
유용한 정보를 제공해 주셔서 감사합니다. –
AllegroSoft의 사용자 Rompager가 웹 서버로 사용하는 UCOS-2 RTOS에서 실행되는 검증 된 응용 프로그램이 있습니다. 하지만 웹 서버에 성능 문제가 있습니다. 따라서 UCOS-2 플랫폼에서 Hiawatha를 이식하는 방법을 생각했습니다. 내 응용 프로그램이 위에 씌여 있기 때문에 UCOS -2에 충실해야합니다. 따라서 웹 서버를 변경하는 옵션은 하나만 남았습니다. UCOS-2에서 구현할 수있는 오픈 소스 웹 서버를 제안하고 풍부한 사용자 경험을 제공하십시오. –
성능은 Rompager가 아닌 하드웨어의 한계 일 수 있습니다. 너이게 뭐하고있어?. uC/OS = II는 8 비트부터 시작하여 리소스가 제한된/낮은 클럭 속도 시스템을 위해 주로 사용됩니다.Linux 응용 프로그램 (수십 메가 바이트 RAM, 200MHz를 초과하는 클록 속도, 완전한 네트워크 스택, MMU 제어 메모리 및 파일 시스템의 가용도 가정 할 수 있음) 시스템에 비슷한 리소스가 없다면 리눅스 애플리케이션을 이식하는 것이 성능 문제의 해결책이라고 상상해보십시오. – Clifford