The Visual C++ 2008 Feature Pack extends the VC++ Libraries shipped with Visual Studio 2008 and is fully covered under Microsoft's standard support policies.
The VC++ 2008 MFC libraries have been extended to support creation of applications that have:
Office Ribbon style interface
Office 2007, Office 2003 and Office XP look and feel
Modern Visual Studio-style docking toolbars and panes
Fully customizable toolbars and menus
A rich set of advanced GUI controls
Advanced MDI tabs and groups
And much more!
This feature pack also includes an implementation of TR1. Portions of TR1 are scheduled for adoption in the upcoming C++0x standard as the first major addition to the ISO 2003 standard C++ library. Our implementation includes a number of important features such as:
Smart pointers
Regular expression parsing
New containers (tuple, array, unordered set, etc)
Sophisticated random number generators
Polymorphic function wrappers
Type traits
And more!
Note: This feature pack does not include C99 compatibility or support for special math functions.
Supported Operating Systems: Windows Server 2003; Windows Vista; Windows XP
Visual Studio: This Feature Pack is only supported on systems which have the English language (ENU) version of Visual Studio 2008 Standard Edition or above installed.
Support for systems with non-English versions of Visual Studio 2008 installed will be available in Visual Studio 2008 Service Pack 1.
Microsoft Windows SDK: If you install the Visual C++ 2008 Feature Pack and then install the Windows SDK for Windows Server 2008 and .NET Framework 3.5, some of the files in the Feature Pack are overwritten and lose the additions made by the Feature Pack.
Resolution:
Please install the Windows SDK for Windows Server 2008 and .NET Framework 3.5 first and then the Feature Pack.
If you have already installed the Feature Pack first and then Windows SDK, repairing your VS 2008 installation should solve the problem.
This is a supplemental library and requires Visual Studio 2008 Standard Edition or above be installed on your system. Installation on systems with Visual Studio 2008 Service Pack 1 (BETA) is not supported.
Click the Download button on this page to start the download.
MSDN online Libraries
The MSDN online libraries have been updated with new documentation and walkthroughs that support the new MFC and TR1 features included in this release. The documentation provides some great content to get you up and running quickly with the new components. The documentation can be found at:
The MFC C++ library source code for the Microsoft Office Fluent User Interface (the Fluent UI) is provided only as referential material to supplement the Microsoft Foundation Classes Reference and related electronic documentation provided with the MFC C++ library software. License terms to copy, use or distribute the Fluent UI are available separately. To learn more about our Fluent UI licensing program, visit http://msdn.microsoft.com/officeui.
The Ribbon functionality and MS Office 2007 Visual Styles included in this Feature Pack are subject to the license.
If you installed the original version of the Feature Pack (binary version = 9.0.30304.0), we strongly recommend you uninstall that version and install this new update.
To uninstall the previous version:
Vista and Windows Server 2008:Control Panel -> Programs and Features, click on "View Installed Updates" in the "Tasks" panel at left.
Windows XP: Control Panel -> Add or Remove Programs, check the “Show Updates” checkbox at the top of the page.
Expand the group for your Microsoft Visual Studio 2008 installation to show all updates.
Uninstall the design time components
Uninstall Update Roll Up for Microsoft Visual Studio 2008–ENU(KB945273) and Update Roll Up for Microsoft Visual Studio 2008–ENU(KB947886).
Note: You may have only one update (KB945273) to uninstall if you do not have 64-bit VC components installed on your computer.
Uninstall the runtime components
Under the group “Visual C++ 9.0” (expand group if needed), uninstall “Visual C++ 2008 Feature Pack - x86 - v9.0.30304.00” and “Visual C++ 2008 Feature Pack - x64 - v9.0.30304.00”.
Note: You may have only the x86 runtime to uninstall if you do not have 64-bit VC components installed on your computer.
Setup Issues:
Installation fails on German OS or English OS with German locale. This issue has been fixed in this update.
Installation will fail if there is a pending system “Restart” request.
For example, if your computer has some Windows updates, but you choose “Restart Later” option and start to install the Feature Pack before rebooting, the installation will fail without giving you an exact message.
The MFC wizards in the English version of Visual Studio are functional when the resource language is set to non-ENU but portions of the generated code will have non-localized comments. Additionally, MFCLOC redist satellites may be partially underlocalized.
MFC Known Issues:
There is a known problem with applications created using the MFC Project Wizard with the following combination of settings:
On User Interface Features page, Command Bars = Use a ribbon (selected by default when you choose any of the Office visual style/colors options)
On Advanced Features page, Printing and print preview = unchecked (unchecked by default when you choose Windows Explorer application type)
On Application Type page, Use of MFC = Use MFC in a static library
Applications generated with these settings may generate Debug Assertion failures when executed. The issue is that because print preview capabilities are added to the ribbon, the print resources are needed. This can be fixed by including afxprint.rc from the project RC file.
TR1 Known Issues:
TR1 consists of new headers (e.g. regex) and additions to existing headers (e.g. memory). The latter should not negatively affect existing projects in any way, except that it may slightly increase compilation times, and it can cause precompiled headers to require more space (through the /Zm option). If necessary, the TR1 additions to existing headers can be disabled by defining _HAS_TR1 to 0 throughout a project.
The following are known issues that are planned to be fixed in a future release:
regex performance is suboptimal.
regex::optimize has no effect. While this is permitted by the TR1 specification, regex::optimize is a suggestion to spend more time during construction in order to accelerate matching.
unordered_set, unordered_multiset, unordered_map, and unordered_multimap performance is suboptimal. Note that their performance is equivalent to that of stdext::hash_set (etc.), as they share the same implementation.
Complicated uses of bind() may fail to compile. For example, simple nested bind() expressions will compile, but complex ones will not.
VC Redist Package
The VCRedist_x86.exe package has been updated with this refresh to resolve previous installation and deployment blocking issues.
1969년 미국 국방부의
ARPAnet(Advanced Research Projects Network)이라 불리는 학술 연구망을 모체로 한 인터넷은
1994년 WWW(World Wide Web)의 대중화의 힘으로 급속도로 발전해왔다. 이러한 정보통신의 발전과 함께 국내의
인터넷은 1982년 서울대와 KIET간의 SDN (System Development Network) 이라는 통신망을 시점으로
현재는 교육전산망 (KREN: Korea Education Network), 연구전산망 (KREONet: Korea
Research Environment Open Network), 초고속국가망 (PUBNet)과 같은 비영리 인터넷망을 비롯하여,
BORANet, NEXTEL, KOLnet, NOWNet, KTNet, Inet, 등과 같은 많은 상업적 목적의 인터넷 망이
존재하고 있다.
이러한 국내외 통신망의 발전에 따라 인터넷 통신의 수요자는 전 세계적으로 99년 말에는 약 2억 5천만명에
이르렀으며, 2000년도에는 3억 8천명을 넘을것으로 예상된다. 또한 전 세계적으로 호스트의 수는 99년 말에는 7천만개를
넘어섰다.
위와 같이 전 세계적인 통신망을 구성하는 인터넷의 발전과 함께 그 수요의 폭발적인 증가에 따른 가까운
미래에 예측되는 인터넷의 확장은 ASIA 25억명, EASTEN EUROPE 2억 5천명, AFRICA 8억명, SOUTH
AND CENTURAL AMERICA 5억명의 사용자와 그외에 이동전화사용, 홈네트워킹 기술에 기반을 둔 각종 가정기기등은
50억 이상으로 예측된다. 이러한 급속적인 수요의 증가에 따라 인터넷상의 주소(IPv4)는 고갈이 예상되었으며, IPv6에 대한
연구가 시작되었다.
IPv6의 특징
가. IPv4(RFC791)의 문제점
현재 인터넷 주소로써 사용되고 있는 IPv4는 다음과 같은 문제점을
가지고 있다 현재 32비트 주소에서의 할당용량 부족 사이트규모에 따른 class별 할당방식의 문제점IPv4헤더영역의 비효율적
사용 특히 기하급수적으로 늘어가는 사용자에 대하여 할당용량의 부족은 가장 커다란 문제점을 가지고 있으며, 이러한 문제를 해결하기
위하여 Dynamic IP allocation with PPP 와 Private IP addresses with NAT의
기술로써 임시방편적인 대책을 마련하고 있지만, 이러한 대책들은 통신, 보안, 게임 같은 대부분의 인터넷응용들은 양방향 통신이
이루어져야 하므로 NAT와 같은 단방향성인 해결책은 인터넷 확산에 대하여 장애가 될 수 있다. 따라서 근본적인 IP에 대한
해결책은 될 수 없는 것이다.
나. IPv6의 특징
IPv4에 대한 문제점과 할당공간부족에 대한 문제점을 해결책으로 개발된 IPv6의 특징으로써는 다음과 같다.
- 거의 무한대 주소공간 (128bit)
- Aggregation-based address hierarchy
- 효과적인 백본 라우팅
- Efficient and Extensible IP datagram
- Fragmentation NOT by Routers, but only by a Source Host
- 보다 단순한 IPv6 기본 헤더, 40 bytes ·More efficient forwarding
- Source Routing & Hop-by-Hop Options Header
- Autoconfiguration & IP Renumbering ·Built-in Security AH & ESP
- QoS Flow Labeling
다. IPv6 의 규격
현재 RFC 규약에 의해 프로토콜규격 주소규격 라우팅 및 기타 규격에 의해 정의된 IPv6의 규격은 다음과 같다.
- 프로토콜 규격
RFC 2460: IPv6 Specification
RFC 1886: DNS Extensions to support IPv6
RFC 1981: Path MTU Discovery
RFC 2461: Neighbor Discovery for IPv6
RFC 2462: IPv6 Stateless Address Autoconfiguration
- 주소 규격
RFC 2373: IPv6 Addressing Architecture
RFC 2375: IPv6 Multicast Address Assignments
RFC 1887: An Architecture for IPv6 Unicast Address Allocation
RFC 2374: An IPv6 Aggregatable Global Unicast Address Format
RFC 2470: Proposed TLA and NLA Assignment Rules
- Routing
RFC 2080: RIPng for IPv6
RFC 2283: Multiprotocol Extensions for BGP-4
RFC 2545: Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain
- 기타
RFC 2292: Advanced Sockets API for IPv6
RFC 2553: Basic Socket Interface Extensions for IPv6
RFC 2473: Generic Packet Tunneling in IPv6 Specification
RFC 2507: IP Header Compression
RFC 2675: IPv6 Jumbograms
RFC 2711: IPv6 Router Alert Option
IPv6의 구조 (RFC2460)
가. IPv6의 기본 헤더구조
Ver
Traffic Class
Flow Label
Payload length
Next Header
Hop limit
128bit
Source Address
128bit
Destination Address
나. Version (4bits) : 0110
다. Traffic Class (8bits): 클래스 또는 우선권 식별
RFC1881에 따르면
0~7: Congestion-controlled traffic 8~15: Non-congestion-controlled traffic
0
No spechfic priorty
1
Background traffic
News
2
Unattended data transfer
email
3
Reserved for fufure definition
4
Attended bulk transfer
File transfer
5
Reserved for future definition
6
Interactive traffic
Remote login & windowing systems
7
Control traffic
Routing protocols & NMS
8
High-fidelity video traffic
…
15
Low-fidelity audio traffic
라. Flow Level : 송신자 노드에서 할당
- Flow : 송신자 IP 주소와 Non-zero flow label의 조합으로 유일하게 식별.
- 같은 flow에 속하는 모든 패킷들은 the same source address, destination address,and flow label.
- 아직 실험적 대상, 변경 가능성 있음
마.Payload Length (16bits)
- Basic header (40bytes)를 제외한 나머지 모든 영역
BasicHeade
BasicHeader
~ 210(65,535 bytes)
ExtensionHeaders
TCP/UDPHeaders
ApplicationHeader
User Data
바. Next Header (8bit)
IP v6header Next = TCP
TCP Header + DATA
IP v6 header
Next = Routing
Routing header
Next = TCP
TCP Header
+data
IP v6 header
Next = Routing
Routing header
Next = fragment
Fragment Header
Next = TCP
Fragment TCP Header + data
0
Hop-by-Hop Options Header
4
Internet Protocol
6
Transmission Control Protocol
17
User Datagram Protocol
41
IPv6
43
Routing Header
44
Fragment Header
45
Interdomain Routing Protocol
46
Resource Reservation Protocol
50
Encapsulating Security Payload
51
Authentication Header
58
Internet Control Message Protocol
59
No Next Header
60
Destination Options Header
사. Hop limits (8bits)
- 패킷 포워딩을 하는 노드에서 1씩 감소시킴
아. Source Address (128bits)
자. Destination Address (128bits)
IPv6확장헤더
IPv6의 기본 헤더 바로 다음에 위치하여 헤더의 종류는 바로 전 NEXT 헤더부분으로 판별된다. 확장헤더는 필요할 때만 사용하여 공간을 절약하는 장점을 가지고 있으며, 확장헤더의 종류와 나열순서는 다음과 같다.
가. 확장헤더의 종류
- Hop-by-Hop Options Header
- Options: Router Alert & Jumbogram
- TLV format
- 옵션별 위치 정렬 가능 처리 효율이 증가됨
Routing Header (Type 0)
패킷 전달경로를 Routingheader 내의 주소들을 따라서 결정 (현재Type = 0만 선언)
FEDC:0098:7654:3210:FEDC:BA98:7654:3210
· 각 필드에서 앞에 나오는 0은 선택적
예)
FEDC:0098:… = FEDC:98:
· 주소에서 유효한 비트의 수를 /를 이용하여 나타냄
예)
FE80::/10
각기 16비트로 구성된 여러 개의 필드가 0이면 FF01:0:0:0:0:0:0:101 = FF01::101 0:0:0:0:0:0:0:1
= ::1 0:0:0:0:0:0:0:0 = :: FF01:0:0:8A01:0:0:0:1 = FF01:0:0:8A01::1
prefix
ISP (Internet Service Provider)나 네트워크관리 담당자로부터 할당 받음 ·주소의 사용목적에 따라 다양한 할당방식이 가능하다.
다음은 사용목적에 따른 할당방식의 예이다
Allocation 항목
Prefix(2진수)
reserved
0000 0000
NSAP Allocation
0000 001
IPX Allocation
0000 010
Aggregatable Unicast Address
001
Link-local Unicast Address
1111 1110 10
Site-local Unicast Address
1111 1110 11
Muticast Address
1111 1111
Unicast
어떤 인터페이스 (interface) 하나에 대한 식별자 따라서 unicast 주소로 보내진 패킷은 이 주소가 할당된 인터페이스로 전달됨
- 기본형식
n-bits
128-nbits
Subnet prefix
Interface ID
- Interface identifiers
ㆍLinks or Nodes with EUI-64 Identifiers (64 bits)
ㆍLinks or Nodes with MAC address (48bits)Unspecified AddressLoopback Address
- IPv6 aggregatable global unicast address
3
13
8
24
16
64
FP
TLA ID
RES
NLA ID
SLA ID
Interface ID
001 Format Prefix (3 bit) for Aggregatable Global Unicast Addresses
TLA ID Top-Level Aggregation Identifier
ex.)0x1ffe, 6Bone / 0x0001, official use 0x0002, 6to4
RES Reserved for future use
NLA ID Next-Level Aggregation Identifier
SLA ID Site-Level Aggregation Identifier
INTERFACE ID Interface Identifier
여러 개의 인터페이스를 묶어서 하나로 나타내는 식별자
(이들 인터페이스는 통상 다른 노드에 있음)
-
Anycast 주소로 보내진 패킷은 이 주소를 사용하는 그룹 멤버들 가운데
가장 가까운 하나에게만 전달됨
Multicast
Anycast의 경우처럼 여러 개의 인터페이스를 묶어서 하나로 나타내는 식별자
그러나 이 주소로 보내진 패킷은 이 주소를 사용하는 그룹 멤버들 전체에게 전달됨
- 멀티캐스트주소형식
8
4
4
112
8bits
4bits
4bits
112bits
11111111
flags
scop
Group ID
- Flags is a set of 4flags
0
0
0
T
8
4
4
112
11111111
flag
scop
Group ID
11111111
flag
scop
Group ID
- flags is a set of 4flags
0
0
0
T
ㆍT = 0, 영구 할당 주소용
ㆍT = 1, 임시 할당 주소용
ㆍscope (scope)은 멀티캐스트의 범위를 제한
0 reserved 8 organization-local scope
1 node-local scope 9 A,B,C,D (unassigned)
2 link-local scope E global scope
3,4 (unassigned) F reserved
5 site-local scope
6,7 (unassigned)· 예약되어 있어 일반 사용 불가 멀티캐스트 주소
ㆍ자동 주소 설정 ㆍPlug-and-Play 기능 ㆍ자동 주소 재지정 (Renumbering) 기능 수행 ㆍAutoconfiguration 종류
- Stateful Mechanism
ㆍDHCP 서버로부터 주소를 비롯한 모든 네트워크 정보를 받음
- Stateless Mechanism
ㆍRouter로부터 주소를 비롯한 모든 네트워크 정보를 받을 수도 있고, 또는
ㆍRouter로부터 주소 정보만 받고 나머지 네트워크 정보들을 DHCP 서버로부터 받을 수도 있음
ㆍNDP 메시지를 사용하여 자동설정
ㆍLink - Local 주소를 NDP 메시지의 IP v6헤더에 사용
NDP (Neighbor Discovery Protocol)
-
IPv4 에서의 Address Resolution 기능에 ICMP 에서의 router discovery.rediraction 기능이 포함되었다
-
NDP message
ㆍRouter solictation/ advertisement message
자신과 동일한 링크에 연결되어 있는 router를 파악할 때 사용되며, 호스트는 router solicitation 으로 질의를 보내고 router는 router advertisement로 자신의 정보를 전달한다.
ㆍNeighbor solicitation / advertisement message
-
IP v4에서의 ARP기능
-
호스트는 neighbor solicitation으로 질의를 보낸다
-
목적호스트는 neighbor adverisement로써 응답을 보낸다.
ㆍ
Redirect message
-
라우터가 더 나은 경로를 알고 있을 때 redirect message를 패킷전송자에게 전달
Site Renumbering
Site 주소변경 시 Network의 재설정을 용이하게 해준다.
(각 호스트에 대한 주소변경이 불필요하다.) 1. 관리자에 의해 prefix1 에서 prefix2로 변경
2. 변경된 prefix2로 Router advertisment
3. prefix / default router 변경( prefix1:host 를 prefix2:host로 변경완료)
IPv4에서 IPv6로의 변환
현재 전세계적으로 사용되고 있는 IPv4를 IPv6로 전환시에는 많은 시간과 비용이 필요하게
된다. 이러한 문제점은 IPv6로의 전환을 어렵게 만들고 있다. 커다란 인터넷망에서 한순간에 IPv6로의 전환은 힘들다는 것을
인지하고 IPv4와 IPv6와의 공존의 기간과 IPv6로의 전환기간역시 고려되어야 한다. 다음은 IPv4와 IPv6의 두가지
형식을 통신에 함께 사용할 수 있는 기술들이다.
- Tunneling방식 : 네트워크에서 터널을 제공해주는 서비스를 하거나 동적으로 터널을 생성해주는 방식
ㆍ
AIIH( Assignment of IPv4 global Address)
IPv4 및 IPv6 이중호스트가 원할 때에만 IPv4주소를 얻는 형식이다.
단점 : DNS/DHCPv6와의 통신방법이 불분명하다.
ㆍ
2 DTI(DynamixTunnelInterface)
IPv6 도메인내에서 IPv4호스트와의 통신을 위해서 사용되는 방식이다.
ㆍ
3 6 to 4
IPv4 도메인을 사이에 둔 IPv6도메인간의 통신을 위해 사용된다. 이 방식은 주소에 6to4 TLA 및 IPv4를 위한 NLA가 사용되며 IPv4호스트와의 통신기법은 아니므로 별도의 변환작업이 필요하다.
ㆍ
Header Translation 방식
Header Translation 방식은 네트워크에서의 호스트등에서 IPv6 의 패킷과 IPv4 의 패킷을 서로간에 변환하여 통신하는 방식이다 .
ㆍ
NAT-PT
IPv4도메인 및 IPv6도메인의 경계지점에서 각
패킷의 프로토콜 헤더부분을 변환하는 역할을 담당한다. 가) SIIT : 헤더별 변환 메커니즘을 가지고 변환하는 방식이다 나)
SOCKS64 : Firewall용 프로토콜인 SOCKS64를 수정하여 IPv4와 IPv6간의 Traslator로 사용하는
형식이다. SOCKS서버는 통신을 원하는 IPv4호스트 및 IPv6호스트를 각각의 TCP로 접속하여 변환작업을 수행한다. 다)
IPv6할당과 진행사항
IPv6의 표준 구현테스트와 Transition
전략테스트 그리고 이러한 IPv6의 네트워크운영경험을 축척하기 위해서 테스트용으로 인터넷 IPv6 백본망이 필요하게 되며, 현재
북아메리카, 유럽, 일본, 한국을 포함하는 비공식적인 합작 프로젝트로써 6Bone이라는 백본망을구성하고 있다.
이
러한 6Bone은 IPv6 패킷 라우팅을 지원하기 위한 물리적인 IPv4 기반의 인터넷 상속물들의 제일 높은 계층의 가상
네트워크이다. 이를 통하여 현재 IPv6와 관련된 많은 테스트들이 행하여지고 있으며, IPv4에서 IPv6로의 이행은 IPv4와
IPv6가 동시에 병행되어 쓰이면서 점차적으로 완전한 IPv6로 이행되는 형태가 될 것으로 예상된다.
IPv6 기본 헤더 다음에 올 extension 헤더 또는 upper Layer (TCP/UDP/ICMPv6) 헤더 종류를 명시
Checksum
X (삭제)
hop을 거칠 때마다 TTL값을 감소시키고 checksum이 재계산 되는
비효율성을 없애고 layer2를 신뢰함.
upper layer에서 checksum 필드를 사용하도록 권장함
SRC Address
SRC Address
IPv6 에서 128 bits 주소 체계로 확장
DST Address
DST Address
IPv6 에서 128 bits 주소 체계로 확장
○ IPv6 패킷의 구성
: IPv6 헤더는 여러 확장 헤더와 upper layer들이 Next Header 필드 값을 통해 연결될 수 있다.
Next Header 필드는 다음에 올 헤더의 종류를 명시한다.
○ IPv6 확장 헤더
: 확장 헤더에는 다음에 올 헤더 또는 upper layer를 명시하는 next header(8 bits) 필드와 hdr length(8 bits)
필드가 일반적으로 존재한다. (fragment extension header는 고정 크기 이므로 예외)
hdr length는 Next Header, hdr length 필드를 제외한 확장 헤더의 사이즈를 나타낸다.
(8 bytes = 1로 사이즈 표현)
fragment extension 헤더는 고정된 사이즈인 (64 bits)의 크기를 갖는다.
○ IPv6 확장 헤더의 종류
1) Hop by Hop Extension Header
2) Destination Extension Header
* MLD : Multicat Listener Discovery
3) Routing Extension Header
- path segments : 남아있는 거쳐가야 할 router의 개수
- strict/loose bit mask
strict bit : 정해진 router 경로 이외에 다른 router가 중간에 끼어 있을 경우 packet forwarding을 포기하고
ICMP 메시지를 되돌려 줌
loose bit : 중간에 다른 router가 존재해도 packet forwarding을 수행
4) Fragment Extension Header
: IPv6의 Fragment Extension Header의 사이즈는 8 bytes로 고정되어 있음
- Fragment Offset : Original 데이터의 offset, N x 8 bytes 로 표현됨. N 이 offset 값을 가짐.
- Mark (1 bit) : 0 이면 Unfragmented 패킷 또는 fragmented 마지막 패킷, 1 이면 중간의 fragmented 패킷을 의미
- Identification : fragmented 패킷에 대해 동일한 ID를 가짐
5) Authentication Extension Header (AH)
- Security Parameters Index : Source와 Destination 간의 Security Association (단방향)
- Sequence Number : replayed packet 공격을 방지하기 위한 counter
- Authentication Data : packet의 위/변조에 대한 integrity를 검사하기 위한 hash (MD5 & SHA-1)
중간에 packet이 router에 의해 변하기 쉬운 필드를 제외하고는 모두 hash되어진다.
(아래 그림에서 노란색 부분이 authentication 대상 데이터이다.)
6) Encapsulating Security Payload Header (ESP)
: ESP 확장 헤더는 payload를 암호화 하는데 사용되며 AH 확장 헤더와는 독립적이다.
즉 AH 확장 헤더와 ESP 확장 헤더가 함께 사용될 수 있다.
- Security Parameters Index : Source와 Destination 간의 Security Association (단방향)
- Sequence Number : replayed packet 공격을 방지하기 위한 counter
- Next Header : 일반적으로 암호화되는 payload의 프로토콜 타입을 명시한다. (TCP/UDP...)
ESP 확장 헤더를 포함한 패킷은 다음과 같이 구성될 수 있다.
※ 전 IPv6에 대해 회의를 가지고 있습니다. 사람들이 IPv6 망을 이용할까요? 아무리 IP를 auto configuration
한다고 해도 눈에 너무 안들어오네요.
Some VS2005 and VS2008 Wizards Pop Up Script Error.
Visual C++ team has discovered that after installing the current release of Internet Explorer (Internet Explorer 8), some VC++ wizards do not function correctly. The products affected are Visual Studio 2005 and Visual Studio 2008. Following are the affected wizards:
-Add Function
-Add Variable
-Smart Device – New Project Creation
-Smart Device – Add Class
Invoking any of the above wizards in VS2005 or VS2008 will pop up a script error if IE8 is installed on the machine. We have a workaround for those who have encountered this error.
Please follow the following steps:
-Open regedit (on a 64-bit OS, open the 32-bit regedit)
-Under “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones”, create a new key called 1000 (if it isn't already there)
-Under 1000, create a DWORD entry with:
oName = 1207
oType = REG_DWORD
oData = 0x000000
For the workaround to work on VS2005 however, the VS2005 SP1 (and VS2005 SP1 Update for Windows Vista) has to be installed.
Following is a brief explanation of the problem and the workaround:
The VC++ Wizards Engine implements the IInternetSecurityManager interface. In this implementation it allows or disallows specific actions under certain policies that Internet Explorer queries it about. In IE8 a custom Security Manager now also gets queried about the URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION policy which IE previously did not delegate to custom security managers when the engine wasn’t running in the iexplore.exe process. The IE engine then fails this action because we don’t have a policy entry for it in the custom zone for VC++ Wizards. We are still investigating whether this change in IE8 is by design and will possibly be addressing it by a fix in either the Wizard or IE components depending on the outcome.
The above workaround lets the policy 1207 (URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION) to be allowed in zone 1000 (custom zone of VC++ Wizards engine). This allows the wizard code to work as intended.
We apologize for the inconvenience this issue may have caused you.
이 버그는 VC++ 6.0에서 File-Open을 클릭하거나, 프로젝트에서 Add File...을 클릭하면 발생하는 VC++ 6.0 Crash에 대한 부분입니다.
예전에
wz1054님이랑 넷미팅 중이였을 때, wz1054님도 같은 증상이 있던것으로 생각되는데, 저 역시 포맷 후에 XP SP3
무인설치로 깔아주니 같은 현상이 일어나네요. ( 게다가 커널 드라이버 역시 ntoskrnl.exe이 아닌
ntkrnlpa.exe로 wz1054님이랑 상황이 완전 비슷하다랄까... )
1. 별도의 ToolBox Add-in 사용 ( 근데 이건 비추합니다.File-Open의 기능보다 너무 간소해서... 별로 쓰기가 싫은(?) )
2. SP4 이상(SP4~SP6)으로 Visual Studio 6.0을 패치한다. ( 제 컴퓨터에서는 SP6인데도 이런 증상이 일어나는군요. )
일단 이 문제는 컴퓨터에 너무 많은 Component Server(COM)들이 설치되어있어서 발생한다고 써져있었습니다. (근데 왜 과거에 쓰던 시스템에서는 많았는데도 잘됐을까... 쿨럭)
1xx: Informational - Request received, continuing process
2xx: Success - The action was successfully received, understood, and accepted
3xx: Redirection - Further action must be taken in order to complete the request
4xx: Client Error - The request contains bad syntax or cannot be fulfilled
5xx: Server Error - The server failed to fulfill an apparently valid request
'작은 아이'의 '시스템 프로그래밍' 과제 도와주다가
리눅스에는 없어서 직접 구현해야하기 때문에 찾게된 itoa() 함수.
굳인거 같아요.
char * ltoa (long val, char *buf, unsigned radix)
{
char *p; /* pointer to traverse string */
char *firstdig; /* pointer to first digit */
char temp; /* temp char */
unsigned digval; /* value of digit */
p = buf;
if (radix == 10 && val < 0) { /* negative, so output '-' and negate */
*p++ = '-';
val = (unsigned long)(-(long)val);
}
firstdig = p; /* save pointer to first digit */
do {
digval = (unsigned) (val % radix);
val /= radix; /* get next digit */
/* convert to ascii and store */
if (digval > 9)
*p++ = (char) (digval - 10 + 'a'); /* a letter */
else
*p++ = (char) (digval + '0'); /* a digit */
} while (val > 0);
/* We now have the digit of the number in the buffer, but in reverse order. Thus we reverse them now. */
*p-- = '\0'; /* terminate string; p points to last digit */
do {
temp = *p;
*p = *firstdig;
*firstdig = temp; /* swap *p and *firstdig */
--p;
++firstdig; /* advance to next two digits */
} while (firstdig < p); /* repeat until halfway */
서버로 사용하는 리눅스 박스의 문자셋이 UTF-8로 설정되어 있는 상황에서 시스템의 문자셋이 UTF-8이 아닌 MS
Windows에서 리눅스 박스의 FTP 서버에 접속했을 경우 UTF-8로 되어 있는 한글 파일이름이 깨져 나오거나 아예 보이지
않는 현상이 발생한다. 나의 경우 FTP Client를 서버의 문자셋을 따로 설정할 수 있는 FileZilla를 사용하기 때문에
상관 없지만 MS IE나 서버의 문자셋을 설정할 수 없는 여타 다른 FTP Client로 FTP 서버에 접속하였을 경우
UTF-8로된 한글 파일이름이 깨어지게 되고 MS IE에서 업로드한 한글 파일 이름 역시 리눅스 박스에서 깨져나오게 된다.
이러한 이유로 서버단에서 문자셋을 변경해 줄수 있는 FTP 데몬을 찾고 있었는데 구글님의 도움으로 Pure-FTPd가 RFC2640을 지원기 때문에 서버와 클라이언트의 문자셋이 다를 경우 서버에서 문자셋을 바꿔주는 기능이 있다는 사실을 알게 되었다.
Pure-FTPd를 설치 하고 서버의 문자셋을 UTF-8로 클라이언트의 문자셋을 CP949(EUC-KR)로 설정하니 원했던되로 MS IE에서도 한글을 훌륭하게 표현된다.
우분투 박스에서 Pure-FTPd를 설치하고 설정하는 방법을 간단하게 적는다.
우선 Pure-FTPd를 설치한다.
sudo apt-get install pure-ftpd
다른 FTP Client와는 다르게 Pure-FTPd 데몬 실행 옵션으로 FTP 데몬을 설정할 수 있게 되어 있다.
Ubuntu에서는 /etc/pure-ftpd/conf 디렉터리에 실행시 적용할 옵션의 이름과 같은 파일을 만들고 그 파일에 해당
옵션에 주어야할 값이나 해당 옵션이 on/ff의 기능을 하는 경우 파일에 yes/no를 적어 주면 데몬 실행 wrapper에서
conf 디렉터리에 있는 파일들을 읽어 옵션을 적용하여 데몬을 실행하게 된다. 실행시 사용할 수 있는 옵션은 --help
옵션으로 알 수 있다.
pure-ftpd --help
익명 FTP를 사용하고 싶지 않다면 --noanonymous (-E) 옵션을 사용하면 되는데
/etc/pure-ftpd/conf 디렉터리에 NoAnonymous 파일을 만들고 이 파일에 yes를 적어 주면 실행시에 이
옵션을 적용된다. 만드는 파일의 이름은 첫글자는 대문자 다른 글자는 소문자, 여러 단어가 합쳐져 있을 경우는 각단어의 시작을
대문자로, 옵션의 이름이 약어일 경우 모두 대문자로 만들어 주면 된다.
몇가지 예를 들어 보면 로그 파일의 위치를
지정하는 altlog 옵션의 경우 AltLog, 시스템 계정 사용자의 인증을 허용하는 옵션인 unixauthentication
옵션의 경우 UnixAuthentication, 보안을 위해 TCL/SSL을 활성화 하는 옵션인 tls 옵션의 경우 약자이므로
TLS 파일을 만들어 주면 된다.
앞에서도 설명했지만 파일안의 내용은 옵션이 on/off 기능을 담당하는 경우 yes/no를 옵션이 특정 값을 요구하는 경우는 해당 값을 적어 주면 된다.
다음은 설치시 기본적으로 적용되는 옵션외에 문자셋 변환을 위한 옵션 (FsCharset, ClientCharset),
FTP 로깅시 호스트 이름 대신 IP를 로깅하게 하게 하는 옵션 (DontResolve), MS IE 등 일부 FTP
Client와 의 호환을 위해 일부 표준을 무시하는옵션(BrokenClientsCompatibility, MS IE로 접속했을때
주소창에 ID@example.com와 같이 ID를 넣지 않고 ftp 서버의 주소만 넣을 경우 익명 FTP 로 접속되는데 익명
FTP로 접속하지 않고 ID/PW를 물어 보는 창을 표시하고 싶을 때 사용.)들을 적용하는 예다.
echo "utf8" | sudo tee /etc/pure-ftpd/conf/FsCharset echo "cp949" | sudo tee /etc/pure-ftpd/conf/ClientCharset echo "yes" | sudo tee /etc/pure-ftpd/conf/BrokenClientsCompatibility echo "yes" | sudo tee /etc/pure-ftpd/conf/DontResolve
적용후 데몬으로 재시작 하면 해당 옵션이 적용되어 데몬이 시작되는 것을 볼 수 있다.
sudo /etc/init.d/pure-ftpd restart
한가지 아쉬운 점이라면 이런 옵션을 특정 사용자나 특정 디렉터리에만 적용하는 방법을 찾을 수 없었다는 것이다.
(0 : 존재하지 않음 , A : 사용 중 , I : 중간 , Z : 취소 , T : 중지 , K : 사용가능한 커널프로세스)
STIME : 프로세스의 시작 시간
TIME : 프로세스에 대한 총 수행 시간
COMMAND : 명령 이름
%CPU : 프로세스 시작 이후에 프로세스가 CPU를 사용한 시간의 백분율. 값은
프로세스에서 CPU를 사용한 시간을 프로세스의 경과 시간으로 나누어 계산됩니다. 멀티프로세서 환경에서, 값은 동일한 프로세스의
여러 스레드가 동시에 서로 다른 CPU에서 수행한 이후로 사용가능한 CPU의 수로 나누어집니다. (이 데이타가 계산된 시간
기준은 다양하므로, 모든 %CPU 필드의 합계가 100%를 초과할 수 있습니다.)
%MEM : 이 프로세스에 의해 사용된 실제 메모리 비율. 종료되어 이제는
프로세스를 기다리지 않는 상위가 있는 프로세스는 <defunct>. 종료 시도가 방해된 프로세스는
<exiting>. ps 명령은 프로세스가 메모리나 교환 영역에 의해 작성되었을 때 주어진 파일 이름이나 인수의
판별을 시도합니다.
[실행결과]
%> ps aux
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND
----------------------------------------------------------------------------------------------
root 774 34.0 0.0 12 12 - A 11월26:14:6 13:00 wait
root 516 28.4 0.0 12 12 - A 11월26:12:22 6:39 wait
PROCESS STATE CODES
Here are the different values that the s, stat and state output
specifiers (header "STAT" or "S") will display to describe the state of
a process.
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being
traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its
parent.
For BSD formats and when the stat keyword is used, additional
characters may be displayed:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ is in the foreground process group
Could not load Host USB Proxy Service (VERR_FILE_NOT_FOUND) - VirtualBox Error
※ Guest Windows에서 USB사용하려면 이걸론 안되고 아래에 USB인식 부분을 참고 하세요 !
X-NOTE R200에 설치한 ubuntu 8.10 beta (intrepid) 계속 쓰고 있었어요.
VMware쓰다가 VirtualBox-OSE(시냅틱으로 설치한)로 갈아탔었는데
http://www.virtualbox.org 에서 deb패키지 받아다가 설치 했더니 이게 왠..
i fixed the problem by doing this through the terminal
Virtualbox uses usbfs to access usb devices and expects it to be in
/proc/bus/usb/
do 'mount -t usbfs /sys/bus/usb /proc/bus/usb/' (as root!)
Then restart virtualbox.
This worked for me on two machines.
but i cannot get windows xp to recognize USB drives in virtual box....
can anyone give me anyhelp?
1.
private로 선언된 printCalendar()에서
년도출력/월출력/단출력 을 모두 하게 했답니다.
(전 모군이 그렇게 했다고 저한테 그러길래 해봤어요)
2.
이전의 것은 날짜를 바꾸기 위해선 새롭게 instance를 생성해야 했지만,
이번엔 set함수를 만들어 객체 내에서 날짜를 바꿀 수 있도록 했지요.
(물론 생성자를 이용한 초기화도 가능하며 생성자 오버로딩을 이용해 현재시각을 설정할 수도 있어요)
3.
전에 만든 것 처럼 모든 메뉴를 만든게 아니라, class 구현에만 중점을 둬서 바로 쓰진 못해요.
4.
결과 확인을 위해 class 내부에 main()함수를 만들어 테스트 했어요
main()함수 지우고 class 끌어다가 쓰면되요 히힛
ps. 이거 복사 붙여넣기 해서 쓰는거에요.
DES도 이거 들어갔을텐데.. = =;;
아 근데 아무리 술먹고 피곤하고 졸리다지만
코드 너무 막 짰다..
/************************************************************
*
* Writer : 유♡Nazuki
* E-mail : pure@pure.wo.tc
* Date : 2008.10.28.
*
*********** comment **********
*
* 순천향대학교 정보보호학과 2학년 2학기 자료구조 실습
* 4가지 조건 만족하는 달력 만들기
* - 1. 월 출력
* - 2. 년 출력
* - 3. 날짜가 무슨 요일인지
* - 4. 단(column) 출력
* 를 했는데 이걸 2학년 때 java 배우면서 할 때
* 코드가 너무 지저분해서 언젠간 꼭 다시 해야지 했었는데
* 4학년 2학기가 되서야 만들어보는.
*
* 잘못된 점이 있으면 지적해 주시고
* 무단 수정은 해도 상관없지만
* 좋은 방향으로 수정되면 저도 좀 보여주시고 ㅠㅠ
* 개선 방안 등의 코멘트를 대 환영합니다.
*
************************************************************/
If all else fails, you may still be able to communicate with the Kernel.
To use, just press the Alt and SysRq (PrintScreen) keys and one of the keys listed below, all together. You should try switch into a terminal window, if possible, first by pressing Ctrl+Alt+F2.
If your computer is not responding you can use the following steps to perform a reboot with less chance of fscking your files. This is the method suggested on Wikipedia's Magic SysRq key page.
Press Ctrl+Alt+F2 to switch to a terminal window. Sometimes, this is not possible.
Press Alt+SysRq+R to get the keyboard
If pressing Ctrl+Alt+F2 before failed, try it again now.
Press Alt+SysRq+S to sync your disks.
Wait for OK or Done message.
Press Alt+SysRq+E to term all processes.
Press Alt+SysRq+I to kill all processes.
Press Alt+SysRq+U to umount all disk drives.
Wait for OK or Done message.
Press Alt+SysRq+B to reboot.
The Full list of available commands is shown below. It's largely taken from Documentation/sysrq.txt in the Linux Kernel Sources.
Alt+SysRq+
Action
Uses
R
UnRaw
Turns off keyboard raw mode. This allows input from the keyboard even if X-Window has crashed.
K
SAK - Kill all on console
Secure Access Key - Kills all programs on the current virtual console. This is useful if you want to make sure there are no programs waiting on the console to grab your password, or if a process won't let you switch consoles.
S
Sync
Attempts to sync all filesystems. This lessens the chance of data loss and fscking. Syncing is complete when "done" or "OK" is printed.
U
Umount
Attempts to remount all filesystems as read-only. Umounting is complete when "done" or "OK" is printed.
B
Reboot
Will immediately reboot without syncing or unmounting any disks. Before using this use Alt+SysRq+S and Alt+SysRq+U to avoid data loss.
C
Crashdump
Will perform a kexec reboot, in order to take a crashdump. Before using this use Alt+SysRq+S and Alt+SysRq+U to avoid data loss.
O
Power Off
Turns off the computer without syncing or unmounting disks. Before using this use Alt+SysRq+S and Alt+SysRq+U to avoid data loss.
P
Show Pc
Attempts to dump all registers and pointers to console.
T
Show Tasks
Attempts to dump a list of all tasks to console.
M
Show Memory Info
Displays memory info to console
V
Voyager processor info
Dumps Voyager SMP processor info to your console.
0-8
Kernеl Error Verbosity
Set the console log level for kernel messages. Setting to 0 only shows messages like PANIC and OOPS
F
OOM Kill
Calls oom_kill to kill a memory hog process
E
Term
Sends SIGTERM signal to all processes.
I
Kill
Kills (sends SIGKILL signal to) all processes.
L
Kill + Kill Init
Kills (sends SIGKILL signal to) all processes, including init. You will not be able to do anything else after using this!