강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Desktop Application

Lập trình hệ thống Windows - Cơ bản

Một khóa học phải tham dự dành cho bất kỳ ai có ý định trở thành lập trình viên Windows! Bạn đã nghiên cứu C/C+, cấu trúc dữ liệu và lý thuyết hệ điều hành chưa? Nếu vậy, nghiên cứu các chương trình hệ thống là câu trả lời đúng đắn. Từ giờ trở đi, đó là thời gian thực!

(5.0) 34 đánh giá

985 học viên

  • nullnull8537
저자 직강
win32api
C
vc++
system-programming

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Lý thuyết về hệ thống bảo mật hệ thống Windows

  • Kỹ thuật lập trình và đồng bộ hóa đa luồng

  • Kỹ thuật nhập/xuất tệp đồng bộ/không đồng bộ

  • Hệ thống bộ nhớ ảo và kỹ thuật vận hành bộ nhớ

  • Quản lý quy trình và kỹ thuật IPC dựa trên bộ nhớ dùng chung

  • Tạo và sử dụng thư viện DLL

Những điều cơ bản của lập trình hệ thống,
Chúng ta sẽ đi thẳng vào vấn đề!

Nếu bạn là nhà phát triển Windows C/C++
Lập trình hệ thống bạn phải biết.

"Windows Via C/C++" của Jeffrey Richter
Bạn có cảm thấy quá khó không?

Bây giờ bạn có thể hiểu cuốn sách 『Windows Via C/C++ phiên bản thứ 5』, được coi là kinh thánh của lập trình hệ thống nhưng lại khó hiểu!

Gửi đến các nhà phát triển máy chủ trò chơi và nhà phát triển ứng dụng Windows!

Những người khao khát trở thành nhà phát triển ứng dụng Windows, bao gồm cả nhà phát triển trò chơi, sẽ học C/C++ và cấu trúc dữ liệu. Họ cũng học một số lý thuyết về khoa học máy tính. Tuy nhiên, họ thường cảm thấy chỉ riêng điều đó là chưa đủ . Họ biết rằng lập trình hệ thống là một kỹ năng lập trình bắt buộc để trở thành một nhà phát triển chuyên nghiệp, nhưng ngay khi mở sách ra, họ nhận ra đó không phải là một con đường dễ dàng, và việc tự học là bất khả thi.

Giải pháp thật đơn giản! Cũng giống như việc hiểu biết ở trình độ cao bắt đầu bằng việc ghi nhớ, việc nắm vững hoàn toàn các lý thuyết và ví dụ cốt lõi làm nền tảng cho lập trình hệ thống là vô cùng quan trọng.

Vì vậy, tôi giới thiệu nó cho những người này.

Bất kỳ ai cần phát triển các ứng dụng Windows dựa trên C/C++

Các nhà phát triển ứng dụng dựa trên các công nghệ cũ hơn như MFC hoặc Win32 API

Những người mong muốn trở thành lập trình viên máy chủ trò chơi

Người học lập trình hệ thống muốn trải nghiệm lý thuyết về hệ điều hành ở cấp độ mã.


Cốt lõi của lập trình hệ thống
Hãy để tôi giải thích theo cách dễ hiểu nhất!

  • 1️⃣ Bạn có thể hiểu các lý thuyết cốt lõi như hiểu biết về môi trường lập trình đa luồng và các kỹ thuật đồng bộ hóa.
  • 2️⃣ Bằng cách trải nghiệm lại các lý thuyết bạn đã gặp khi nghiên cứu hệ điều hành ở cấp độ mã, trình độ hiểu biết của bạn về kiến thức khoa học máy tính sẽ tăng lên đáng kể.
  • 3️⃣ Bằng cách chủ động sử dụng các dịch vụ do hệ điều hành cung cấp, bao gồm đầu vào/đầu ra đồng bộ/không đồng bộ, bạn có thể phát triển các ứng dụng thực tế được đảm bảo có hiệu suất cao .
  • 4️⃣ Bạn có thể tự mình hiểu được nhiều lý thuyết và trường hợp khác nhau cần thiết cho việc phát triển ứng dụng Windows, bao gồm cả máy chủ hiệu suất cao.

Khóa học này giải thích các lý thuyết cốt lõi của lập trình hệ thống một cách dễ hiểu! Không ngoa khi nói rằng cốt lõi của lý thuyết Khoa học Máy tính nằm ở hệ điều hành và kiến trúc máy tính. Các ngôn ngữ bản địa như C/C++ rất khó học vì chúng đòi hỏi một mức độ hiểu biết nhất định về lý thuyết Khoa học Máy tính. Khóa học này sẽ đóng vai trò then chốt trong việc cung cấp kinh nghiệm lập trình với các lý thuyết hệ thống cốt lõi, thiết yếu để đạt đến đỉnh cao của lý thuyết Khoa học Máy tính.


Trong học lập trình hệ thống
Lý thuyết cốt lõi hoàn toàn cần thiết.

Chúng tôi đã cô đọng lý thuyết bạn cần học đến mức tối đa có thể, chỉ giữ lại những điều cốt yếu!

  • ✅ Hệ thống bảo mật Windows
  • ✅ Kỹ thuật lập trình đa luồng (tạo và đồng bộ hóa)
  • ✅ Kỹ thuật nhập/xuất tệp đồng bộ/không đồng bộ sử dụng Win32 API
  • ✅ Hệ thống bộ nhớ ảo, heap, bản đồ bộ nhớ
  • ✅ IPC dựa trên bộ nhớ chia sẻ
  • ✅ Kỹ thuật tạo thư viện DLL

Thực thi quy trình và kế thừa đặc quyền

Thu thập và cam kết bộ nhớ ảo độc lập cho mỗi tiến trình

Kích thước phân bổ 64KB và cấu trúc bộ nhớ trang 4KB

Học từ sách Kinh Thánh là một lựa chọn tốt, nhưng không bao giờ dễ dàng cho người mới bắt đầu. Dù nội dung có hay đến đâu, nó vẫn có thể khó hiểu. Khóa học này được thiết kế để giúp bạn dễ dàng tiếp cận những lý thuyết khó hiểu này hơn.


Hỏi & Đáp 💬

H. Tôi có phải học lập trình hệ thống để trở thành nhà phát triển ứng dụng Windows không?

Đúng vậy, bạn nhất định phải học nó. Ngay cả khi bạn chỉ đang phát triển một GUI, bạn thường sẽ cần hiểu biết vững chắc về hầu hết các lý thuyết được đề cập trong lập trình hệ thống để giải quyết vấn đề.

H. Tôi đang tìm việc và mong muốn trở thành nhà phát triển game. Khóa học này có hữu ích không?

Đối với các nhà phát triển game, lập trình hệ thống không phải là tùy chọn mà là thiết yếu. Bạn cần nắm vững những kiến thức cơ bản được đề cập trong khóa học này. Bạn cũng sẽ cần nghiên cứu các lý thuyết nâng cao hơn. Tuy nhiên, sau khi hoàn thành khóa học này, bạn sẽ có thể tự mình hiểu các khái niệm, ngay cả khi tham khảo các tài liệu liên quan.

H. Tôi có cần phải học khóa học này để trở thành nhà phát triển phần mềm bảo mật không?

Nếu bạn muốn phát triển phần mềm như V3, việc hiểu lý thuyết lập trình hệ thống là điều cần thiết. Trước khi chuyển sang phát triển trình điều khiển hạt nhân, việc hiểu lập trình hệ thống là điều cần thiết. Việc học các kỹ thuật tấn công/phòng thủ khác nhau, bao gồm cả kỹ thuật đảo ngược, sẽ rất khó khăn nếu không hiểu lý thuyết lập trình hệ thống.

H. Tôi chỉ học ngôn ngữ C và cấu trúc dữ liệu. Tôi có thể học khóa học này không?

Có, bạn có thể. Tuy nhiên, nếu bạn chưa học về hệ điều hành, nội dung có thể hơi khó. Và ngay cả khi bạn đã học ngôn ngữ C, bạn chắc chắn nên hiểu những điều sau:

  • con trỏ hàm
  • Bộ chỉ định lớp bộ nhớ và quản lý bộ nhớ
  • Nguyên lý chỉ định khung ngăn xếp
  • Đầu vào/đầu ra tệp nhị phân

💾 Vui lòng kiểm tra trước khi tham gia lớp học.

  • Bài giảng này có tựa đề "Lập trình hệ thống Windows - Cơ bản" và "Lập trình hệ thống Windows - Ứng dụng" sẽ được phát hành sau.
  • Khóa học này sử dụng Windows 11 và phiên bản Cộng đồng của Visual Studio 2022. Bất kỳ ai sử dụng hệ điều hành Windows 10 trở lên và máy tính có khả năng chạy VScode 2022 đều có thể dễ dàng tham gia khóa học.
  • Chúng tôi cung cấp tệp PDF và mã nguồn ví dụ đầy đủ được sử dụng trong bài giảng.
  • Khóa học này được thiết kế dành cho những người có kiến thức cơ bản về ngôn ngữ C và kinh nghiệm triển khai các cấu trúc dữ liệu tuyến tính như danh sách liên kết . Kinh nghiệm sử dụng các công cụ phát triển như Visual Studio trên môi trường hệ điều hành Windows cũng được khuyến khích. Để biết thêm thông tin chi tiết về điều kiện tiên quyết, vui lòng tham khảo thông tin bên dưới.
    • Ngôn ngữ C và cấu trúc dữ liệu, và một số ngữ pháp ngôn ngữ C++ (bạn có thể tham gia khóa học ngay cả khi bạn không biết gì về nó)
    • Bài giảng "Trở thành chuyên gia khoa học máy tính bằng cách ghi nhớ rộng và sâu"
    • Bài giảng "Lý thuyết hệ điều hành tối thiểu: Học dễ dàng với Bear Book"
    • Bài giảng "Lập trình C: Tổng quan chi tiết" (Kiến thức tiên quyết quan trọng nhất)

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người có nhu cầu phát triển phần mềm điều khiển hệ thống Windows

  • Những người muốn phát triển phần mềm bảo mật hoặc máy chủ trò chơi

  • Bất cứ ai cần phát triển các ứng dụng dựa trên Windows C/C++

Cần biết trước khi bắt đầu?

  • Lập trình C để suy ngẫm

  • Hiểu cấu trúc dữ liệu

  • Kiến thức hệ điều hành về bộ nhớ ảo

  • Kinh nghiệm sử dụng các công cụ phát triển trong môi trường Windows (xem VSCode)

Xin chào
Đây là

37,015

Học viên

2,154

Đánh giá

1,098

Trả lời

4.9

Xếp hạng

24

Các khóa học

널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다.  반갑습니다. ^^  

Chương trình giảng dạy

Tất cả

40 bài giảng ∙ (11giờ 10phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

34 đánh giá

5.0

34 đánh giá

  • wjdwlgns8096님의 프로필 이미지
    wjdwlgns8096

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    • nullnull8537
      Giảng viên

      Thank you for the good review. :)

  • michaelms01255858님의 프로필 이미지
    michaelms01255858

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Đánh giá 95

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    (25/07/26/Sat 09:41) With so much content in the lecture, I am receiving tremendous help. It makes me think that synchronization is important. I think it's great that you share your experienced content in the precautions during the lecture. Thank you for creating such a good lecture.

    • nullnull8537
      Giảng viên

      You're running at an absolutely incredible pace. It's actually getting a little scary now. Anyway, I'm cheering for this momentum. :)

  • snorobowling7201님의 프로필 이미지
    snorobowling7201

    Đánh giá 6

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    100% đã tham gia

    This was a process that provided foundational study on multithreaded environments and helped me understand why we learn input/output functions and function pointers in the C language. ====== This time, studying system programming gave me an opportunity to review C language input and output. (I had looked at it about twice before, but since there was no situation where I needed to use it, I quickly passed over it.) The most difficult part was the WIN32 file input/output section. Before that, I had familiarized myself with CS fundamentals and OS operating system parts, so I had no difficulty adapting, but I had never seen that particular part before, so I didn't understand what it was saying... I didn't know how to write the examples, but after reviewing it 3-4 times and taking a day's rest, strangely the content seemed simple and I understood it. Of course, studying why data types and functions are called and used with the help of Copilot and GPT was a bonus. === After going through the above process, I'm planning to move on to socket programming - network programming learning. I happened to see content saying it would be good if I could practice with 4 computers since there are many computers at the academy(?), so I think it's perfect for studying. === Lastly, I'm writing about the situations I'm currently experiencing, thinking it might help those who are going through mental difficulties. (Currently in my 3rd month of backend study targeting Java Spring (looking at a minimum of 1.5 years)) Currently, I'm working 7 days a week from Monday to Sunday. (Monday-Saturday: 6:30 AM - 10:30 PM / Sunday: 7:00 AM - 10:00 PM including commute time) --- From last week to this week, I've been really worried about money. The money I earn working from Monday to Sunday is 160, but if I give up studying and work longer hours, I could earn 260 to 430. So I had the impulsive thought that it might be better to work intensively and earn money. The cause of that impulse was that currently, with AI, the IT industry standards themselves have been leveled up, and what I'm aiming for is server development - can't GPT and AIs that learn from Google developers' code reviews keep up with that? I don't know the path ahead, so wouldn't it be better to frantically earn money... Can I really do better than AI once I pass in this industry and build experience? I severely suffered from depression due to such anxiety and worries. Currently, I rested well for about 3 days until yesterday and organized my thoughts. There's no right answer, and since the studying I'm doing now is fun, let's go with this! Since I don't know how the situation will turn out later, let's save money as much as possible! I brushed it off in that direction and am studying again. They say anxiety is excessive worry for my future self to do better / and helplessness is a signal to recharge emotional energy. Everyone must be having a hard time, but fighting!

    • nullnull8537
      Giảng viên

      Thank you for the feedback that truly reveals the worries of an individual living through a challenging era of great transformation. As a middle-aged head of a family facing similar concerns myself, I can relate even more. Money...it's truly important. A celebrity once said, "People may go, but money stays..." In a capitalist society, pursuing one's own interests is perfectly natural. Learning is also one of the great ways to gain competitiveness. I hope you build your skills like that and earn lots and lots of money, and I'll be cheering you on. You'll do great. Thank you. :)

  • devdroidkim4116님의 프로필 이미지
    devdroidkim4116

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

2.301.069 ₫

Khóa học khác của nullnull8537

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!