# data[].attributes.body
An toàn thông tin được hiểu là một hành động nhằm phòng ngừa, ngăn chặn hoặc ngăn cản sự truy cập, sử dụng, chia sẻ thông tin, tiết lộ, phát tán, phá hủy hoặc ghi lại những thông tin khi chưa được sự cho phép của chủ sở hữu. An toàn thông tin ngày nay được coi là vấn đề đáng lưu tâm hàng đầu của xã hội. Nó là một vấn đề ảnh hưởng đến các ngành kinh tế, khoa học – kỹ thuật và xã hội.

# data[].attributes.body
Bộ vi điều khiển ( MCU cho bộ vi điều khiển ) là một máy tính nhỏ trên chip mạch tích hợp (IC) kim loại oxit bán dẫn (MOS) đơn . Một bộ vi điều khiển chứa một hoặc nhiều CPU ( lõi xử lý ) cùng với bộ nhớ và các thiết bị ngoại vi đầu vào/đầu ra có thể lập trình được . Bộ nhớ chương trình ở dạng Ram sắt điện , flas NOR hoặc Rom OTP cũng thường được bao gồm trên chip, cũng như một lượng nhỏ RAM. Bộ vi điều khiển được thiết kế để nhúng ứng dụng, ngược lại với bộ vi xử lý được sử dụng trong máy tính cá nhân hoặc các ứng dụng mục đích chung khác bao gồm các chip rời khác nhau.

Theo thuật ngữ hiện đại, một bộ vi điều khiển tương tự, nhưng kém phức tạp hơn một hệ thống (SoC). SoC có thể bao gồm vi điều khiển như một trong các thành phần của nó, nhưng thường tích hợp nó với các thiết bị ngoại vi nâng cao như bộ vi xử lý đồ họa (GPU), mô-đun Wifi hoặc một hoặc nhiều bộ đông xử lý .

Bộ vi điều khiển được sử dụng trong các sản phẩm và thiết bị được điều khiển tự động , chẳng hạn như hệ thống điều khiển động cơ ô tô, thiết bị y tế cấy ghép, điều khiển từ xa, máy văn phòng, thiết bị, dụng cụ điện, đồ chơi và các hệ thống nhúng khác . Bằng cách giảm kích thước và chi phí so với thiết kế sử dụng bộ vi xử lý , bộ nhớ và thiết bị đầu vào / đầu ra riêng biệt , bộ vi điều khiển giúp kiểm soát kỹ thuật số nhiều thiết bị và quy trình hơn. Các bộ vi điều khiển tín hiệu hỗn hợp là phổ biến, tích hợp các thành phần tương tự cần thiết để điều khiển các hệ thống điện tử phi kỹ thuật số. Trong bối cảnh của internet vạn vật , vi điều khiển là một phương tiện thu thập dữ liệu  kinh tế và phổ biến.

# data[].attributes.body
Bộ vi xử lý là một bộ xử lý máy tính trong đó logic xử lý dữ liệu và điều khiển được bao gồm trên một mạch tích hợp duy nhất hoặc một số lượng nhỏ các mạch tích hợp. Bộ vi xử lý chứa mạch số học, logic và điều khiển cần thiết để thực hiện các chức năng của bộ xử lý trung tâm của máy tính. Mạch tích hợp có khả năng thông dịch và thực hiện các lệnh chương trình và thực hiện các phép tính số học.  Bộ vi xử lý là một mạch tích hợp kĩ thuật số đa năng, có xung nhịp , dựa trên thanh ghi , chấp nhận dữ liệu nhị phân làm đầu vào, xử lý theo hướng dẫn được lưu trữ trong bộ nhớ và cung cấp kết quả (cũng ở dạng nhị phân) dưới dạng đầu ra. Bộ vi xử lý chứa cả logic tổng hợp và logic số tuần tự , đồng thời hoạt động dựa trên các số và ký hiệu được biểu diễn trong hệ thống số nhị phân.
Hàng nghìn mặt hàng theo truyền thống không liên quan đến máy tính bao gồm bộ vi xử lý. Chúng bao gồm các thiết bị gia dụng , xe cộ (và các phụ kiện của chúng), công cụ và dụng cụ kiểm tra, đồ chơi, công tắc đèn / bộ điều chỉnh độ sáng và bộ ngắt mạch điện, thiết bị báo động khói, bộ pin và các thành phần âm thanh / hình ảnh hi-fi (từ đầu đĩa DVD đến bàn quay máy quay đĩa ) . Các sản phẩm như điện thoại di động, hệ thống video DVD và HDTVcác hệ thống quảng bá về cơ bản yêu cầu các thiết bị tiêu dùng có bộ vi xử lý mạnh mẽ, chi phí thấp. Các tiêu chuẩn kiểm soát ô nhiễm ngày càng nghiêm ngặt đòi hỏi các nhà sản xuất ô tô phải sử dụng hệ thống quản lý động cơ vi xử lý để cho phép kiểm soát tối ưu lượng khí thải trong các điều kiện vận hành khác nhau của ô tô. Các điều khiển không lập trình được sẽ yêu cầu thực hiện cồng kềnh hoặc tốn kém để đạt được kết quả có thể với bộ vi xử lý.

# data[].attributes.body
- Chức năng:
+ Điều khiển hoạt động của toàn bộ hệ thống máy tính
+ Xử lý dữ liệu
- Nguyên tắc hoạt động cơ bản: CPU hoạt động theo chương trình nằm trong bộ nhớ chính bằng cách:
+ Nhận lần lượt lệnh từ bộ nhớ chính
+ Sau đó tiến hành giải mã lệnh và phát các tín hiệu điều khiển khi thực thi lệnh
+ Trong quá trình thực thi lệnh, CPU có thể trao đổi dữ liệu với bộ nhớ chính hay hệ thống vào-ra
-Cấu trúc cơ bản của CPU:
+ Khối điều khiển
+ Khối tính toán số học và logic
+ Tập các thanh ghi
+ Bus bên trong (Internal Bus)
+ Đơn vị ghép nối bus (Bus Interface Unit - BIU)

# data[].attributes.headline
(Computer Hardware) Liên kết hệ thống (buses)

# data[].attributes.subject
(Computer Hardware) Liên kết hệ thống (buses)

# data[].attributes.body
- CPU, bộ nhớ chính và hệ thống vào-ra cần phải kết nối với nhau để trao đổi thông tin
- Việc kết nối này được thực hiện bằng một tập các đường kết nối gọi là bus
- Thực tế bus trong máy tính khá phức tạp, nó được thể hiện bằng các đường dẫn trên các bản mạch, các khe cắm trên bản mạch chính, các cáp nối, ...
- Độ rộng của bus: Là số đường dây của bus có thể truyền thông tin đồng thời
- Về chức năng, bus được chia làm 3 loại chính: Bus địa chỉ, Bus dữ liệu và Bus điều khiển

# data[].attributes.body
Mã máy
Khi kỹ thuật điện toán ra đời chưa có ngôn ngữ lập trình dạng đại diện nào, thì phải lập trình trực tiếp bằng mã máy. Dãy byte viết ra được đục lỗ lên phiếu đục lỗ (punched card) và nhập qua máy đọc phiếu tới máy tính [4]. Sau đó chương trình có thể được ghi vào băng/đĩa từ để sau này nhập nhanh vào máy tính. Ngôn ngữ máy được gọi là "ngôn ngữ lập trình thế hệ 1" (1GL, first-generation programming languages) [5]. Lúc đó có nhiều hãng sản xuất máy tính và mã máy chưa hoàn toàn thống nhất, nên lập trình gắn liền với máy của hãng.

Hợp ngữ
Sau đó các mã lệnh được thay thế bằng các tên gợi nhớ và trình được lập ở dạng văn bản (text) rồi dịch sang mã máy. Hợp ngữ (assembly languages) ra đời, là "ngôn ngữ lập trình thế hệ 2" (2GL, second-generation programming languages). Lập trình thuận lợi hơn, khi dịch có thể liên kết với thư viện chương trình con ở cả dạng macro (đoạn chưa dịch) và lẫn mã đã dịch.

Dẫu vậy người lập trình phải nắm chắc về hoạt động của hệ thống xử lý, về các thanh ghi (register), con trỏ (pointer) và vai trò của chúng thì mới tránh được lỗi. Lúc này bắt đầu có sự thống nhất quốc tế về các tập lệnh cần thiết trong kỹ thuật điện toán.

Trong kỹ thuật điện toán hợp ngữ hiện được dùng là ngôn ngữ bậc thấp (low-level programming languages) để tinh chỉnh ngôn ngữ bậc cao thực hiện truy nhập trực tiếp phần cứng cụ thể trong việc lập trình hệ thống, hoặc định tạo các hiệu ứng đặc biệt cho chương trình của mình.

Hợp ngữ hiện là phương tiện lập trình các vi điều khiển trong bảng/khối điều khiển thiết bị điện tử các loại, từ các máy đo, vũ khí, thiết bị dân sinh như máy giặt, lò vi sóng,... Bảng lệnh của vi điều khiển này khác với của máy điện toán, nên hợp ngữ vi điều khiển cũng khác, và đơn giản hơn.

Lập trình mã máy và hợp ngữ cho ra chương trình chạy nhanh nhất trên cùng máy tính, vì nó chứa rất ít chỉ thị thừa hay chỉ thị rác, và giảm lượng mã nhờ việc đặt giá trị các thanh ghi được làm tắt. Các ngôn ngữ bậc cao khi dịch phải bố trí nhiều chỉ thị máy đảm bảo tính khái quát cao nhất, cùng với những câu lệnh thừa của người lập trình mà khi sửa chữa chưa kịp xóa đi.

Ngôn ngữ bậc cao
Ngôn ngữ bậc cao ra đời vào những năm 1950. Đây là các ngôn ngữ hình thức, dùng trong lập trình máy điện toán và không lệ thuộc vào hệ máy tính cụ thể nào. Nó giải phóng người lập trình ứng dụng làm việc trong hệ điều hành xác định mà không phải quan tâm đến phần cứng cụ thể. Các ngôn ngữ được phát triển liên tục với các dạng và biến thể mới, theo bước phát triển của kỹ thuật điện toán.
Những ngôn ngữ được dùng phổ biến hiện có ActionScript, C, C++, MATLAB, C#, Haskell, Java, JavaScript, Objective-C, Perl, PHP, Python, Ruby, Smalltalk, SQL, Visual Basic, và nhiều nữa

# data[].attributes.body
Với việc sử dụng công nghệ quá phổ biến, rộng rải thì rủi ro là điều không thể tránh khỏi và việc sử dụng công nghệ không đòi hỏi người dùng phải có nhiều khiến thức chuyên môn nên việc kiểm soát các rủi ro có thể xảy ra là điều thiết yếu.
Có hai điều cần biết trong việc kiểm soát rủi ro. Đầu tiên, quá trình kiểm soát rủi ro là liên tục, là quá trình lặp lại. Việc này cần phải lặp lại vô hạn. Môi trường kinh doanh liên tục thay đổi và những mối nguy và lỗ hỏng sinh ra mỗi ngày. Thứ hai, lựa chọn cách thức xử lí phải cân bằng giữa độ hữu hiệu, giá cả, hiệu năng của cách đó và giá trị của thông tin cần được bảo mật. Việc tìm kiếm cũng như xử lí hết rủi ro là không thể nên không thể tránh khỏi những rủi ro còn tồn đọng.
Một số cách thức kiểm soát rủi ro:
- Quản lý bảo mật (Security Control): Tùy cách thức quản lý có thể giảm rủi ro đến một mức có thể chấp nhận được. Một số kiểu quản lí như là Administrative, Logical, Physical.
- Phòng thủ dưới nhiều tầng (Denfense in Depth): Thông tin, dữ liệu quan trọng được bảo vệ dưới nhiều lớp.
- Phân cấp (Classification): Tùy giá trị của thông tin mà sẽ có cách bảo vệ thích hợp.
- Quyền truy cập (Access Control): Giới hạn người dùng và tùy vai trò sẽ có quyền hạn truy cập khác nhau.
- Mã hóa (Cryptography): Đưa thông tin về dạng mã hóa không thể đọc được mà chỉ tác giả có chìa để dịch lại sang ngôn ngữ thông thường

# data[].attributes.body
- Chức năng: Trao đổi thông tin giữa máy tính với thế giới bên ngoài
- Các thành phần chính:
+ Các thiết bị vào-ra (IO devices) hay còn gọi là thiết bị ngoại vi (Peripheral devices)
+ Các mô-đun ghép nối vào-ra (IO Interface modules)

# data[].attributes.headline
(Computer hardware) Cấu trúc phần cứng cơ bản của hệ thống máy tính

# data[].attributes.subject
(Computer hardware) Cấu trúc phần cứng cơ bản của hệ thống máy tính

# data[].attributes.body
Phần cứng (Hardware) được hiểu đơn giản là những thiết bị bên trong và bên ngoài máy tính mà người dùng có thể nhìn thấy và cầm được. Phần cứng chính là các bộ phận cần thiết để cấu thành một chiếc máy tính, bao gồm:
- Bộ xử lý trung tâm - CPU (Central Processor Unit): Điều khiển các hoạt động của máy tính và thực hiện xử lý dữ liệu
- Bộ nhớ chính (Main Memory): Lưu trữ chương trình và dữ liệu
- Hệ thống vào ra (Input-Output System): Trao đổi thông tin giữa thế giới bên ngoài với máy tính
- Liên kết hệ thống (System Interconnection): Kết nối và vận chuyển thông tin giữa CPU, bộ nhớ chính và hệ thống vào ra của máy tính với nhau

# data[].attributes.body
Việc tấn công đến an toàn thông tin xảy ra dưới rất nhiều hình thức. Một số hình thức phổ biến hiện nay tiêu biểu như là tấn công phần mềm, đánh cắp sản phẩm trí tuệ, đánh cắp danh tính, đánh cắp thông tin, phá hoại và rò rỉ thông tin,... Chúng đều gây thiệt hại lớn đến người dùng, sử dụng và làm việc liên quan đến công nghệ.
Hầu hết người dùng đều đã bị tấn công phần mềm dưới nhiều cách thức như là virus, worm, trojan horse, phishing (giả mạo, lừa đảo)
Việc đánh cắp sản phẩm trí tuệ đang là một vấn đề lớn trong ngành nghề công nghệ thông tin.
Đánh cắp phần mềm, dữ liệu đang dần phổ biến cùng với sự phát triển của điện thoại di động, nơi chứa nhiều dữ liệu cá nhân.
Phá hoại và rò rỉ thông tin gây ảnh hưởng trực tiếp đến công ty, tổ chức.

# data[].attributes.body
- Chức năng: Lưu trữ chương trình và dữ liệu
- Các thành phần chính:
+ Bộ nhớ trong (Internal Memory): cache, RAM, ROM
+ Bộ nhớ ngoài (External Memory): HDD, SDD, disk, ...

# data[].attributes.headline
Lập trình máy tính ( Computer Programming )

# data[].attributes.subject
Lập trình máy tính ( Computer Programming )

# data[].attributes.body
Lập trình máy tính hay lập chương trình máy tính thường gọi tắt là lập trình là việc lập ra chương trình làm việc cho máy có bộ xử lí, nói riêng là máy tính, để thực thi nhiệm vụ xử lý thông tin nào đó. Chương trình này gồm dãy các chỉ thị (hay lệnh) hợp lý để máy thực hiện theo trình tự thời gian.

Lập trình phải thực hiện cho tất cả các hệ thống xử lý thông tin, từ các dàn máy điện toán lớn, máy tính cá nhân (PC), đến các chip điều khiển lập trình được trong các khối điều khiển thiết bị các loại như trong máy đo đạc phân tích, vũ khí có điều khiển, máy giặt, lò vi sóng,... và trong các thiết bị ngoại vi của máy tính như chip điều khiển ở card màn hình, cổng giao tiếp,...

Dạng chương trìnhduy nhất mà máy tính có thể thực thi trực tiếp là ngôn ngữ máy hay mã máy , có dạng dãy các số nhị phân. Lập trình trực tiếp ở dạng mã máy là công việc tốn sức, khó kiểm tra và lệ thuộc phần cứng cụ thể. Vì thế giới lập trình phát triển ra các ngôn ngữ lập trình với hệ thống ký hiệu, từ khóa và cú pháp cụ thể để lập trình viên dễ viết mã nguồn ở dạng văn bản mà không quá lệ thuộc vào phần cứng, sau đó dịch ra mã máy.