Summary of the course of #20145322 the basic design of information security system
Weekly Job Link Summary
0th Week Preview Course knowledge, installation environment
The first week Linux directory structure and some basic Linux operations and commands
Second week
Learning content
Familiar with the development environment under Linux system
Familiar with the basic operation of VI
Familiarity with the fundamentals of the GCC compiler
Familiar with the common options for using the GCC compiler
Proficiency in GDB debugging techniques
Familiarity with makefile fundamentals and grammatical norms
Mastering the generation and invocation methods of static and dynamic libraries
Understand the principle of "high cohesion, low coupling" of module decomposition in C program
Understanding the concept of links
Third week
Learning content
Understanding the importance of binary systems in computers
Mastering the application of Boolean operation in C language
Understanding the representation of signed integers, unsigned integers, floating-point numbers
Understanding the importance of complement
Avoids overflow in C language, traps in data type conversions, and vulnerabilities that can be caused
Further understanding "information = bit + context"
Week Five
Learning content
Understanding the concept of reverse
Master X86 compilation base, able to read (reverse) Assembly code
Understanding ISA (Instruction set architecture)
Understand the concept of function call stack frames and can debug with GDB
Week Five continued
Week Six
Learning content
Understanding the role of ISA abstraction
Master Isa, and be able to learn other architecture extrapolate
Understanding the pipeline and how it is implemented
Six weeks continued
Seventh Week
Learning content
Learn about common storage technologies (RAM, ROM, disk, SSD, etc.)
Understanding the principle of locality
Understanding Caching Ideas
Understanding the principle of locality and the application of cache thought in storage hierarchy
Principle and application of cache
Seventh Week continued
Eighth Week
Learning content
Review Linux common commands
Review the textbook 1-7 chapters
Interim summary
Nineth Week
Learning content
Mastering the concepts of system programming and system invocation
Mastering the way of system programming error handling
Mastering Unix/linux System level I/o:open Close Read Write seek stat
Mastering Rio
Mastering the method of I/O redirection
Nineth Week continued
Tenth Week
Learning content
Mastering the concepts of system programming and system invocation
Mastering the way of system programming error handling
Mastering Unix/linux System level I/o:open Close Read Write seek stat
Mastering Rio
Mastering the method of I/O redirection
11th Week
Learning content
Understanding anomalies and their types
Understanding the concepts of processes and concurrency
Mastering process creation and control of system calls and function usage
Understanding the differences between array pointers, pointer arrays, function pointers, pointer functions
Understanding signaling Mechanism: kill,alarm,signal,sigaction
Mastering Pipeline and I/O redirection: Pipe, DUP, dup2
12th Week
Learning content
Nineth Week Code Check
Tenth Week Code check
11th Week Code Check
13th Week
Learning content
Master three concurrent approaches: process, thread, I/O multiplexing
Mastering thread control and related system calls
Mastering thread synchronization mutex and related system calls
14th Week
Learning content
Understanding the concept and role of virtual memory
Understanding the concept of address translation
Understanding Memory Mappings
Mastering the method of dynamic memory allocation
Understand the concept of garbage collection
Understanding memory-related errors in the C language
Summary of LAB Report links
Experiment One
Experiment Two
Experiment Three
Experiment Four
Experiment Five
Code hosting links and QR codes
git log--pretty=format: Results of "%h-%an,%ar:%s":
Code Volume Summary
Is code-driven learning done?
Follow the teacher's instructions to complete the code-driven Learning task, but be sure to put your own Ubuntu. VMX file safekeeping, do not mistakenly delete, or all git have to re-get again, I installed two times the virtual machine.
Add code, Pity Dorado code is the best way to understand, talk about your experience
The ability to change the code based on the original code and to run successfully, it shows that the original code has been mastered. And this way of learning is more impressive for this code.
What lessons do you have in practice?
The day the task was completed, the dragged and tired, because we can not predict the next second will encounter any problems, before the problem will only become a burden behind.
Answer the No. 0 Week of your homework in the first chapter of the main question
What causes us to understand how the build system works?
1 Optimizing Program Performance
2 Understanding links when errors occur
3 Avoiding security breaches
Chapter II
How do computer arithmetic operations cause computer security vulnerabilities?
The vulnerability is also caused by implicit conversions such as signed number-to-unsigned numbers, as described in the P53 function getpeername security hole.
Chapter III
How is machine-level code converted?
For example
Assembler code for C language: Gcc-01-s xxx.c
Compilation and compilation: Gcc-01-c xxx.c
Fourth Chapter
Architecture of the processor
Various state elements, instruction sets and their encodings, a set of programming specifications, and exception event handling
Fifth Chapter
How to optimize the program? What do you need to be aware of?
Eliminate cycle inefficiencies, reduce process calls, and eliminate unnecessary memory references in the fifth chapter.
Sixth chapter
The structure of the memory
Seventh Chapter
What is the difference between static and dynamic links?
Static links
When you build the executable, include all the binary code of the required functions in the executable file. The linker needs to know which functions are required for the target file that participates in the link, and also to know what functions each target file can provide so that the linker can know that the functions required for each target file are properly linked.
Dynamic links
Instead of copying executable code directly at compile time, it passes a series of symbols and parameters to the operating system when the program is run or loaded, the operating system is responsible for loading the required dynamic library into memory, and then the program runs to the specified code to share the execution of the dynamic library executable code that has been loaded in memory. and eventually achieve the purpose of the run-time connection.
Eighth Chapter
How do I avoid and handle exceptions?
An indirect procedure call is made through the exception table to reach the exception handler.
Nineth Chapter
The role of virtual memory
Virtual memory is used to take out some of the hard disk space to act as memory, and when memory is exhausted, the computer automatically calls the hard disk to act as memory.
Tenth Chapter
What does the system-level i\o mean?
The process of copying data between main memory and external devices.
11th Chapter
11: How to write a Web server
Web servers use the HTTP protocol and their clients to communicate with each other. The browser requests static or dynamic content from the server. The request for static content is served by taking the file from the server disk and returning it to the client.
What items have you been added to, talk about your experience
GDB Debug Stack Process Analysis
Advantages and Disadvantages
The advantage is that we can learn the task is very clear, we will not confuse, follow the teacher's progress to go very smoothly learning. No shortcomings, always so responsible for recognition and efficiency so high, I think there are no shortcomings.
Lessons learned and deficiencies
The most important thing I learned in this course is that at the beginning of the week I set up a course of study, and then I have to finish it in the week, so that we can plan the progress of the study in advance and not fall, it is a good way to learn. For blogging this piece, I feel that the study content in the book is written in the blog Park, on the one hand review their knowledge of learning, on the other hand can also be in the Monday exam forgotten that piece of knowledge can quickly find the answer. Insufficient is oneself in the school time not to study hard, owed the study of debt, back also very hard, and study state is not stable, or have to adjust the study mentality, in the study of the time to shield off irrelevant things, concentrate on learning.
Advice for learning younger brothers and sisters to learn
Really really do not debt, owe their study of debt, not only can not let their own relaxed, but more tired, we are students, to school, owes the total to also, so must follow the guidance of the teacher step, even in advance preview.
More hands-on, more thinking. In particular, more hands-on, add code, you can allow yourself to understand the code more deeply.
Rest must be regular, otherwise you can focus attention every time to learn, otherwise you will learn the time is especially more than the amount of knowledge, is not learning to go in the meaning (deep experience)
Questionnaire Survey
How long do you spend on average per week in this course?
20 hours
Do you improve your weekly learning efficiency?
High efficiency after correct study attitude
Are you satisfied with your learning effect?
Not satisfied, many times the energy is not concentrated
Will you continue at least one blog post at the end of the course?
It must be written by yourself that you have to use a blog record.
What do you think the teacher of this class should continue to do?
Weekly blog summaries and tests, as well as scallop punch!
What do you think the teacher of this class should stop doing?
No
What do you think the teacher of this course should start to do new things?
Note on our request to do the book you recommend, Extra points
This article links
20145322 Summary of the course of the basic design of information security system