۰۪۪۫۫●۪۫۰-SolitaryWolf--IT--Let's share together-۰۪۪۫۫●۪۫۰

The place for everyone to discuss anything that you like..specially for Information Technology... Software,Hardware,Program C,C++,C# and more...

Ng%C3%A0y+t%C3%A0n+c%E1%BB%A7a+Torrent+s%E1%BA%AFp+%C4%91%E1%BA%BFn

Không chỉ có những trang web chia sẻ mà ngay cả phương pháp chia sẽ dữ liệu P2P phổ biến hiện nay cũng đang gặp nguy hiểm. 2 nạn nhân đầu tiên chính là utorrent và Demonoid, cái tên rất quen thuộc với dân download Việt Nam.



Demonoid, một trong những trang torrent nổi tiếng nhất hiện nay, đã bị đánh sập. Đây không phải là lần đầu tiên, tuy nhiên lần này có sự nhúng tay của IPFI, tổ chức chống vi phạm bản quyền nổi tiếng nhờ sự kiện đóng cửa Megaupload cách đây không lâu. Với việc tên miền Demonoid.me, Demonoid.com và Demonoid.ph đang bị rao bán tạo Sedo, tất cả hy vọng trở lại của Demonoid hoàn toàn tan biến.
demonoiddead1
Demonoid đã không còn

IPFI cho biết họ đang mở cuộc điều tra tại Mexico, nơi được cho là nơi ở của admin Demonoid. Điều này đồng nghĩa với khả năng một cuộc kiện tụng đình đám nữa sẽ nổ ra tương tự như với Kim Dot Com, ông chủ của Megaupload.

Bên cạnh đó, một tin không vui cho giới chơi torrent là utorrent, chương trình khá phổ biến tại Việt Nam, sẽ bị tích hợp quảng cáo. Trên lý thuyết, điều này không có nhiều ảnh hưởng tới người sử dụng nhưng thực tế thì hoàn toàn ngược lại.

eee
utorrent cũng sắp nối bước

Công ty mẹ của chương trình này nhắm đến hàng loạt các nhà tài trợ "có bản quyền", đi ngược lại với mục đích của dân chơi torrent. Không dừng lại ở đó, quảng cáo này sẽ tích hợp thẳng vào bên trong chương trình khiến người sử dụng rất khó né tránh, chưa kể là một số được thiết lập dưới dạng "torrent tài trợ" sẽ gây khó khăn cho "công việc ngoài lề" của chúng ta. Nếu tiếp tục, không loại trừ khả năng trong tương lai utoorent chỉ còn có thể download những nội dung "có bản quyền" mà thôi.

2 ông lớn đã ngã, hay chính xác hơn là 1 ngã một sắp bị thâu tóm. Tương lai của torrent sẽ đi về đâu?

THƯ VIỆN TIME.H

Các đối tượng kiểu struct tm được sử dụng để lưu trữ ngày tháng và thời gian.
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year; //year since 1900
int tm_wday; //days since Sunday
int tm_yday; //days since 1 January: [0,365]
int tm_isdst; //daylight saving time flag
}
Cờ tm_isdst là số dương (+) nếu daylight saving time có tác dụng, bằng 0 nếu không có, là số âm (-) nếu không có thông tin.

Mã quy cách Ý nghĩa
%a Tên ngày trong tuần viết tắt
%A Tên ngày trong tuần đầy đủ
%b Tên tháng viết tắt
%B Tên tháng đầy đủ
%c Date và time
%d Ngày trong tháng
%H Giờ trong ngày, 24 giờ
%h Giờ trong ngày, 12 giờ
%j Ngày trong năm
%m Tháng
%M Phút sau giờ
%p AM hay PM
%s Giây trong giờ
%U Tuần trong năm
%w Ngày trong tuần (0-6)
%x Date
%X Time
%y Năm trong thế kỷ
%Y Năm
%Z Múi giờ
%% Ký tự %

Truy nhập vào đồng hồ
clock_t clock (void);
Đây là số xung đồng hồ của máy. Muốn tính ra giây, ta đem chia với CLOCK_PER_SEC. Nếu tạo xung đồng hồ của CPU không có, hàm trả lại giá trị 1.

Truy nhập vào thời gian
double difftime (time_t t0, time_t t1);
char *asctime (const struct tm *tp);
size_t strftime (char *s, size_t n, const char *cntrl_str, const struct tm*tp);
structtm *gmtime (const time_t *t_ptr);
struct tm *localtime (const time_t *t_ptr);
time_t mktime (struct tm *tp);
time_t time (time_t *timer); nhận thời gian hệ thống quy ra giây
void getdate (struct date *datep); nhận ngày hệ thống
void setdate (struct date *datep); thiết lập ngày hệ thống
void gettime (struct time *timep); nhận giờ hệ thống
void settime (struct time *timep); thiết lập giờ hệ thống

THƯ VIỆN STRING.H

Các hàm quản lý bộ nhớ
int memcmp (const void *s1, const void *s2, size_t n); so sánh n byte trong 2 chuỗi s1, s2 (phân biệt chữ hoa, chữ thường)
Nếu giá trị trả về >0 thì chuỗi s1 > chuỗi s2
Nếu giá trị trả về <0 thì chuỗi s2 < chuỗi s1
Nếu giá trị trả về =0 thì chuỗi s2 giống chuỗi s1
int memicmp (const void *s1, const void *s2, size_t n); so sánh n byte trong 2 chuỗi s1, s2 (không phân biệt chữ hoa, chữ thường)
Nếu giá trị trả về >0 thì chuỗi s1 > chuỗi s2
Nếu giá trị trả về <0 thì chuỗi s2 < chuỗi s1
Nếu giá trị trả về =0 thì chuỗi s2 giống chuỗi s1

void *memchr (const void *s, int c, size_t n); tìm ký tự c trong n byte đầu của vùng s, nếu tìm thấy, hàm trả về địa chỉ của byte chứa ký tự c đầu tiên trong s, trái lại, trả về NULL
void *memccpy (void *dest, const void *src, int c, size_t n); sao chép các ký tự từ vùng src sang vùng dest, việc sao chép kết thúc khi gặp ký tự c hoặc đã sao chép đủ n ký tự
void *memcpy (void *dest, const void *src, size_t n); sao chép n ký tự từ vùng src sang vùng dest, hàm cho lại địa chỉ vùng dest
void *memmove (void *dest, const void *src, size_t n);
void *memset (void *s, int c, size_t n); gửi ký tự c vào n byte đầu của chuỗi s, hàm trả lại địa chỉ chuỗi s
void movedata (unsigned srcseg, unsigned srcoff, unsigned destseg, unsigned destoff, size_t n); sao chép n byte từ phân đoạn srcseg:srcoff đến địa chỉ destseg:destoff
Các hàm quản lý xâu ký tự
char *gets (char *s); nhập chuỗi
char *puts (char *s); xuất chuỗi
char *strcat (char *s1, const char *s2); ghép chuỗi s2 vào đuôi chuỗi s1
char *strchr (const char *s, int c); tìm ký tự c trong chuỗi s (bắt đầu từ bên trái), không có trả về NULL
char *strcpy (char *s1, const char *s2); sao chép nội dung trong s2 vào trong s1
char *strdup (const char *s); gấp đôi chuỗi s
char *strerror (int error_number);
char *strlwr (char *s); đổi chuỗi s thành chữ thường
char *strncat (char *s1, const char *s2, size_t n);
char *strncpy (char *s1, const char *s2, size_t n); sao chép tối đa n ký tự đầu của chuỗi s2 vào trong s1
char *strnset (char *s, int c, int n); gán n lần ký tự c vào trong chuỗi s
char *strpbrk (const char *s1, const char *s2); tìm lần xuất hiện đầu tiên của một ký tự thuộc s2 trong s1, nếu có, hàm cho địa chỉ của ký tự tìm thấy trong s1, trái lại, hàm cho NULL
char *strrchr (const char *s, int c); tìm ký tự c trong chuỗi s (bắt đầu từ bên phải), không có trả về NULL
char *strrev (char *s); đảo ngược các ký tự trong chuỗi s
char *strset (char *s, int c); đặt ký tự c vào mọi vị trí trong chuỗi s (thay các ký tự trong s bằng c)
char *strstr (const char *s1, const char *s2); tìm chuỗi s2 trong chuỗi s1, trả về vị trí chuỗi s2 trong chuỗi s1
char *strtok (char *s1, const char *s2);
char *strupr (char *s); đổi chuỗi s thành chữ hoa

int strcmp (const char *s1, const char *s2); trả về kết quả so sánh 2 chuỗi s1 và s2, không phân biệt chữ hoa, chữ thường của cùng một ký tự
Nếu giá trị trả về >0 thì chuỗi s1 chứa chuỗi s2
Nếu giá trị trả về <0 thì chuỗi s2 chứa chuỗi s1
Nếu giá trị trả về =0 thì chuỗi s2 giống chuỗi s1
int strcoll (const char *s1, const char *s2);
int stricmp (const char *s1, const char *s2); trả về kết quả so sánh 2 chuỗi s1 và s2, phân biệt chữ hoa, chữ thường của cùng một ký tự
Nếu giá trị trả về >0 thì chuỗi s1 chứa chuỗi s2
Nếu giá trị trả về <0 thì chuỗi s2 chứa chuỗi s1
Nếu giá trị trả về =0 thì chuỗi s2 giống chuỗi s1
int strncmp (const char *s1, const char *s2, size_t n); so sánh n ký tự đầu tiên của chuỗi s1 và s2
int strnicmp (const char *s1, const char *s2, size_t n); so sánh n ký tự đầu tiên của chuỗi s1 và s2, không phân biệt chữ hoa, chữ thường của cùng một ký tự

size_t strcspn (const char *s1, const char *s2); tìm độ dài đoạn đầu của chuỗi
size_t strlen (const char *s); xác định chiều dài chuỗi s
size_t strspn (const char *s1, const *s2); tìm độ dài đoạn đầu của chuỗi
size_t strxfrm (char *s1, const char *s2, size_t n);

unsigned *strlen (const char *s); xác định chiều dài chuỗi s


THƯ VIỆN STDLIB.H


File tiêu đề này chứa các nguyên mẫu của các hàm được sử dụng vào các mục đích chung, hoặc với các macro và các định nghĩa kiểu có liên quan.

Cấp phát bộ nhớ động
unsigned coreleft (void); cho biết bộ nhớ khả dụng trong vùng cấp phát động đối với mô hình tiny, small và medium
unsigned long coreleft (void); cho biết bộ nhớ khả dụng trong vùng cấp phát động đối với mô hình compact large và huge
void *calloc (size_t n, size_t size); cấp phát vùng nhớ cho n đối tượng kích cỡ size byte
void *malloc (size_t size); cấp phát vùng nhớ cho size byte
void *realloc (void *block, size_t size); cấp phát lại bộ nhớ
void free (void *block); giải phóng vùng nhớ đã cấp phát

Tìm kiếm và sắp xếp
void *bsearch (const void *key_ptr; const void *a_ptr, size_t n_els, size_t el_size, int compare (const void *, const void *));
void qsort (vois *a_ptr, size_t n_els, size_t el_size, int compare (const void *, const void *));

Tạo số nhẫu nhiên
int random (int n); tạo các số ngẫu nhiên trong khoảng từ 0 đến (num-1)
int rand (void); tạo số ngẫu nhiên trong khỏang từ 0 đến 32767
void randomize (void); khởi động cơ chế tạo số ngẫu nhiên bằng giá trị ngẫu nhiên
void srand (unsigned seed); khởi tạo bộ tạo số ngẫu nhiên bằng giá trị seed, không có giá trị trả lại

Truyền thông với môi trường
char *getenv (const char *name);
int system (const char *s);

Số học
int abs (int x);
long labs (long x);
div_t div (int numer, int denom);
ldiv_t ldiv (long numer, long deniom);

Chuyển đổi xâu ký tự
char *itoa (int x, char *s, int cs); chuyển số nguyên x trong hệ đếm cơ số cs sang chuỗi và lưu vào vùng nhớ s, hàm trả về địa chỉ của vùng s
char *ltoa (long x, char *s, int cs); chuyển số kiểu long x trong hệ đếm cơ số cs sang chuỗi và lưu vào vùng nhớ s, hàm trả về địa chỉ của vùng s
char *ultoa (unsigned long x, char *s, int cs); chuyển số kiểu unsigned long x trong hệ đếm cơ số cs sang chuỗi và lưu vào vùng nhớ s, hàm trả về địa chỉ của vùng s
double atof (const char *s); chuyển đổi xâu các chữ số str thành một số float
int atoi (const char*s); chuyển đổi xâu các chữ số str thành một số int
long atol (cont char *s); chuyển đổi xâu các chữ số str thành một số long
double strtod (const char *s, char **end_ptr);
long strtol (const char *s, char **end_ptr, int base);
unsigned long strtoul (const char *s, char **end_ptr, int base);
char *ecvt (double value, int ndig, int *dec, int *sign); chuyển giá trị kiểu double sang chuỗi chỉ gồm các chữ số
char *fcvt (double value, int ndig, int *dec, int *sign); chuyển giá trị kiểu double sang chuỗi chỉ gồm các chữ số
char *gcvt (double value, int ndec, char *buf); chuyển giá trị kiểu double sang chuỗi có cả dấu chấm thập phân và dấu (-) cho số âm

Các hàm ký tự nhiều byte
int mblen (const char *s, size_t n);
int mbrowc (wchar_t *p, const char *s, size_t n);
int wctomb (char *s, wchar_t wc);

Các hàm xâu ký tự nhiều byte
size_t mbstowcs (wchar_t *wcs, const char *mbs, size_t n);
int wcstombs (char *mbs, const wchar_t *wcs, size_t n);

Rời khỏi chương trình
void abort (void); kết thúc chương trình một cách không bình thường
int atexit (atexit_t func);
void exit (int status); kết thúc chương trình một cách bình thường

THƯ VIỆN CONIO.H

char *cgets (char *str);
char *getpass (const char *prompt); đọc password

Ví dụ:
#include
#include
main()
{
char *password;
password=getpass
cout<<"Enter password:"<
return 0;
}

extern int _wscroll;
int cputs (const char *str);
int fgetc (FILE *stream);
int fputc (int c, FILE *stream);
int getch (void); đọc một ký tự từ bàn phím, không hiện lên ký tự gõ vào
int getche (void); đọc một ký tự từ bàn phím, có hiện lại ký tự gõ vào. Ký tự e cuối có nghĩa là hiện lại (echo)
int gettext (int x1, int y1, int x2, int y2, void *destin);
int inp (unsigned portid);
int kbhit (void); kiểm tra xem có ký tự gõ vào hay không

Ví dụ:
#include
#include
main()
{
clrscr();
cout<<"Press any key";
while (!kbhit());
cout<<"\r\Continue\r\n";
return 0;
getch();
}

int movetext (int x1, int y1, int x2, int y2, int destleft, int desttop);
int outp (unsigned portid, int value);
int putch (int c); đưa một ký tự lên cửa sổ văn bản trên màn hình
int puttext (int x1, int y1, int x2, int y2, void *source);
int textmode (int mode);
int ungetch (int c);
int wherex (void); cho biết hoành độ hiện tại của con trỏ
int wherey (void); cho biết tung độ hiện tại của con trỏ
void _setcursortype (int cur_t);
void clrscr (void); xoá trắng màn hình (Clear Screen)
void clreol (void); xoá các ký tự nằm bên phải điểm nhắc (Clear End Of Line)
void delline (void); xoá một dòng trong cửa sổ
void gettextinfo (struct text_info *r); cho thông tin về kiểu hiển thị văn bản
void gotoxy (int x, int y); di chuyển con trỏ tới tọa độ (x,y) trên màn hình
void highvideo (void); làm độ sáng của ký tự tăng lên
void insline (void); xen một dòng trong cửa sổ
void lowvideo(void); làm độ sáng của ký tự yếu đi
void normvideo(void); làm độ sáng của ký tự bình thường
void textbackground (int color); chọn màu nền
void textcolor(int color); lựa chọn màu ký tự mới
void textattr (int attr); xác lập thuộc tính của ký tự trên màn hình
void window (int x1, int y1, int x2, int y2); tạo cửa sổ văn bản có tọa độ 2 góc: góc trên-bên trái (x1,y1) và góc dưới-bên phải (x2,y2). Sau đó, mọi văn bản trên màn hình sẽ nằm trong cửa sổ này.

THƯ VIỆN STDIO.H

File tiêu đề này chứa các macro, các định nghĩa kiểu và các nguyên mẫu prototype của các hàm được người lập trình sử dụng để truy nhập vào file. Sau đây là một số macro và các định nghĩa kiểu:

#define BUFSIZ 1024 //kích thước cho tất cả cá bộ nhớ đệm
#define EOF (-1) //giá trị trả lại của End Of File
#define FILENAME_MAX 255 //độ dài lớn nhất tên file
#define FOPEN_MAX 20 //số file lớn nhất có thể mở
#define L_tmpnam 16 //kích thước mảng cho tmp tên file
#define NULL 0 //giá trị con trỏ NULL
#define PATH_MAX 1024 //độ dài cực đại của đường dẫn
#define TMP_MAX 65535 //số lớn nhất của các tên file duy nhất

typedef long pos_t; //được sử dụng với fsetpos()
typedef unsigned size_t //kiểu từ toán tử sizeof
typedef char *va_list; //được sử ụng với họ vfprintf()

Cấu trúc file với từ khoá FILE có các thành phần mô tả trạng thái hiện tại của một file. Tên và số phần tử của nó phụ thuộc vào từng hệ thống

Một đối tượng kiểu FILE có thể ghi tất cả các thông tin cần thiết để điều khiển một luồn (stream), kể cả một hiển thị hay cờ thông báo (indicator) vị trí của file, một con trỏ tới buffer của nó, một hiển thị hay cờ báo lỗi chứa các lỗi ghi/đọc có thể xảy ra, và một hiển thị hay cờ báo end of file để ghi nhận đã gặp dấu hiệu kết thúc file chưa.

Các macro được dùng để định nghĩa stdin, stdout và stderr. Mặc dù chúng ta nghĩ chúng là các file, song thực chất chúng là cá con trỏ.

#define stdin ($_iob[0])
#define stdout ($_iob[1])
#define stderr ($_iob[2])

Không giống các file khác,stdin, stdout và stderr không cần phải mở ra một cách tường minh.
Một số macro khác được sử dụng với các hàm như sau:

#define _IOFBF 0 //setvbuf(): full buffering
#define _IOFBF 0x80 //setvbuf(): full buffering
#define _IOFBF 0x04 //setvbuf(): full buffering
#define SEEK_SET 0 //fseek(): beginning of file
#define SEEK_CUR 1 //fseek(): current position in file
#define SEEK_END 2 //fseek(): end of file

Khi một file được mở, hệ điều hành kết nối nó với một stream và giữ thông tin về stream trong một đối tượng kiểu FILE. Một con trỏ trỏ tới FILE có thể xem như đang được kết nối với file đó hoặc với luồng stream, hoặc cả hai.

Các hàm cấp 2
Các hàm cấp 2 sử dụng cấu trúc FILE và mã kết thúc EOF, tất cả đều được khai báo và định nghĩa trong . Mã EOF bằng -1 còn cấu trúc FILE gồm các thành phần dung để quản lý tập tin như:
+ level cho biết có còn vùng đệm trong dữ liệu hay không
+ bsize độ lớn vùng đệm (mặc định là 512 bytes)
+ flags các cờ trạng thái
FILE *fdopen (int handle, char *type);
FILE *fopen (const char *filename, const char *mode); mở một file
Các đối (mode)
"r", "rt" mở một file để đọc theo kiểu văn bản, file cầ tồn tại, nếu không sẽ có lỗi
"w", "wt" mở một file để ghi theo kiểu văn bản, nếu file đã tồn tại, nó sẽ bị xoá
"a", "at" mở một file để ghi bổ sung theo kiểu văn bản, nếu file chưa tồn tại thì tạo file mới
"rb" mở một file để đọc theo kiểu nhị phân, file cần tồn tại, nếu không sẽ có lỗi
"wb" mở một file để ghi theo kiểu nhị phân, nếu file đã tồn tại, nó sẽ bị xoá
"ab" mở một file để ghi bổ sung theo kiểu nhị phân, nếu file chưa tồn tại thì tạo file mới
"r+", "r+t" mở một file để đọc/ghi theo kiểu văn bản, file cần tồn tại, nếu không sẽ có lỗi
"w+", "w+t" mở một file mới để đọc/ghi theo kiểu văn bản, nếu file đã tồn tại, nó sẽ bị xoá
"r+b" mở một file để đọc/ghi theo kiểu nhị phân, file cần tồn tại, nếu không sẽ có lỗi
"w+b" mở một file mới để đọc/ghi theo kiểu nhị phân, nếu file đã tồn tại, nó sẽ bị xoá
"a+b" mở một file để đọc/ghi bổ sung theo kiểu nhị phân, nếu file chưa tồn tại thì tạo file mới

int fclose (FILE *stream); đóng một file
int fcloseall (void); đóng tất cả các file đang mở
int fflush (FILE *stream); xoá vùng đệm bàn phím
int flushall (void); xoá vùng đệm bàn phím, thường sử dụng trước các hàm như gets hoặc scanf
FILE *freopen (const char *filename, const char *mode, FILE *fp);
FILE *_fsopen (const char *filename, const char *mode, int shflg);
void setbuf (FILE *stream, char *buf);
int setvbuf (FILE *stream, int mode, size_t n);
FILE *tmpfile (void);
char *tmpnam (char *s);

Truy nhập vào cờ vị trí file
int fseek (FILE *stream, long offset, int whence); chuyển con trỏ đến vị trí bất ký trên file (nên dùng theo kiểu nhị phân)
long ftell (FILE *stream); cho biết vị trí hiện tại của con trỏ chỉ vị
void rewind (FILE *stream); chuyển con trỏ về vị trí đầu file
int fgetpos (FILE *stream, fops_t *pos);
int fsetpos (FILE *stream, const fops_t *pos);

Quản lý lỗi
void clearer (FILE *stream);
int feof (FILE *stream); cho biết đã đến cuối file hay chưa
int ferror (FILE *stream); cho biết có lỗi (khác 0) hay không có lỗi (bằng 0)
void perror (const char *s); thông báo lỗi trên màn hình (khi biết có lỗi)

Các hàm xuất/nhập ký tự
int getc (FILE *stream); đọc ký tự từ file
int getchar (void); nhận một ký tự từ stdin, hàm trả về ký tự nhận được
char *gets (char *s); nhập một chuỗi ký tự từ stdin
int fgetc (FILE *stream); đọc ký tự từ file
char *fgets (char *c, int n, FILE *stream); đọc một chuỗi ký tự từ file
int fputc (int c, FILE *stream); ghi ký tự lên file
int fputs (const char *s, FILE *stream); ghi một chuỗi ký tự lên file
int putc (int c, FILE *stream); ghi ký tự lên file
int putchar (int c); đưa một ký tự ra stdout
int puts (const char *s); đưa một chuỗi ký tự ra stdout
int ungetc (int c, FILE *stream);

Các hàm nhập xuất theo kiểu văn bản
int cprintf (const char *format [,argument,...]);
int cscanf (const char *format [,address,...]);
int fprintf (FILE *stream, const char *format [,argument,...]); ghi dữ liệu theo khuôn dạng lên file
int fscanf (FILE *stream, const char *format [,address,...]); đọc dữ liệu theo khuôn dạng từ file
int printf (const char *format [,argument,...]); xuất dữ liệu theo định dạng
int scanf (const char *format [,address,...]); nhập dữ liệu theo định dạng
int sprintf (char *buffer, const char *format [,argument,...]);
int sscanf (const char *buffer, const char *format [,address,...]);
int vfprintf (FILE *stream, const char *format, va_list arglist);
int vfscanf (FILE *stream, const char *format, va_list arglist);
int vprintf (const char *format, va_list arglist);
int vscanf (const char *format, va_list arglist);
int vsprintf (char *buffer, const char *format, va_list arglist);
int vsscanf (char *buffer, const char *format, va_list arglist);

Các hàm nhập xuất theo kiểu nhị phân
int getw (FILE *stream); đọc một số nguyên từ file
int putw (int w, FILE *stream); ghi một số nguyên lên file
size_t fread (void *ptr, size_t size, size_t n, FILE *stream); đọc một số mẫu tin từ file
size_t fwrite (void *ptr, size_t size, size_t n, FILE *stream); ghi một số mẫu tin lên file

Xoá hoặc đổi tên file
int remove (const char *filename); xoá một file
int rename (const char *filename1, const char *filename2); đổi tên một file
int unlink (const char *filename); xoá một file

Các hàm nhập xuất cấp 1
Các file tiêu đề và biến chuẩn
Để sử dụng các hàm cấp 1, ta cần tới các file tiêu đề sau:
io.h chứa các nguyên mẫu của các hàm cấp 1
fcntl.h chứa các định nghĩa quyền truy nhập (access)
sys/stat.h chứa các định nghĩa thuộc tính (mode)
dos.h chứa các định nghĩa thuộc tính (attribute) theo DOS

Ngoài ra, còn cần đến biến chuẩn của C _fmode (định nghĩa trong fcntl.h và stdlib.h) để xác định kiểu nhập xuất (nhị phân hay văn bản)
int creat (const char *path, int mode); tạo một file mới có thuộc tính cho bởi mode. Trong trường hợp file đã tồn tại:
-Nếu file để ghi, nó sẽ bị xoá
-Nếu file để đọc thì bị lỗi
-Khi có lỗi, hàm trả về -1
-Khi thành công, hàm trả về số hiệu file (handle)
Thuộc tính
S_IREAD file để đọc, không thể xoá, sửa chữa, bổ sung
S_IWRITE file để ghi, có thể xoá, sửa chữa, bổ sung
int _creat (const char *path, int attrib); tạo một file mới theo kiểu nhị phân
Thuộc tính
FA_RDONLY file chỉ đọc, không thể xoá, sử chữa, bổ sung
FA_ARCH file để ghi
FA_HIDDEN file ẩn, không hiện trong lệnh DIR của DOS
int open (const char *path, int access [, unsigned mode ]); mở một file đã có hoặc xây dựng file mới để đọc, ghi
Đối access
Giá trị Ý nghĩa
O_APPEND ghi bổ sung
O_BINARY kiểu nhập xuất nhị phân
O_CREAT tạo file (nếu chưa có)
O_RDONLY chỉ đọc
O_RDWR đọc và ghi
O_TEXT kiểu nhập xuất văn bản
O_TRUNC xoá file nếu có tồn tại
O_WRONLY nbsp;chỉ ghi

int _open (const char *filename, int oflag); mở một file đã tồn tại để đọc, ghi
int close (int handle); đóng một file
int _close (int handle); đóng một file
int chmod (const char *path, int amode); thay đổi thuộc tính file
int _chmod (const char *path, int func [, int attrib ]); thay đổi thuộc tính file theo kiểu DOS
int write (int handle, void *buf, unsigned len); ghi một dãy các byte lên file, nếu thành công, hàm trả về môt số bằng số byte ghi được, có lỗi trả về -1
int read (int handle, void *buf, unsigned len); đọc một dãy các byte từ file
long lseek (int handle, long offset, int fromwhere); di chuyển con trỏ chỉ vị


DANH MỤC CÁC HÀM TRONG THƯ VIỆN ĐỒ HỌA

arc vẽ cung tròn có góc bắt đầu, góc kết thúc, tọa độ tâm
bar vẽ hình chữ nhật có tô bên trong bar3d vẽ hình chữ nhật theo không gian 3 chiều có tô bên trong
circle vẽ hình tròn
cleardevice xoá màn hình, đưa con trỏ về góc trên-bên trái
clearviewport xoá khung hình
closegraph đóng chế độ đồ họa
detectgraph kiểm tra phần cứng và xác định trình điều khiển và chế độ
drawpoly vẽ đa giác với kiểu nết vẽ và màu hiện tại
ellipse vẽ cung elip
fillellipse vẽ hình elip có tô màu
fillpoly tô đa giác có sử dụng bộ chuyển đổi quét
floodfill tô một miền bị chặn, dung mẫu tô và màu hiện tại
getarccoords nhận lại tọa độ để vẽ cung
getaspectratio trả lại hệ số tương quan tỷ lệ trên màn hình
getbkcolor nhận lại màu nền hiện tại
getcolor nhận lại màu vẽ hiện tại
getdefaultpalette nhận lại bảng màu ngầm định
getdrivername nhận lại tên vỉ mạch đồ họa
getfillpattern nhận lại mẫu tô
getfillsettings nhận lại mẫu tô được thiết lập mới nhất
getgraphmode nhận lại chế độ đồ họa hiện tại
getimage cất ảnh bit của một vùng hình vào trong bộ nhớ đệm
getlinesettings nhận lại kiểu vẽ, nét vẽ và độ dày nét vẽ
getmaxcolor nhận lại giá trị màu lớn nhất có thể có của chế độ đồ họa
getmaxmode nhận lại giá trị chế độ cao nhất có thể có
getmaxx nhận lại giá trị độ phân giải ngang
getmaxy nhận lại giá trị độ phân giải dọc
getmodename nhận lại tên chế độ đồ họa
getmoderamge nhận lại chế độ lớn nhất và thấp nhất của vỉ đồ họa
getpalettesize nhận lại giá trị bảng màu
getpixel nhận lại màu của điểm vẽ
getpalette nhận lại giá trị bảng màu
gettextsettings nhận lại giá trị về kiểu chữ, hướng viết, kích thước
getviewsettings nhận lại thông tin về khung hình và các tham số
getx nhận lại tọa độ x của vị trí đồ họa hiện tại
gety nhận lại tọa độ y của vị trí đồ họa hiện tại
graphdefaults đưa vị trí con trỏ hiện tại về góc trên bên trái, khởi động lại chế độ đồ họa
grapherrormsg nhận lại các xâu ký tự thông báo lỗi cho errorcode
graphresult nhận lại giá trị báo lỗi của thao tác đồ họa cuối cùng
imagesize trả lại giá trị số byte cần thiết để cất một vùng chữ nhật trên màn hình
intalluserdrive cài đặt các trình điều khiển đồ họa mới vào bảng BGI
intalluserfont cài đặt một font chữ mới chưa ó trong hệ thống BGI
initgraph khởi tạo đê vào chế độ đồ họa
line vẽ một đoạn thẳng giữa 2 điểm chỉ rõ
linerel vẽ một đoạn thẳng với khoảng cách tương đối
lineto vẽ một đoạn thẳng từ điểm hiện tại tới...
moverel dịch chuyển vị trí hiện tại tới điểm mới theo tọa độ tương đối
moveto dịch chuyển vị trí hiện tại tới điểm mới
outtext viết ra dòng văn bản tại vị trí hiện tại
outteaxtxy viết ra dòng văn bản tại vị trí (x,y)
pieslice vẽ một miếng bánh tròn
putimage nạp hình ảnh bit vào màn hình
putpixel vẽ một điểm ảnh tại tọa độ (x,y)
rectangle vẽ hình chữ nhật không tô bên trong với màu và nét vẽ hiện tại
registerbgidriver đăng ký trình điều khiển BGI với hệ thống đồ họa
registerbgifont đăng ký font BGI với hệ thống đồ họa
restorecrtmode khôi phục lại chế độ màn hình gốc trước khi chế độ đồ họa được khởi tạo để dùng
sector vẽ và tô một miếng khung hình elip
setactivepage thay đổi trang tích cực để cho ra đồ họa
setallpalette thay đổi toàn bộ bảng màu
setaspectratio thay đổi tỷ lệ tương quan ngang dọc
setbkcolor đặt màu nền
setcolor đặt màu vẽ hiện tại
setfillpattern đặt mẫu tô do người dung định nghĩa
setfillstyle đặt mẫu và màu tô
setgraphbufsize thay đổi kích thước bộ nhớ đệm để quét và tô
setgraphmode đặt hệ thống tới chế độ đồ họa và xoá màn hình
setlinestyle đặt kiểu nét vẽ
setpalette thay đổi giá trị bảng màu
setrgbppalette thay đổi giá trị bảng màu cho vỉ mạch IBM8514 và VGA
settextjustify đặt chế độ căn lề cho outtext và outtextxy
settexttyle thiết lập font chữ, hướng, kích thước viết chũ đồ họa
setusercharsize thay đổi độ rộng và chiều cao font vector
setviewport thiết lập khung nhình đồ họa
setvisualpage thiết lập số trang nhìn
setwritemode thiết lập cách thức ghi lên màn hình vẽ là COPY đè lên hay XNOR
textheight trả lại độ cao của xâu chữ, tính theo pixel
textwidth trả lại độ rộng củ xâu chữ, tính theo pixel


THƯ VIỆN PROCESS.H

Các hàm kiểm soát quá trình
int system (const char *command); thực hiệm một câu lệnh DOS, thành công trả về 0, có lỗi trả về -1
void abort (void); kết thúc chương trình một cách không bình thường
void exit (int status); kết thúc chương trình một cách bình thường

THƯ VIỆN MATH.H

Các hàm toán học dấu chấm động
double acos (double x); trả về arc cosine của x, được biểu diễn từ 0 đến Л
double asin (double x); trả về arc sine của x, được biểu diễn từ -Л/2 đến Л/2
double atan (double x); trả về arc tangent của x, được biểu diễn từ -Л/2 đến Л/2
double atan2 (double x, double y); trả về arc tangent của x/y, được biểu diễn từ -Л đến Л
double cabs (struct complex x); trả về giá trị tuyệt đối của số phức x
double ceil (double x); trả về phần nguyên của số chấm động không nhỏ hơn x (làm tròn số lên)
double cos (double x); trả về cos của x, được biểu diễn theo radian
double cosh (double x); trả về giá trị cosine hyperbolic của x
double exp (double x); trả về ex  
double fabs (double x); trả về giá trị tuyệt đối của số thực x
double floor (double x); trả về phần nguyên của số chấm động không lớn hơn x (làm tròn số xuống)
double fmod (double x, double y); lấy phần dư của phép chia (x/y), y phải khác 0
double frexp (double x, int *exponent); lấy phần giá trị của x khi tách nhỏ m trong khoảng 0,5 đến 1 hay m=0
double ldexp (double x, int exponent);
double log (double x); trả về logarit tự nhiên của x
double log10 (double x); trả về logarit cơ số 10 của x
double modf (double x, double *ipart); tách số x thành phần số nguyên và phần số lẻ sau dấu chấm thập phân, cất phần nguyên trong *ipart và trả về phần lẻ
double pow (double x, double y); trả về xy  
double pow10 (int x); trả về x10
double sin (double x); trả về sin của x, được biểu diễn theo radian
double sinh (double x); trả về giá trị sine hyperbolic của x
double sqrt (double x); trả về căn bậc 2 của x
double tan (double x); trả về tang của x, được biểu diễn theo radian
double tanh (double x); trả về giá trị tangent hyperbolic của x
int abs (int x); trả về giá trị tuyệt đối của số nguyên x
long double cabsl (struct complexl (x));
long double frexp (long double (x));
long double fabsl (long double @E (x));
long double frexp (long double (x), int *(exponent));
long double ldexpl (long double (x), int (exponent));
long double modfl (long double (x), long double *(ipart));
long double pow101 (int (x)); trả về x101
long int labs (long int x);

THƯ VIỆN DOS.H

Các hàm truy nhập trực tiếp vào bộ nhớ
char peekb (unsigned segment, unsigned offset); nhận một byte tại địa chỉ phân đoạn segment:offset
int peek (unsigned segment, unsigned offset); nhận lại một từ tại địa chỉ phân đoạn segment:offset
void poke (unsigned segment, unsigned offset, int value); gửi giá trị nguyên value vào bộ nhớ tại địa chỉ phân đoạn segment:offset
void pokeb (unsigned segment, unsigned offset, char value); gửi giá trị ký tự value vào bộ nhớ tại địa chỉ phân đoạn segment:offset

THƯ VIỆN DIR.H

Các hàm kiểm soát thư mục
char *getcwd (char *buf, int buflen); lấy tên thư mục chủ, hàm trả về buf
int chdir (const char *path); đổi thư mục chủ (có đường dẫn), nếu thành công trả về 0, có lỗi trả về -1
int findfirst (const char *pathname, struct ffblk *ffblk, int attrib); tìm file trên thư mục (có đường dẫn, thuộc tính), nếu tìm thấy trả về 0, có lỗi trả về -1
int findnext (struct ffblk *ffblk); tiếp tục tìm file trên thư mục theo các chỉ dẫn cho trong ffblk, nếu tìm thấy trả về 0, có lỗi trả về -1
int getcurdir (int driver, char *directory); chuyển thư mục hiện hành), nếu thành công trả về 0, có lỗi trả về -1
int mkdir (const char *path); tạo thư mục mới (có đường dẫn), nếu thành công trả về 0, có lỗi trả về -1
int rmdir (const char *path); xoá thư mục (có đường dẫn), nếu thành công trả về 0, có lỗi trả về -1

THƯ VIỆN CTYPE.H

Các hàm quản lý, kiểm tra ký tự
int isalnum (int c); trả về khác 0 nếu c biểu diễn một ký tự alphanumeric (chữ cái hay chữ số)
int isalpha (int c); trả về khác 0 nếu c biểu diễn một ký tự chữ alphabetic (A-Z hay a-z)
int isascii (int c); trả về khác 0 nếu c biểu diễn một ký tự có mã ASCII từ 0-127
int iscntrl (int c); trả về khác 0 nếu c biểu diễn một ký tự điều khiển, có mã ASCII từ 0 đến 0x1F hoặc mã bằng 0x7F (DEL)
int isdigit (int c); trả về khác 0 nếu c biểu diễn một ký tự số (0-9)
int isgraph (int c); trả về khác 0 nếu c biểu diễn một ký tự in được, có mã ASCII từ 0x21 đến 0x7E (không kể ký tự khoảng trống)
int islower (int c); trả về khác 0 nếu c biểu diễn một ký tự chữ thường (a-z)
int isprint (int c); trả về khác 0 nếu c biểu diễn một ký tự in được, có mã ASCII từ 0x20 đến 0x7E (kể cả ký tự khoảng trống)
int ispunct (int c); trả về khác 0 nếu c biểu diễn một ký tự dấu (khác ký tự alphanumeric và ký tự khoảng trống)
int isspace (int c); trả về khác 0 nếu c biểu diễn một ký tự khoảng trống
int isupper (int c); trả về khác 0 nếu c biểu diễn một ký tự chữ hoa (A-Z)
int isxdigit (int c); trả về khác 0 nếu c biểu diễn một ký tự số thập lục phân (0-9, A-F hay a-f)
int toascii (int c); chuyển c về mã ASCII tương ứng nếu c biểu diễn một ký tự trong bảng mã ASCII
int tolower (int c); chuyển c thành ký tự thường tương ứng nếu c biểu diễn một ký tự hoa
int toupper (int c); chuyển c thành ký tự hoa tương ứng nếu c biểu diễn một ký tự thường
Nguồn :kenhdaihoc.com

1. Torrent là gì?

* Tên gọi chính xác của nó là BitTorrent nhưng thông thường mọi người vẫn gọi tắt và biết đến nó với cái tên Torrent.
* BitTorrent là một mạng lưới P2P (peer to peer = ngang hàng, tức là nhiều người cùng kết nối trực tiếp với nhau để chia sẻ file). Torrent chuyên được dùng để trao đổi những dữ liệu như Movie, Games, Software, Anime,... và một số File có dung lượng lớn hoặc cực lớn.
* Do kết nối ngang hàng nên có tốc độ rất cao. Phù hợp cho download các dữ liệu dung lượng lớn




2. P2P - Peer to peer là gì?

* Peer to Peer - mạng ngang hàng p2p được tạo ra bởi hai hay nhiều máy tính được kết nối với nhau và chia sẻ tài nguyên mà không phải thông qua một máy chủ dành riêng. Hiện nay có nhiều dạng P2P như: bitorrent, emule, edonkey,....
* Chúng ta đang sử dụng dạng BitTorrent, thường gọi đơn giản là Torrent

3. Tracker là gì? Client là gì?
* Tracker là là một server dùng để ghi nhận các hoạt động của các thành viên bằng các giao thức [Protocol] BitTorrent.
* Client hiểu đơn giản là một phần mềm giúp bạn kết nối tới các tracker để tiến hành upload/download (Seed/Leech). Có rất nhiều Client dùng cho download Torrent.
* VietTorrent khuyên bạn nên dùng Client UTorrent bản mới nhất luôn được cập nhật tại địa chỉ www.utorrent.com

4. Seed/Seeder - Leech/Leecher là gì? Peer là gì?

* Hiểu đơn giản seed là up, leech là down. Seeder là người upload, leecher là người download. Sau khi download xong thì leecher trở thành seeder nếu leecher tiếp tục upload cho những người dến sau
* Có thể hiểu nếu số seeder càng đông thì torrent có tốc độ càng cao. Số leecher cao cũng có thể làm đẩy nhanh tốc độ vì thực chất các leecher cũng sẽ vừa down vừa up.
* Tổng số leech và seed sẽ = số peer

5. Ratio là gì?

* Hiểu một cách đơn giản thì Ratio được tính bắng công thức: Ratio=dung lượng up/dung lượng down.
* Muốn có ratio cao là điều tương đối khó vì bạn cần phải up nhiều hơn down một lượng rất lớn
* VD: Ban đầu bạn up 5Gb/ down 1gb --> ratio~5. Sau đó bạn up thêm 10Gb, down thêm 5Gb, tổng cộng bạn up 15Gb/ down 10Gb --> Ratio~1.5. Từ ratio~5 giảm xuống ratio~1.5 rất nhanh dù bạn down ít hơn up. Chính vì vậy nếu muốn ratio cao thì tốt nhất là down ít, up nhiều.



6. Swarm là gì? Scrape là gì?

* Swam là tổng số peer (leech+seed) tham gia chia sẻ 1 file nhất định. 1 swarm càng có nhiều seeder thì down càng nhanh, càng nhiều leecher thì down càng chậm. Nhưng khi leecher chuyển sang seeder thì tốc độ down của các leecher còn lại tăng.

* Scrape thực chất là lệnh ping mà các bác network man hay dùng, nếu nó scrape thành công thì tracker chứa file torrent gốc đang hoạt động tốt [trừ bảo trì, nâng cấp, error..] và scrape sẽ kiếm được thông tin về cái file torrent gốc như seed, leech, peer, tracked by, upload date...

7. Hit and Run là gì?
* Khi bạn leech xong, bạn nên giữ seed (ko xóa file torrent trong client) để tiếp tục up cho người đến sau. Hit and Run là hành động down xong trốn luôn không thèm seed nữa.
* Hit and Run được xem là hành động tồi tệ nhất trong sân chơi P2P.
* Người Hit and Run được xem như "Kẻ cắp P2P" thời IT. Họ chỉ biết há miệng đợi người khác thả đồ ăn và nhai rồi biến mất trong cõi xương mù u mê tăm tối, giống như kẻ trộm đồ phải trốn chui trốn lủi khắp thị thành làng mạc như một kẻ tá túc, hành khất ngoài lề của xã hội. Chẳng có một lý do gì mà ta lại tự đưa ta vào con đường này vì bản năng, tính tự ái dân tộc và trách nhiệm bản thân mình mong được chia sẻ cùng anh em, được anh em coi nhau như một thành viên có trọng trách giống một địa chỉ, một nơi hội tụ chia sẻ cho nhau những gì mình có, cái ấy mới đáng quí trọng.

8. DHT là gì?

* DHT có thể hiểu là một chức năng giúp bạn kết nối tới các máy khác nhanh hơn, tải dữ liệu từ các máy đó mà ko cần thông qua tracker. Hầu hết các public tracker đều có chức năng này, VT cũng vậy. Chức năng chỉ có một nhược điểm duy nhất là dữ liệu up/down phần nào ko thông qua tracker nên thông tin up/down trên Client (VD: Utorrent) khác với thông tin trên tracker
* DHT (Distributed Hash Table) là một lớp nằm trong hệ thống mạng p2p nó chứa các giá trị và tên giống như một bảng Hash table [bảng băm] và sẵn sàng cung cấp các thông tin này cho các User có bật DHT và tìm kiếm cái Hash table đó, điều này sẽ giúp các User liên kết với nhau trên khắp thế giới và khi tìm thấy cái file có cái bảng hash table đó nó sẽ tải về máy mình.
* Cũng như các lớp [layer] khác của hệ thốg p2p, DHT hoạt động chính xác 100% chứ không có chuyện error khi ghép các mảnh dữ liệu với nhau cho dù nó lấy từ rất nhiều người [peer] khác nhau. Tham khảo thêm tại đây:


9. Port forwarding là gì?
* Khi chúng ta kết nối vào Internet thì có rất nhiều đường vận chuyển dữ liệu khác nhau được sử dụng, máy vi tính sẽ âm thầm điều hành một cách chính xác các công việc vận chuyển đó thông qua rất nhiều port khác nhau. Các máy tính từ xa (máy vòng quanh thế giới trên internet ấy) sẽ sử dụng Port forwarding để kết nối với một máy tính khác trong mạng LAN và đây cũng chính là cách mà các chương trình Torrent sử dụng để chia sẻ file giữa 2 máy tính với nhau nên ta còn gọi là peer to peer (PP) sharing đó.



* Khi chưa mở port

* Khi đã mở port thì thế này nè...

Nguồn :viettorrent.vn

“Thuê bao quý khách tạm thời không liên lạc được, xin quý khách vui lòng gọi lại sau…” Hai, ba hôm nay cứ 22g là Quang tắt máy cho đến sáng. Không phải là một chuyện bình thường với một người luôn mở điện thoại 24 / 24. Công việc đòi hỏi Quang phải thường xuyên nghe điện thoại để nhận các hợp đồng từ khách hàng. Quang cũng không có thói quen tắt máy kể cả khi ngủ. Và số của Khương luôn được Quang gài bằng tiếng chuông ầm ĩ nhất. Cô hay trêu đó là tiếng còi báo động tầm xa 10km ( khỏang cách từ nhà Quang đến nhà Khương) – đủ để đánh thức anh dậy ngay cả lúc 2, 3g giờ sáng. 6 tháng yêu nhau, điện thoại Quang chưa một lần nằm trong tình trạng ngoài vùng phủ sóng. Khương quen với việc cứ hở chút hở chút là nhấc điện thoại lên gọi Quang, quen với việc có thể dễ dàng tìm anh bất cứ khi nào cần.

tbnM0 [Blog] Nếu Bỗng Ta Chán Nhau
Khương chưa bao giờ nghĩ đến chuyện có một ngày anh tắt máy. Ban đầu cô ngỡ là mình gọi nhầm số. Không! Chắc tại kẹt mạng. Làm gì có! Mọi người vẫn cứ gọi cho nhau ầm ầm đấy thôi, hôm nay có phải Noel hay giao thừa đâu? Điện thoại hư? Cũng chẳng phải. Cô đã thử dùng nhiều máy khác để gọi mà. Rõ ràng là có một chuyện gì đó bất bình thường. Hay đứa ác ôn trời gầm nào đó đã lấy mất điện thoại của anh. Hay anh đang đi chung với một ai khác không – phải – em? Hay…anh bị tai nạn? ôi, không? Cô bắt đầu lo lắng phát sốt lên. Cũng may là cô vẫn còn giữ số của cậu bạn ở trọ chung nhà với anh. Khương gọi hú hoạ, không ngờ lại phát huy tác dụng. Cậu ta chuyển máy, cô nghe giọng Quang ngập ngừng bên kia đầu dây: “Máy anh hết pin!” Okie. Cô chấp nhận lí do đó như cô vẫn hằng tin tưởng anh.
Nhưng đến khi chuyện này lặp lại liên tục trong một tuần liền thì đó không còn là việc “máy anh hết pin” nữa rồi. Tự nhiên cô oà khóc như một đứa trẻ đi lạc tìm hoài không thấy mẹ. Tự nhiên cô nhận ra rằng bấy lâu nay mình ngủ quên trong sự quan tâm mà anh đem lại. Tự nhiên cô giật mình vì một nỗi sợ hãi mơ hồ. Chính xác đó là cảm giác bất chợt hiểu ra: một cái gì đó dẫu đang là của mình vẫn có thể vụt tan biến trong chốc lát.
Cô tự trấn an mình: “Mày đa cảm quá đấy! Đơn giản là người ta thích yên tĩnh nên tắt máy thế thôi. Anh đã làm gì sai với mày đâu nào?”. Không xinh đảo nước nghiêng thành, nhưng nốt ruồi duyên bên khoé môi và đôi mắt buồn xa xăm vẫn khiến khối chàng trai trong trường cô muốn thay thế vị trí của anh. Trước giờ chỉ có anh phải nghĩ nên làm gì để giữ cô chứ chưa bao giờ cô cảm thấy sợ mất anh như thế này.
33Y7K [Blog] Nếu Bỗng Ta Chán Nhau
Thi thoảng có đôi lần cô cảm thấy chán anh. Một con người luôn thích khám phá, chinh phục những cái mới như Khương luôn không vừa lòng với những gì mình đang có. Cô không thích bị ràng buộc, cô bực bội với những câu hỏi quan tâm của Quang mà cô đánh đồng với sự kiểm soát. Khương dị ứng với những câu đại loại như “Em đang làm gì thế?”, “Em đang đi chung với cậu bạn nào àh!”. Nhưng ngược lại, cô tự cho mình cái quyền đuợc nhấc điện thoại lên bất kì lúc nào chỉ để xem Quang đang làm gì, với ai! Duy nhất một lần Quang đang đi ngoài đường không nghe điện thoại Khương là y như rằng sau đó anh nhận được một chuỗi những giận hờn trách móc. Nhưng túm lại, dù thế nào thì cái điện thoại của Quang vẫn hoạt động tốt trong 6 tháng nay.
Ngày xưa khi Thượng đế tạo ra con người sao lại lỡ tay bỏ hạt giống mâu thuẫn vào trong mỗi tâm hồn làm chi để bây giờ nhiều lúc Khương không biết mình muốn gì ở anh. Quan tâm đến Khương quá thì Khương đâm cáu kỉnh. Thờ ơ thì Khương lại trách anh bỏ bê. Mỗi tối đi chơi về, anh đều hôn nhẹ lên má và không quên nói một câu quen thuộc “Em ngủ ngon nhé!”. Thích à? Vài lần đầu thì có, nhưng chưa được mấy hôm Khương lại cảm thấy nhàm. Không còn gì lãng mạn hơn sao! Lại chán. Nhưng anh cứ thử quên xem. Có chuyện ngay. Thế đấy! Với Khương, tình yêu phải luôn luôn tràn ngập sự mới mẻ và bất ngờ. Kiểu như anh chàng trong 50 first dates ấy. Mỗi ngày phải làm quen lại từ đầu cùng một cô gái với cả ti tỉ cách chinh phục thú vị khác nhau. Cứ kiểu như mi thì chẳng bao giờ yêu ai thật sự được đâu Khương ạ, người ta giấu tay ra sau lưng là mi đã biết hắn chuẩn bị tặng hoa hồng thì còn quái gì là cảm xúc!
Chẳng phải đã có lần Khương chơi trò ấy ư! 1 tin nhắn cho anh vỏn vẹn: “Một sáng ngủ dậy bỗng dưng người ta thấy chán nhau, anh nhỉ! Đừng liên lạc với em nữa.” Khương tự hỏi mình làm thế để làm gì? Đùa thôi mà. Để thử xem anh yêu Khương tới mức nào. Và để tìm một cảm giác mới mẻ cho tình yêu đã mòn mèn cũ kĩ với thời gian. Nói anh đừng liên lạc nhưng cô cứ thấp thỏm, lâu lâu lại mở máy kiểm tra xem có tin nhắn của anh không. Có vẻ anh hiểu cái tính khí mưa nắng thất thường của Khương. Một tin nhắn hồi đáp không nằm ngoài dự tính của Khương. “Chắc dạo này công việc làm cho em mệt mỏi lắm phải không? Anh không thể làm gì được cho em, chỉ có thể giúp mỗi chuyện…qua nhà em ăn trái cây thôi. Mặc dù em tắt máy nhưng anh vẫn thích nhắn tin”.
Đùng một cái, sau hơn nửa năm quen nhau: “Thuê bao quý khách tạm thời không liên lạc được…”. Lần này người tắt máy là anh. Không phải Khương. Hàng tá câu hỏi lùng bùng trong đầu cô. Anh đổi số ( chính anh đã vô tình buột miệng như vậy mà ) nhưng không muốn nói cho cô biết. Để nhắn tin với một ai khác ( chắc là cái Hải Thy chứ còn ai, anh và nó cứ nhìn nhau hoài là gì!). Anh đang gặp trục trặc trong công việc ( dạo này nghe đâu sếp anh đang sát hạch nhân viên ). Anh chán cô rồi ( làm ơn, nếu thực sự là như thế thì anh nói thẳng một câu có hơn không, như cô đã làm ấy ). Một cô gái logic như Khương không chấp nhận một chuyện gì đó xảy đến bất bình thường mà không có nguyên nhân. ít nhất thì “chán” cũng là một nguyên nhân.
22g30. Khương đứng ngoài ban công nhìn con phố vắng lặng phía dưới. Tự hỏi tại sao tối nay Quang không tới. Chợt thấy nhớ đến quay quắt cái hôn nhẹ vào má, thấy cần đến thiết tha câu nói quen thuộc: “Ngủ ngon nhé em!” Khương bấm số điện thoại Quang liên tục tưởng như trở thành vô thức, mặc dù biết không nghe được gì ngoài “Thuê bao quý khách vừa gọi tạm thời không liên lạc được…”
Tít tít. Một số máy lạ hoắc. “Em ra khỏi nhà, mở cửa đi.”
Khương tò mò. Vẫn với thói quen suy đoán trước những gì người khác định làm, Khương tự nhủ ắt hẳn không ai khác ngoài Quang.
Cửa mở. Làm gì có ma nào. Không lẽ mình bị lừa. Chưa kịp tìm đáp án cho thắc mắc thì…
Tít tít. “ Này, anh không đến đâu. Em đừng hí hửng thế chứ?”
Tức thật. Lần đầu tiên Khương bị một người giấu mặt bắt tẩy.
Tít tít. Vẫn số lạ đó. “Giờ thì quẹo trái, đếm 20 bước nhé.”
Tít tít. “Aứh quên. Em có lạnh thì khoác thêm áo vào. Trông em ăn mặc phong phanh thế kia…”
Là sao? Còn biết mình mặc gì nữa cơ à. Được rồi! Em sẽ đợi xem anh định làm gì.
Tít tít. “Tới rồi. Em có thấy chiếc xích lô ngay trước mặt không. Giờ thì mở tấm ván lên nhé. Điều bất ngờ đang nằm phía dưới đấy!”
Khương dáo dác ngó xung quanh. Không thấy bóng dáng một ai. Cô nhè nhẹ giở tấm ván lên bằng hai ngón tay. Gì thế này: một phần gà KFC kèm theo một mảnh giấy được xếp cẩn thận.
BqfoZ [Blog] Nếu Bỗng Ta Chán Nhau
“Em ơi,
Chắc em đang đợi anh mở điện thoại để căn vặn anh: “ tại sao anh tắt máy? Có phải anh đổi số để nhắn tin cho Hải Thy trong công ty phải không? Anh đang giấu em chuyện gì thế?”…Vân vân và vân vân. Em ngốc quá! Trước giờ anh chưa làm điều gì để em bị tổn thương, đúng không! Đừng suy nghĩ lung tung nhé.
Sáng hôm qua đón em, nhìn gương mặt xanh xao và hốc mắt thâm quầng của em, anh chợt giật mình. Cô bé với đôi má hồng và đôi mắt tinh anh ( lúc nào cũng liếc qua liếc lại ) của anh đâu rồi?! Em bảo tại đêm trước nói chuyện điện thoại với anh tới 2g sáng nên mới thế. Anh còn tình cờ phát hiện em đang phải hoàn thành một dự án lớn trong tuần này. Em có biết mấy hôm nay em ốm đi nhiều lắm không?
Đến đêm thứ hai, thứ ba em vẫn tiếp tục “tám” hết chuyện này đến chuyện kia với anh tới khuya thì anh bắt đầu lo rồi đấy. Sao dạo này em lại chuyển thói quen nói chuyện khuya thế nhỉ! Anh sợ em sẽ bệnh mất thôi. Mà bệnh vì cái lí do “nhiều chuyện với anh mỗi tối” thì vô duyên quá em nhỉ! Nhưng anh bảo thế nào em cũng có nghe đâu. Anh lo cho em quá thì em lại chán. Anh mặc kệ em thì em lại nói anh không yêu. Anh chẳng biết phải làm thế nào cả. Cuối cùng mới nghĩ ra cách tắt điện thoại. Đó là cách duy nhất khiến cho em có thể đi ngủ sớm để giữ sức khỏe mà hoàn thành dự án tốt nhất. Lại không làm em chán! Trọn cả đôi đường. Anh thông minh chứ em nhỉ!
Có thể anh không là người đem lại cho em một tình yêu đầy bất ngờ và nhiều thú vị như em mong muốn, nhưng anh sẽ luôn là người xuất hiện những khi em cần anh nhất!”
Tình yêu đích thực chỉ có thể xây dựng trên niềm tin và sự chân thành. Lần đầu tiên thực tế và những suy đoán bắt bài người khác của Khương không trùng khớp với nhau.
Tít tít. “Đừng gọi lại cho số này làm gì. Đây chỉ là số điện thoại của một người đi đường tốt bụng cho anh mượn để chữa trị virus chán của cô gái mà anh đang yêu thôi. Ngủ ngon em nhé!”
Có một điều mà đến bây giờ Khương mới hiểu : hóa ra “chán” cũng là gia vị của tình yêu. Một sáng ngủ dậy tự nhiên thấy yêu anh nhiều hơn, đủ để Khương với tay lấy điện thọai hí hoáy: “Mặc dù anh tắt máy nhưng em vẫn thích nhắn tin. Để khi nào mở điện thoại lên anh sẽ thấy em chúc anh một ngày mới tốt lành…Cám ơn anh đã luôn ở bên cạnh em, ngay cả khi bỗng dưng ta chán nhau nhất…Để em hiểu rằng: Cái gì là của mình rồi sẽ vẫn là của mình, nếu em biết nâng niu gìn giữ không phải bằng tay mà bằng cả trái tim.”


Điều làm nên thành công lớn cho những chiếc điện thoại ngày nay đó là màn hình cảm ứng. Tuy nhiên, đằng sau những chiếc màn hình ấy còn có những câu chuyện, thông tin mà ít người biết đến.


1971: khai sinh màn hình cảm ứng

Người cắm cột mốc đầu tiên cho sự phát triển của màn hình cảm ứng là tiến sĩ Samuel Hurst. Năm 1971, khi đang là giảng viên tại trường University of Kentucky Research Foundation (Mỹ), để tiết kiệm thời gian trong việc nhập dữ liệu sinh viên khi phải duyệt qua rất nhiều tài liệu tốt nghiệp, ông đã thiết kế kế ra một thiết bị cảm ứng gọi là Elograph (được ghép từ hai chữ electronic graphics). Sau đó, với phát minh này, công ty Elographics mà ngày nay là Elo TouchSystems đã ra đời. Tuy Elograph không giống như các hệ thống cảm biến ngày nay, nhưng nó là bước đi lớn trong việc phát triển màn hình cảm ứng hiện đại.



Tiến sĩ George Samuel Hurst, cha đẻ của công nghệ cảm ứng.

Năm 1974, tiến sĩ Hurst sáng chế ra màn hình cảm ứng trong suốt đầu tiên. Tiếp nối những thành công đó, đến năm 1977, công ty Elographics đã phát minh và được cấp bằng sáng chế về kĩ thuật cảm ứng điện trở 5 dây (5 wire) mà đến tận bây giờ vẫn còn được ứng dụng rộng rãi.

Màn hình cảm ứng cũng là một lỗ hổng an ninh

Đây là chủ đề cho một nghiên cứu mà trường đại học Pennsylvania (Mỹ) đã thực hiện. Nghiên cứu cho thấy dấu vân tay rất dễ bị lưu lại thậm chí là rất rõ sau quá trình sử dụng. Nếu đem đi phân tích những dấu vết ấy thì những thông tin mà chúng ta nhập vào chẳng hạn như password hay những sơ đồ mở khoá (pattern lock) tương tự trên điện thoại Android là hoàn toàn có thể đọc được.


Nguyên nhân chính khiến cho dấu vân tay để lại trên màn hình là do chất nhờn do bàn tay chúng ta tiết ra. Nếu chỉ đơn giản là sử dụng, bỏ túi, cầm tay mà không vệ sinh, lau chùi thì những vết bám ấy sẽ tồn tại khá lâu theo thời gian. Vì vậy, nếu đã lưu trữ nhưng thông tin quan trọng, nhạy cảm trong điện thoại cũng như các thiết bị có sử dụng màn hình cảm ứng khác thì chúng ta nên chú ý về vấn đề vân tay trong quá trình sử dụng để tránh những tổn thất đáng tiếc.

Những lí do không nên sử dụng điện thoại cảm ứng

Có thể việc nói không nên sử dụng màn hình cảm ứng chỉ là nguỵ biện bởi hiện nay có đến hàng trăm triệu người thậm chí có thể lên đến hàng tỉ trong tương lai đang sử dụng các loại thiết bị này. Điều này khá dễ hiểu bởi nhưng tính năng thú vị mà việc dùng màn hình cảm ứng, đặc biệt là trên điện thoại hay máy tính bảng, đem lại là vô cùng lớn. Các thao tác chạm, vuốt vẫn khiến người dùng “phát sốt” so với bàn phím vật lý cổ điển. Tuy nhiên, cũng không thể phủ định rằng cảm ứng là không có nhược điểm. Sau đây là một số lý do khiến chúng ta có thể phải xa lánh các thiết bị cảm ứng.

Thứ nhất, việc thao tác trên màn hình cảm ứng không thể thoái mái như trên bàn phím vật lý được. Thật vậy, chúng ta hoàn toàn có thể sử dụng một tay đối với bàn phím vật lý mà không sợ che khuất thông tin trên màn hình như trên màn hình cảm ứng.

Thứ hai, việc thao tác trên màn hình cảm ứng cho người có vấn đề về thị lực là rất khó khăn, thậm chí là không thể sử dụng được. Trong khi đó, bàn phím vật lý sẽ giúp họ định vị được bàn phím cũng như các thao tác của mình.

Như đã đề cập ở trên, màn hình cảm ứng sẽ để lại rất nhiều dấu vân tay khiến cho việc bảo mật trở nên kém an toàn hơn. Bên cạnh đó, vấn đề vi khuẩn, mầm bệnh trên màn hình cảm ứng cũng rất đáng được quan tâm.

Độ bền của màn hình cảm ứng là lý do tiếp theo. Nếu chúng ta không sử dụng cẩn thận, điện thoại cảm ứng rất dễ bị vỡ hay nứt màn hình, điều đó đồng nghĩa chiếc điện thoại sẽ biến thành “gạch” và gần như vô dụng. Trong khi đó, điện thoại có bàn phím vật lý sẽ chịu được nhiều va đập hơn, hoặc nếu có sự cố xảy ra với màn hình, chúng ta vẫn có thể sử dụng điện thoại được nếu đã quen với giao diện người dùng.

Điện thoại cảm ứng chơi game cũng rất tuyệt nhưng không thể phủ nhận rằng các trò chơi cần đến nút ảo vẫn thường xuyên khiến người dùng phải “bực bội”. Trong trường hợp này, bàn phím vật lý vẫn thể hiện thế mạnh của mình.

Nếu đã là một người cần nhập liệu nhiều trên điện thoại, bàn phím QWERTY vẫn là lựa chọn số một. Tuy bàn phím ảo không đến nỗi chậm nhưng lại thường gây tình trạng thiếu, sót hay nhầm chữ cái. Bên cạnh đó, do thao tác trên một màn hình phẳng nên cảm giác của tay khi nhập là không có, điều đó sẽ gây khó khăn nếu muốn nhập với tốc độ nhanh, tay sẽ khó xác định được chính xác vị trí từng nút.

Cuối cùng, việc sử dụng sẽ tốn năng lượng cũng như lượng nhiệt toả ra sẽ lớn hơn rất nhiều so với sử dụng bàn phím vật lý. Việc sử dụng một chiếc smartphone trong 2 đến 3 ngày là một điều rất “xa xỉ”. Trong khi đó, với cùng lượng pin ấy, một chiếc điện thoại bàn phím vật lý có thể sử dụng được trong một tuần thậm chí là hơn.

Sử dụng và vệ sinh màn hình cảm ứng đúng cách

Việc sử dụng màn hình cảm ứng có lẽ đã quá quen thuộc với nhiều người. Hơn nữa, do đặc tính ít nút vật lý, màn hình lớn nên để hiểu được cách thức thao tác của các thiết bị cảm ứng rất đơn giản, dễ dàng và ai cũng có thể làm được. Chỉ có một điều cần lưu ý đó là trong quá trình sử dụng, chúng ta nên tránh những vật quá cứng nhọn, nơi ẩm ướt hoặc dưới ánh nắng trực tiếp từ mặt trời.

Do đặc điểm phải tiếp xúc nhiều với bàn tay người dùng, màn hình cảm ứng là nơi chứa nhiều vi khuẩn, bụi bẩn, ẩm mốc cho nên việc vệ sinh là điều cần thiết và phải được thực hiện thường xuyên. Tuy vậy, vệ sinh thế nào cho sạch mà vẫn giữ được tuổi thọ lâu bền cho chiếc màn hình là điều không phải ai cũng biết.

Chất liệu tốt nhất để lau chùi cho các thiết bị cảm ứng là sợi bông để tránh sự trầy xước. Loại khăn thường được sử dụng để lau kính mắt, ống kính máy ảnh nên có thể dễ dàng tìm thấy ở các cửa hàng. Trong quá trình vệ sinh phải tắt nguồn cho thiết bị. Khi lau chùi, nên dùng khăn khô, lau nhẹ nhàng lên màn hình, tránh những thao tác kì cọ quá mạnh.

Trong trường hợp vết bẩn quá “cứng đầu”, có thể sử dụng nước sạch, nhưng nhất thiết phải vắt kĩ để nước không chạy vào bo mạch bên trong. Sau khi vệ sinh, phải đợi màn hình thật khô rồi mới bật nguồn cho thiết bị.

Khi mua điện thoại mới, người dùng có thói quen dán màn hình để tránh trầy xước cũng như giữ cho điện thoại được sạch sẽ như mới, nhưng thật ra đây là việc làm không cần thiết bởi khi chế tạo các nhà sản xuất đã tính đến khả năng cường lực cho những thiết bị của họ. Những va chạm, cọ quẹt nhỏ sẽ không thể ảnh hưởng đến chiếc màn hình của chúng ta. Hơn nữa, thực tế cho thấy không những chẳng sạch được bao nhiêu mà các miếng dán này còn vô tình làm mất đi vẻ đẹp “rực rỡ” mà các nhà sản xuất luôn cố gắng đem lại cho từng chiếc màn hình.


Nguồn :eChip

Nhờ các phương tiện thông tin đại chúng, giờ đây, hacker được mọi người biết đến như một cái gì đó đáng ghê tởm. Nhắc đến từ này là người ta lại nghĩ đến những kẻ hiểm độc, chuyên sử dụng máy tính đi tìm cách quấy nhiễu, lừa đảo, đánh cắp các thông tin và thậm chí có thể phá hủy nền kinh tế hay khởi động một cả một cuộc chiến tranh. Không thể phủ nhận rằng có những con sâu làm rầu nồi canh, nhưng đó chỉ là một phần rất nhỏ trong cộng đồng hacker.
Thuật ngữ “hacker” lần đầu tiên được sử dụng giữa thập kỉ 60. Hacker, bản chất là những lập trình viên – những người biết sử dụng các dòng lệnh máy tính. Họ đã tưởng tượng ra cách sử dụng máy tính mới, tạo ra các chương trình mà không ai khác có thể hiểu được. Họ là những người tiên phong trong nền công nghiệp máy tính, họ xây dựng nên mọi thứ, từ một phần mềm nho nhỏ tới cả một hệ điều hành. Với cách hiểu như thế, những ông trùm như Bill Gates, Steve Jobs, và Steve Wozniak đều là những hacker – họ đã thấy trước được những gì máy tính có thể làm được và tạo ra cách để hiện thực hóa những điều đó.
Các hacker đều có một điểm chung, đó là sự tò mò, hiếu kì mãnh liệt, đôi khi gần như là sự ám ảnh. Những hacker rất tự hào về các kỹ năng của mình, nhưng đồng thời họ cũng luôn mày mò, tìm tòi để khám phá ra những bí ẩn trong các phần mềm và hệ thống. Khi một phần mềm có bug – là một đoạn mã lỗi ngăn cản phần mềm hoạt động trơn tru – những hacker có thể tạo ra và phân phối những đoạn mã nhỏ để sửa những lỗi đó – chúng là những bản vá lỗi, những bản patch. Nhiều hacker coi công việc của họ như một sự thử thách, nơi họ thể hiện được bản lĩnh và kỹ năng của mình - họ sẵn sàng làm điều đó mà không cần đến bất kỳ đồng tiền lệ phí nào.
Cùng với sự phát triển của máy tính, những kĩ sư máy tính bắt đầu kết nối các máy tính riêng lẻ thành một hệ thống. Và không lâu sau, thuật ngữ “hacker” có một ý nghĩa mới – những người sử dụng máy tính để xâm nhập vào những mạng máy tính khác. Thông thường, những hacker không có mục đích xấu. Họ chỉ muốn biết xem mạng máy tính hoạt động như thế nào, những bức tường lửa kiên cố ra sao, và điều đó thực sự là một thử thách khó khăn nhưng cũng không kém phần thú vị với họ.
Thời gian trôi qua, nhưng có vẻ như bản chất của những hacker vẫn không hề thay đổi. Những kẻ chuyên đi phá hoại hệ thống máy tính, xâm nhập vào các mạng máy tính khác và phát tán virus, phần lớn họ làm điều đó để thỏa mãn tính tò mò của mình. Họ muốn tìm hiểu từng đến từng ngõ ngách trong thế giới ảo bao la rộng lớn. Một số sử dụng tài năng và trí tuệ của mình để giúp đỡ các công ty và chính phủ xây dựng nên những bức tường an ninh kiên cố hơn. Một số khác sử dụng trong những việc phi đạo đức.
Trong bài viết này, chúng ta hãy cùng nhau tìm hiểu về những thủ đoạn hay được các hacker sử dụng, về những loại hacker khác nhau và những phi vụ làm chấn động thế giới của những tay hacker này.
Đồ nghề của hacker
Ngoài sự khéo léo và nhạy bén, những hacker còn phải dựa vào những dòng mã lệnh. Trong làng hacker không phải ai cũng biết tự viết ra cho mình những dòng mã lệnh. Rất nhiều hacker phải dựa vào những dòng mã lệnh do người khác viết ra. Thêm vào đó, hàng trăm hàng nghìn chương trình hỗ trợ hack khác nhau có thể dễ dàng được tìm thấy chỉ qua vài giây google. Những chương trình này đã cung cấp cho các tay hacker một lợi thế vô cùng lớn - chúng giúp hacker nắm rõ cấu trúc cũng như cách thức hoạt động của một hệ thống. Và khi đã có những thông tin cần thiết, những tay hacker có thể dễ dàng xâm nhập và mở tiệc liên hoan trong đó.
Hacker mũ đen thường sử dụng những chương trình sau:
Key logger
Một số chương trình có khả năng ghi lại mọi thao tác trên bàn phím của bạn. Một khi máy tính nạn nhân đã nhiễm phần mềm này, nó sẽ gửi thông tin nó thu nhận được tới chủ nhân của mình – các hacker, và từ đó cung cấp cho hacker những thứ cần thiết để xâm nhập hệ thống hay thậm chí đánh cắp thông tin cá nhân của bạn.
Hack mật khẩu
Có rất nhiều cách hack mật khẩu, bắt đầu bằng việc thử những từ có sẵn trong từ điển đến những thuật toán đơn giản để ghép các chữ cái, các số và các kí tự với nhau. Phép thử này được coi như một cách lấy thịt đè người - các hacker sẽ thử tất cả mọi tổ hợp có thể, cho đến khi tìm ra đúng mật khẩu. Một cách khác, sử dụng từ điển, thay vì tự ghép các ký tự với nhau, những phần mềm này sẽ sử dụng những từ có sẵn trong từ điển của nó để thử.
Lây nhiễm virus máy tính
Virus máy tính là những phần mềm được viết ra để tự nhân lên và phá vỡ hệ thống, hoặc tệ hại hơn nữa là thổi bay toàn bộ dữ liệu trong ổ cứng của bạn. Hacker có thể cài đặt một virus bằng cách xâm nhập thẳng vào hệ thống, nhưng để đơn giản hơn, các hacker viết ra một con virus, sau đó gửi cho nạn nhân qua email, tin nhắn nhanh, trang web có chứa mã độc hoặc qua mạng kết nối peer-to-peer (tạm dịch: mạng ngang hàng).
Thâm nhập từ cửa sau – backdoor
Giống như hack mật khẩu, một số hacker viết chương trình tìm ra những lỗ hổng bảo mật để xâm nhập vào hệ thống. Trong những ngày đầu khi xuất hiện Internet, hệ thống bảo mật của máy tính rất lỏng lẻo, điều này giúp các hacker dễ dàng tìm ra các lỗ hổng và xâm nhập hệ thống mà không cần đến username và password. Cách khác, hacker có thể xâm nhập backdoor bằng cách sử dụng Trojan - 1 thứ công cụ lợi hại, với tên gọi xuất phát từ điển tích nổi tiếng "Con ngựa thành Troia" trong thần thoại Hy Lạp. Trojan sẽ tự cải trang mình thành 1 phần mềm tỏ-ra-hữu-ích, nhưng thực tế, nó sẽ giúp hacker điều khiển máy tính của nạn nhân từ xa, thông qua hệ thống mạng.
Tạo ra các máy tính ma
Một máy tính ma – hay còn gọi là bot – là một máy tính mà hacker sử dụng để spam hoặc thực hiện các cuộc tấn công từ chối dịch vụ (DDoS). Sau khi nạn nhân vô tình kích hoạt những đoạn mã tưởng chừng như vô hại, một kết nối được mở ra giữa máy tính của nạn nhân và của hacker, từ đó hacker có thể âm thầm điều khiển máy tính nạn nhân, sử dụng chúng với mục đích xấu hoặc tiếp tục spam.
Xâm nhập vào email
Hacker sẽ tạo ra những đoạn mã có khả năng chặn và đọc trộm các email cũng như nghe trộm các cuộc điện thoại. Tuy nhiên, hiện nay hầu hết các chương trình email đều sử dụng các cách mã hóa rất phức tạp khiến cho các hacker dù có chặn được đường truyền nhưng cũng không thể đọc trộm được.
Trong phần sau, chúng ta hãy cùng điểm qua vài nét về văn hóa của những hacker.
Văn hóa của hacker
Hacker thường là những cá thể đơn độc, sống tách rời xã hội. Niềm đam mê mãnh liệt với chiếc máy vi tính và việc lập trình có thể tạo nên bức tường ngăn cách các hacker với những người xung quanh. Họ có thể ngồi hàng giờ bên chiếc máy vi tính và quên đi mọi thứ.
Mạng máy tính giúp các hacker làm quen với những người khác có cùng sở thích. Trước khi internet trở nên phổ biến, hacker phải cài đặt và truy cập vào Bulletin Board Systems (BBS) – nôm na là một hệ thống bảng thông báo. Một hacker phải tạo một BBS trên máy tính của họ và những người khác sẽ truy cập vào hệ thống đó để gửi tin nhắn, chia sẻ thông tin, chơi games hay tải các chương trình. Nếu các hacker tìm thấy nhau, thông tin trao đổi sẽ tăng đột biến.
Một số hacker thường post thành quả của mình lên BBS, tự sướng về việc vượt qua được những bức tường bảo mật kiên cố nhất. Thông thường họ sẽ tải lên một file nào đó trên máy của nạn nhân để chứng minh cho thành quả của mình. Đầu thập kỉ 90, luật pháp đã bắt đầu để ý đến sự đe dọa an ninh nghiêm trọng của các hacker. Trong quãng thời gian này, có vẻ như ngay cả những bức tường lửa kiên cố nhất cũng chỉ là trò trẻ con đối với những tay hacker chuyên nghiệp.
Hiện nay trên Internet có rất nhiều trang web nói về hack. Tờ báo “2600: The Hacker Quarterly” có trang web riêng của mình, trong đó mọi người chủ yếu thảo luận về hack. Nếu không có thời gian lướt web bạn vẫn có thể mua báo giấy của họ nếu muốn. Những trang web khác như Hacker.org đẩy mạnh việc tìm hiểu và học tập các kỹ thuật hack, ngoài ra còn có cả những câu đố và những cuộc tranh tài cho các hacker để kiểm tra các kỹ năng của mình.
Khi bị bắt, hầu hết các hacker đều thừa nhận rằng, hành vi của mình có thể gây nên những hậu quả tai hại. Bản thân họ không hề muốn gây chuyện; ngược lại, họ tấn công vào các hệ thống chỉ để thỏa mãn trí tò mò của mình. Xâm nhập vào một hệ thống được bảo mật tốt không khác gì leo lên đỉnh Everest, đó là những thách thức thực sự. Ở Mỹ, các hacker có thể bị sờ gáy dù họ mới chỉ dừng lại ở mức truy cập vào một hệ thống khác.
Nhưng không phải tất cả các hacker đều có hứng thú với việc này. Một số sử dụng tài năng và hiểu biết của mình để tạo ra những chương trình bảo mật tốt hơn. Trong thực tế, khi đã xâm nhập được vào một hệ thống thì nhiều hacker có thể viết một chương trình giúp tăng tính bảo mật cho hệ thống đó. Nói một cách khác, Internet là một cuộc chiến đấu giữa 2 nhóm – một bên là những hacker mũ đen, luôn lăm le xâm nhập trái phép và phát tán virus; và một bên là những hacker mũ trắng, luôn tìm cách nâng cao khả năng bảo mật và tạo ra những chương trình diệt virus hiệu quả.
Dù ở bên nào, các hacker luôn được hỗ trợ bởi những phần mềm mã nguồn mở - đúng như tên gọi của nó, mọi người đều có thể có mã nguồn của phần mềm, có thể sao chép, thay đổi,... và học hỏi kinh nghiệm của người khác; từ đó có thể hoàn thiện thêm sản phẩm của mình, từ những chương trình tí hon cho tới cả một hệ điều hành như Linux.
Hàng năm người ta tổ chức rất nhiều sự kiện để nói về hacker, thường mang mục đích tốt. Một hội nghị thường niên tại Las Vegas có tên là DEFCON thu hút hàng nghìn người tham gia, qua đó người ta có thể trao đổi, thi tài hay tham gia vào các cuộc tranh luận về hack cũng như sự phát triển của công nghệ thông tin... tất cả nhằm thỏa mãn sự tò mò hiếu kì của bản thân. Một sự kiện tương tự có tên là Chaos Communication Camp mà ở đó, người ta ở trong những túp lều thô sơ và thảo luận về những thứ liên quan tới công nghệ hiện đại.
Trong phần sau, chúng ta hãy tìm hiểu thêm về hacker và vấn đề pháp lý liên quan.
Hacker và Luật pháp
Hacker thực sự là một nỗi khiếp sợ đối với những nhà cầm quyền. Họ có khả năng xâm nhập một hệ thống mà không để lại dấu vết gì, ăn cắp các thông tin nhạy cảm mà một khi phát tán ra, đó có thể là cơn ác mộng cho cả hệ thống chính quyền. Bởi vậy, chính phủ sẽ không mất thời gian để tìm hiểu xem bạn chỉ là một tay hacker rỗi hơi hoàn toàn vô hại, hay một tên gián điệp thực thụ.
Luật pháp đã phản ánh rõ điều này. Tại Mỹ, có rất nhiều điều luật được đặt ra để ngăn cấm hack. Ví dụ như 18 U.S.C $1029, tập trung vào việc tạo ra và phát tán những đoạn mã hay các thiết bị hỗ trợ cho việc truy cập trái phép vào máy tính khác. Tuy nhiên pháp luật chỉ đề cập về việc chế tạo và sử dụng những thiết bị này vào mục đích phi pháp, nên khi bị bắt, hacker có thể phản pháo rằng anh ta chỉ sử dụng thiết bị này vào mục đích kiểm tra độ an toàn của hệ thống.
Một luật quan trọng khác là 18 U.S.C $1030, trong đó có nhắc đến việc truy cập vào máy tính của chính phủ. Dù bạn xâm nhập vào hệ thống đó với bất kể với mục đích gì, bạn đã chắc chắn có một suất trong trại giam vì tội truy cập trái phép hệ thống bảo mật của chính phủ.
Có nhiều mức án phạt khác nhau, từ phạt tiền cho đến ngồi tù. Trẻ vị thành niên có thể bị quản thúc tại nhà ít nhất là 6 tháng, với những đối tượng khác, hình phạt có thể lên tới 20 năm. Sở Tư pháp đã nghĩ ra cách tính liên hệ giữa thiệt hại về tài chính, số lượng nạn nhân với thời gian phạt để có một hình phạt xác đáng.
Một số nước khác có các luật tương tự, nhưng ở nhiều nơi, luật pháp tỏ ra khá mơ hồ. Ví dụ như ở Đức, gần đây người ta ra luật “cấm sở hữu các công cụ của hacker”. Nhiều ý kiến chỉ trích cho rằng luật này quá rộng, nhiều ứng dụng hợp pháp có thể bị coi là công cụ hỗ trợ hacker. Một số chỉ ra rằng, một công ty có thể phạm luật khi thuê một hacker để kiểm tra lỗ hổng an ninh trong hệ thống của mình.
Hacker có thể ngồi ở một nơi nào đó và tấn công vào hệ thống ở những quốc gia cách xa hắn nửa vòng trái đất. Vậy nên việc truy tố những thủ phạm của cuộc tấn công trở nên rất phức tạp. Một số nước có kiến nghị về việc trao trả nghi phạm để xử phạt, và quá trình này mất rất nhiều thời gian. Đơn cử như một trường hợp cực kì nổi tiếng ở Mỹ, đó là bản cáo trạng của hacker người Anh có tên Gary McKinnon. Từ năm 2002, McKinnon bị yêu cầu phải đưa sang Mỹ để xét xử việc xâm nhập trái phép vào hệ thống máy tính của Bộ Quốc phòng và của NASA. McKinnon, người thực hiện những cuộc tấn công từ Anh quốc, đã kháng án bằng cách tuyên bố rằng anh ta chỉ đơn thuần phát hiện và chỉ ra những sai sót trong hệ thống bảo mật. Tháng 4 năm 2007, tòa án Anh đã bác bỏ đơn kháng án của anh ta.
Trong phần sau, chúng ta hãy cùng nhau điểm qua gương mặt của một số hacker nổi tiếng.
Những hacker đình đám trong giới công nghệ
Steve Jobs và Steve Wozniak – 2 người sáng lập nên Apple – đều là những hacker. Ban đầu, họ hoạt động giống như những hacker mũ đen, nhưng sau đó họ đã thay đổi ý nghĩ và tập trung vào việc tạo ra các phần cứng và phần mềm máy tính. Nỗ lực của 2 người đã giúp mở ra một kỉ nguyên mới – kỉ nguyên của máy tính cá nhân, khi mà trước đó, những hệ thống máy tính chỉ dành cho các công ty lớn, chúng quá đắt đối với người dùng thông thường.
Linus Torvalds, người sáng lập Linux, cũng là một hacker nổi tiếng. Hệ điều hành mã nguồn mở của ông trở nên rất phổ biến trong giới công nghệ. Ông đã góp phần tạo nên những khái niệm về phần mềm mã nguồn mở, và cho chúng ta thấy rằng, khi chia sẻ thông tin với người khác, chúng ta có thể gặt hái những lợi ích không tưởng.
Richard Stallman, được biết đến với cái tên “rms”, người sáng lập ra dự án GNU – một hệ điều hành miễn phí. Ông là người ủng hộ cho phần mềm miễn phí và những quyền truy cập hợp pháp. Ông làm việc cho các tổ chức như Free Software Foundation và phản đối các chính sách như Digital Right Management – Quản lý bản quyền kĩ thuật số.
Và cũng như thế, trong thế giới hacker mũ đen cũng có rất nhiều người có tên tuổi. Ở tuổi 16, Jonathan James đã trở thành hacker đầu tiên bị bắt giam, sau khi đã thừa nhận việc xâm phạm trái phép trên rất nhiều hệ thống, bao gồm cả NASA và máy chủ của Cơ quan giảm thiểu đe dọa Quốc phòng. Trên thế giới trực tuyến, Jonathan sử dụng nickname “c0mrade”. Ban đầu bị kết án quản thúc tại gia, nhưng sau đó James đã bị tống vào trại giam vì tiếp tục có những hành vi khiêu khích giới chức trách.
Kevin Mitnick trở nên nổi tiếng vào những năm 80 sau khi ông bị buộc tội đã đột nhập vào hệ thống của Tổng tư lệnh phòng không không quân Bắc Mỹ (NORAD) khi mới 17 tuổi. Mitnick trở nên nổi như cồn với những câu chuyện được kể lại về những chiến tích của mình, và cả tin đồn rằng cái tên Mitnick đã xuất hiện trong danh sách truy nã của FBI. Thực tế, Mitnick đã bị bắt nhiều lần vì tội danh xâm nhập trái phép hệ thống bảo vệ để truy cập vào mọi phần mềm máy tính.
Kevin Poulsen, hay Dark Dante, nổi tiếng trong lĩnh vực tấn công vào hệ thống điện thoại. Ông đã xâm nhập vào hệ thống radio có tên KIIS-FM, qua đó chỉ cho phép những cuộc gọi bắt nguồn từ nhà ông ta đến trạm radio trung tâm, từ đó giúp ông giành được rất nhiều giải thưởng trong những cuộc cuộc thi qua radio. Sau vụ đình đám này, ông đã cải tà quy chính, và bây giờ hiện ông đang là biên tập viên chính của báo Wired.
Được biết đến với biệt danh “homeless hacker”, Adrian Lamo sử dụng máy tính của thư viện hay máy tính tại quán cafe để thực hiện việc tấn công của mình. Anh khai thác các lỗ hổng bảo mật, qua đó xâm nhập vào hệ thống và để lại một tin nhắn thông báo về lỗ hổng đó. Không may cho Lamo, mục đích thì có vẻ tốt nhưng những hành động đó là những hành động phạm pháp. Anh cũng hay đi rình mò, đọc trộm các thông tin nhạy cảm và truy cập vào các tài liệu bí mật. Anh đã bị bắt sau khi đột nhập vào hệ thống máy tính của tờ New York Times.
Đó chỉ là một phần rất rất nhỏ trong thế giới Hacker. Còn rất nhiều những tên tuổi vô danh khác, nhưng chúng ta không thể biết được con số cụ thể. Nhiều người không định hình được việc mình đang làm – họ sử dụng những công cụ mà họ không thực sự hiểu chúng. Một số khác, biết rõ những gì mình đang làm, và họ có thể xâm nhập vào một hệ thống mà không để lại dấu vết gì.
Những điều có thể bạn chưa biết về hacker
Super Phreak
Trước thời của hacker máy tính, đã có một số cá nhân hiếu động và thông minh, đã tìm cách vận hành hệ thống điện thoại theo cách có tên là “phreaking”. Thông qua phreaking, họ có thể gọi điện đường dài mà không phải trả phí hay đôi khi chơi khăm những người sử dụng điện thoại khác.
Cuộc sống của các hacker
Những hacker tuân theo luật pháp có thể có một cuộc sống êm thấm. Rất nhiều công ty bỏ tiền ra thuê các hacker để kiểm tra mức độ bảo mật của hệ thống. Một số hacker có thể làm giàu bằng cách viết những chương trình và ứng dụng hữu ích, ví dụ như 2 sinh viên của Đại học Stanford – Larry Page và Sergey Brin. Page và Brin đã cùng nhau tạo nên một công cụ tìm kiếm tuyệt vời mang tên Google Nhờ có nó, hiện nay họ đang được xếp hạng 26 trong top những tỷ phú giàu có nhất thế giới.

Nguồn :GenK

Phần I :RAM



Nếu như vài năm trước đây chúng ta không có nhiều điều để nói về RAM bởi đa số các hệ thống đều được trang bị SDRAM với tốc độ từ 66MHz tới 133MHz thì trong khoảng thời gian ngắn trở lại đây, đã xuất hiện khá nhiều chủng loại bộ nhớ mới như DDR SDRAM, Rambus RDRAM, DDR-II SDRAM... khiến người dùng 'hoa cả mắt' khi chọn lựa.



Trong những năm qua, người dùng đã chứng kiến sự thay đổi nhanh ***ng của hệ thống máy tính để bàn. Hai dòng CPU chính của Intel và AMD thay đổi liên tục không chỉ về tốc độ (từ vài trăm MHz lên tới hàng GHz) mà còn cả giao tiếp (Intel: Socket 370/ 423/ 478 /775, AMD: Slot A, Socket 462-A/ 754 /940/ 939...) và dĩ nhiên chúng kéo theo sự thay đổi của bo mạch chủ và nhiều thành phần khác. Một trong những thành phần chịu ảnh hưởng lớn nhất là bộ nhớ hệ thống (RAM). Bài viết này sẽ giúp các bạn hiểu rõ hơn về những khái niệm của bộ nhớ RAM máy tính kèm theo một số thông tin bổ ích khác. Tuy nhiên chúng ta sẽ tập trung vào bộ nhớ DDR và DDR2 vì hiện tại, chúng là loại thống trị trên thị trường. SDRAM đã quá cũ còn RDRAM thì giá quá cao mà chỉ được dùng trong một số máy tính Pentium 4 đời đầu.



1. KHÁI NIÊM CƠ BẢN VỀ RAM



- Tên gọi



Hiện nay nhiều người thường nhầm lẫn về cách gọi tên của các loại RAM. Nếu như RDRAM không có gì để nói thì với dòng SDRAM, việc nhầm lẫn ngày càng lớn. Khái niệm RAM (Random Access Memory) thì chắc hẳn ai cũng biết. DRAM hay SDRAM là khái niệm mở rộng hơn (Synchronous Dynamic Random Access Memory - RAM đồng bộ). Ban đầu và thậm chí hiện nay khi nói đến SDRAM người ta thường nghĩ ngay đến RAM loại cũ với tốc độ 100MHz hay 133MHz; tuy nhiên từ sau khi DDR SDRAM (Double Data Rate SDRAM) ra đời thì quan niệm này hoàn toàn sai. Tham khảo một vài bảng báo giá linh kiện, bạn sẽ thấy các công ty đã góp phần không nhỏ vào việc khiến người dùng hiểu sai vấn đề. SDRAM là tên gọi chung của một dòng bộ nhớ máy tính, nó được phân ra SDR (Single Data Rate) và DDR (Double Data Rate). Do đó nếu gọi một cách chính xác, chúng ta sẽ có hai loại RAM chính là SDR SDRAM và DDR SDRAM. Cấu trúc của hai loại RAM này tương đối giống nhau, nhưng DDR có khả năng truyền dữ liệu ở cả hai điểm lên và xuống của tín hiệu nên tốc độ nhanh gấp đôi. Trong thời gian gần đây xuất hiện chuẩn RAM mới dựa trên nền tảng DDR là DDR-II, DDR-III có tốc độ cao hơn nhờ cải tiến thiết kế.



- Tốc độ (Speed)



Đây có lẽ là khái niệm được người dùng quan tâm nhất, tuy nhiên có người thắc mắc về cách gọi tên, đối với DDR thì có hai cách gọi theo tốc độ MHz hoặc theo băng thông. Ví dụ, khi nói DDR333 tức là thanh RAM đó mặc định hoạt động ở tốc độ 333MHz nhưng cách gọi PC2700 thì lại nói về băng thông RAM, tức là khi chạy ở tốc độ 333MHz thì nó sẽ đạt băng thông là 2700MB/s (trên lý thuyết). Thường ở Việt Nam thông dụng các loại RAM có bus 333 và 400, những loại có bus cao hơn thường xuất hiện ở những loại cao cấp như Kingston HyperX, Corsair , Mushkin LV nhưng nói chung khá hiếm.



- Độ trễ (Latency)



CAS Latency là khái niệm mà người dùng thắc mắc nhiều nhất. Trước đây, khi đi mua RAM, người mua thường chỉ quan tâm tới tốc độ hoạt động như 100MHz hay 133MHz nhưng gần đây, khái niệm CAS đang dần được người dùng để ý bởi nó đóng vai trò khá quan trọng vào tốc độ xử lý tổng thể của hệ thống; đặc biệt trong ép xung. Vậy CAS là gì? CAS là viết tắt của 'Column Address Strobe' (địa chỉ cột). Một thanh DRAM được coi như một ma trận của các ô nhớ (bạn có thể hình dung như một bảng tính excel với nhiều ô trống) và dĩ nhiên mỗi ô nhớ sẽ có toạ độ (ngang, dọc). Như vậy bạn có thể đoán ngay ra khái niệm RAS (Row Adress Strobe) là địa chỉ hàng nhưng do nguyên lý hoạt động của DRAM là truyền dữ liệu xuống chân nên RAS thường không quan trọng bằng CAS.



Khái niệm độ trễ biểu thị quãng thời gian bạn phải chờ trước khi nhận được thứ mình cần. Theo từ điển Merriam-Webster thì latency có nghĩa là 'khoảng thời gian từ khi ra lệnh đến khi nhận được sự phản hồi'. Vậy CAS sẽ làm việc như thế nào? CAS Latency có ý nghĩa gì? Để hiểu khái niệm này, chúng ta sẽ cùng điểm nhanh qua cách thức bộ nhớ làm việc, đầu tiên chipset sẽ truy cập vào hàng ngang (ROW) của ma trận bộ nhớ thông qua việc đưa địa chỉ vào chân nhớ (chân RAM) rồi kích hoạt tín hiệu RAS. Chúng ta sẽ phải chờ khoảng vài xung nhịp hệ thống (RAS to CAS Delay) trước khi địa chỉ cột được đặt vào chân nhớ và tín hiệu CAS phát ra. Sau khi tín hiệu CAS phát đi, chúng ta tiếp tục phải chờ một khoảng thời gian nữa (đây chính là CAS Latency) thì dữ liệu sẽ được tìm thấy. Điều đó cũng có nghĩa là với CAS 2, chipset phải chờ 2 xung nhịp trước khi lấy được dữ liệu và với CAS3, thời gian chờ sẽ là 3 xung nhịp hệ thống.



Bạn sẽ thắc mắc như vậy phải chăng CAS2 nhanh hơn CAS3 tới 33%, không đến mức như vậy bởi có rất nhiều yếu tố ảnh hưởng đến hiệu năng tổng thể của bộ nhớ điển hình như:



+ Chuỗi xử lý thông tin: kích hoạt RAS, chờ khoảng thời gian trễ RAS-to-CAS Delay và CAS Latency.



+ Truy cập bộ nhớ theo chuỗi: đôi khi chipset sẽ đọc dữ liệu trong bộ nhớ RAM theo chuỗi (burst) như vậy rất nhiều dữ liệu sẽ được chuyển đi một lần và tín hiệu CAS chỉ được kích hoạt một lần ở đầu chuỗi.



+ Bộ vi xử lý có bộ đệm khá lớn nên chứa nhiều lệnh truy cập và dữ liệu; do đó thông tin được tìm kiếm trên bộ đệm trước khi truy cập vào RAM và tần số dữ liệu cần được tìm thấy trên bộ đệm (hit-rate) khá cao (vào khoảng 95%).



Bảng gọi tên ứng theo:

Băng thông - Tốc độ MHz

PC1600 DDR 200

PC 2100 DDR 266

PC 2700 DDR 333

PC 3000 DDR 366

PC 3200 DDR 400

PC 3500 DDR 466

PC 4000 DDR 500

PC 4200 DDR 533

PC 4400 DDR 550

PC 4800 DDR 600



Nói tóm lại việc chuyển từ CAS 3 sang CAS 2 sẽ tăng hiệu năng xử lý cho tất cả các ứng dụng. Những chương trình phụ thuộc vào bộ nhớ như game hay ứng dụng đồ họa sẽ chạy nhanh hơn. Điều này đồng nghĩa với việc những thanh RAM được đóng dấu CAS2 chắc chắn chạy nhanh hơn những thanh RAM CAS3. Nếu bạn dự định mua đồ chơi cho một cuộc đua ép xung hay đơn giản chỉ cần hệ thống đạt tốc độ tối ưu, hãy chọn RAM CAS2 nhưng nếu chỉ là công việc văn phòng, CAS 3 hoàn toàn vẫn đáp ứng yêu cầu.



- Tần số làm tươi



Thường thì khi nhắc tới khái niệm tần số làm tươi (RAM Refresh Rate), người ta thường nghĩ ngay đến màn hình máy tính, tuy nhiên bộ nhớ DRAM (Dynamic Random Access Memory) cũng có khái niệm này. Như bạn đã biết module DRAM được tạo nên bởi nhiều tế bào điện tử, mỗi tế bào này phải được nạp lại điện hàng nghìn lần mỗi giây vì nếu không dữ liệu chứa trong chúng sẽ bị mất. Một số loại DRAM có khả năng tự làm tươi dữ liệu độc lập với bộ xử lý thường được sử dụng trong những thiết bị di động để tiết kiệm điện năng.



- SDRAM Access Time



Việc cho ra đời cách đọc dữ liệu theo từng chuỗi (Burst Mode) đã giúp khắc phục nhiều nhược điểm và tăng hiệu năng cho RAM, chu kì của chuỗi ngắn hơn rất nhiều chu kì trang của RAM loại cũ. Chu kì của chuỗi cũng được coi như là chu kì xung nhịp của SDRAM và chính vì thế nó được coi như thang xác định cho tốc độ của RAM bởi đó là khoảng thời gian cần thiết giữa các lần truy xuất dữ liệu theo chuỗi của RAM. Những con số -12, -10, -8... ghi trên các chip RAM cho biết khoảng thời gian tối thiểu giữa mỗi lần truy xuất dữ liệu: nhãn -12 xác định chu kì truy cập dữ liệu của RAM là 12ns (nano-giây) đồng nghĩa với việc tốc độ hoạt động tối đa của RAM sẽ là 83MHz. Thường RAM có tốc độ cao sẽ sử dụng chip RAM có chu kì truy xuất thấp nhưng với chu kì truy xuất thấp chưa chắc RAM đã có thể hoạt động ở tốc độ cao do còn phụ thuộc vào nhiều yếu tố khác. Do đó đôi khi bạn sẽ gặp trường hợp thanh RAM có tốc độ thấp nhưng khi đem vào 'thử lửa' ép xung thì lên được tốc độ cao hơn nhiều so với những loại RAM mặc định dán nhãn tốc độ cao.



NHỮNG MÓN ĐỒ CHƠI KHÔNG THỂ THIẾU



Bạn có thể nhận thấy một điều rất rõ ràng đó là tốc độ của RAM và điện thế sử dụng ngày càng cao hơn. Ban đầu chúng ta có DDR200/2,5v thì giờ đây chúng ta đã có DDR500/2,8v (thậm chí là 2,85v đối với một số loại nhất định) hay DDR2-667/1,8v. Hai yếu tố này đã góp phần làm cho nhiệt độ của RAM ngày càng tăng, đó cũng chính là lý do tại sao các loại RAM cao cấp thường có lá thép ốp ở mặt ngoài; ngoài lý do bảo vệ thì nó còn góp phần tản nhiệt. Tuy nhiên nếu bạn mua được RAM loại thường nhưng có tốc độ tốt và khả năng ép xung cao, bạn có thể tham khảo những giải pháp tản nhiệt dành riêng cho RAM của những nhà sản xuất thứ ba như tản nhiệt cho RAM của CoolerMaster.



Nếu cảm thấy khả năng tài chính có giới hạn, bạn có thể tự chế những mẩu tản nhiệt với một cục tản nhiệt lớn của CPU và một chiếc cưa sắt. Nếu khéo tay, bạn sẽ có những sản phẩm đẹp mắt không thua gì hàng hiệu. Một số nhà sản xuất lại chọn giải pháp đơn giản hơn bằng cách làm những tấm giải nhiệt giống của hàng hiệu với chất liệu như hợp kim dẫn nhiệt hay đồng đỏ nhưng thực tế chúng không hiệu quả cho lắm.



Một món đồ chơi nữa cũng đang được dân overclock ưa chuộng hiện nay là DDR Booster của OCZ tuy nhiên nó khá nguy hiểm và bạn chỉ nên dùng nếu có kinh nghiệm về máy tính. DDR Booster không phải là một thanh RAM mặc dù khi mới nhìn thì có vẻ hơi giống. Tuy nhiên nó lại rất gần gũi với RAM nhờ khả năng can thiệp vào hệ thống cấp điện cho RAM, chính vì thế với DDR Booster, bạn có thể chỉnh được điện năng tiêu thụ cho RAM một cách chính xác nhờ đồng hồ đo đi kèm.



Việc sử dụng rất đơn giản, bạn chỉ việc cắm vào khe RAM trống rồi vặn chiết áp trong khi theo dõi đồng hồ sao cho hợp lý vì nếu nhiệt độ lên quá cao, RAM có thể bị cháy. Có thể DDR Booster khá đáng sợ nhưng hiệu quả nó mang lại thì không ai có thể chê được. Trước kia bạn cần đến mỏ hàn và trình độ điện tử vào loại có hạng nếu muốn chỉnh lại điện của RAM bằng tay thì với DDR Booster, việc cần làm chỉ đơn giản là cắm và vặn. Bạn có thể hình dung những thanh RAM rất thường bình thường bán đầy ngoài cửa hàng có thể chạy ở tốc độ gần gấp đôi hoặc chí ít cũng ngang với các loại RAM xịn hay không? Câu trả lời là có, dĩ nhiên là với DDR Booster và những giải pháp tản nhiệt hợp lý.



2. CHỌN ĐÚNG LOẠI RAM




Khi mua hay ráp máy tính, việc chọn đúng loại RAM là khá quan trọng nhưng lại ít người để ý. Mỗi hệ thống sử dụng CPU Intel hay AMD lại 'thích' một kiểu RAM khác nhau, ngoài ra việc chọn lựa RAM còn phụ thuộc vào chipset và nhu cầu làm việc của người dùng. Thông thường CPU Intel Pentium 4 và Athlon 64 yêu cầu RAM tốc độ cao (bus 400MHz) trở lên do FSB của CPU khá lớn cho phép băng thông dữ liệu rộng. Nếu như RAM không đáp ứng được mức băng thông đó thì sẽ bị hiện tượng 'nghẽn cổ chai' (bottle-neck), ứng dụng sẽ hoạt động rất chậm. Nếu không xét đến việc ép xung (overclock), thông thường khi mua RAM cho máy tính, bạn hãy mua như sau:



DDR SDRAM



Như đã nói ở trên, đây đang là loại RAM thông dụng và thịnh hành nhất cho toàn bộ các loại máy tính để bàn vào thời điểm bạn đọc bài viết này. (ko rõ bài viết lúc nào).



A. Đối với CPU Intel



+ Intel Pentium 4-C/E/G/J Front Side Bus (FSB) 800MHz: Những loại CPU này có FSB rất lớn nên nếu sử dụng trên nền bo mạch chủ 865/875 hay 915/925 mới nhất, bạn sẽ đạt tốc độ cao khi lắp đặt bộ nhớ kênh đôi (Dual Channel DDR) đúng cách. Về nguyên tắc Dual Channel DDR khá giống với chế độ RAID của đĩa cứng, với 100MB dữ liệu chuyển vào RAM, thay vì vào một thanh RAM đủ 100MB, chipset sẽ chuyển đồng thời vào mỗi thanh RAM 50MB nên sẽ rút ngắn thời gian làm việc xuống chỉ còn một nửa. Và như vậy hai thanh RAM DDR bus 400 sẽ cho băng thông lý thuyết lên mức 800MHz, tương xứng với bus của CPU. Điều đó cho thấy nếu bạn sử dụng CPU có bus 800 thì việc mua hai thanh RAM DDR bus 400 giống nhau là lựa chọn lý tưởng. Chú ý hai thanh RAM phải giống nhau cả về tốc độ và loại chip nhớ sử dụng, đặc biệt là khi bạn chạy trên nền chipset i875P bởi chipset này khá 'khó tính', nếu không giống nhau thì rất có thể tính năng PAT sẽ không được kích hoạt và làm giảm hiệu năng hệ thống.



+ Intel Celeron/Pentium4 bus 400MHz/533MHz: Mặc dù những loại CPU có bus khá cao nhưng do thuộc thế hệ cũ hoặc dòng rẻ tiền nên chúng thường được lắp chung với các loại chipset 845, cho đến chipset 845PE thì tốc độ RAM cao nhất được chính thức hỗ trợ chỉ là 333MHz. Do đó nếu bạn lắp RAM DDR400 thì sẽ không kinh tế. Như vậy trừ khi bạn dùng bo mạch chủ có chipset 845PE, còn nếu không bạn nên chọn các loại RAM có bus 266MHz và để dành khoản tài chính dư ra cho một lần nâng cấp tổng thể hệ thống sau này.



CÁC BƯỚC NÂNG CẤP BỘ NHỚ



Khi nhận thấy máy tính chạy chậm chạp, có thể bạn nghĩ ngay tới việc nâng cấp card màn hình, bộ xử lý hay bo mạch chủ (mainboard). Nhưng bạn có biết rằng trong nhiều tình huống, nâng cấp bộ nhớ RAM giúp tăng đáng kể hiệu năng máy tính mà chi phí lại rẻ?



XÁC ĐỊNH DUNG LƯỢNG



Dung lượng bộ nhớ phụ thuộc vào hệ điều hành và ứng dụng. Windows XP yêu cầu bộ nhớ RAM tối thiểu 64MB nhưng khuyến khích 128MB. Windows Me yêu cầu tối thiểu 32MB, trong khi Windows 98 chỉ cần 16MB. Nếu cài thêm bộ Office XP trên hệ điều hành Windows XP, bạn cần tối thiểu 128MB RAM. Để chạy cùng lúc các ứng dụng như Word, Excel và Power Point, bạn cần tối thiểu 152MB. Nói chung, bạn nên trang bị 256MB RAM khi sử dụng hệ thống WinXP. Nếu để chơi game, thiết kế đồ họa, xử lý phim, bạn nên có 512MB RAM; càng nhiều càng tốt nhưng còn phụ thuộc vào khả năng hỗ trợ của bo mạch chủ .



XÁC ĐỊNH LOẠI BỘ NHỚ



Hiện có 3 công nghệ bộ nhớ phổ biến là SDRAM, DDR-SDRAM và RDRAM nên bạn cần xác định loại bộ nhớ dựa theo tài liệu hướng dẫn của bo mạch chủ.



SDRAM: Phổ biến trong các hệ thống Pentium, Pentium II, và Pentium III, SDRAM có 3 loại: PC66, PC100 và PC133; tương ứng với tần số làm việc 66MHz, 100MHz và 133 Mhz.



DDR SDRAM: Phổ biến trong hệ thống Pentium IV hay AMD. Cũng giống như SDRAM, DDR SDRAM cũng có nhiều loại tốc độ khác nhau như PC2100, PC2700, PC3200, PC3500 và PC3700 (xung làm việc tương ứng là 266MHz, 333MHz, 400MHz, 433MHz, và 466MHz)



RDRAM: Là công nghệ bộ nhớ 'xịn' nhất, RDRAM sử dụng cho các hệ thống Xeon và Pentium IV

cao cấp. Do giá còn mắc nên không được phổ biến như 2 loại RAM trên.



ĐỘ TƯƠNG HỢP



Đừng vội chọn loại RAM tốc độ nhanh vì chưa chắc thích hợp với máy bạn mà nên chọn loại bộ nhớ có thông số giống như bộ nhớ hiện thời trên hệ thống. Mua thanh DDR-SDRAM PC3700 tốc độ 466MHz trong khi bo mạch chủ chỉ hỗ trợ tối đa RAM 266MHz thì xem ra không hiệu quả bằng mua loại DDR SDRAM PC2100 tốc độ 266MHz.



LẮP ĐẶT



Trước tiên, bạn phải mở thùng máy và nhớ đeo vòng khử tĩnh điện hoặc tiếp đất để tránh làm hỏng linh kiện điện tử. Quan sát trên bo mạch chủ, tìm những khe cắm RAM (có lẽ là dài nhất). Nhấn chốt 2 bên khe cắm RAM còn trống ra hai bên rồi đặt thanh RAM vào đúng vị trí, nhấn đều 2 đầu (để không làm hỏng hay trầy xước mạch điện tử) đến khi thấy 2 chốt cắm vào hai thành thanh RAM. Lắp đặt RDRAM cũng tương tự nhưng cần lắp các thanh RDRAM theo cặp và đặt CRIMM trong khe cắm trống để khép kín mạch điện. Đối với loại SDRAM, bạn sẽ phải đẩy nghiêng.



CHẠY THỬ



Hãy quan sát con số báo dung lượng bộ nhớ khi hệ thống khởi động. Nếu sai biệt thì nên kiểm tra lại vị trí gắn các thanh RAM. Nếu cần có thể nhấn phím Pause/ Break để tạm dừng màn hình khởi động.



Khi thấy hệ thống báo dung lượng RAM đủ và khởi động bình thường vào Windows, bạn tiếp tục chạy thử một số ứng dụng và kiểm tra xem chúng có hoạt động tốt không; bởi RAM không tương thích có thể gây ra sự cố treo máy hay đóng băng.



B. Đối với AMD



Nếu như từ trước đến nay những dòng CPU của AMD không được phổ biến ở Việt Nam do chế độ phân phối và bảo hành thì giờ đây với việc Silicom chính thức trở thành nhà phân phối cho AMD, người dùng sẽ hoàn toàn yên tâm sử dụng dòng vi xử lý này. Mặt khác, trên thị trường cũng xuất hiện thêm nhiều sản phẩm bo mạch chủ và phụ kiện (quạt tản nhiệt, đế lắp socket...) cho CPU AMD. Tuy nhiên có một điều đáng buồn là trước kia sản phẩm của AMD được yêu thích do chi phí thấp mà hiệu năng cao, còn giờ đây phương châm đó không còn được như vậy bởi những dòng CPU cao cấp của AMD giá quá cao, thậm chí vượt hơn Intel. Tuy nhiên người dùng AMD cần chú ý là bộ xử lý AMD (đặc biệt là AthlonXP) sẽ cho hiệu năng tốt nhất khi RAM chạy đồng bộ với FSB (tốc độ ngang nhau) và CAS Latency thấp (tốt nhất là 2) nên việc chọn đúng RAM là rất quan trọng.



+ Duron/Athlon XP/Sempron Bus 266MHz: Nếu bạn đang sử dụng những loại CPU này thì dĩ nhiên lựa chọn lý tưởng nhất vẫn là DDR 266MHz. Thường thì do bus thấp nên bạn có thể tìm được nhiều loại RAM có CAS2, hãy chú ý chi tiết này và chọn lựa sao cho hợp lý.



+ AthlonXP bus 333/400MHz: Với hai loại CPU này, việc chọn RAM phụ thuộc nhiều vào chipset của mainboard mà bạn sử dụng. Thường thì với các loại chipset thông dụng VIA có số hiệu từ 333 trở xuống như KT333, KT266, KM266... bạn nên dùng RAM tốc độ 333MHz.



Tại sao lại không tìm mua RAM bus 400MHz? Lý do rất đơn giản, việc tìm mua một thanh RAM bus 266 hay 333 có CAS thấp đơn giản hơn nhiều so với tìm một thanh RAM 400MHz CAS2. Đối với những chipset như KT400, KT600 hay đặc biệt là nVIDIA nForce 2, bạn nên mua DDR400 bởi ngoài việc chúng hỗ trợ sẵn tốc độ này thì đa số CPU AthlonXP Barton của AMD đều có thể chạy tốt ở bus 400MHz cho dù mặc định chúng chỉ là 333MHz mà thôi. Tuy nhiên nhớ chú ý lựa chọn thật kĩ trước khi mua vì trên thị trường hiện nay có rất nhiều chủng loại RAM DDR400 với nguồn gốc khác nhau. Chi tiết về việc chọn lựa RAM bạn có thể tham khảo bài viết 'Overclock - Được, mất và những điều cần biết' (Thế Giới Vi Tính A 9/2003). Chú ý nForce2 hỗ trợ Dual Channel DDR 400MHz.



+ Athlon 64: Hầu như tất cả các hệ thống Athlon64 đều yêu cầu tối thiểu RAM có bus 400MHz, những hệ thống Socket939 mới hỗ trợ Dual Channel nên bạn phải nhớ chọn mua cho phù hợp.



DDR-II



Mặc dù đã xuất hiện được một thời gian dài nhưng DDR-II dường như chưa tạo được ấn tượng tốt với người dùng, chìa khóa chính để nhà sản xuất nâng băng thông của DDR-II lên chính là việc nhân chip nhớ chạy ở một nửa tần số của bộ đệm I/O và điều này đồng nghĩa với việc bộ đệm dữ liệu chạy ở tốc độ gấp đôi nhân. Thông thường nếu RAM có tốc độ 100MHz thì bộ đệm dữ liệu cũng chạy ở tốc độ 100MHz, nhưng với DDR, tốc độ này là 200MHz. Trong DDR-II, bộ đệm dữ liệu chạy ở 200MHz vẫn với xung nhịp 100MHz của RAM, điều này cho phép chúng xử lý được 4 bit dữ liệu trong một xung nhịp vì tốc độ gấp đôi nên khi áp dụng nguyên tắc DDR lên thì chúng ta sẽ được tần số dữ liệu thực lên tới 400MHz với chỉ 100MHz tốc độ hoạt động của RAM. Nói một cách đơn giản hơn:



Với DDR1: 100MHz xung thực -> 100MHz bộ đệm dữ liệu -> 200MHz tốc độ dữ liệu (DDR).



Với DDR2: 100MHz xung thực -> 200MHz bộ đệm dữ liệu -> 400MHz tốc độ dữ liệu (DDR).



Như vậy độ trễ CAS của DDR-II sẽ có nhiều điểm khác biệt so với DDR-I hiện tại và thường được đặt ở mức 4 hoặc 5. Ngoài ra nếu bạn muốn sử dụng DDR-II cho máy tính để bàn của mình, bạn không có sự lựa chọn nào ở thị trường Việt Nam ngoài những bo mạch chủ có chipset Intel 915 và 925, điều này sẽ kéo theo nhiều nâng cấp khác như CPU Socket 775 và card đồ họa PCI-Express. Mặc dù vậy, tốc độ của DDR-II vào thời điểm hiện tại chưa chứng tỏ được sức cạnh tranh so với DDR truyền thống nên không được người dùng quan tâm nhiều. Bạn có thể tìm thấy một vài sản phẩm của Samsung, Kingston hay KingMax ở nhiều cửa hàng trong cả nước nếu cần.



BỘ NHỚ VIDEO



Bên cạnh chip bộ nhớ chính còn nhiều loại chip nhớ đặc biệt phát triển riêng cho ứng dụng video.



VIDEO RAM (VRAM)



VRAM được phát triển dựa trên công nghệ FPM (fast page mode), có hai cổng giao tiếp thay vì một cổng như thông thường: một cổng dành cho chức năng làm tươi màn hình) cổng còn lại xuất ảnh ra màn hình. Nhờ thiết kế này, VRAM hoạt động hiệu quả hơn DRAM trong những ứng dụng video. Tuy nhiên, do sản lượng tiêu thụ chip video ít hơn chip nhớ chính nên giá còn cao. Vì thế, trong một số hệ thống card video ít tiền, người ta có thể dùng DRAM thông thường để giảm giá thành.



GRAPHIC DDR (GDDR)



GDDR (DDR đồ họa) được phát triển dựa trên công nghệ DDR SDRAM dành riêng cho đồ họa. Sau phiên bản GDDR-2 thiết kế dựa trên DDR-II, ATI và NVIDIA đã kết hợp chặt chẽ với các nhà sản xuất bộ nhớ để đưa ra phiên bản GDDR-3 có điện áp làm việc thấp hơn GDDR-2, làm việc từ tần số 500MHz đến 800MHz với mục tiêu giảm điện năng tiêu thụ, tăng mật độ chip nhớ và đơn giản hóa giải pháp tản nhiệt.



WINDOW RAM (WRAM)



WRAM là một dạng bộ nhớ hai cổng khác, được dùng trong những hệ thống chuyên xử lý đồ họa. Hơi khác VRAM, WRAM có cổng hiển thị nhỏ hơn và hỗ trợ tính năng EDO (Extended Data Out).



SYNCHRONOUS GRAPHIC RAM (SGRAM)



SGRAM là loại SDRAM thiết kế riêng cho video với chức năng đọc/ghi đặc biệt. SGRAM cho phép truy xuất và chỉnh sửa dữ liệu theo khối thay vì từng đơn vị nên giảm bớt số lượt đọc/ghi bộ nhớ và tăng hiệu năng của bộ điều khiển đồ họa.



BASE RAMBUS VÀ CONCURRENT RAMBUS



Trước khi trở thành công nghệ bộ nhớ chính, công nghệ Rambus được dùng làm bộ nhớ video. Công nghệ bộ nhớ Rambus dùng làm bộ nhớ chính hiện tại được gọi là Direct Rambus. Còn hai dạng Rambus sơ khai là Base Rambus và Concurrent Rambus được dùng cho ứng dụng video trong máy trạm và hệ thống game video như Nintendo 64.



3. KINH NGHIỆM



Chắc chắn bạn cũng nhận thấy một điều là sự lựa chọn vào thời điểm hiện tại gần như chỉ giới hạn trong loại RAM DDR bởi DDR-II và RDRAM hầu như không phổ biến. Đa số những loại DDR đang được bán ở các cửa hàng linh kiện máy tính đều có khả năng hoạt động trơn tru trên mọi hệ thống. Tuy nhiên, để có được loại RAM tốt, hiệu năng cao đồng thời bạn vẫn muốn 'nghịch ngợm' ép xung được thì sẽ phải bỏ ra một chút công sức. Thông dụng nhất là DDR400 hay còn gọi là PC3200 với hàng chục loại khác nhau và giá cả chênh nhau từ vài USD cho tới vài chục USD! Để tiện, chúng ta sẽ phân làm hai loại: 'bình dân' và 'cao cấp'. Những loại RAM bình dân thường không có vỏ thép mà chỉ gồm thanh RAM không, một số hàng thuộc dòng này của những hãng tên tuổi như Corsair hay Kingston thì có thêm hộp nhựa đựng rất lịch sự và ghi rõ là Value RAM. Dòng Value RAM nói chung chất lượng không được đồng đều và phụ thuộc khá nhiều vào loại chipset mà hãng sản xuất sử dụng, mỗi đợt hàng chất lượng lại rất khác nhau nên việc mua được sản phẩm tốt hay dở đa phần đều nhờ may mắn. Ví dụ như Kingston Value RAM PC3200 có đợt là RAM CAS 2,5, có đợt lại là CAS 3; Adata PC3200 có vỏ nhựa lúc mới ra thì bị xem thường nhưng về sau thì lại được khen và sức mua mạnh dẫn tới hiếm hàng. Vậy bí quyết là gì?



Thường khi mua RAM thuộc dòng cấp thấp, bạn có thể rất dễ dàng nhìn thấy những kí hiệu ghi trên chip RAM và những thanh RAM có chất lượng tốt thường sử dụng chip nhớ của những hãng có tên tuổi như Winbond, Samsung, Hynix, Huyndai, Kingston, Kingmax... chú ý chọn loại RAM có 8 chip nếu có thể. Ngoài ra bạn có thể kiểm tra thông số Access Time thông qua đoạn mã ghi trên chip RAM ví dụ như với một thanh Elixir bình thường có mã số là N2DS25680BT-5T thì -5 chính là thông số bạn cần tìm, từ đó suy ra tốc độ của thanh RAM này khoảng 400MHz trở lên. Yếu tố cuối cùng mà bạn kiểm tra là chất lượng bản mạch và độ tinh xảo của mạch in, hãy thử uốn nhẹ thanh RAM để kiểm tra độ bền, một số RAM có các lớp bản mạch dập không được khít và phát ra tiếng kêu khi uốn hơi cong sẽ dễ hỏng hơn những thanh khác.



Với những dòng RAM cao cấp thì việc lựa chọn sẽ khó khăn hơn nhiều do vỏ hộp lẫn bản thân thanh RAM đều được đóng gói bảo vệ rất kĩ lưỡng. Việc tháo vỏ đóng gói để xem bên trong là không thể, bạn chỉ có thể nhận diện chất lượng của RAM thông qua mã số sản phẩm và ngày tháng sản xuất, nhìn chung những sản phẩm thuộc dòng cao cấp có chất lượng khá tốt đáp ứng được hầu hết người dùng kể cả khi bạn muốn ép xung, chỉ trừ một vài người thuộc loại 'quái kiệt' với đầy đủ đồ nghề 'xịn' cho overlocking mới có yêu cầu cao hơn. Những loại RAM tốc độ cao thuộc series cao cấp nổi bật ở thị trường Việt Nam vào thời điểm hiện tại có thể kể:



+ Kingston HyperX: Với tốc độ từ 400MHz cho tới 500MHz và được phân phối thông qua đại lý chính hãng nên người dùng có thể yên tâm sử dụng, tuy nhiên hệ số CAS của HyperX khá cao nên không được người dùng AMD ưa chuộng. Một số series HyperX sản xuất trước kia sử dụng chipset Winbond BH-5 được dân overlocker săn lùng liên tục.



+ Adata Vitesta: Tốc độ từ 500MHz đến 600MHz, giá thành khá rẻ, trong thử nghiệm một thanh Atada Vitesta ngẫu nhiên có thể chạy CAS 2,5 (mặc định của nhà sản xuất là 3) ở bus 500MHz (chế độ kênh đôi Dual Channel) ổn định.



+ Mushkin Level 2 Black Cover: Tốc độ từ 400MHz tới 466MHz. Hiện tại đây là loại RAM được giới sành đồ chơi máy tính đánh giá khá cao về khả năng nâng lên tốc độ cao và CAS thấp, đặc biệt dòng mới nhất sử dụng chip nhớ Samsung kí hiệu TCCD cho kết quả tốt hơn nhiều và thậm chí còn vượt xa dòng BH-5 trước kia. Loại chip nhớ TCCD còn được sử dụng cho cả những series RAM có bus mặc định là 600MHz (PC4800).



+ Corsair: Sau một thời gian dài vắng bóng, hiện tại Corsair đang dần lấy lại phong độ với dòng sản phẩm RAM XMS C2PT cao cấp mới nhất (revision 4.1) dùng chipset TCCD, trong những thử nghiệm của diễn đàn VOZ, hầu hết các loại RAM sử dụng chipset TCCD đều có thể vượt qua bus 550MHz dễ dàng thậm chí với hệ số CAS chỉ ở mức 2,5. Ngoài ra hãng còn cung cấp dòng RAM có CAS 2 với dàn đèn Data Indicator nháy theo hoạt động khá đẹp. Tuy nhiên bạn cần lưu ý theo ý kiến nhiều người dùng thì những sản phẩm RAM cao cấp của Corsair có chất lượng không được đồng đều cho lắm.



+ Gskill: Đây là một tên tuổi mới đối với người dùng trong nước, tuy nhiên sự ra mắt của hãng với dòng RAM DDR600 (chip nhớ TCCD) thực sự gây ấn tượng. Mặc dù vậy số lượng hàng không nhiều và việc tìm mua rất khó khăn.



Ngoài ra những nhà sản xuất như OCZ hay Geil cũng có nhiều sản phẩm cao cấp mà bạn có thể tìm mua nhưng thường khá hiếm vì không có đại lý phân phối chính thức trong nước.



BỘ NHỚ CẢI TIẾN



ENHANCED SDRAM (ESDRAM)



Để tăng tốc độ và hiệu năng, thanh nhớ chuẩn có thể được tích hợp thêm bộ đệm SRAM (Static RAM) trực tiếp trên chip. ESDRAM là SDRAM có thêm bộ đệm SRAM để có khả năng làm việc với tần số 200MHz. Cũng tương tự nguyên lý bộ nhớ đệm ngoài, DRAM cũng dùng một bộ đệm SRAM để lưu dữ liệu thường dùng, nhằm rút ngắn thời gian truy xuất DRAM. Ưu điểm của SRAM trên chip là tạo lập tuyến bus rộng hơn giữa SRAM và DRAM, tăng cường băng thông và tốc độ DRAM một cách hiệu quả.



FAST CYCLE RAM (FCRAM)



FCRAM được Toshiba và Fujitsu đồng phát triển nhằm phục vụ máy chủ, máy in cao cấp và hệ thống chuyển mạch viễn thông. Bộ nhớ được phân thành nhiều mảng và có thiết kế hàng đợi nên tăng được tốc độ truy xuất ngẫu nhiên và giảm điện năng tiêu thụ.



SYNCLINK DRAM (SLDRAM)



Hiện tại tuy đã lỗi thời nhưng SLDRAM từng được

cộng đồng chế tạo DRAM phát triển nhằm cạnh tranh với Rambus vào cuối thập niên 1990.



VIRTUAL CHANNEL MEMORY (VCM)



Do NEC phát triển, VCM cho phép các 'khối' bộ nhớ khác nhau giao tiếp độc lập với bộ điều khiển nhớ và có đệm riêng. Cách này cho phép mỗi tác vụ hệ thống thành một khối riêng, không chia sẻ hay dùng chung với các tác vụ cùng chạy khác.



BỘ NHỚ FLASH



Bộ nhớ Flash là dạng bộ nhớ ghi lại được, không mất, trạng thái ổn định, có chức năng kết hợp của RAM và ổ đĩa cứng. Bộ nhớ flash lưu bit dữ liệu dưới dạng tín hiệu điện trong ô nhớ (giống DRAM) nhưng có khả năng nhớ cả khi ngắt điện (giống đĩa cứng). Nhờ đặc tính điện thế thấp, ổn định, tốc độ cao, bộ nhớ flash thích hợp với rất nhiều ứng dụng di động như máy ảnh số, máy quay phim số, điện thoại di động, máy in, PDA, máy nhắn tin, máy ghi âm số, máy MP3, hệ thống GPS.


4. ĐIỀU CHỈNH BIOS CHO PHÙ HỢP



A. Tốc độ



BIOS của BMC Asus P4C800 Deluxe. Bạn có thể thấy phần điều chỉnh tốc độ (DRAM Frequency) và phần chỉnh điện thế (DDR Reference Voltage).



Muốn tối ưu hóa hiệu năng của RAM, bạn chỉ có cách sử dụng BIOS của máy tính, nhấn Del khi khởi động để vào BIOS. Thường các thông số của RAM chia làm hai mục, tỉ lệ của RAM sẽ nằm trong phần CPU Voltage/Frequency (một số hãng sản xuất lại đưa chúng vào nhóm riêng ví dụ như Soft Menu (Abit), Genie Bios (DFI)... Trong phần này, mỗi hãng có cách sắp xếp khác nhau nhưng đều dựa trên một nguyên tắc chung là tốc độ của RAM tỉ lệ với FSB của CPU theo một hệ số nhất định. Một số hãng như Asus chọn cách hiển thị tốc độ RAM trực tiếp giúp người dùng không mất thời gian tính toán còn Abit lại chọn cách sử dụng tỉ lệ, bạn sẽ phải nhân, chia để có kết quả tốc độ tuy nhiên điều này sẽ giúp bạn có thêm kiến thức và hiểu rõ hơn về thông số của máy tính. Tốc độ của RAM được tính theo tỉ số CPU/DRAM, ví dụ khi CPU có bus ngoài là 200MHz (ở những CPU bus 800MHz) và tỉ lệ này là 1:1 thì RAM sẽ chạy ở bus 200MHz (400MHz DDR). Khi tỉ lệ là 5:4, bus ngoài CPU là 200MHz thì tốc độ RAM sẽ là (200/5)*4 = 160MHz (320MHz DDR).



BIOS của BMC Abit IC7 MAX3, tương tự như của Asus nhưng tốc độ RAM được xác định qua tỉ lệ (DRAM Ratio)



Riêng những thông số khác về RAM như CAS Latency, RAS-to-CAS Delay... đều được tất cả các nhà sản xuất đưa vào một nhóm chung có tên là Advance Chipset Configuration. Có thể bạn sẽ cảm thấy hoa mắt nhưng thông số quan trọng nhất là phần DRAM Timing bao gồm bốn thông số chính theo thứ tự là CAS Latency, Act to Precharge Delay, Ras-to-CAS Delay và DRAM Ras Precharge. Nếu bạn gặp thông số RAM kiểu như 2-2-2-5 hay 2-3-3-7 thì đó chính là bốn thông số được xếp theo đúng thứ tự như vậy. Ý nghĩa của những thông số còn lại bạn có thể tham khảo sách hướng dẫn đi kèm của từng bo mạch chủ.



B. Điện thế:



Cũng trong những hình ảnh trên, bạn có thể thấy có một chỉ số về điện thế cung cấp cho RAM (DRAM Voltage). Thường thì DDR sử dụng mức điện thế 2,5v và DDR-II là 1,8v. Một số loại RAM DDR tốc độ cao có thể yêu cầu tới 2,8v hoặc 2,85v, đối với những loại này bạn phải tham khảo tài liệu hướng dẫn đi kèm để có được thông tin. Tuy nhiên bạn cần tuân theo một nguyên tắc an toàn là: Không nên kéo điện thế lên quá 2,9v nếu không có giải pháp tản nhiệt hữu hiệu vì RAM có thể sẽ bị cháy hoặc phồng IC sau một thời gian sử dụng. Đối với những loại bo mạch chủ rẻ tiền, bạn sẽ không chỉnh được điện thế của RAM mà chỉ có thể thay đổi được tốc độ. Trong trường hợp này bạn có thể sử dụng một vài món đồ chơi chuyên dụng như DDR Booster của OCZ. Theo thống kê từ phía người dùng, những chip RAM của Samsung có khả năng chịu được điện cao nhất và ép xung lên được mức tốc độ tương xứng, còn những loại chip của Winbond thì có thể chạy ở tốc độ cao ngay cả với điện thế mặc định hoặc nhỉnh hơn một chút. Điện thế của RAM thậm chí còn ảnh hưởng cả đến timing nên nếu thanh RAM bạn mua về không chạy được ở mức timing thấp thì bạn có thể thử đẩy điện thế lên một chút xem sao.



Sau khi đã có đủ những giải pháp về phần cứng, điều quan trọng nhất của việc chọn RAM chính là hiệu năng cao và ổn định, bạn sẽ cần đến những phần mềm chuyên dụng để kiểm tra tốc độ cũng như khả năng hoạt động lâu dài của RAM cho dù chạy ở tốc độ mặc định hay ép xung. Hai chương trình sáng giá nhất được nhiều người dùng đánh giá cao là Sisoft Sandra 2005 (http://www.sisoftware.co.uk/) và Passmark Burn-in Test (http://www.passmark.com). Hai chương trình này có khả năng kiểm tra băng thông của RAM kèm theo thử nghiệm tối đa 'nội lực' của RAM để phát hiện lỗi nếu có. Nếu như RAM của bạn đạt được thời gian kiểm tra từ 8 đến 10 tiếng và tốc độ chấp nhận được thì bạn là người may mắn, nếu không hãy kiểm tra lại toàn bộ mọi thiết bị hoặc liên hệ với nơi bán để đổi loại khác.



Tóm lại, việc chọn mua một loại RAM đúng với cấu hình máy tính và phù hợp với công việc của mình là rất quan trọng. Việc mua RAM từ các hãng tên tuổi dĩ nhiên sẽ đảm bảo cho bạn về chất lượng cũng như bảo hành. Mặc dù đa số các loại RAM trên thị trường vào thời điểm hiện tại đều có thời hạn bảo hành 3 năm nhưng sẽ thật phiền toái nếu RAM hỏng và bạn phải chạy đi chạy lại để liên lạc với nơi bán; chưa kể chuyện thanh RAM chập chờn có thể cho dữ liệu quan trọng của bạn ra đi không lời từ biệt chỉ trong tích tắc. Nói chung nếu là máy tính cho văn phòng, bạn hoàn toàn có thể mua những loại RAM phổ thông để tiết kiệm chi phí, dĩ nhiên là phải kiểm tra cẩn thận. Còn nếu như bạn là 'dân chơi' overlock sành sỏi hoặc thường xuyên chơi game tốc độ cao hay chỉ đơn giản là muốn làm cho chiếc máy tính của mình trông 'xịn' hơn thì có thể lướt qua dòng sản phẩm cao cấp nhưng hãy nhớ kiểm tra cái ví của mình trước! Giá của chúng chắc chắn không hề rẻ chút nào.



Phần II:CPU





1. Bus speed của CPU




Khái niệm Bus: là đường dẫn điện nội bộ mà theo đó các tín hiệu được truyền từ thiết bị này đến thiết bị khác trên main. Máy tính thiết kế bus của bộ xử lý theo ba loại :

Bus dữ liêu (data bus): truyền dữ liệu giữa ram và cpu

Bus địa chỉ: xác định vị trí nhớ nào sẽ được đưa vào hoạt động.

Bus điều khiển (control bus): truyền các tín hiệu của các bộ phận điều khiển



Người ta sẽ phát triển bus dữ liệu của máy tính bằng cách nối cpu với một hoặc nhiều khe cắm mở rộng, và gọi là bus mở rộng (expansion bus). Bus địa chỉ, dữ liệu, mở rộng được mắc nối theo những hàng dây dẫn song song, cho nên tất cả các bit cần gửi đi sẽ được truyền cùng một lúc, giống như 16 hoặc 32 chiếc ôto dàn hàng ngang cùng chạy về một hướng trên xa lộ cao tốc.



Data bus có 2 khái niệm :

- bus width (độ rộng bus)

- bus speed (tốc độ của bus). 2 thằng này nhiều người lầm.

Vd : Từ Biên Hòa lên SG bằng con đường quốc lộ 1A. Đường này có bề rộng 10m và tốc độ 50km/h

Con đường = BUS

bề rộng = bus width

50km/h = bus speed



bus speed ở trên không đề cập đến CPU s/d công nghệ Quad Data Rate (QDR) vận chuyển 4 phần dữ liệu trong 1 chu kỳ đồng hộ (clock cycle) -> hiệu suất gấp 4 lần CPU thường chuyển chỉ 1 phần dữ liệu trong 1 chu kỳ đồng hồ. Như vậy, tốc độ bus danh định (external bus speed) mà ta thường quen gọi là FSB của CPU cao gấp 4 lần so với tốc độ thật (real clock rate) được sử dụng bởi CPU.



Tốc độ truyền cực đại (maximum trasfer rate) (MB/s) = 1/8 real lock rate X số liệu đường truyền tải của một clock X 64

64 : nghĩa là CPU truyền dẫn với RAM 64bit mỗi chu kỳ đồng hồ, chia 8 tính ra byte



VD : 800Mhz có External Bus Speed (FSB) 800Mhz thì

Real clock rate = 200MHz

Maximum trasfer rate = 1/8 (200 x 4 x 64 ) = 6400 MB/S



External bus speed -> Real Clock rate - maximum tranfer rate tương ứng:

400 MHz -> 100 MHz - 3200 (MB/s)

533 MHz -> 133 MHz - 4264 (MB/s)

800 MHz -> 200 MHz - 6400 (MB/s)



Phân biệt Dual Core và Core Duo



Các bạn nên phân biệt giữa đặc điểm của CPU và tên dòng CPU.



Dual core là đặc điểm của CPU, cho ta biết CPU này thuộc loại dual core, tức CPU có 2 nhân.

Ví dụ:

AMD Athlon 64 X2 3600+ là CPU dual core.

Intel Pentium D 820 là CPU dual core.

Intel Core 2 Duo E4300 là CPU dual core.



Core Duo là 1 thương hiệu của hãng Intel. Core Duo là dòng sản phẩm CPU dành cho laptop. Intel Core Duo là loại CPU dual core, tức CPU có 2 nhân.

Core 2 Duo cũng tương tự như vậy nhưng dòng Intel Core 2 Duo được dành cho desktop.

Ví dụ:

Intel Core Duo T2400 là CPU dual core.

Intel Core 2 Duo E6300 là CPU dual core.



Hiện nay trên thị trường chỉ có duy nhất 1 dòng CPU có từ "dual core" trong tên của mình, đó là dòng Intel Pentium Dual-Core. Dòng CPU này sử dụng cho laptop.

Ví dụ:

Intel Pentium Dual-Core T2060 là CPU dual core.



2. Bus speed của RAM



Đối với RAM, tùy theo công nghệ của từng loại mà exernal bus speed và real clock rate được tính theo công thức khác nhau.



Memory external bus - real clock rate - maximum transfer rate tương ứng:

PC100: 100 - 100 - 800

PC133: 133 - 133 - 1066

DDR333: 333 - 166 - 2700

DDR400: 400 - 200 - 3200

DDR2-400: 400 - 200 - 3200

DDR2-533: 533 - 266 - 4264

DDR2-667: 667 - 333 - 5336

DDR2-800: 800 - 400 - 6400



SDRAM: real clock rate = External bus

DDRAM: Real clock rate = 1/2 external bus



Điều này cũng được giải thích tương tự như bus speed của CPU nhờ loại RAM này được s/d công nghệ Double Data rate (DDR), nghĩa là nó chuyển 2 phần dữ liệu trong 1 chu kỳ đồng hồ -> hiệu suất tăng 2 lần.

Công thức tính Maximum transfer rate thì hoàn toàn tương tự như cách tính CPU



* Chọn RAM tương thích với CPU



Dựa vào real clock rate của CPU và RAM. Nghĩa là để RAM có thể hoạt động cùng với CPU thì Real Clock rate của RAM phải > or = CPU. Nếu real clock rate của RAM nhỏ hơn -> xảy ra hiện tượng “thắt cổ chai” ( bottleneck problem ) -> Chọn RAM theo external là không chính xác



VD : Pentium D 2,8 GHz FSB 800 MHz thì real clock rate của CPU = 200 -> chọn RAM có real clock rate tối thiểu =200 (dựa vào bảng trên để lựa). real clock của RAM >200 càng tốt.



Để đảm bảo RAM và CPU làm việc tốt nhất thì nên dựa vào maximum transfer rate của CPU.

VD : D 2,8GHz FSB 800MHz có Maximum transfer of CPU = 6400 MB/s -> chọn RAM loại RAM DDR2 có external bus là 800 MHZ thì CPU mới làm việc tốt nhất.



Vậy nguyên tắc maximum transfer of RAM = maximum transfer of CPU



* Bản chất của việc dùng RAM kênh đôi (RAM DDR Dual Channel)



Khi cấu hình DDR Dual Channel, RAM được truy cập cùng lúc đến 128 bit thay vì 64bit so với tốc độ bình thường không dùng kênh đôi -> tốc độ truyền tăng gấp đôi. Để sử dụng được kênh đôi, mainboard phải hỗ trợ một số chẵn lần khe cắm DDR hoàn toàn giống nhau (2 or 4 khe, cùng màu ở vị trí 1-3 hay 2-4. Không cắm 2 thanh ở vị trí 1-2 hay 1-4 sẽ không sử dụng được kênh đôi. Còn 4 khe cắm luôn 4 thanh thì s/d được) và 2 hay 4 thanh phải cùng dung lượng, cùng tốc độ, cùng model (DDR/DDR2/DDR3). Nếu cùng nhà sản xuất càng tốt.



* Sự khác biệt cơ bản giữa DDR single Channel (Kênh đơn) và DDR Dual Channel (Kênh đôi):



Single Channel : là chế độ hoạt động của RAM DDR mà dữ liệu truyền từ CPU -> RAM và dữ liệu truyền từ RAM -> CPU không đồng thời cùng lúc. Giả sữ dữ liệu truyền từ CPU -> RAM mất 1 giây thì trong giây tiếp theo 1 dữ liệu khác mới được truyền từ RAM-> CPU với cùng một tốc độ.



Dual Channel : chế độ hoạt động của RAM mà dữ liệu truyền từ CPU->RAM và RAM->CPU được thực hiện đồng thời cùng lúc. Nghĩa là giả sử dữ liệu truyền từ CPU -> RAM mất 1 giây thì cũng trong giây đó một dữ liệu khác cũng được truyền từ RAM -> CPU với cùng tốc độ -> tiết kiệm được 1 giây so với dùng Single channel



Ta thấy rằng khi dùng Kênh Đôi thì bus width mới được tăng gấp đôi. Đây là hiệu quả chính của Kênh đôi



Giả sử có CPU FSB 800 MHz thì 2 thanh RAM DDR Dual Channel 400 MHz cắm kênh đôi sẽ cho maximum transfer rate tăng gấp đôi = 6400 MB/s nhưng external bus speed của RAM vẫn là 400 MHz chứ không tăng. Có thể tăng external bus speed của RAM thông qua việc overclock (ép xung) RAM.



Nếu có dual-channel thì thay vì mua một cây 1GB thì mua 2 cây 512 giống hệt sẽ có băng thông tốt hơn.





ĐỌC THÊM:



Cái từ "Core 2 Duo" làm nhiều người nhầm nó là 1 từ đơn, thật ra, nó là 1 từ ghép, bao gồm 2 phần: phần Core 2 và phần Duo



Core 2 là thế hệ thứ 8th của x86 architecture (Intel). Trong Architecture cò nhiều Family, trong Family có nhiều Series, trong series thì có hàng đống tên sản phẩm....



x86 architecture Intel:

1---- 8086

2---- 80186

3---- 80286 (thời Cha anh ở VN học vi tính)

4---- 386

5---- 486 (thời chúng ta bắt đầu học vi tính)

6--- Pentium

----------- Pentium

------------------- Pentium pro

------------------- Pentium II

------------------- Pentium III

------------------- Pentium IV (bắt đầu từ thời này người ta dùng công nghệ 65 nm)

------------------- Pentium D (chữ D dính liền với Multiprocessors, nhiều Chip xử lý trên 1 bản silicon của 1 CPU)

------------------- Pentium M (chữ M dính liền với công nghệ Centrino)

------------------- Pentium Extreme Edition (nâng cấp của Pen D, cũng là Multiprocessors)

------------------- Pentium Dual (Duo) (nâng cấp của Pen D)

----------- Celeron

------------------- Celeron thường

------------------- Celeron M

------------------- Celeron D

7--- Core (là tên thương mại của hệ thống Yonah, có thời gian sẽ nói thêm)

----------- Solo (chỉ có nghĩa là 1 nhân, không nhất thiết phải dùng công nghệ Centrino)

----------- Duo (2 nhân)

8--- Core 2

----------- Solo

----------- Duo

------------------- Conroe

------------------------ E6300

------------------------ E6400

------------------------ E6650

------------------------ E6700

------------------------ E6750 (trong tương lai gần)

------------------------ E6800

------------------------ E6850

------------------- Conroe XE

------------------- Allendale

------------------- Merom

------------------- Penryn

------------------- Kentsfield

------------------- Yorkfield

------------------- Conroe-L





Từ "nhân":

“Nhân” = chữ "Core" trong Dual-Core (!!! nhưng không phải trong Core Duo!!!)

“Nhân” = chữ processor trong "Multiprocessor"



Hệ số nhân của CPU – Multiplier (hay còn gọi là CPU Ratio)

HSN này có nhiệm vụ xác lập tốc độ thực của CPU (core speed)

Core speed sẽ được xác định qua công thức sau :Core speed = HTT x Multiplier

Hệ số nhân của HT bus – LDT (Lightning Data Transport)

HSN LDT dùng để xác lập tần số HT bus khi CPU giao tiếp với chipset, HT bus được tính bằng công thức sau :HT bus = HTT x LDT

bus CPU = frequency (tốc độ xung nhịp) chia cho multiplier (hệ số nhân)



ta luôn có 1 tỉ lệ nhất định giữa bus thực của CPU với bus thực của RAM, gọi là bộ chia (divider), trong đó, bus thực của CPU = tốc độ đinh danh của nó : hệ số nhân hoặc = FSB : 4 (do công nghệ Quad Data Rate của Intel ta mới có FSB như vậy). Như vậy chọn RAM phải nhìn vào bus thực của CPU và RAM cộng với bộ chia tối thiểu để đảm bảo tránh xung đột, đó là tỉ lệ CPU:RAM = 1:1 (tức là bus CPU < hoặc = bus RAM). Do đó, nếu có 1 CPU FSB 800Mhz, ta chọn RAM tối thiểu là DDR400 (cả 2 cùng có bus speed = 200, tỉ lệ là 1:1), ngoài ra chọn RAM cao hơn cũng ko hề lãng phí, chipset có thể chạy đc ở các bộ chia khác như 2:3, 4:5...

Tỉ lệ CPU:RAM < hoặc = 1 là phù hợp, bởi vì hiểu đơn giản: RAM cung cấp data cho CPU, nếu CPU chạy nhanh hơn RAM (tỉ lệ > 1) thì ép nhau quá. Ngược lại, RAM chạy bằng CPU hay nhanh hơn thì data mà CPU yêu cầu luôn đc đáp ứng, với bus RAM càng lớn, ta lại càng có băng thông bộ nhớ cao >>> càng có lợi.



HT viết tắt của Hyper Threading

HTT viết tắt của HyperTransport Technology

Tại sao Ram bus 400 thì có bus thực là 200 >>> Điều này mình đã nói ở trên ( do công nghệ Quad Data Rate )

công nghệ Quad Data Rate (QDR) vận chuyển 4 phần dữ liệu trong 1 chu kỳ đồng hồ (clock cycle). Như vậy tốc độ bus danh định (external bus speed) tức là FSB của CPU cao gấp 4 lần tốc độ thật của nó (real clock rate).

>>>có thể tính bus RAM mà hệ thống sẽ hoạt động theo công thức:Lấy bus CPU chia 4, tất cả đem nhân với 2 (hay nói cách khác, lấy bus CPU chia 2).

bạn chọn Ram bus 400 >> bus RAM của hệ thống (bus thực) sẽ là: (400/4)*2 = 100*2 = 200 >>> bus cpu là 800 (FSB của CPU cao gấp 4 lần).

HT - > Hyper Threading <-- của Dòng Chip Intel

HTT Hyper Transport Technology <-- của dòng Chip AMD

RAM Bus là 400 thì FSB của nó chỉ là 200Mhz mà thôi (FSB khác Bus nhé)

Followers!

About this blog

When you're sad and have sorrow just visit me...^^

Total Pageviews

Most Viewer