lwIP에서 말하는 OS가 있는 시스템이란, 네트워크 부분이 없는 OS를 말합니다. 즉, 소형 임베디드 시스템을 구동시킬 OS에 네트워킹 기능을 lwIP를 통해 구현할 수 있습니다. 이 경우 lwIP에서 지원하는 API(raw 함수보다 좀 더 abstract되어 있는 함수)를 쓸 수 있습니다. API를 쓰기 위해서는 context switching이 지원되어야 하며, 이를 lwIP를 심을 OS가 지원해줘야 합니다.
다른 방법으로는 OS가 없이 lwIP의 raw 함수들만으로 TCP/IP 기능을 구현하는 것입니다. 제가 현재 이 쪽 관련일을 하고 있습니다. OS없이 lwIP를 Gigabit Ethernet을 장착한 PCI card에 porting하고 있습니다.
리눅스와 같이 TCP/IP 코드가 커널의 다른 부분과 밀접히 연관되어 있는 OS에서는 lwIP를 적용시키기 힘들며, 굳이 그럴 필요가 있을까 하고 저의 짧은 소견으로는 생각되기도 합니다.
리눅스의 TCP/IP 코드 부분을 lwIP로 대체시켜야만 하는 이유를 말씀해 주시면 좀 더 나은 답변을 드릴 수 있을것도 같습니다.
lwIP는 OS에 포팅한다기 보다는 OS없는( ? ) 정도의 작은 시스템
lwIP는 OS에 포팅한다기 보다는 OS없는( ? ) 정도의 작은 시스템을 위한 프로토콜 스택으로 제작되었다고 봅니다.
특정 OS에 포팅한다는 것이 큰 의미는 없어보이며, 구지 하겠다면, HW의존적인 IO부분이 전부가 아닐까요?
lwIP는 OS가 있는 시스템과 OS가 없는 시스템에 porting가능합
lwIP는 OS가 있는 시스템과 OS가 없는 시스템에 porting가능합니다.
lwIP에서 말하는 OS가 있는 시스템이란, 네트워크 부분이 없는 OS를 말합니다. 즉, 소형 임베디드 시스템을 구동시킬 OS에 네트워킹 기능을 lwIP를 통해 구현할 수 있습니다. 이 경우 lwIP에서 지원하는 API(raw 함수보다 좀 더 abstract되어 있는 함수)를 쓸 수 있습니다. API를 쓰기 위해서는 context switching이 지원되어야 하며, 이를 lwIP를 심을 OS가 지원해줘야 합니다.
다른 방법으로는 OS가 없이 lwIP의 raw 함수들만으로 TCP/IP 기능을 구현하는 것입니다. 제가 현재 이 쪽 관련일을 하고 있습니다. OS없이 lwIP를 Gigabit Ethernet을 장착한 PCI card에 porting하고 있습니다.
리눅스와 같이 TCP/IP 코드가 커널의 다른 부분과 밀접히 연관되어 있는 OS에서는 lwIP를 적용시키기 힘들며, 굳이 그럴 필요가 있을까 하고 저의 짧은 소견으로는 생각되기도 합니다.
리눅스의 TCP/IP 코드 부분을 lwIP로 대체시켜야만 하는 이유를 말씀해 주시면 좀 더 나은 답변을 드릴 수 있을것도 같습니다.
http://savannah.nongnu.org/cgi-bin/viewc
http://savannah.nongnu.org/cgi-bin/viewcvs/lwip/contrib/ports/unix/
일단 리눅스에 올리는것이야 됩니다만.
리눅스 어디에? 라면 아직 문제가 덜 풀렸군요. ㅎㅎ
[quote]일단 리눅스에 올리는것이야 됩니다만.[/quote]아
아래 링크를 보시면 아시겠지만
http://www.sics.se/~adam/lwip/links.html
리눅스가 아닌 OS에 porting된 경우들이 있습니다.
리눅스가 가지고 있는 TCP/IP 코드들을 lwIP로 대체할 필요는 없어 보이지만, 리눅스 운영체제에 lwIP를 추가하여 기존 TCP/IP 코드와 lwIP와의 성능(코드 크기/latency/bandwidth)등을 비교하는 것은 말이 될거라고 생각해 봅니다.
댓글 달기