-
1. Introduction to operating systems
While web developers primarily focus on coding web applications and front-end development, having a good grasp of operating systems is essential for ensuring the compatibility, security, performance, and reliability of their applications, as well as for troubleshooting and optimizing various aspects of web development.
-
2. Introduction to data networks
Networking is an integral part of web development because web applications rely on network communication to function. A solid understanding of networking concepts and practices is essential for building secure, performant, and reliable web applications.
-
3. The shell. Linux commands
Knowing Linux commands for a system administrator or even a software developer is of utmost importance because most servers run on a Linux or Unix operating system.
- 3.1 ls : showing files
- 3.2 file permissions
- 3.3 mkdir. Creating directories
- 3.4 rmdir. Deleting directories
- 3.5 Moving/renaming files and directories
- 3.6 Other commands
- 3.7 Mounting units
- 3.8 Daemons
- 3.9 What processes are running?
- 3.10 Who am I and where am I?
- 3.11 Files has its owner
- 3.12 Other commands
- 3.13 Users
- 3.14 The /etc/passwd file
- 3.15 The /etc/group file
- 3.16 Links
-
4. Shell script
In this chapter I want you to learn shell script but based on examples. Once you see the example I will propose another very similar one. If you do it and it works great, that means that not only do you understand the exercise but you are able to perform similar exercises. Keep in mind that with shell scripts you have to be patient. Misplaced whitespace can even cause a script to not work. If that happens, take a deep breath, be patient and persist, you will surely find the solution to the problem.
- 4.1. Your first shell script
- 4.2. Adding comments to your shell script
- 4.3. Variables in bash
- 4.4. Functions in bash
- 4.5 Conditional sentences
- 4.6. Repetitive sentences. Loops
- 4.7. Returning to functions
- 4.8. Arguments passed to a shell script.
- 4.9. Interaction with the user.
- 4.10. Using bash as a calculator
- 4.11. The expr command
- 4.12. What is the exit command and exit status?
- 4.13. File comparisons.
- 4.14. Comparisons of integers.
- 4.15. The shift command.
- 4.16. The let command and the arithmetic operators.
- 4.17. Logical operators.
- 4.18. The generation of random numbers.
- 4.20. C-style variables.
- 4.21. Menus in shell scripts.
- 4.22. Length of a string.
- 4.23. Finding out the numerical position of a substring in a string.
- 4.24. Extraction of a substring.
- 4.25. Deleting a substring.
- 4.26. Replacing a substring.
-
5. NETWORKING
2.3 Layer-based network design models: OSI and TCP/IP
An important idea must be taken into account: the communication process carried out in networks is complex.
To face this complexity, the design of these networks is carried out using the concept of layers or levels. The fundamental idea of this type of design is to divide the communication process into levels. Each of these levels must implement a series of specific functions without taking into account the rest of the functions, which will be resolved at other levels.
The design of a tiered architecture is based on the following principles:
- * 1 Each level performs a series of communication functions. These functions must be clearly defined.
- * 2 The number of levels and their function may be different in each network architecture. The number of levels should be sufficient to separate functions efficiently, but too high a number of levels would overcomplicate the design.
- * 3 Each level n knows of the existence of adjacent levels, that is, the upper level n + 1 and the lower level n – 1.
- * 4 The communication between adjacent levels is carried out by means of services. It is said, therefore, that each level offers services to the higher level and uses services from the lower level.
- * 5 An interface basically defines what information and services a given level offers to the higher level. It is very important that the interfaces are very well defined. When this occurs, the specific implementation of functions at one level can be modified or replaced without making any changes to adjacent levels, a feature known as modularity. Well-defined interfaces provide modularity to the network architecture.
- * 6 The design of the interfaces must be done in such a way that the flow of information between the levels is minimized. The interfaces must be as simple as possible.
2.3.1 The OSI model
The OSI model (Open System Interconnection, Open Systems Interconnection) was published in 1983 by the ISO standardization organism. This model receives the ISO 7498 code and is also part of the ITU-T recommendations as X.200 recommendation.
OSI is a layer-based model for the design of network systems. This model also allows the interconnection of open systems, or what is the same, allows two different systems to communicate regardless of their architecture. It is important to note that OSI is a model, not a protocol. Furthermore, the OSI model does not specify the services or protocols that are part of each layer.
The levels defined in the OSI model are seven: physical, link, network, transport, session, presentation, application.
2.3.1 The TCP/IP model
The TCP/IP architecture proposes the existence of five levels: physical, link, network, transport and application.
As can be seen, the most obvious difference is that the session and presentation levels do not appear in this model.
Any function above the transport layer in TCP/IP is implemented at the application layer. The levels with the most similarities between the OSI model and the TCP/IP model are the network and transport levels.
Explain to your partner what are the differences in between the OSI and TCP/IP model.