레이블이 커널인 게시물을 표시합니다. 모든 게시물 표시
레이블이 커널인 게시물을 표시합니다. 모든 게시물 표시

2012년 12월 14일 금요일

리눅스 3.7 커널 릴리즈: TCP Fast Open, vxLan 지원

리눅스 3.7 커널이 12월10일에 릴리즈 되었다. 이번 릴리즈는 ARM 64비트 아키텍쳐를 지원하고 서명된 커널 모듈, Btrfs 파일시스템 업데이트, strace 후의 새로운 "perf trace" 도구, 서버측면의 TCP Fast Open 기능, 안정적인 NFS 4.1 등 많은 기능이 업데이트 되었다.

눈에 띄는 변화는 ARM 멀티 플랫폼과 64 비트 지원이다. 싱글 ARM 커널 이미지로 여러 하드웨어에서 부팅이 가능해 졌다. ARM 플랫폼을 지원하도록 배포할때 더욱 쉬워지게 된 것이다.

보안적으로는 서명된 커널모듈을 지원해서, 올바르게 서명되지 않은 모듈은 커널에 로드하지 못하도록 한 것이다. 이 기능은 루트킷등을 이용해 모듈을 추가할 수 없도록 해 보안적으로도 상당히 유용한 기능이다.

네트워크 관점으로 보면 서버 측면에서 TCP Fast Open 을 지원한다. 이미 이 기능은 3.6 커널에서 추가된 것이나 이번 릴리즈는 서버측을 지원하는 것이다. TCP 연결을 맺을때 "Fast Open" 은 더욱 최적화하여 페이지 로드시 4% ~ 41% 정도 속도 향상을 가져온다. 물론 사용되는 환경마다 다르지만 말이다. 이 기능은 추후 블로그에서 다시 한번 소개할 예정이다.

또한 SMBv2 를 지원하고(시험적인 기능) NFS 4.1 이 오랜 기간을 끝내고 드디어 안정 버전으로 릴리즈 되었다. NFS 4.1 의 주 기능은 pNFS 라 하여 패러랠 NFS 을 지원한다. 이로 인해 분산된 여러 서버들 간의 파일시스템에 패러랠한 접근이 가능하다. UDP 프로토콜을 통해 레이어 2 이더넷 패킷을 전송할 수 있는 터널링 프로토콜 vxlan 을 지원한다. vxlan 은 가상화된 환경에서 터널링된 네트워크 환경을 지원하는데 주로 이용된다. VLAN 은 4096 개로 제한되었지만 이것은 24bit 로 확장되어 훨씬 많은 개수를 지원하게 된다. 이것또한 블로그에서 추후 언급할 예정이다.

마지막으로 네트워킹 관점의 변화된 주요 내용은 다음과 같다

  • loopback: set default MTU to 64K (commit)
  • Providing protocol type via system.sockprotoname xattr of /proc/PID/fd entries (commit)
  • Use a per-task frag allocator (commit)
  • Netfilter
    • Add protocol-independent NAT core (commit)
    • Add IPv6 MASQUERADE target (commit)
    • Add IPv6 NETMAP target (commit)
    • Add IPv6 REDIRECT target (commit)
    • Add IPv6 NAT support (commit)
    • Support IPv6 in FTP NAT helper (commit)
    • Support IPv6 in IRC NAT helper (commit)
    • Support IPv6 in SIP NAT helper (commit)
    • Support IPv6 in amanda NAT helper (commit)
    • Add stateless IPv6-to-IPv6 Network Prefix Translation target (commit)
    • Remove xt_NOTRACK (commit)
  • Near Field Communication (NFC): Add an Link Layer Control (LLC) Core layer to HCI (commit), add an shdlc llc module to llc core(commit), LLCP raw socket support (commit)
  • bonding: support for IPv6 transmit hashing (and TCP or UDP over IPv6), bringing IPv6 up to par with IPv4 support in the bonding driver (commit)
  • team: add support for non-Ethernet devices (commit)
  • gre: Support GRE over IPv6 (commit), add GSO support (commit), add GRO capability (commit)
  • packet: Diag core and basic socket info dumping (commit)
  • ethtool: support for setting MDI/MDI-X state for twisted pair wiring (commit)
  • ppp: add 64-bit stats (commit)
  • Add generic netlink support for tcp_metrics (commit)


[참고]
1. 리눅스 커널 3.7 릴리즈
http://kernelnewbies.org/Linux_3.7

2011년 1월 19일 수요일

복잡한 리눅스 커널, 맵을 통해 한눈에 들여다 보자!

복잡하기만 한 리눅스 커널을 이쁘게 만들어진 맵을 통해 들여다 보자.  아래 이미지의
커널 맵은 시스템, 프로세싱, 메모리, 네트워크 킹과 같은 큰 분류로 나뉘어져 그 밑에
관련된 내용을 포함하고 있다.

마우스를 해당 부분에 가져다 놓으면 관련된 정보가 나타나며, 클릭하게 되면 커널의 소스 및 기타 추가정보를 얻을 수 있다. 이외 우측의 네비게이션을 통해축소, 확대, 이동등을 할 수 있다. 커널 전체를 한번 들여다 보고자 하는 이들에겐 도움이 될것 같다.


접속은 다음 URL 을 방문하면 되고, 다 로드되기까지는 약간의 시간이 걸린다.